From 459377c5e148efc3bab0f2e7310ef7d09b28b9ed Mon Sep 17 00:00:00 2001 From: mertmit Date: Fri, 9 Dec 2022 02:27:40 +0300 Subject: [PATCH] fix: pk handling for snowflake client Signed-off-by: mertmit --- packages/nocodb-sdk/src/lib/sqlUi/SnowflakeUi.ts | 2 +- .../db/sql-client/lib/snowflake/SnowflakeClient.ts | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/nocodb-sdk/src/lib/sqlUi/SnowflakeUi.ts b/packages/nocodb-sdk/src/lib/sqlUi/SnowflakeUi.ts index 4c8a06776a..d43931de14 100644 --- a/packages/nocodb-sdk/src/lib/sqlUi/SnowflakeUi.ts +++ b/packages/nocodb-sdk/src/lib/sqlUi/SnowflakeUi.ts @@ -812,7 +812,7 @@ export class SnowflakeUi { switch (col.uidt) { case 'ID': if (idType === 'AG') { - return ['char', 'character', 'VARCHAR']; + return ['VARCHAR']; } else if (idType === 'AI') { return [ 'NUMBER' diff --git a/packages/nocodb/src/lib/db/sql-client/lib/snowflake/SnowflakeClient.ts b/packages/nocodb/src/lib/db/sql-client/lib/snowflake/SnowflakeClient.ts index 7689dedf8f..ad8c19f7e6 100644 --- a/packages/nocodb/src/lib/db/sql-client/lib/snowflake/SnowflakeClient.ts +++ b/packages/nocodb/src/lib/db/sql-client/lib/snowflake/SnowflakeClient.ts @@ -2364,13 +2364,18 @@ class SnowflakeClient extends KnexClient { // do nothing } else if (pksChanged) { query += numOfPksInOriginal.length - ? this.genQuery(`alter TABLE ?? drop constraint IF EXISTS ??;`, [this.getTnPath(t), `${t}_pkey`]) + ? this.genQuery(`alter TABLE ?? drop constraint IF EXISTS ??;`, [ + t, + `${t}_pkey`, + ]) : ''; if (numOfPksInNew.length) { - if (!createTable) { + if (createTable) { + query += this.genQuery(`, constraint ?? PRIMARY KEY (??)`, [`${t}_pkey`, numOfPksInNew]); + } else { query += this.genQuery( `alter TABLE ?? add constraint ?? PRIMARY KEY(??);`, - [this.getTnPath(t), `${t}_pkey`, numOfPksInNew] + [t, `${t}_pkey`, numOfPksInNew] ); } } @@ -2425,7 +2430,7 @@ class SnowflakeClient extends KnexClient { if (change === 0) { query = existingQuery ? ',' : ''; if (n.ai) { - query += this.genQuery(` ?? NUMBER(38,0) NOT NULL autoincrement PRIMARY KEY UNIQUE`, [n.cn], shouldSanitize); + query += this.genQuery(` ?? NUMBER(38,0) NOT NULL autoincrement UNIQUE`, [n.cn], shouldSanitize); } else { query += this.genQuery(` ?? ${n.dt}`, [n.cn], shouldSanitize); query += n.rqd ? ' NOT NULL' : ' NULL';