From 0839d3d171f0598baf43af851344a509e26e405e Mon Sep 17 00:00:00 2001 From: Pranav C Date: Thu, 19 Jan 2023 15:11:08 +0530 Subject: [PATCH] fix(api): mssql - column alter query correction Signed-off-by: Pranav C --- packages/nocodb-sdk/src/lib/sqlUi/MssqlUi.ts | 116 ------------------ .../db/sql-client/lib/mssql/MssqlClient.ts | 45 +------ 2 files changed, 4 insertions(+), 157 deletions(-) diff --git a/packages/nocodb-sdk/src/lib/sqlUi/MssqlUi.ts b/packages/nocodb-sdk/src/lib/sqlUi/MssqlUi.ts index c958eae2ba..7762be3c4a 100644 --- a/packages/nocodb-sdk/src/lib/sqlUi/MssqlUi.ts +++ b/packages/nocodb-sdk/src/lib/sqlUi/MssqlUi.ts @@ -163,122 +163,6 @@ export class MssqlUi { }; } - // static getDefaultLengthForDatatype(type) { - // switch (type) { - // case "int": - // return 11; - // break; - // case "tinyint": - // return 1; - // break; - // case "smallint": - // return 5; - // break; - // - // case "mediumint": - // return 9; - // break; - // case "bigint": - // return 20; - // break; - // case "bit": - // return 64; - // break; - // case "boolean": - // return ''; - // break; - // case "float": - // return 12; - // break; - // case "decimal": - // return 10; - // break; - // case "double": - // return 22; - // break; - // case "serial": - // return 20; - // break; - // case "date": - // return ''; - // break; - // case "datetime": - // case "timestamp": - // return 6; - // break; - // case "time": - // return ''; - // break; - // case "year": - // return ''; - // break; - // case "char": - // return 255; - // break; - // case "varchar": - // return 45; - // break; - // case "nchar": - // return 255; - // break; - // case "text": - // return ''; - // break; - // case "tinytext": - // return ''; - // break; - // case "mediumtext": - // return ''; - // break; - // case "longtext": - // return '' - // break; - // case "binary": - // return 255; - // break; - // case "varbinary": - // return 65500; - // break; - // case "blob": - // return ''; - // break; - // case "tinyblob": - // return ''; - // break; - // case "mediumblob": - // return ''; - // break; - // case "longblob": - // return ''; - // break; - // case "enum": - // return '\'a\',\'b\''; - // break; - // case "set": - // return '\'a\',\'b\''; - // break; - // case "geometry": - // return ''; - // case "point": - // return ''; - // case "linestring": - // return ''; - // case "polygon": - // return ''; - // case "multipoint": - // return ''; - // case "multilinestring": - // return ''; - // case "multipolygon": - // return ''; - // case "json": - // return '' - // break; - // - // } - // - // } - static getDefaultLengthForDatatype(type) { switch (type) { case 'bigint': diff --git a/packages/nocodb/src/lib/db/sql-client/lib/mssql/MssqlClient.ts b/packages/nocodb/src/lib/db/sql-client/lib/mssql/MssqlClient.ts index 962ae5eca8..0f84e04461 100644 --- a/packages/nocodb/src/lib/db/sql-client/lib/mssql/MssqlClient.ts +++ b/packages/nocodb/src/lib/db/sql-client/lib/mssql/MssqlClient.ts @@ -2629,43 +2629,14 @@ class MssqlClient extends KnexClient { ); } - if (n.dtxp !== o.dtxp && !['text'].includes(n.dt)) { + if (n.dtxp !== o.dtxp || n.dt !== o.dt || n.rqd !== o.rqd) { query += this.genQuery( - `\nALTER TABLE ?? ALTER COLUMN ?? ${n.dt}${!getDefaultLengthIsDisabled(n.dt) && n.dtxp ? `(${n.dtxp})` : ''};\n`, + `\nALTER TABLE ?? ALTER COLUMN ?? ${n.dt}${ + !getDefaultLengthIsDisabled(n.dt) && n.dtxp ? `(${n.dtxp})` : '' + }`, [this.getTnPath(t), n.cn], shouldSanitize ); - } else if (n.dt !== o.dt) { - query += this.genQuery( - `\nALTER TABLE ?? ALTER COLUMN ?? TYPE ${n.dt};\n`, - [this.getTnPath(t), n.cn], - shouldSanitize - ); - } - - if (n.rqd !== o.rqd) { - query += this.genQuery( - `\nALTER TABLE ?? ALTER COLUMN ?? ${n.dt}`, - [this.getTnPath(t), n.cn], - shouldSanitize - ); - if ( - ![ - 'int', - 'bigint', - 'bit', - 'real', - 'float', - 'decimal', - 'money', - 'smallint', - 'tinyint', - 'geometry', - 'datetime', - 'text', - ].includes(n.dt) - ) - query += n.dtxp && n.dtxp != -1 ? `(${n.dtxp})` : ''; query += n.rqd ? ` NOT NULL;\n` : ` NULL;\n`; } @@ -2787,14 +2758,6 @@ function getDefaultValue(n) { function getDefaultLengthIsDisabled(type) { switch (type) { - // case 'binary': - // case 'char': - // case 'sql_variant': - // case 'nvarchar': - // case 'nchar': - // case 'ntext': - // case 'varbinary': - // case 'sysname': case 'bigint': case 'bit': case 'datetimeoffset':