From ac47dbf6fbe24f1e2c6d69c69bb0017d4aacbcfa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D5=A1=C9=A8=D5=BC=C9=A2=D3=84=D5=A1=D6=85=D5=BC=C9=A2?= Date: Fri, 17 Nov 2023 19:35:40 +0800 Subject: [PATCH] fix(nocodb): populate column name to avoid duplicate field --- packages/nocodb/src/services/tables.service.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/nocodb/src/services/tables.service.ts b/packages/nocodb/src/services/tables.service.ts index 1546f2f460..cf765556be 100644 --- a/packages/nocodb/src/services/tables.service.ts +++ b/packages/nocodb/src/services/tables.service.ts @@ -455,9 +455,21 @@ export class TablesService { const mxColumnLength = Column.getMaxColumnNameLength(sqlClientType); + const uniqueColumnNameCount = {}; + for (const column of param.table.columns) { if (!isVirtualCol(column)) { column.column_name = sanitizeColumnName(column.column_name); + + if (uniqueColumnNameCount[column.column_name]) { + let suffix = 1; + let targetColumnName = `${column.column_name}_${suffix++}`; + while (uniqueColumnNameCount[targetColumnName]) { + targetColumnName = `${column.column_name}_${suffix++}`; + } + column.column_name = targetColumnName; + } + uniqueColumnNameCount[column.column_name] = 1; } if (column.column_name.length > mxColumnLength) {