Browse Source

fix(api): mssql - column alter query correction

Signed-off-by: Pranav C <pranavxc@gmail.com>
pull/4883/head
Pranav C 2 years ago
parent
commit
0839d3d171
  1. 116
      packages/nocodb-sdk/src/lib/sqlUi/MssqlUi.ts
  2. 45
      packages/nocodb/src/lib/db/sql-client/lib/mssql/MssqlClient.ts

116
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':

45
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':

Loading…
Cancel
Save