drizzle-kit 0.30.1 → 0.30.2-0a0cdd2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. package/api.js +386 -95
  2. package/api.mjs +386 -95
  3. package/bin.cjs +551 -342
  4. package/package.json +1 -1
package/api.mjs CHANGED
@@ -3474,17 +3474,17 @@ function processCreateParams(params) {
3474
3474
  if (errorMap2)
3475
3475
  return { errorMap: errorMap2, description };
3476
3476
  const customMap = (iss, ctx) => {
3477
- var _a413, _b303;
3477
+ var _a415, _b305;
3478
3478
  const { message } = params;
3479
3479
  if (iss.code === "invalid_enum_value") {
3480
3480
  return { message: message !== null && message !== void 0 ? message : ctx.defaultError };
3481
3481
  }
3482
3482
  if (typeof ctx.data === "undefined") {
3483
- return { message: (_a413 = message !== null && message !== void 0 ? message : required_error) !== null && _a413 !== void 0 ? _a413 : ctx.defaultError };
3483
+ return { message: (_a415 = message !== null && message !== void 0 ? message : required_error) !== null && _a415 !== void 0 ? _a415 : ctx.defaultError };
3484
3484
  }
3485
3485
  if (iss.code !== "invalid_type")
3486
3486
  return { message: ctx.defaultError };
3487
- return { message: (_b303 = message !== null && message !== void 0 ? message : invalid_type_error) !== null && _b303 !== void 0 ? _b303 : ctx.defaultError };
3487
+ return { message: (_b305 = message !== null && message !== void 0 ? message : invalid_type_error) !== null && _b305 !== void 0 ? _b305 : ctx.defaultError };
3488
3488
  };
3489
3489
  return { errorMap: customMap, description };
3490
3490
  }
@@ -4146,11 +4146,11 @@ var init_lib = __esm({
4146
4146
  throw result.error;
4147
4147
  }
4148
4148
  safeParse(data, params) {
4149
- var _a413;
4149
+ var _a415;
4150
4150
  const ctx = {
4151
4151
  common: {
4152
4152
  issues: [],
4153
- async: (_a413 = params === null || params === void 0 ? void 0 : params.async) !== null && _a413 !== void 0 ? _a413 : false,
4153
+ async: (_a415 = params === null || params === void 0 ? void 0 : params.async) !== null && _a415 !== void 0 ? _a415 : false,
4154
4154
  contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap
4155
4155
  },
4156
4156
  path: (params === null || params === void 0 ? void 0 : params.path) || [],
@@ -4472,7 +4472,7 @@ var init_lib = __esm({
4472
4472
  } else if (check.kind === "url") {
4473
4473
  try {
4474
4474
  new URL(input.data);
4475
- } catch (_a413) {
4475
+ } catch (_a415) {
4476
4476
  ctx = this._getOrReturnCtx(input, ctx);
4477
4477
  addIssueToContext(ctx, {
4478
4478
  validation: "url",
@@ -4642,7 +4642,7 @@ var init_lib = __esm({
4642
4642
  return this._addCheck({ kind: "ip", ...errorUtil.errToObj(options) });
4643
4643
  }
4644
4644
  datetime(options) {
4645
- var _a413, _b303;
4645
+ var _a415, _b305;
4646
4646
  if (typeof options === "string") {
4647
4647
  return this._addCheck({
4648
4648
  kind: "datetime",
@@ -4655,8 +4655,8 @@ var init_lib = __esm({
4655
4655
  return this._addCheck({
4656
4656
  kind: "datetime",
4657
4657
  precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === "undefined" ? null : options === null || options === void 0 ? void 0 : options.precision,
4658
- offset: (_a413 = options === null || options === void 0 ? void 0 : options.offset) !== null && _a413 !== void 0 ? _a413 : false,
4659
- local: (_b303 = options === null || options === void 0 ? void 0 : options.local) !== null && _b303 !== void 0 ? _b303 : false,
4658
+ offset: (_a415 = options === null || options === void 0 ? void 0 : options.offset) !== null && _a415 !== void 0 ? _a415 : false,
4659
+ local: (_b305 = options === null || options === void 0 ? void 0 : options.local) !== null && _b305 !== void 0 ? _b305 : false,
4660
4660
  ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message)
4661
4661
  });
4662
4662
  }
@@ -4819,11 +4819,11 @@ var init_lib = __esm({
4819
4819
  }
4820
4820
  };
4821
4821
  ZodString.create = (params) => {
4822
- var _a413;
4822
+ var _a415;
4823
4823
  return new ZodString({
4824
4824
  checks: [],
4825
4825
  typeName: ZodFirstPartyTypeKind.ZodString,
4826
- coerce: (_a413 = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a413 !== void 0 ? _a413 : false,
4826
+ coerce: (_a415 = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a415 !== void 0 ? _a415 : false,
4827
4827
  ...processCreateParams(params)
4828
4828
  });
4829
4829
  };
@@ -5216,11 +5216,11 @@ var init_lib = __esm({
5216
5216
  }
5217
5217
  };
5218
5218
  ZodBigInt.create = (params) => {
5219
- var _a413;
5219
+ var _a415;
5220
5220
  return new ZodBigInt({
5221
5221
  checks: [],
5222
5222
  typeName: ZodFirstPartyTypeKind.ZodBigInt,
5223
- coerce: (_a413 = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a413 !== void 0 ? _a413 : false,
5223
+ coerce: (_a415 = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a415 !== void 0 ? _a415 : false,
5224
5224
  ...processCreateParams(params)
5225
5225
  });
5226
5226
  };
@@ -5700,8 +5700,8 @@ var init_lib = __esm({
5700
5700
  unknownKeys: "strict",
5701
5701
  ...message !== void 0 ? {
5702
5702
  errorMap: (issue, ctx) => {
5703
- var _a413, _b303, _c14, _d6;
5704
- const defaultError = (_c14 = (_b303 = (_a413 = this._def).errorMap) === null || _b303 === void 0 ? void 0 : _b303.call(_a413, issue, ctx).message) !== null && _c14 !== void 0 ? _c14 : ctx.defaultError;
5703
+ var _a415, _b305, _c14, _d6;
5704
+ const defaultError = (_c14 = (_b305 = (_a415 = this._def).errorMap) === null || _b305 === void 0 ? void 0 : _b305.call(_a415, issue, ctx).message) !== null && _c14 !== void 0 ? _c14 : ctx.defaultError;
5705
5705
  if (issue.code === "unrecognized_keys")
5706
5706
  return {
5707
5707
  message: (_d6 = errorUtil.errToObj(message).message) !== null && _d6 !== void 0 ? _d6 : defaultError
@@ -12126,7 +12126,7 @@ function fromJson(statements, dialect6, action, json22) {
12126
12126
  }).filter((it) => it !== "");
12127
12127
  return result;
12128
12128
  }
12129
- var parseType, Convertor, PgCreateRoleConvertor, PgDropRoleConvertor, PgRenameRoleConvertor, PgAlterRoleConvertor, PgCreatePolicyConvertor, PgDropPolicyConvertor, PgRenamePolicyConvertor, PgAlterPolicyConvertor, PgCreateIndPolicyConvertor, PgDropIndPolicyConvertor, PgRenameIndPolicyConvertor, PgAlterIndPolicyConvertor, PgEnableRlsConvertor, PgDisableRlsConvertor, PgCreateTableConvertor, MySqlCreateTableConvertor, SingleStoreCreateTableConvertor, SQLiteCreateTableConvertor, PgCreateViewConvertor, MySqlCreateViewConvertor, SqliteCreateViewConvertor, PgDropViewConvertor, MySqlDropViewConvertor, SqliteDropViewConvertor, MySqlAlterViewConvertor, PgRenameViewConvertor, MySqlRenameViewConvertor, PgAlterViewSchemaConvertor, PgAlterViewAddWithOptionConvertor, PgAlterViewDropWithOptionConvertor, PgAlterViewAlterTablespaceConvertor, PgAlterViewAlterUsingConvertor, PgAlterTableAlterColumnSetGenerated, PgAlterTableAlterColumnDropGenerated, PgAlterTableAlterColumnAlterGenerated, PgAlterTableAddUniqueConstraintConvertor, PgAlterTableDropUniqueConstraintConvertor, PgAlterTableAddCheckConstraintConvertor, PgAlterTableDeleteCheckConstraintConvertor, MySQLAlterTableAddUniqueConstraintConvertor, MySQLAlterTableDropUniqueConstraintConvertor, MySqlAlterTableAddCheckConstraintConvertor, SingleStoreAlterTableAddUniqueConstraintConvertor, SingleStoreAlterTableDropUniqueConstraintConvertor, MySqlAlterTableDeleteCheckConstraintConvertor, CreatePgSequenceConvertor, DropPgSequenceConvertor, RenamePgSequenceConvertor, MovePgSequenceConvertor, AlterPgSequenceConvertor, CreateTypeEnumConvertor, DropTypeEnumConvertor, AlterTypeAddValueConvertor, AlterTypeSetSchemaConvertor, AlterRenameTypeConvertor, AlterTypeDropValueConvertor, PgDropTableConvertor, MySQLDropTableConvertor, SingleStoreDropTableConvertor, SQLiteDropTableConvertor, PgRenameTableConvertor, SqliteRenameTableConvertor, MySqlRenameTableConvertor, SingleStoreRenameTableConvertor, PgAlterTableRenameColumnConvertor, MySqlAlterTableRenameColumnConvertor, SingleStoreAlterTableRenameColumnConvertor, SQLiteAlterTableRenameColumnConvertor, PgAlterTableDropColumnConvertor, MySqlAlterTableDropColumnConvertor, SingleStoreAlterTableDropColumnConvertor, SQLiteAlterTableDropColumnConvertor, PgAlterTableAddColumnConvertor, MySqlAlterTableAddColumnConvertor, SingleStoreAlterTableAddColumnConvertor, SQLiteAlterTableAddColumnConvertor, PgAlterTableAlterColumnSetTypeConvertor, PgAlterTableAlterColumnSetDefaultConvertor, PgAlterTableAlterColumnDropDefaultConvertor, PgAlterTableAlterColumnDropGeneratedConvertor, PgAlterTableAlterColumnSetExpressionConvertor, PgAlterTableAlterColumnAlterrGeneratedConvertor, SqliteAlterTableAlterColumnDropGeneratedConvertor, SqliteAlterTableAlterColumnSetExpressionConvertor, SqliteAlterTableAlterColumnAlterGeneratedConvertor, MySqlAlterTableAlterColumnAlterrGeneratedConvertor, MySqlAlterTableAddPk, MySqlAlterTableDropPk, LibSQLModifyColumn, MySqlModifyColumn, SingleStoreAlterTableAlterColumnAlterrGeneratedConvertor, SingleStoreAlterTableAddPk, SingleStoreAlterTableDropPk, SingleStoreModifyColumn, PgAlterTableCreateCompositePrimaryKeyConvertor, PgAlterTableDeleteCompositePrimaryKeyConvertor, PgAlterTableAlterCompositePrimaryKeyConvertor, MySqlAlterTableCreateCompositePrimaryKeyConvertor, MySqlAlterTableDeleteCompositePrimaryKeyConvertor, MySqlAlterTableAlterCompositePrimaryKeyConvertor, PgAlterTableAlterColumnSetPrimaryKeyConvertor, PgAlterTableAlterColumnDropPrimaryKeyConvertor, PgAlterTableAlterColumnSetNotNullConvertor, PgAlterTableAlterColumnDropNotNullConvertor, PgCreateForeignKeyConvertor, LibSQLCreateForeignKeyConvertor, MySqlCreateForeignKeyConvertor, PgAlterForeignKeyConvertor, PgDeleteForeignKeyConvertor, MySqlDeleteForeignKeyConvertor, CreatePgIndexConvertor, CreateMySqlIndexConvertor, CreateSingleStoreIndexConvertor, CreateSqliteIndexConvertor, PgDropIndexConvertor, PgCreateSchemaConvertor, PgRenameSchemaConvertor, PgDropSchemaConvertor, PgAlterTableSetSchemaConvertor, PgAlterTableSetNewSchemaConvertor, PgAlterTableRemoveFromSchemaConvertor, SqliteDropIndexConvertor, MySqlDropIndexConvertor, SingleStoreDropIndexConvertor, SQLiteRecreateTableConvertor, LibSQLRecreateTableConvertor, convertors;
12129
+ var parseType, Convertor, PgCreateRoleConvertor, PgDropRoleConvertor, PgRenameRoleConvertor, PgAlterRoleConvertor, PgCreatePolicyConvertor, PgDropPolicyConvertor, PgRenamePolicyConvertor, PgAlterPolicyConvertor, PgCreateIndPolicyConvertor, PgDropIndPolicyConvertor, PgRenameIndPolicyConvertor, PgAlterIndPolicyConvertor, PgEnableRlsConvertor, PgDisableRlsConvertor, PgCreateTableConvertor, MySqlCreateTableConvertor, SingleStoreCreateTableConvertor, SQLiteCreateTableConvertor, PgCreateViewConvertor, MySqlCreateViewConvertor, SqliteCreateViewConvertor, PgDropViewConvertor, MySqlDropViewConvertor, SqliteDropViewConvertor, MySqlAlterViewConvertor, PgRenameViewConvertor, MySqlRenameViewConvertor, PgAlterViewSchemaConvertor, PgAlterViewAddWithOptionConvertor, PgAlterViewDropWithOptionConvertor, PgAlterViewAlterTablespaceConvertor, PgAlterViewAlterUsingConvertor, PgAlterTableAlterColumnSetGenerated, PgAlterTableAlterColumnDropGenerated, PgAlterTableAlterColumnAlterGenerated, PgAlterTableAddUniqueConstraintConvertor, PgAlterTableDropUniqueConstraintConvertor, PgAlterTableAddCheckConstraintConvertor, PgAlterTableDeleteCheckConstraintConvertor, MySQLAlterTableAddUniqueConstraintConvertor, MySQLAlterTableDropUniqueConstraintConvertor, MySqlAlterTableAddCheckConstraintConvertor, SingleStoreAlterTableAddUniqueConstraintConvertor, SingleStoreAlterTableDropUniqueConstraintConvertor, MySqlAlterTableDeleteCheckConstraintConvertor, CreatePgSequenceConvertor, DropPgSequenceConvertor, RenamePgSequenceConvertor, MovePgSequenceConvertor, AlterPgSequenceConvertor, CreateTypeEnumConvertor, DropTypeEnumConvertor, AlterTypeAddValueConvertor, AlterTypeSetSchemaConvertor, AlterRenameTypeConvertor, AlterTypeDropValueConvertor, PgDropTableConvertor, MySQLDropTableConvertor, SingleStoreDropTableConvertor, SQLiteDropTableConvertor, PgRenameTableConvertor, SqliteRenameTableConvertor, MySqlRenameTableConvertor, SingleStoreRenameTableConvertor, PgAlterTableRenameColumnConvertor, MySqlAlterTableRenameColumnConvertor, SingleStoreAlterTableRenameColumnConvertor, SQLiteAlterTableRenameColumnConvertor, PgAlterTableDropColumnConvertor, MySqlAlterTableDropColumnConvertor, SingleStoreAlterTableDropColumnConvertor, SQLiteAlterTableDropColumnConvertor, PgAlterTableAddColumnConvertor, MySqlAlterTableAddColumnConvertor, SingleStoreAlterTableAddColumnConvertor, SQLiteAlterTableAddColumnConvertor, PgAlterTableAlterColumnSetTypeConvertor, PgAlterTableAlterColumnSetDefaultConvertor, PgAlterTableAlterColumnDropDefaultConvertor, PgAlterTableAlterColumnDropGeneratedConvertor, PgAlterTableAlterColumnSetExpressionConvertor, PgAlterTableAlterColumnAlterrGeneratedConvertor, SqliteAlterTableAlterColumnDropGeneratedConvertor, SqliteAlterTableAlterColumnSetExpressionConvertor, SqliteAlterTableAlterColumnAlterGeneratedConvertor, MySqlAlterTableAlterColumnAlterrGeneratedConvertor, MySqlAlterTableAddPk, MySqlAlterTableDropPk, LibSQLModifyColumn, MySqlModifyColumn, SingleStoreAlterTableAlterColumnAlterrGeneratedConvertor, SingleStoreAlterTableAddPk, SingleStoreAlterTableDropPk, SingleStoreModifyColumn, PgAlterTableCreateCompositePrimaryKeyConvertor, PgAlterTableDeleteCompositePrimaryKeyConvertor, PgAlterTableAlterCompositePrimaryKeyConvertor, MySqlAlterTableCreateCompositePrimaryKeyConvertor, MySqlAlterTableDeleteCompositePrimaryKeyConvertor, MySqlAlterTableAlterCompositePrimaryKeyConvertor, PgAlterTableAlterColumnSetPrimaryKeyConvertor, PgAlterTableAlterColumnDropPrimaryKeyConvertor, PgAlterTableAlterColumnSetNotNullConvertor, PgAlterTableAlterColumnDropNotNullConvertor, PgCreateForeignKeyConvertor, LibSQLCreateForeignKeyConvertor, MySqlCreateForeignKeyConvertor, PgAlterForeignKeyConvertor, PgDeleteForeignKeyConvertor, MySqlDeleteForeignKeyConvertor, CreatePgIndexConvertor, CreateMySqlIndexConvertor, CreateSingleStoreIndexConvertor, CreateSqliteIndexConvertor, PgDropIndexConvertor, PgCreateSchemaConvertor, PgRenameSchemaConvertor, PgDropSchemaConvertor, PgAlterTableSetSchemaConvertor, PgAlterTableSetNewSchemaConvertor, PgAlterTableRemoveFromSchemaConvertor, SqliteDropIndexConvertor, MySqlDropIndexConvertor, SingleStoreDropIndexConvertor, SQLiteRecreateTableConvertor, LibSQLRecreateTableConvertor, SingleStoreRecreateTableConvertor, convertors;
12130
12130
  var init_sqlgenerator = __esm({
12131
12131
  "src/sqlgenerator.ts"() {
12132
12132
  "use strict";
@@ -12472,7 +12472,7 @@ var init_sqlgenerator = __esm({
12472
12472
  if (typeof compositePKs !== "undefined" && compositePKs.length > 0) {
12473
12473
  statement += ",\n";
12474
12474
  const compositePK5 = SingleStoreSquasher.unsquashPK(compositePKs[0]);
12475
- statement += ` CONSTRAINT \`${st.compositePkName}\` PRIMARY KEY(\`${compositePK5.columns.join(`\`,\``)}\`)`;
12475
+ statement += ` CONSTRAINT \`${compositePK5.name}\` PRIMARY KEY(\`${compositePK5.columns.join(`\`,\``)}\`)`;
12476
12476
  }
12477
12477
  if (typeof uniqueConstraints !== "undefined" && uniqueConstraints.length > 0) {
12478
12478
  for (const uniqueConstraint5 of uniqueConstraints) {
@@ -13127,7 +13127,7 @@ WITH ${withCheckOption} CHECK OPTION` : "";
13127
13127
  }
13128
13128
  convert(statement) {
13129
13129
  const { tableNameFrom, tableNameTo } = statement;
13130
- return `RENAME TABLE \`${tableNameFrom}\` TO \`${tableNameTo}\`;`;
13130
+ return `ALTER TABLE \`${tableNameFrom}\` RENAME TO \`${tableNameTo}\`;`;
13131
13131
  }
13132
13132
  };
13133
13133
  PgAlterTableRenameColumnConvertor = class extends Convertor {
@@ -13155,7 +13155,7 @@ WITH ${withCheckOption} CHECK OPTION` : "";
13155
13155
  }
13156
13156
  convert(statement) {
13157
13157
  const { tableName, oldColumnName, newColumnName } = statement;
13158
- return `ALTER TABLE \`${tableName}\` RENAME COLUMN \`${oldColumnName}\` TO \`${newColumnName}\`;`;
13158
+ return `ALTER TABLE \`${tableName}\` CHANGE \`${oldColumnName}\` \`${newColumnName}\`;`;
13159
13159
  }
13160
13160
  };
13161
13161
  SQLiteAlterTableRenameColumnConvertor = class extends Convertor {
@@ -14278,8 +14278,10 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT "${statement.newC
14278
14278
  return statement.type === "drop_index" && dialect6 === "postgresql";
14279
14279
  }
14280
14280
  convert(statement) {
14281
+ const { schema: schema5 } = statement;
14281
14282
  const { name: name2 } = PgSquasher.unsquashIdx(statement.data);
14282
- return `DROP INDEX "${name2}";`;
14283
+ const indexNameWithSchema = schema5 ? `"${schema5}"."${name2}"` : `"${name2}"`;
14284
+ return `DROP INDEX ${indexNameWithSchema};`;
14283
14285
  }
14284
14286
  };
14285
14287
  PgCreateSchemaConvertor = class extends Convertor {
@@ -14463,10 +14465,52 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT "${statement.newC
14463
14465
  return sqlStatements;
14464
14466
  }
14465
14467
  };
14468
+ SingleStoreRecreateTableConvertor = class extends Convertor {
14469
+ can(statement, dialect6) {
14470
+ return statement.type === "singlestore_recreate_table" && dialect6 === "singlestore";
14471
+ }
14472
+ convert(statement) {
14473
+ const { tableName, columns, compositePKs, uniqueConstraints } = statement;
14474
+ const columnNames = columns.map((it) => `\`${it.name}\``).join(", ");
14475
+ const newTableName = `__new_${tableName}`;
14476
+ const sqlStatements = [];
14477
+ sqlStatements.push(
14478
+ new SingleStoreCreateTableConvertor().convert({
14479
+ type: "create_table",
14480
+ tableName: newTableName,
14481
+ columns,
14482
+ compositePKs,
14483
+ uniqueConstraints,
14484
+ schema: ""
14485
+ })
14486
+ );
14487
+ sqlStatements.push(
14488
+ `INSERT INTO \`${newTableName}\`(${columnNames}) SELECT ${columnNames} FROM \`${tableName}\`;`
14489
+ );
14490
+ sqlStatements.push(
14491
+ new SingleStoreDropTableConvertor().convert({
14492
+ type: "drop_table",
14493
+ tableName,
14494
+ schema: ""
14495
+ })
14496
+ );
14497
+ sqlStatements.push(
14498
+ new SingleStoreRenameTableConvertor().convert({
14499
+ fromSchema: "",
14500
+ tableNameFrom: newTableName,
14501
+ tableNameTo: tableName,
14502
+ toSchema: "",
14503
+ type: "rename_table"
14504
+ })
14505
+ );
14506
+ return sqlStatements;
14507
+ }
14508
+ };
14466
14509
  convertors = [];
14467
14510
  convertors.push(new PgCreateTableConvertor());
14468
14511
  convertors.push(new MySqlCreateTableConvertor());
14469
14512
  convertors.push(new SingleStoreCreateTableConvertor());
14513
+ convertors.push(new SingleStoreRecreateTableConvertor());
14470
14514
  convertors.push(new SQLiteCreateTableConvertor());
14471
14515
  convertors.push(new SQLiteRecreateTableConvertor());
14472
14516
  convertors.push(new LibSQLRecreateTableConvertor());
@@ -16462,7 +16506,7 @@ var init_jsonStatements = __esm({
16462
16506
  });
16463
16507
 
16464
16508
  // src/statementCombiner.ts
16465
- var prepareLibSQLRecreateTable, prepareSQLiteRecreateTable, libSQLCombineStatements, sqliteCombineStatements;
16509
+ var prepareLibSQLRecreateTable, prepareSQLiteRecreateTable, libSQLCombineStatements, sqliteCombineStatements, prepareSingleStoreRecreateTable, singleStoreCombineStatements;
16466
16510
  var init_statementCombiner = __esm({
16467
16511
  "src/statementCombiner.ts"() {
16468
16512
  "use strict";
@@ -16741,6 +16785,101 @@ var init_statementCombiner = __esm({
16741
16785
  const rest = combinedStatements.filter((it) => it.type !== "rename_table" && it.type !== "alter_table_rename_column");
16742
16786
  return [...renamedTables, ...renamedColumns, ...rest];
16743
16787
  };
16788
+ prepareSingleStoreRecreateTable = (table5) => {
16789
+ const { name: name2, columns, uniqueConstraints, indexes, compositePrimaryKeys } = table5;
16790
+ const composites = Object.values(compositePrimaryKeys);
16791
+ const statements = [
16792
+ {
16793
+ type: "singlestore_recreate_table",
16794
+ tableName: name2,
16795
+ columns: Object.values(columns),
16796
+ compositePKs: composites,
16797
+ uniqueConstraints: Object.values(uniqueConstraints)
16798
+ }
16799
+ ];
16800
+ if (Object.keys(indexes).length) {
16801
+ statements.push(...prepareCreateIndexesJson(name2, "", indexes));
16802
+ }
16803
+ return statements;
16804
+ };
16805
+ singleStoreCombineStatements = (statements, json22) => {
16806
+ const newStatements = {};
16807
+ for (const statement of statements) {
16808
+ if (statement.type === "alter_table_alter_column_set_type" || statement.type === "alter_table_alter_column_set_notnull" || statement.type === "alter_table_alter_column_drop_notnull" || statement.type === "alter_table_alter_column_drop_autoincrement" || statement.type === "alter_table_alter_column_set_autoincrement" || statement.type === "alter_table_alter_column_drop_pk" || statement.type === "alter_table_alter_column_set_pk" || statement.type === "create_composite_pk" || statement.type === "alter_composite_pk" || statement.type === "delete_composite_pk") {
16809
+ const tableName2 = statement.tableName;
16810
+ const statementsForTable2 = newStatements[tableName2];
16811
+ if (!statementsForTable2) {
16812
+ newStatements[tableName2] = prepareSingleStoreRecreateTable(json22.tables[tableName2]);
16813
+ continue;
16814
+ }
16815
+ if (!statementsForTable2.some(({ type }) => type === "recreate_table")) {
16816
+ const wasRename = statementsForTable2.some(
16817
+ ({ type }) => type === "rename_table" || type === "alter_table_rename_column"
16818
+ );
16819
+ const preparedStatements = prepareSingleStoreRecreateTable(json22.tables[tableName2]);
16820
+ if (wasRename) {
16821
+ newStatements[tableName2].push(...preparedStatements);
16822
+ } else {
16823
+ newStatements[tableName2] = preparedStatements;
16824
+ }
16825
+ continue;
16826
+ }
16827
+ continue;
16828
+ }
16829
+ if ((statement.type === "alter_table_alter_column_drop_default" || statement.type === "alter_table_alter_column_set_default") && statement.columnNotNull) {
16830
+ const tableName2 = statement.tableName;
16831
+ const statementsForTable2 = newStatements[tableName2];
16832
+ if (!statementsForTable2) {
16833
+ newStatements[tableName2] = prepareSingleStoreRecreateTable(json22.tables[tableName2]);
16834
+ continue;
16835
+ }
16836
+ if (!statementsForTable2.some(({ type }) => type === "recreate_table")) {
16837
+ const wasRename = statementsForTable2.some(({ type }) => type === "rename_table");
16838
+ const preparedStatements = prepareSingleStoreRecreateTable(json22.tables[tableName2]);
16839
+ if (wasRename) {
16840
+ newStatements[tableName2].push(...preparedStatements);
16841
+ } else {
16842
+ newStatements[tableName2] = preparedStatements;
16843
+ }
16844
+ continue;
16845
+ }
16846
+ continue;
16847
+ }
16848
+ if (statement.type === "alter_table_add_column" && statement.column.primaryKey) {
16849
+ const tableName2 = statement.tableName;
16850
+ const statementsForTable2 = newStatements[tableName2];
16851
+ if (!statementsForTable2) {
16852
+ newStatements[tableName2] = prepareSingleStoreRecreateTable(json22.tables[tableName2]);
16853
+ continue;
16854
+ }
16855
+ if (!statementsForTable2.some(({ type }) => type === "recreate_table")) {
16856
+ const wasRename = statementsForTable2.some(({ type }) => type === "rename_table");
16857
+ const preparedStatements = prepareSingleStoreRecreateTable(json22.tables[tableName2]);
16858
+ if (wasRename) {
16859
+ newStatements[tableName2].push(...preparedStatements);
16860
+ } else {
16861
+ newStatements[tableName2] = preparedStatements;
16862
+ }
16863
+ continue;
16864
+ }
16865
+ continue;
16866
+ }
16867
+ const tableName = statement.type === "rename_table" ? statement.tableNameTo : statement.tableName;
16868
+ const statementsForTable = newStatements[tableName];
16869
+ if (!statementsForTable) {
16870
+ newStatements[tableName] = [statement];
16871
+ continue;
16872
+ }
16873
+ if (!statementsForTable.some(({ type }) => type === "singlestore_recreate_table")) {
16874
+ newStatements[tableName].push(statement);
16875
+ }
16876
+ }
16877
+ const combinedStatements = Object.values(newStatements).flat();
16878
+ const renamedTables = combinedStatements.filter((it) => it.type === "rename_table");
16879
+ const renamedColumns = combinedStatements.filter((it) => it.type === "alter_table_rename_column");
16880
+ const rest = combinedStatements.filter((it) => it.type !== "rename_table" && it.type !== "alter_table_rename_column");
16881
+ return [...renamedTables, ...renamedColumns, ...rest];
16882
+ };
16744
16883
  }
16745
16884
  });
16746
16885
 
@@ -18686,7 +18825,7 @@ var init_snapshotsDiffer = __esm({
18686
18825
  return [tableKey2, tableValue];
18687
18826
  }
18688
18827
  );
18689
- const diffResult = applyJsonDiff(tablesPatchedSnap1, json22);
18828
+ const diffResult = applyJsonDiff(columnsPatchedSnap1, json22);
18690
18829
  const typedResult = diffResultSchemeSingleStore.parse(diffResult);
18691
18830
  const jsonStatements = [];
18692
18831
  const jsonCreateIndexesForCreatedTables = createdTables.map((it) => {
@@ -18850,7 +18989,8 @@ var init_snapshotsDiffer = __esm({
18850
18989
  jsonStatements.push(...jsonDropColumnsStatemets);
18851
18990
  jsonStatements.push(...jsonAddedCompositePKs);
18852
18991
  jsonStatements.push(...jsonAlteredUniqueConstraints);
18853
- const sqlStatements = fromJson(jsonStatements, "singlestore");
18992
+ const combinedJsonStatements = singleStoreCombineStatements(jsonStatements, json22);
18993
+ const sqlStatements = fromJson(combinedJsonStatements, "singlestore");
18854
18994
  const uniqueSqlStatements = [];
18855
18995
  sqlStatements.forEach((ss) => {
18856
18996
  if (!uniqueSqlStatements.includes(ss)) {
@@ -18862,7 +19002,7 @@ var init_snapshotsDiffer = __esm({
18862
19002
  });
18863
19003
  const _meta = prepareMigrationMeta([], rTables, rColumns);
18864
19004
  return {
18865
- statements: jsonStatements,
19005
+ statements: combinedJsonStatements,
18866
19006
  sqlStatements: uniqueSqlStatements,
18867
19007
  _meta
18868
19008
  };
@@ -21980,7 +22120,7 @@ var version;
21980
22120
  var init_version = __esm({
21981
22121
  "../drizzle-orm/dist/version.js"() {
21982
22122
  "use strict";
21983
- version = "0.38.2";
22123
+ version = "0.38.3";
21984
22124
  }
21985
22125
  });
21986
22126
 
@@ -22462,8 +22602,8 @@ var init_sql = __esm({
22462
22602
  sql2.param = param2;
22463
22603
  })(sql || (sql = {}));
22464
22604
  ((SQL2) => {
22465
- var _a413;
22466
- _a413 = entityKind;
22605
+ var _a415;
22606
+ _a415 = entityKind;
22467
22607
  const _Aliased = class _Aliased {
22468
22608
  constructor(sql2, fieldAlias) {
22469
22609
  /** @internal */
@@ -22479,7 +22619,7 @@ var init_sql = __esm({
22479
22619
  return new _Aliased(this.sql, this.fieldAlias);
22480
22620
  }
22481
22621
  };
22482
- __publicField(_Aliased, _a413, "SQL.Aliased");
22622
+ __publicField(_Aliased, _a415, "SQL.Aliased");
22483
22623
  let Aliased = _Aliased;
22484
22624
  SQL2.Aliased = Aliased;
22485
22625
  })(SQL || (SQL = {}));
@@ -41850,6 +41990,18 @@ function text4(a, b = {}) {
41850
41990
  const { name: name2, config } = getColumnNameAndConfig(a, b);
41851
41991
  return new SingleStoreTextBuilder(name2, "text", config);
41852
41992
  }
41993
+ function tinytext2(a, b = {}) {
41994
+ const { name: name2, config } = getColumnNameAndConfig(a, b);
41995
+ return new SingleStoreTextBuilder(name2, "tinytext", config);
41996
+ }
41997
+ function mediumtext2(a, b = {}) {
41998
+ const { name: name2, config } = getColumnNameAndConfig(a, b);
41999
+ return new SingleStoreTextBuilder(name2, "mediumtext", config);
42000
+ }
42001
+ function longtext2(a, b = {}) {
42002
+ const { name: name2, config } = getColumnNameAndConfig(a, b);
42003
+ return new SingleStoreTextBuilder(name2, "longtext", config);
42004
+ }
41853
42005
  var _a373, _b277, SingleStoreTextBuilder, _a374, _b278, SingleStoreText;
41854
42006
  var init_text4 = __esm({
41855
42007
  "../drizzle-orm/dist/singlestore-core/columns/text.js"() {
@@ -42139,17 +42291,68 @@ var init_varchar3 = __esm({
42139
42291
  }
42140
42292
  });
42141
42293
 
42294
+ // ../drizzle-orm/dist/singlestore-core/columns/vector.js
42295
+ function vector2(a, b) {
42296
+ const { name: name2, config } = getColumnNameAndConfig(a, b);
42297
+ return new SingleStoreVectorBuilder(name2, config);
42298
+ }
42299
+ var _a389, _b293, SingleStoreVectorBuilder, _a390, _b294, SingleStoreVector;
42300
+ var init_vector4 = __esm({
42301
+ "../drizzle-orm/dist/singlestore-core/columns/vector.js"() {
42302
+ "use strict";
42303
+ init_entity();
42304
+ init_utils2();
42305
+ init_common5();
42306
+ SingleStoreVectorBuilder = class extends (_b293 = SingleStoreColumnBuilder, _a389 = entityKind, _b293) {
42307
+ constructor(name2, config) {
42308
+ super(name2, "array", "SingleStoreVector");
42309
+ this.config.dimensions = config.dimensions;
42310
+ this.config.elementType = config.elementType;
42311
+ }
42312
+ /** @internal */
42313
+ build(table5) {
42314
+ return new SingleStoreVector(
42315
+ table5,
42316
+ this.config
42317
+ );
42318
+ }
42319
+ /** @internal */
42320
+ generatedAlwaysAs(as, config) {
42321
+ throw new Error("not implemented");
42322
+ }
42323
+ };
42324
+ __publicField(SingleStoreVectorBuilder, _a389, "SingleStoreVectorBuilder");
42325
+ SingleStoreVector = class extends (_b294 = SingleStoreColumn, _a390 = entityKind, _b294) {
42326
+ constructor() {
42327
+ super(...arguments);
42328
+ __publicField(this, "dimensions", this.config.dimensions);
42329
+ __publicField(this, "elementType", this.config.elementType);
42330
+ }
42331
+ getSQLType() {
42332
+ return `vector(${this.dimensions}, ${this.elementType || "F32"})`;
42333
+ }
42334
+ mapToDriverValue(value) {
42335
+ return JSON.stringify(value);
42336
+ }
42337
+ mapFromDriverValue(value) {
42338
+ return JSON.parse(value);
42339
+ }
42340
+ };
42341
+ __publicField(SingleStoreVector, _a390, "SingleStoreVector");
42342
+ }
42343
+ });
42344
+
42142
42345
  // ../drizzle-orm/dist/singlestore-core/columns/year.js
42143
42346
  function year2(name2) {
42144
42347
  return new SingleStoreYearBuilder(name2 ?? "");
42145
42348
  }
42146
- var _a389, _b293, SingleStoreYearBuilder, _a390, _b294, SingleStoreYear;
42349
+ var _a391, _b295, SingleStoreYearBuilder, _a392, _b296, SingleStoreYear;
42147
42350
  var init_year2 = __esm({
42148
42351
  "../drizzle-orm/dist/singlestore-core/columns/year.js"() {
42149
42352
  "use strict";
42150
42353
  init_entity();
42151
42354
  init_common5();
42152
- SingleStoreYearBuilder = class extends (_b293 = SingleStoreColumnBuilder, _a389 = entityKind, _b293) {
42355
+ SingleStoreYearBuilder = class extends (_b295 = SingleStoreColumnBuilder, _a391 = entityKind, _b295) {
42153
42356
  constructor(name2) {
42154
42357
  super(name2, "number", "SingleStoreYear");
42155
42358
  }
@@ -42161,13 +42364,13 @@ var init_year2 = __esm({
42161
42364
  );
42162
42365
  }
42163
42366
  };
42164
- __publicField(SingleStoreYearBuilder, _a389, "SingleStoreYearBuilder");
42165
- SingleStoreYear = class extends (_b294 = SingleStoreColumn, _a390 = entityKind, _b294) {
42367
+ __publicField(SingleStoreYearBuilder, _a391, "SingleStoreYearBuilder");
42368
+ SingleStoreYear = class extends (_b296 = SingleStoreColumn, _a392 = entityKind, _b296) {
42166
42369
  getSQLType() {
42167
42370
  return `year`;
42168
42371
  }
42169
42372
  };
42170
- __publicField(SingleStoreYear, _a390, "SingleStoreYear");
42373
+ __publicField(SingleStoreYear, _a392, "SingleStoreYear");
42171
42374
  }
42172
42375
  });
42173
42376
 
@@ -42199,22 +42402,23 @@ var init_columns4 = __esm({
42199
42402
  init_tinyint2();
42200
42403
  init_varbinary2();
42201
42404
  init_varchar3();
42405
+ init_vector4();
42202
42406
  init_year2();
42203
42407
  }
42204
42408
  });
42205
42409
 
42206
42410
  // ../drizzle-orm/dist/singlestore-core/query-builders/count.js
42207
- var _a391, _b295, _c12, _SingleStoreCountBuilder, SingleStoreCountBuilder;
42411
+ var _a393, _b297, _c12, _SingleStoreCountBuilder, SingleStoreCountBuilder;
42208
42412
  var init_count4 = __esm({
42209
42413
  "../drizzle-orm/dist/singlestore-core/query-builders/count.js"() {
42210
42414
  "use strict";
42211
42415
  init_entity();
42212
42416
  init_sql();
42213
- _SingleStoreCountBuilder = class _SingleStoreCountBuilder extends (_c12 = SQL, _b295 = entityKind, _a391 = Symbol.toStringTag, _c12) {
42417
+ _SingleStoreCountBuilder = class _SingleStoreCountBuilder extends (_c12 = SQL, _b297 = entityKind, _a393 = Symbol.toStringTag, _c12) {
42214
42418
  constructor(params) {
42215
42419
  super(_SingleStoreCountBuilder.buildEmbeddedCount(params.source, params.filters).queryChunks);
42216
42420
  __publicField(this, "sql");
42217
- __publicField(this, _a391, "SingleStoreCountBuilder");
42421
+ __publicField(this, _a393, "SingleStoreCountBuilder");
42218
42422
  __publicField(this, "session");
42219
42423
  this.params = params;
42220
42424
  this.mapWith(Number);
@@ -42252,13 +42456,13 @@ var init_count4 = __esm({
42252
42456
  );
42253
42457
  }
42254
42458
  };
42255
- __publicField(_SingleStoreCountBuilder, _b295, "SingleStoreCountBuilder");
42459
+ __publicField(_SingleStoreCountBuilder, _b297, "SingleStoreCountBuilder");
42256
42460
  SingleStoreCountBuilder = _SingleStoreCountBuilder;
42257
42461
  }
42258
42462
  });
42259
42463
 
42260
42464
  // ../drizzle-orm/dist/singlestore-core/query-builders/delete.js
42261
- var _a392, _b296, SingleStoreDeleteBase;
42465
+ var _a394, _b298, SingleStoreDeleteBase;
42262
42466
  var init_delete4 = __esm({
42263
42467
  "../drizzle-orm/dist/singlestore-core/query-builders/delete.js"() {
42264
42468
  "use strict";
@@ -42266,7 +42470,7 @@ var init_delete4 = __esm({
42266
42470
  init_query_promise();
42267
42471
  init_selection_proxy();
42268
42472
  init_table();
42269
- SingleStoreDeleteBase = class extends (_b296 = QueryPromise, _a392 = entityKind, _b296) {
42473
+ SingleStoreDeleteBase = class extends (_b298 = QueryPromise, _a394 = entityKind, _b298) {
42270
42474
  constructor(table5, session, dialect6, withList) {
42271
42475
  super();
42272
42476
  __publicField(this, "config");
@@ -42356,12 +42560,12 @@ var init_delete4 = __esm({
42356
42560
  return this;
42357
42561
  }
42358
42562
  };
42359
- __publicField(SingleStoreDeleteBase, _a392, "SingleStoreDelete");
42563
+ __publicField(SingleStoreDeleteBase, _a394, "SingleStoreDelete");
42360
42564
  }
42361
42565
  });
42362
42566
 
42363
42567
  // ../drizzle-orm/dist/singlestore-core/query-builders/insert.js
42364
- var _a393, SingleStoreInsertBuilder, _a394, _b297, SingleStoreInsertBase;
42568
+ var _a395, SingleStoreInsertBuilder, _a396, _b299, SingleStoreInsertBase;
42365
42569
  var init_insert4 = __esm({
42366
42570
  "../drizzle-orm/dist/singlestore-core/query-builders/insert.js"() {
42367
42571
  "use strict";
@@ -42370,7 +42574,7 @@ var init_insert4 = __esm({
42370
42574
  init_sql();
42371
42575
  init_table();
42372
42576
  init_utils2();
42373
- _a393 = entityKind;
42577
+ _a395 = entityKind;
42374
42578
  SingleStoreInsertBuilder = class {
42375
42579
  constructor(table5, session, dialect6) {
42376
42580
  __publicField(this, "shouldIgnore", false);
@@ -42399,8 +42603,8 @@ var init_insert4 = __esm({
42399
42603
  return new SingleStoreInsertBase(this.table, mappedValues, this.shouldIgnore, this.session, this.dialect);
42400
42604
  }
42401
42605
  };
42402
- __publicField(SingleStoreInsertBuilder, _a393, "SingleStoreInsertBuilder");
42403
- SingleStoreInsertBase = class extends (_b297 = QueryPromise, _a394 = entityKind, _b297) {
42606
+ __publicField(SingleStoreInsertBuilder, _a395, "SingleStoreInsertBuilder");
42607
+ SingleStoreInsertBase = class extends (_b299 = QueryPromise, _a396 = entityKind, _b299) {
42404
42608
  constructor(table5, values, ignore, session, dialect6) {
42405
42609
  super();
42406
42610
  __publicField(this, "config");
@@ -42481,7 +42685,7 @@ var init_insert4 = __esm({
42481
42685
  return this;
42482
42686
  }
42483
42687
  };
42484
- __publicField(SingleStoreInsertBase, _a394, "SingleStoreInsert");
42688
+ __publicField(SingleStoreInsertBase, _a396, "SingleStoreInsert");
42485
42689
  }
42486
42690
  });
42487
42691
 
@@ -42505,12 +42709,16 @@ function getSingleStoreColumnBuilders() {
42505
42709
  real: real4,
42506
42710
  serial: serial3,
42507
42711
  smallint: smallint3,
42712
+ longtext: longtext2,
42713
+ mediumtext: mediumtext2,
42508
42714
  text: text4,
42715
+ tinytext: tinytext2,
42509
42716
  time: time3,
42510
42717
  timestamp: timestamp3,
42511
42718
  tinyint: tinyint2,
42512
42719
  varbinary: varbinary2,
42513
42720
  varchar: varchar3,
42721
+ vector: vector2,
42514
42722
  year: year2
42515
42723
  };
42516
42724
  }
@@ -42540,6 +42748,7 @@ var init_all4 = __esm({
42540
42748
  init_tinyint2();
42541
42749
  init_varbinary2();
42542
42750
  init_varchar3();
42751
+ init_vector4();
42543
42752
  init_year2();
42544
42753
  }
42545
42754
  });
@@ -42564,20 +42773,20 @@ function singlestoreTableWithSchema(name2, columns, extraConfig, schema5, baseNa
42564
42773
  }
42565
42774
  return table5;
42566
42775
  }
42567
- var _a395, _b298, _c13, _d5, SingleStoreTable;
42776
+ var _a397, _b300, _c13, _d5, SingleStoreTable;
42568
42777
  var init_table5 = __esm({
42569
42778
  "../drizzle-orm/dist/singlestore-core/table.js"() {
42570
42779
  "use strict";
42571
42780
  init_entity();
42572
42781
  init_table();
42573
42782
  init_all4();
42574
- SingleStoreTable = class extends (_d5 = Table2, _c13 = entityKind, _b298 = Table2.Symbol.Columns, _a395 = Table2.Symbol.ExtraConfigBuilder, _d5) {
42783
+ SingleStoreTable = class extends (_d5 = Table2, _c13 = entityKind, _b300 = Table2.Symbol.Columns, _a397 = Table2.Symbol.ExtraConfigBuilder, _d5) {
42575
42784
  constructor() {
42576
42785
  super(...arguments);
42577
42786
  /** @internal */
42578
- __publicField(this, _b298);
42787
+ __publicField(this, _b300);
42579
42788
  /** @internal */
42580
- __publicField(this, _a395);
42789
+ __publicField(this, _a397);
42581
42790
  }
42582
42791
  };
42583
42792
  __publicField(SingleStoreTable, _c13, "SingleStoreTable");
@@ -42587,7 +42796,7 @@ var init_table5 = __esm({
42587
42796
  });
42588
42797
 
42589
42798
  // ../drizzle-orm/dist/singlestore-core/dialect.js
42590
- var _a396, SingleStoreDialect;
42799
+ var _a398, SingleStoreDialect;
42591
42800
  var init_dialect4 = __esm({
42592
42801
  "../drizzle-orm/dist/singlestore-core/dialect.js"() {
42593
42802
  "use strict";
@@ -42605,7 +42814,7 @@ var init_dialect4 = __esm({
42605
42814
  init_view_common();
42606
42815
  init_common5();
42607
42816
  init_table5();
42608
- _a396 = entityKind;
42817
+ _a398 = entityKind;
42609
42818
  SingleStoreDialect = class {
42610
42819
  constructor(config) {
42611
42820
  /** @internal */
@@ -43170,7 +43379,7 @@ var init_dialect4 = __esm({
43170
43379
  };
43171
43380
  }
43172
43381
  };
43173
- __publicField(SingleStoreDialect, _a396, "SingleStoreDialect");
43382
+ __publicField(SingleStoreDialect, _a398, "SingleStoreDialect");
43174
43383
  }
43175
43384
  });
43176
43385
 
@@ -43192,7 +43401,7 @@ function createSetOperator4(type, isAll) {
43192
43401
  return leftSelect.addSetOperators(setOperators);
43193
43402
  };
43194
43403
  }
43195
- var _a397, SingleStoreSelectBuilder, _a398, _b299, SingleStoreSelectQueryBuilderBase, _a399, _b300, SingleStoreSelectBase, getSingleStoreSetOperators, union4, unionAll4, intersect4, except4, minus;
43404
+ var _a399, SingleStoreSelectBuilder, _a400, _b301, SingleStoreSelectQueryBuilderBase, _a401, _b302, SingleStoreSelectBase, getSingleStoreSetOperators, union4, unionAll4, intersect4, except4, minus;
43196
43405
  var init_select5 = __esm({
43197
43406
  "../drizzle-orm/dist/singlestore-core/query-builders/select.js"() {
43198
43407
  "use strict";
@@ -43204,7 +43413,7 @@ var init_select5 = __esm({
43204
43413
  init_subquery();
43205
43414
  init_table();
43206
43415
  init_utils2();
43207
- _a397 = entityKind;
43416
+ _a399 = entityKind;
43208
43417
  SingleStoreSelectBuilder = class {
43209
43418
  constructor(config) {
43210
43419
  __publicField(this, "fields");
@@ -43247,8 +43456,8 @@ var init_select5 = __esm({
43247
43456
  );
43248
43457
  }
43249
43458
  };
43250
- __publicField(SingleStoreSelectBuilder, _a397, "SingleStoreSelectBuilder");
43251
- SingleStoreSelectQueryBuilderBase = class extends (_b299 = TypedQueryBuilder, _a398 = entityKind, _b299) {
43459
+ __publicField(SingleStoreSelectBuilder, _a399, "SingleStoreSelectBuilder");
43460
+ SingleStoreSelectQueryBuilderBase = class extends (_b301 = TypedQueryBuilder, _a400 = entityKind, _b301) {
43252
43461
  constructor({ table: table5, fields, isPartialSelect, session, dialect: dialect6, withList, distinct }) {
43253
43462
  super();
43254
43463
  __publicField(this, "_");
@@ -43789,8 +43998,8 @@ var init_select5 = __esm({
43789
43998
  return this;
43790
43999
  }
43791
44000
  };
43792
- __publicField(SingleStoreSelectQueryBuilderBase, _a398, "SingleStoreSelectQueryBuilder");
43793
- SingleStoreSelectBase = class extends (_b300 = SingleStoreSelectQueryBuilderBase, _a399 = entityKind, _b300) {
44001
+ __publicField(SingleStoreSelectQueryBuilderBase, _a400, "SingleStoreSelectQueryBuilder");
44002
+ SingleStoreSelectBase = class extends (_b302 = SingleStoreSelectQueryBuilderBase, _a401 = entityKind, _b302) {
43794
44003
  constructor() {
43795
44004
  super(...arguments);
43796
44005
  __publicField(this, "execute", (placeholderValues) => {
@@ -43814,7 +44023,7 @@ var init_select5 = __esm({
43814
44023
  return query;
43815
44024
  }
43816
44025
  };
43817
- __publicField(SingleStoreSelectBase, _a399, "SingleStoreSelect");
44026
+ __publicField(SingleStoreSelectBase, _a401, "SingleStoreSelect");
43818
44027
  applyMixins(SingleStoreSelectBase, [QueryPromise]);
43819
44028
  getSingleStoreSetOperators = () => ({
43820
44029
  union: union4,
@@ -43832,7 +44041,7 @@ var init_select5 = __esm({
43832
44041
  });
43833
44042
 
43834
44043
  // ../drizzle-orm/dist/singlestore-core/query-builders/query-builder.js
43835
- var _a400, QueryBuilder4;
44044
+ var _a402, QueryBuilder4;
43836
44045
  var init_query_builder5 = __esm({
43837
44046
  "../drizzle-orm/dist/singlestore-core/query-builders/query-builder.js"() {
43838
44047
  "use strict";
@@ -43841,7 +44050,7 @@ var init_query_builder5 = __esm({
43841
44050
  init_dialect4();
43842
44051
  init_subquery();
43843
44052
  init_select5();
43844
- _a400 = entityKind;
44053
+ _a402 = entityKind;
43845
44054
  QueryBuilder4 = class {
43846
44055
  constructor(dialect6) {
43847
44056
  __publicField(this, "dialect");
@@ -43907,7 +44116,7 @@ var init_query_builder5 = __esm({
43907
44116
  return this.dialect;
43908
44117
  }
43909
44118
  };
43910
- __publicField(QueryBuilder4, _a400, "SingleStoreQueryBuilder");
44119
+ __publicField(QueryBuilder4, _a402, "SingleStoreQueryBuilder");
43911
44120
  }
43912
44121
  });
43913
44122
 
@@ -43919,7 +44128,7 @@ var init_select_types4 = __esm({
43919
44128
  });
43920
44129
 
43921
44130
  // ../drizzle-orm/dist/singlestore-core/query-builders/update.js
43922
- var _a401, SingleStoreUpdateBuilder, _a402, _b301, SingleStoreUpdateBase;
44131
+ var _a403, SingleStoreUpdateBuilder, _a404, _b303, SingleStoreUpdateBase;
43923
44132
  var init_update4 = __esm({
43924
44133
  "../drizzle-orm/dist/singlestore-core/query-builders/update.js"() {
43925
44134
  "use strict";
@@ -43928,7 +44137,7 @@ var init_update4 = __esm({
43928
44137
  init_selection_proxy();
43929
44138
  init_table();
43930
44139
  init_utils2();
43931
- _a401 = entityKind;
44140
+ _a403 = entityKind;
43932
44141
  SingleStoreUpdateBuilder = class {
43933
44142
  constructor(table5, session, dialect6, withList) {
43934
44143
  this.table = table5;
@@ -43946,8 +44155,8 @@ var init_update4 = __esm({
43946
44155
  );
43947
44156
  }
43948
44157
  };
43949
- __publicField(SingleStoreUpdateBuilder, _a401, "SingleStoreUpdateBuilder");
43950
- SingleStoreUpdateBase = class extends (_b301 = QueryPromise, _a402 = entityKind, _b301) {
44158
+ __publicField(SingleStoreUpdateBuilder, _a403, "SingleStoreUpdateBuilder");
44159
+ SingleStoreUpdateBase = class extends (_b303 = QueryPromise, _a404 = entityKind, _b303) {
43951
44160
  constructor(table5, set, session, dialect6, withList) {
43952
44161
  super();
43953
44162
  __publicField(this, "config");
@@ -44040,7 +44249,7 @@ var init_update4 = __esm({
44040
44249
  return this;
44041
44250
  }
44042
44251
  };
44043
- __publicField(SingleStoreUpdateBase, _a402, "SingleStoreUpdate");
44252
+ __publicField(SingleStoreUpdateBase, _a404, "SingleStoreUpdate");
44044
44253
  }
44045
44254
  });
44046
44255
 
@@ -44058,7 +44267,7 @@ var init_query_builders4 = __esm({
44058
44267
  });
44059
44268
 
44060
44269
  // ../drizzle-orm/dist/singlestore-core/db.js
44061
- var _a403, SingleStoreDatabase;
44270
+ var _a405, SingleStoreDatabase;
44062
44271
  var init_db4 = __esm({
44063
44272
  "../drizzle-orm/dist/singlestore-core/db.js"() {
44064
44273
  "use strict";
@@ -44068,7 +44277,7 @@ var init_db4 = __esm({
44068
44277
  init_subquery();
44069
44278
  init_count4();
44070
44279
  init_query_builders4();
44071
- _a403 = entityKind;
44280
+ _a405 = entityKind;
44072
44281
  SingleStoreDatabase = class {
44073
44282
  constructor(dialect6, session, schema5) {
44074
44283
  // We are waiting for SingleStore support for `json_array` function
@@ -44268,17 +44477,17 @@ var init_db4 = __esm({
44268
44477
  return this.session.transaction(transaction, config);
44269
44478
  }
44270
44479
  };
44271
- __publicField(SingleStoreDatabase, _a403, "SingleStoreDatabase");
44480
+ __publicField(SingleStoreDatabase, _a405, "SingleStoreDatabase");
44272
44481
  }
44273
44482
  });
44274
44483
 
44275
44484
  // ../drizzle-orm/dist/singlestore-core/indexes.js
44276
- var _a404, IndexBuilderOn4, _a405, IndexBuilder4, _a406, Index6;
44485
+ var _a406, IndexBuilderOn4, _a407, IndexBuilder4, _a408, Index6;
44277
44486
  var init_indexes4 = __esm({
44278
44487
  "../drizzle-orm/dist/singlestore-core/indexes.js"() {
44279
44488
  "use strict";
44280
44489
  init_entity();
44281
- _a404 = entityKind;
44490
+ _a406 = entityKind;
44282
44491
  IndexBuilderOn4 = class {
44283
44492
  constructor(name2, unique) {
44284
44493
  this.name = name2;
@@ -44288,8 +44497,8 @@ var init_indexes4 = __esm({
44288
44497
  return new IndexBuilder4(this.name, columns, this.unique);
44289
44498
  }
44290
44499
  };
44291
- __publicField(IndexBuilderOn4, _a404, "SingleStoreIndexBuilderOn");
44292
- _a405 = entityKind;
44500
+ __publicField(IndexBuilderOn4, _a406, "SingleStoreIndexBuilderOn");
44501
+ _a407 = entityKind;
44293
44502
  IndexBuilder4 = class {
44294
44503
  constructor(name2, columns, unique) {
44295
44504
  /** @internal */
@@ -44317,26 +44526,26 @@ var init_indexes4 = __esm({
44317
44526
  return new Index6(this.config, table5);
44318
44527
  }
44319
44528
  };
44320
- __publicField(IndexBuilder4, _a405, "SingleStoreIndexBuilder");
44321
- _a406 = entityKind;
44529
+ __publicField(IndexBuilder4, _a407, "SingleStoreIndexBuilder");
44530
+ _a408 = entityKind;
44322
44531
  Index6 = class {
44323
44532
  constructor(config, table5) {
44324
44533
  __publicField(this, "config");
44325
44534
  this.config = { ...config, table: table5 };
44326
44535
  }
44327
44536
  };
44328
- __publicField(Index6, _a406, "SingleStoreIndex");
44537
+ __publicField(Index6, _a408, "SingleStoreIndex");
44329
44538
  }
44330
44539
  });
44331
44540
 
44332
44541
  // ../drizzle-orm/dist/singlestore-core/primary-keys.js
44333
- var _a407, PrimaryKeyBuilder4, _a408, PrimaryKey4;
44542
+ var _a409, PrimaryKeyBuilder4, _a410, PrimaryKey4;
44334
44543
  var init_primary_keys4 = __esm({
44335
44544
  "../drizzle-orm/dist/singlestore-core/primary-keys.js"() {
44336
44545
  "use strict";
44337
44546
  init_entity();
44338
44547
  init_table5();
44339
- _a407 = entityKind;
44548
+ _a409 = entityKind;
44340
44549
  PrimaryKeyBuilder4 = class {
44341
44550
  constructor(columns, name2) {
44342
44551
  /** @internal */
@@ -44351,8 +44560,8 @@ var init_primary_keys4 = __esm({
44351
44560
  return new PrimaryKey4(table5, this.columns, this.name);
44352
44561
  }
44353
44562
  };
44354
- __publicField(PrimaryKeyBuilder4, _a407, "SingleStorePrimaryKeyBuilder");
44355
- _a408 = entityKind;
44563
+ __publicField(PrimaryKeyBuilder4, _a409, "SingleStorePrimaryKeyBuilder");
44564
+ _a410 = entityKind;
44356
44565
  PrimaryKey4 = class {
44357
44566
  constructor(table5, columns, name2) {
44358
44567
  __publicField(this, "columns");
@@ -44365,18 +44574,18 @@ var init_primary_keys4 = __esm({
44365
44574
  return this.name ?? `${this.table[SingleStoreTable.Symbol.Name]}_${this.columns.map((column5) => column5.name).join("_")}_pk`;
44366
44575
  }
44367
44576
  };
44368
- __publicField(PrimaryKey4, _a408, "SingleStorePrimaryKey");
44577
+ __publicField(PrimaryKey4, _a410, "SingleStorePrimaryKey");
44369
44578
  }
44370
44579
  });
44371
44580
 
44372
44581
  // ../drizzle-orm/dist/singlestore-core/schema.js
44373
- var _a409, SingleStoreSchema5;
44582
+ var _a411, SingleStoreSchema5;
44374
44583
  var init_schema3 = __esm({
44375
44584
  "../drizzle-orm/dist/singlestore-core/schema.js"() {
44376
44585
  "use strict";
44377
44586
  init_entity();
44378
44587
  init_table5();
44379
- _a409 = entityKind;
44588
+ _a411 = entityKind;
44380
44589
  SingleStoreSchema5 = class {
44381
44590
  constructor(schemaName) {
44382
44591
  __publicField(this, "table", (name2, columns, extraConfig) => {
@@ -44389,12 +44598,12 @@ var init_schema3 = __esm({
44389
44598
  return singlestoreViewWithSchema(name, columns, this.schemaName);
44390
44599
  }) as typeof singlestoreView; */
44391
44600
  };
44392
- __publicField(SingleStoreSchema5, _a409, "SingleStoreSchema");
44601
+ __publicField(SingleStoreSchema5, _a411, "SingleStoreSchema");
44393
44602
  }
44394
44603
  });
44395
44604
 
44396
44605
  // ../drizzle-orm/dist/singlestore-core/session.js
44397
- var _a410, SingleStorePreparedQuery, _a411, SingleStoreSession, _a412, _b302, SingleStoreTransaction;
44606
+ var _a412, SingleStorePreparedQuery, _a413, SingleStoreSession, _a414, _b304, SingleStoreTransaction;
44398
44607
  var init_session4 = __esm({
44399
44608
  "../drizzle-orm/dist/singlestore-core/session.js"() {
44400
44609
  "use strict";
@@ -44402,15 +44611,15 @@ var init_session4 = __esm({
44402
44611
  init_errors();
44403
44612
  init_sql();
44404
44613
  init_db4();
44405
- _a410 = entityKind;
44614
+ _a412 = entityKind;
44406
44615
  SingleStorePreparedQuery = class {
44407
44616
  constructor() {
44408
44617
  /** @internal */
44409
44618
  __publicField(this, "joinsNotNullableMap");
44410
44619
  }
44411
44620
  };
44412
- __publicField(SingleStorePreparedQuery, _a410, "SingleStorePreparedQuery");
44413
- _a411 = entityKind;
44621
+ __publicField(SingleStorePreparedQuery, _a412, "SingleStorePreparedQuery");
44622
+ _a413 = entityKind;
44414
44623
  SingleStoreSession = class {
44415
44624
  constructor(dialect6) {
44416
44625
  this.dialect = dialect6;
@@ -44445,8 +44654,8 @@ var init_session4 = __esm({
44445
44654
  return parts.length ? sql`start transaction ${sql.raw(parts.join(" "))}` : void 0;
44446
44655
  }
44447
44656
  };
44448
- __publicField(SingleStoreSession, _a411, "SingleStoreSession");
44449
- SingleStoreTransaction = class extends (_b302 = SingleStoreDatabase, _a412 = entityKind, _b302) {
44657
+ __publicField(SingleStoreSession, _a413, "SingleStoreSession");
44658
+ SingleStoreTransaction = class extends (_b304 = SingleStoreDatabase, _a414 = entityKind, _b304) {
44450
44659
  constructor(dialect6, session, schema5, nestedIndex) {
44451
44660
  super(dialect6, session, schema5);
44452
44661
  this.schema = schema5;
@@ -44456,7 +44665,7 @@ var init_session4 = __esm({
44456
44665
  throw new TransactionRollbackError();
44457
44666
  }
44458
44667
  };
44459
- __publicField(SingleStoreTransaction, _a412, "SingleStoreTransaction");
44668
+ __publicField(SingleStoreTransaction, _a414, "SingleStoreTransaction");
44460
44669
  }
44461
44670
  });
44462
44671
 
@@ -44633,7 +44842,7 @@ ${withStyle.errorWarning(`We've found duplicated unique constraint names in ${so
44633
44842
  if (typeof column5.default === "string") {
44634
44843
  columnToSet.default = `'${column5.default}'`;
44635
44844
  } else {
44636
- if (sqlTypeLowered === "json") {
44845
+ if (sqlTypeLowered === "json" || Array.isArray(column5.default)) {
44637
44846
  columnToSet.default = `'${JSON.stringify(column5.default)}'`;
44638
44847
  } else if (column5.default instanceof Date) {
44639
44848
  if (sqlTypeLowered === "date") {
@@ -45403,15 +45612,31 @@ var init_singlestoreImports = __esm({
45403
45612
  var singlestorePushUtils_exports = {};
45404
45613
  __export(singlestorePushUtils_exports, {
45405
45614
  filterStatements: () => filterStatements2,
45615
+ findColumnTypeAlternations: () => findColumnTypeAlternations,
45406
45616
  logSuggestionsAndReturn: () => logSuggestionsAndReturn3
45407
45617
  });
45618
+ function findColumnTypeAlternations(columns1, columns2) {
45619
+ const changes = [];
45620
+ for (const key in columns1) {
45621
+ if (columns1.hasOwnProperty(key) && columns2.hasOwnProperty(key)) {
45622
+ const col1 = columns1[key];
45623
+ const col2 = columns2[key];
45624
+ if (col1.type !== col2.type) {
45625
+ changes.push(col2.name);
45626
+ }
45627
+ }
45628
+ }
45629
+ return changes;
45630
+ }
45408
45631
  var import_hanji10, filterStatements2, logSuggestionsAndReturn3;
45409
45632
  var init_singlestorePushUtils = __esm({
45410
45633
  "src/cli/commands/singlestorePushUtils.ts"() {
45411
45634
  "use strict";
45412
45635
  init_source();
45413
45636
  import_hanji10 = __toESM(require_hanji());
45637
+ init_sqlgenerator();
45414
45638
  init_singlestoreSchema();
45639
+ init_utils();
45415
45640
  init_selector_ui();
45416
45641
  init_outputs();
45417
45642
  filterStatements2 = (statements, currentSchema, prevSchema) => {
@@ -45455,7 +45680,7 @@ var init_singlestorePushUtils = __esm({
45455
45680
  return true;
45456
45681
  });
45457
45682
  };
45458
- logSuggestionsAndReturn3 = async (db, statements, json22) => {
45683
+ logSuggestionsAndReturn3 = async (db, statements, json22, json1) => {
45459
45684
  let shouldAskForApprove = false;
45460
45685
  const statementsToExecute = [];
45461
45686
  const infoToPrint = [];
@@ -45636,6 +45861,71 @@ var init_singlestorePushUtils = __esm({
45636
45861
  shouldAskForApprove = true;
45637
45862
  }
45638
45863
  }
45864
+ } else if (statement.type === "singlestore_recreate_table") {
45865
+ const tableName = statement.tableName;
45866
+ const prevColumns = json1.tables[tableName].columns;
45867
+ const currentColumns = json22.tables[tableName].columns;
45868
+ const { removedColumns, addedColumns } = findAddedAndRemoved(
45869
+ Object.keys(prevColumns),
45870
+ Object.keys(currentColumns)
45871
+ );
45872
+ if (removedColumns.length) {
45873
+ for (const removedColumn of removedColumns) {
45874
+ const res = await db.query(
45875
+ `select count(\`${tableName}\`.\`${removedColumn}\`) as count from \`${tableName}\``
45876
+ );
45877
+ const count2 = Number(res[0].count);
45878
+ if (count2 > 0) {
45879
+ infoToPrint.push(
45880
+ `\xB7 You're about to delete ${source_default.underline(
45881
+ removedColumn
45882
+ )} column in ${tableName} table with ${count2} items`
45883
+ );
45884
+ columnsToRemove.push(removedColumn);
45885
+ shouldAskForApprove = true;
45886
+ }
45887
+ }
45888
+ }
45889
+ if (addedColumns.length) {
45890
+ for (const addedColumn of addedColumns) {
45891
+ const [res] = await db.query(
45892
+ `select count(*) as count from \`${tableName}\``
45893
+ );
45894
+ const columnConf = json22.tables[tableName].columns[addedColumn];
45895
+ const count2 = Number(res.count);
45896
+ if (count2 > 0 && columnConf.notNull && !columnConf.default) {
45897
+ infoToPrint.push(
45898
+ `\xB7 You're about to add not-null ${source_default.underline(
45899
+ addedColumn
45900
+ )} column without default value to table, which contains ${count2} items`
45901
+ );
45902
+ shouldAskForApprove = true;
45903
+ tablesToTruncate.push(tableName);
45904
+ statementsToExecute.push(`TRUNCATE TABLE \`${tableName}\`;`);
45905
+ }
45906
+ }
45907
+ }
45908
+ const columnWithChangedType = findColumnTypeAlternations(prevColumns, currentColumns);
45909
+ for (const column5 of columnWithChangedType) {
45910
+ const [res] = await db.query(
45911
+ `select count(*) as count from \`${tableName}\` WHERE \`${tableName}\`.\`${column5}\` IS NOT NULL;`
45912
+ );
45913
+ const count2 = Number(res.count);
45914
+ if (count2 > 0) {
45915
+ infoToPrint.push(
45916
+ `\xB7 You're about recreate ${source_default.underline(tableName)} table with data type changing for ${source_default.underline(
45917
+ column5
45918
+ )} column, which contains ${count2} items`
45919
+ );
45920
+ shouldAskForApprove = true;
45921
+ tablesToTruncate.push(tableName);
45922
+ statementsToExecute.push(`TRUNCATE TABLE \`${tableName}\`;`);
45923
+ }
45924
+ }
45925
+ }
45926
+ const stmnt = fromJson([statement], "singlestore", "push");
45927
+ if (typeof stmnt !== "undefined") {
45928
+ statementsToExecute.push(...stmnt);
45639
45929
  }
45640
45930
  }
45641
45931
  return {
@@ -46464,7 +46754,8 @@ var pushSingleStoreSchema = async (imports, drizzleInstance, databaseName) => {
46464
46754
  const { shouldAskForApprove, statementsToExecute, infoToPrint } = await logSuggestionsAndReturn4(
46465
46755
  db,
46466
46756
  statements,
46467
- validatedCur
46757
+ squashedCur,
46758
+ squashedPrev
46468
46759
  );
46469
46760
  return {
46470
46761
  hasDataLoss: shouldAskForApprove,