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.js CHANGED
@@ -3469,17 +3469,17 @@ function processCreateParams(params) {
3469
3469
  if (errorMap2)
3470
3470
  return { errorMap: errorMap2, description };
3471
3471
  const customMap = (iss, ctx) => {
3472
- var _a413, _b303;
3472
+ var _a415, _b305;
3473
3473
  const { message } = params;
3474
3474
  if (iss.code === "invalid_enum_value") {
3475
3475
  return { message: message !== null && message !== void 0 ? message : ctx.defaultError };
3476
3476
  }
3477
3477
  if (typeof ctx.data === "undefined") {
3478
- return { message: (_a413 = message !== null && message !== void 0 ? message : required_error) !== null && _a413 !== void 0 ? _a413 : ctx.defaultError };
3478
+ return { message: (_a415 = message !== null && message !== void 0 ? message : required_error) !== null && _a415 !== void 0 ? _a415 : ctx.defaultError };
3479
3479
  }
3480
3480
  if (iss.code !== "invalid_type")
3481
3481
  return { message: ctx.defaultError };
3482
- return { message: (_b303 = message !== null && message !== void 0 ? message : invalid_type_error) !== null && _b303 !== void 0 ? _b303 : ctx.defaultError };
3482
+ return { message: (_b305 = message !== null && message !== void 0 ? message : invalid_type_error) !== null && _b305 !== void 0 ? _b305 : ctx.defaultError };
3483
3483
  };
3484
3484
  return { errorMap: customMap, description };
3485
3485
  }
@@ -4141,11 +4141,11 @@ var init_lib = __esm({
4141
4141
  throw result.error;
4142
4142
  }
4143
4143
  safeParse(data, params) {
4144
- var _a413;
4144
+ var _a415;
4145
4145
  const ctx = {
4146
4146
  common: {
4147
4147
  issues: [],
4148
- async: (_a413 = params === null || params === void 0 ? void 0 : params.async) !== null && _a413 !== void 0 ? _a413 : false,
4148
+ async: (_a415 = params === null || params === void 0 ? void 0 : params.async) !== null && _a415 !== void 0 ? _a415 : false,
4149
4149
  contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap
4150
4150
  },
4151
4151
  path: (params === null || params === void 0 ? void 0 : params.path) || [],
@@ -4467,7 +4467,7 @@ var init_lib = __esm({
4467
4467
  } else if (check.kind === "url") {
4468
4468
  try {
4469
4469
  new URL(input.data);
4470
- } catch (_a413) {
4470
+ } catch (_a415) {
4471
4471
  ctx = this._getOrReturnCtx(input, ctx);
4472
4472
  addIssueToContext(ctx, {
4473
4473
  validation: "url",
@@ -4637,7 +4637,7 @@ var init_lib = __esm({
4637
4637
  return this._addCheck({ kind: "ip", ...errorUtil.errToObj(options) });
4638
4638
  }
4639
4639
  datetime(options) {
4640
- var _a413, _b303;
4640
+ var _a415, _b305;
4641
4641
  if (typeof options === "string") {
4642
4642
  return this._addCheck({
4643
4643
  kind: "datetime",
@@ -4650,8 +4650,8 @@ var init_lib = __esm({
4650
4650
  return this._addCheck({
4651
4651
  kind: "datetime",
4652
4652
  precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === "undefined" ? null : options === null || options === void 0 ? void 0 : options.precision,
4653
- offset: (_a413 = options === null || options === void 0 ? void 0 : options.offset) !== null && _a413 !== void 0 ? _a413 : false,
4654
- local: (_b303 = options === null || options === void 0 ? void 0 : options.local) !== null && _b303 !== void 0 ? _b303 : false,
4653
+ offset: (_a415 = options === null || options === void 0 ? void 0 : options.offset) !== null && _a415 !== void 0 ? _a415 : false,
4654
+ local: (_b305 = options === null || options === void 0 ? void 0 : options.local) !== null && _b305 !== void 0 ? _b305 : false,
4655
4655
  ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message)
4656
4656
  });
4657
4657
  }
@@ -4814,11 +4814,11 @@ var init_lib = __esm({
4814
4814
  }
4815
4815
  };
4816
4816
  ZodString.create = (params) => {
4817
- var _a413;
4817
+ var _a415;
4818
4818
  return new ZodString({
4819
4819
  checks: [],
4820
4820
  typeName: ZodFirstPartyTypeKind.ZodString,
4821
- coerce: (_a413 = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a413 !== void 0 ? _a413 : false,
4821
+ coerce: (_a415 = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a415 !== void 0 ? _a415 : false,
4822
4822
  ...processCreateParams(params)
4823
4823
  });
4824
4824
  };
@@ -5211,11 +5211,11 @@ var init_lib = __esm({
5211
5211
  }
5212
5212
  };
5213
5213
  ZodBigInt.create = (params) => {
5214
- var _a413;
5214
+ var _a415;
5215
5215
  return new ZodBigInt({
5216
5216
  checks: [],
5217
5217
  typeName: ZodFirstPartyTypeKind.ZodBigInt,
5218
- coerce: (_a413 = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a413 !== void 0 ? _a413 : false,
5218
+ coerce: (_a415 = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a415 !== void 0 ? _a415 : false,
5219
5219
  ...processCreateParams(params)
5220
5220
  });
5221
5221
  };
@@ -5695,8 +5695,8 @@ var init_lib = __esm({
5695
5695
  unknownKeys: "strict",
5696
5696
  ...message !== void 0 ? {
5697
5697
  errorMap: (issue, ctx) => {
5698
- var _a413, _b303, _c14, _d6;
5699
- 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;
5698
+ var _a415, _b305, _c14, _d6;
5699
+ 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;
5700
5700
  if (issue.code === "unrecognized_keys")
5701
5701
  return {
5702
5702
  message: (_d6 = errorUtil.errToObj(message).message) !== null && _d6 !== void 0 ? _d6 : defaultError
@@ -12121,7 +12121,7 @@ function fromJson(statements, dialect6, action, json22) {
12121
12121
  }).filter((it) => it !== "");
12122
12122
  return result;
12123
12123
  }
12124
- 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;
12124
+ 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;
12125
12125
  var init_sqlgenerator = __esm({
12126
12126
  "src/sqlgenerator.ts"() {
12127
12127
  "use strict";
@@ -12467,7 +12467,7 @@ var init_sqlgenerator = __esm({
12467
12467
  if (typeof compositePKs !== "undefined" && compositePKs.length > 0) {
12468
12468
  statement += ",\n";
12469
12469
  const compositePK5 = SingleStoreSquasher.unsquashPK(compositePKs[0]);
12470
- statement += ` CONSTRAINT \`${st.compositePkName}\` PRIMARY KEY(\`${compositePK5.columns.join(`\`,\``)}\`)`;
12470
+ statement += ` CONSTRAINT \`${compositePK5.name}\` PRIMARY KEY(\`${compositePK5.columns.join(`\`,\``)}\`)`;
12471
12471
  }
12472
12472
  if (typeof uniqueConstraints !== "undefined" && uniqueConstraints.length > 0) {
12473
12473
  for (const uniqueConstraint5 of uniqueConstraints) {
@@ -13122,7 +13122,7 @@ WITH ${withCheckOption} CHECK OPTION` : "";
13122
13122
  }
13123
13123
  convert(statement) {
13124
13124
  const { tableNameFrom, tableNameTo } = statement;
13125
- return `RENAME TABLE \`${tableNameFrom}\` TO \`${tableNameTo}\`;`;
13125
+ return `ALTER TABLE \`${tableNameFrom}\` RENAME TO \`${tableNameTo}\`;`;
13126
13126
  }
13127
13127
  };
13128
13128
  PgAlterTableRenameColumnConvertor = class extends Convertor {
@@ -13150,7 +13150,7 @@ WITH ${withCheckOption} CHECK OPTION` : "";
13150
13150
  }
13151
13151
  convert(statement) {
13152
13152
  const { tableName, oldColumnName, newColumnName } = statement;
13153
- return `ALTER TABLE \`${tableName}\` RENAME COLUMN \`${oldColumnName}\` TO \`${newColumnName}\`;`;
13153
+ return `ALTER TABLE \`${tableName}\` CHANGE \`${oldColumnName}\` \`${newColumnName}\`;`;
13154
13154
  }
13155
13155
  };
13156
13156
  SQLiteAlterTableRenameColumnConvertor = class extends Convertor {
@@ -14273,8 +14273,10 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT "${statement.newC
14273
14273
  return statement.type === "drop_index" && dialect6 === "postgresql";
14274
14274
  }
14275
14275
  convert(statement) {
14276
+ const { schema: schema5 } = statement;
14276
14277
  const { name: name2 } = PgSquasher.unsquashIdx(statement.data);
14277
- return `DROP INDEX "${name2}";`;
14278
+ const indexNameWithSchema = schema5 ? `"${schema5}"."${name2}"` : `"${name2}"`;
14279
+ return `DROP INDEX ${indexNameWithSchema};`;
14278
14280
  }
14279
14281
  };
14280
14282
  PgCreateSchemaConvertor = class extends Convertor {
@@ -14458,10 +14460,52 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT "${statement.newC
14458
14460
  return sqlStatements;
14459
14461
  }
14460
14462
  };
14463
+ SingleStoreRecreateTableConvertor = class extends Convertor {
14464
+ can(statement, dialect6) {
14465
+ return statement.type === "singlestore_recreate_table" && dialect6 === "singlestore";
14466
+ }
14467
+ convert(statement) {
14468
+ const { tableName, columns, compositePKs, uniqueConstraints } = statement;
14469
+ const columnNames = columns.map((it) => `\`${it.name}\``).join(", ");
14470
+ const newTableName = `__new_${tableName}`;
14471
+ const sqlStatements = [];
14472
+ sqlStatements.push(
14473
+ new SingleStoreCreateTableConvertor().convert({
14474
+ type: "create_table",
14475
+ tableName: newTableName,
14476
+ columns,
14477
+ compositePKs,
14478
+ uniqueConstraints,
14479
+ schema: ""
14480
+ })
14481
+ );
14482
+ sqlStatements.push(
14483
+ `INSERT INTO \`${newTableName}\`(${columnNames}) SELECT ${columnNames} FROM \`${tableName}\`;`
14484
+ );
14485
+ sqlStatements.push(
14486
+ new SingleStoreDropTableConvertor().convert({
14487
+ type: "drop_table",
14488
+ tableName,
14489
+ schema: ""
14490
+ })
14491
+ );
14492
+ sqlStatements.push(
14493
+ new SingleStoreRenameTableConvertor().convert({
14494
+ fromSchema: "",
14495
+ tableNameFrom: newTableName,
14496
+ tableNameTo: tableName,
14497
+ toSchema: "",
14498
+ type: "rename_table"
14499
+ })
14500
+ );
14501
+ return sqlStatements;
14502
+ }
14503
+ };
14461
14504
  convertors = [];
14462
14505
  convertors.push(new PgCreateTableConvertor());
14463
14506
  convertors.push(new MySqlCreateTableConvertor());
14464
14507
  convertors.push(new SingleStoreCreateTableConvertor());
14508
+ convertors.push(new SingleStoreRecreateTableConvertor());
14465
14509
  convertors.push(new SQLiteCreateTableConvertor());
14466
14510
  convertors.push(new SQLiteRecreateTableConvertor());
14467
14511
  convertors.push(new LibSQLRecreateTableConvertor());
@@ -16457,7 +16501,7 @@ var init_jsonStatements = __esm({
16457
16501
  });
16458
16502
 
16459
16503
  // src/statementCombiner.ts
16460
- var prepareLibSQLRecreateTable, prepareSQLiteRecreateTable, libSQLCombineStatements, sqliteCombineStatements;
16504
+ var prepareLibSQLRecreateTable, prepareSQLiteRecreateTable, libSQLCombineStatements, sqliteCombineStatements, prepareSingleStoreRecreateTable, singleStoreCombineStatements;
16461
16505
  var init_statementCombiner = __esm({
16462
16506
  "src/statementCombiner.ts"() {
16463
16507
  "use strict";
@@ -16736,6 +16780,101 @@ var init_statementCombiner = __esm({
16736
16780
  const rest = combinedStatements.filter((it) => it.type !== "rename_table" && it.type !== "alter_table_rename_column");
16737
16781
  return [...renamedTables, ...renamedColumns, ...rest];
16738
16782
  };
16783
+ prepareSingleStoreRecreateTable = (table5) => {
16784
+ const { name: name2, columns, uniqueConstraints, indexes, compositePrimaryKeys } = table5;
16785
+ const composites = Object.values(compositePrimaryKeys);
16786
+ const statements = [
16787
+ {
16788
+ type: "singlestore_recreate_table",
16789
+ tableName: name2,
16790
+ columns: Object.values(columns),
16791
+ compositePKs: composites,
16792
+ uniqueConstraints: Object.values(uniqueConstraints)
16793
+ }
16794
+ ];
16795
+ if (Object.keys(indexes).length) {
16796
+ statements.push(...prepareCreateIndexesJson(name2, "", indexes));
16797
+ }
16798
+ return statements;
16799
+ };
16800
+ singleStoreCombineStatements = (statements, json22) => {
16801
+ const newStatements = {};
16802
+ for (const statement of statements) {
16803
+ 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") {
16804
+ const tableName2 = statement.tableName;
16805
+ const statementsForTable2 = newStatements[tableName2];
16806
+ if (!statementsForTable2) {
16807
+ newStatements[tableName2] = prepareSingleStoreRecreateTable(json22.tables[tableName2]);
16808
+ continue;
16809
+ }
16810
+ if (!statementsForTable2.some(({ type }) => type === "recreate_table")) {
16811
+ const wasRename = statementsForTable2.some(
16812
+ ({ type }) => type === "rename_table" || type === "alter_table_rename_column"
16813
+ );
16814
+ const preparedStatements = prepareSingleStoreRecreateTable(json22.tables[tableName2]);
16815
+ if (wasRename) {
16816
+ newStatements[tableName2].push(...preparedStatements);
16817
+ } else {
16818
+ newStatements[tableName2] = preparedStatements;
16819
+ }
16820
+ continue;
16821
+ }
16822
+ continue;
16823
+ }
16824
+ if ((statement.type === "alter_table_alter_column_drop_default" || statement.type === "alter_table_alter_column_set_default") && statement.columnNotNull) {
16825
+ const tableName2 = statement.tableName;
16826
+ const statementsForTable2 = newStatements[tableName2];
16827
+ if (!statementsForTable2) {
16828
+ newStatements[tableName2] = prepareSingleStoreRecreateTable(json22.tables[tableName2]);
16829
+ continue;
16830
+ }
16831
+ if (!statementsForTable2.some(({ type }) => type === "recreate_table")) {
16832
+ const wasRename = statementsForTable2.some(({ type }) => type === "rename_table");
16833
+ const preparedStatements = prepareSingleStoreRecreateTable(json22.tables[tableName2]);
16834
+ if (wasRename) {
16835
+ newStatements[tableName2].push(...preparedStatements);
16836
+ } else {
16837
+ newStatements[tableName2] = preparedStatements;
16838
+ }
16839
+ continue;
16840
+ }
16841
+ continue;
16842
+ }
16843
+ if (statement.type === "alter_table_add_column" && statement.column.primaryKey) {
16844
+ const tableName2 = statement.tableName;
16845
+ const statementsForTable2 = newStatements[tableName2];
16846
+ if (!statementsForTable2) {
16847
+ newStatements[tableName2] = prepareSingleStoreRecreateTable(json22.tables[tableName2]);
16848
+ continue;
16849
+ }
16850
+ if (!statementsForTable2.some(({ type }) => type === "recreate_table")) {
16851
+ const wasRename = statementsForTable2.some(({ type }) => type === "rename_table");
16852
+ const preparedStatements = prepareSingleStoreRecreateTable(json22.tables[tableName2]);
16853
+ if (wasRename) {
16854
+ newStatements[tableName2].push(...preparedStatements);
16855
+ } else {
16856
+ newStatements[tableName2] = preparedStatements;
16857
+ }
16858
+ continue;
16859
+ }
16860
+ continue;
16861
+ }
16862
+ const tableName = statement.type === "rename_table" ? statement.tableNameTo : statement.tableName;
16863
+ const statementsForTable = newStatements[tableName];
16864
+ if (!statementsForTable) {
16865
+ newStatements[tableName] = [statement];
16866
+ continue;
16867
+ }
16868
+ if (!statementsForTable.some(({ type }) => type === "singlestore_recreate_table")) {
16869
+ newStatements[tableName].push(statement);
16870
+ }
16871
+ }
16872
+ const combinedStatements = Object.values(newStatements).flat();
16873
+ const renamedTables = combinedStatements.filter((it) => it.type === "rename_table");
16874
+ const renamedColumns = combinedStatements.filter((it) => it.type === "alter_table_rename_column");
16875
+ const rest = combinedStatements.filter((it) => it.type !== "rename_table" && it.type !== "alter_table_rename_column");
16876
+ return [...renamedTables, ...renamedColumns, ...rest];
16877
+ };
16739
16878
  }
16740
16879
  });
16741
16880
 
@@ -18681,7 +18820,7 @@ var init_snapshotsDiffer = __esm({
18681
18820
  return [tableKey2, tableValue];
18682
18821
  }
18683
18822
  );
18684
- const diffResult = applyJsonDiff(tablesPatchedSnap1, json22);
18823
+ const diffResult = applyJsonDiff(columnsPatchedSnap1, json22);
18685
18824
  const typedResult = diffResultSchemeSingleStore.parse(diffResult);
18686
18825
  const jsonStatements = [];
18687
18826
  const jsonCreateIndexesForCreatedTables = createdTables.map((it) => {
@@ -18845,7 +18984,8 @@ var init_snapshotsDiffer = __esm({
18845
18984
  jsonStatements.push(...jsonDropColumnsStatemets);
18846
18985
  jsonStatements.push(...jsonAddedCompositePKs);
18847
18986
  jsonStatements.push(...jsonAlteredUniqueConstraints);
18848
- const sqlStatements = fromJson(jsonStatements, "singlestore");
18987
+ const combinedJsonStatements = singleStoreCombineStatements(jsonStatements, json22);
18988
+ const sqlStatements = fromJson(combinedJsonStatements, "singlestore");
18849
18989
  const uniqueSqlStatements = [];
18850
18990
  sqlStatements.forEach((ss) => {
18851
18991
  if (!uniqueSqlStatements.includes(ss)) {
@@ -18857,7 +18997,7 @@ var init_snapshotsDiffer = __esm({
18857
18997
  });
18858
18998
  const _meta = prepareMigrationMeta([], rTables, rColumns);
18859
18999
  return {
18860
- statements: jsonStatements,
19000
+ statements: combinedJsonStatements,
18861
19001
  sqlStatements: uniqueSqlStatements,
18862
19002
  _meta
18863
19003
  };
@@ -21975,7 +22115,7 @@ var version;
21975
22115
  var init_version = __esm({
21976
22116
  "../drizzle-orm/dist/version.js"() {
21977
22117
  "use strict";
21978
- version = "0.38.2";
22118
+ version = "0.38.3";
21979
22119
  }
21980
22120
  });
21981
22121
 
@@ -22457,8 +22597,8 @@ var init_sql = __esm({
22457
22597
  sql2.param = param2;
22458
22598
  })(sql || (sql = {}));
22459
22599
  ((SQL2) => {
22460
- var _a413;
22461
- _a413 = entityKind;
22600
+ var _a415;
22601
+ _a415 = entityKind;
22462
22602
  const _Aliased = class _Aliased {
22463
22603
  constructor(sql2, fieldAlias) {
22464
22604
  /** @internal */
@@ -22474,7 +22614,7 @@ var init_sql = __esm({
22474
22614
  return new _Aliased(this.sql, this.fieldAlias);
22475
22615
  }
22476
22616
  };
22477
- __publicField(_Aliased, _a413, "SQL.Aliased");
22617
+ __publicField(_Aliased, _a415, "SQL.Aliased");
22478
22618
  let Aliased = _Aliased;
22479
22619
  SQL2.Aliased = Aliased;
22480
22620
  })(SQL || (SQL = {}));
@@ -41845,6 +41985,18 @@ function text4(a, b = {}) {
41845
41985
  const { name: name2, config } = getColumnNameAndConfig(a, b);
41846
41986
  return new SingleStoreTextBuilder(name2, "text", config);
41847
41987
  }
41988
+ function tinytext2(a, b = {}) {
41989
+ const { name: name2, config } = getColumnNameAndConfig(a, b);
41990
+ return new SingleStoreTextBuilder(name2, "tinytext", config);
41991
+ }
41992
+ function mediumtext2(a, b = {}) {
41993
+ const { name: name2, config } = getColumnNameAndConfig(a, b);
41994
+ return new SingleStoreTextBuilder(name2, "mediumtext", config);
41995
+ }
41996
+ function longtext2(a, b = {}) {
41997
+ const { name: name2, config } = getColumnNameAndConfig(a, b);
41998
+ return new SingleStoreTextBuilder(name2, "longtext", config);
41999
+ }
41848
42000
  var _a373, _b277, SingleStoreTextBuilder, _a374, _b278, SingleStoreText;
41849
42001
  var init_text4 = __esm({
41850
42002
  "../drizzle-orm/dist/singlestore-core/columns/text.js"() {
@@ -42134,17 +42286,68 @@ var init_varchar3 = __esm({
42134
42286
  }
42135
42287
  });
42136
42288
 
42289
+ // ../drizzle-orm/dist/singlestore-core/columns/vector.js
42290
+ function vector2(a, b) {
42291
+ const { name: name2, config } = getColumnNameAndConfig(a, b);
42292
+ return new SingleStoreVectorBuilder(name2, config);
42293
+ }
42294
+ var _a389, _b293, SingleStoreVectorBuilder, _a390, _b294, SingleStoreVector;
42295
+ var init_vector4 = __esm({
42296
+ "../drizzle-orm/dist/singlestore-core/columns/vector.js"() {
42297
+ "use strict";
42298
+ init_entity();
42299
+ init_utils2();
42300
+ init_common5();
42301
+ SingleStoreVectorBuilder = class extends (_b293 = SingleStoreColumnBuilder, _a389 = entityKind, _b293) {
42302
+ constructor(name2, config) {
42303
+ super(name2, "array", "SingleStoreVector");
42304
+ this.config.dimensions = config.dimensions;
42305
+ this.config.elementType = config.elementType;
42306
+ }
42307
+ /** @internal */
42308
+ build(table5) {
42309
+ return new SingleStoreVector(
42310
+ table5,
42311
+ this.config
42312
+ );
42313
+ }
42314
+ /** @internal */
42315
+ generatedAlwaysAs(as, config) {
42316
+ throw new Error("not implemented");
42317
+ }
42318
+ };
42319
+ __publicField(SingleStoreVectorBuilder, _a389, "SingleStoreVectorBuilder");
42320
+ SingleStoreVector = class extends (_b294 = SingleStoreColumn, _a390 = entityKind, _b294) {
42321
+ constructor() {
42322
+ super(...arguments);
42323
+ __publicField(this, "dimensions", this.config.dimensions);
42324
+ __publicField(this, "elementType", this.config.elementType);
42325
+ }
42326
+ getSQLType() {
42327
+ return `vector(${this.dimensions}, ${this.elementType || "F32"})`;
42328
+ }
42329
+ mapToDriverValue(value) {
42330
+ return JSON.stringify(value);
42331
+ }
42332
+ mapFromDriverValue(value) {
42333
+ return JSON.parse(value);
42334
+ }
42335
+ };
42336
+ __publicField(SingleStoreVector, _a390, "SingleStoreVector");
42337
+ }
42338
+ });
42339
+
42137
42340
  // ../drizzle-orm/dist/singlestore-core/columns/year.js
42138
42341
  function year2(name2) {
42139
42342
  return new SingleStoreYearBuilder(name2 ?? "");
42140
42343
  }
42141
- var _a389, _b293, SingleStoreYearBuilder, _a390, _b294, SingleStoreYear;
42344
+ var _a391, _b295, SingleStoreYearBuilder, _a392, _b296, SingleStoreYear;
42142
42345
  var init_year2 = __esm({
42143
42346
  "../drizzle-orm/dist/singlestore-core/columns/year.js"() {
42144
42347
  "use strict";
42145
42348
  init_entity();
42146
42349
  init_common5();
42147
- SingleStoreYearBuilder = class extends (_b293 = SingleStoreColumnBuilder, _a389 = entityKind, _b293) {
42350
+ SingleStoreYearBuilder = class extends (_b295 = SingleStoreColumnBuilder, _a391 = entityKind, _b295) {
42148
42351
  constructor(name2) {
42149
42352
  super(name2, "number", "SingleStoreYear");
42150
42353
  }
@@ -42156,13 +42359,13 @@ var init_year2 = __esm({
42156
42359
  );
42157
42360
  }
42158
42361
  };
42159
- __publicField(SingleStoreYearBuilder, _a389, "SingleStoreYearBuilder");
42160
- SingleStoreYear = class extends (_b294 = SingleStoreColumn, _a390 = entityKind, _b294) {
42362
+ __publicField(SingleStoreYearBuilder, _a391, "SingleStoreYearBuilder");
42363
+ SingleStoreYear = class extends (_b296 = SingleStoreColumn, _a392 = entityKind, _b296) {
42161
42364
  getSQLType() {
42162
42365
  return `year`;
42163
42366
  }
42164
42367
  };
42165
- __publicField(SingleStoreYear, _a390, "SingleStoreYear");
42368
+ __publicField(SingleStoreYear, _a392, "SingleStoreYear");
42166
42369
  }
42167
42370
  });
42168
42371
 
@@ -42194,22 +42397,23 @@ var init_columns4 = __esm({
42194
42397
  init_tinyint2();
42195
42398
  init_varbinary2();
42196
42399
  init_varchar3();
42400
+ init_vector4();
42197
42401
  init_year2();
42198
42402
  }
42199
42403
  });
42200
42404
 
42201
42405
  // ../drizzle-orm/dist/singlestore-core/query-builders/count.js
42202
- var _a391, _b295, _c12, _SingleStoreCountBuilder, SingleStoreCountBuilder;
42406
+ var _a393, _b297, _c12, _SingleStoreCountBuilder, SingleStoreCountBuilder;
42203
42407
  var init_count4 = __esm({
42204
42408
  "../drizzle-orm/dist/singlestore-core/query-builders/count.js"() {
42205
42409
  "use strict";
42206
42410
  init_entity();
42207
42411
  init_sql();
42208
- _SingleStoreCountBuilder = class _SingleStoreCountBuilder extends (_c12 = SQL, _b295 = entityKind, _a391 = Symbol.toStringTag, _c12) {
42412
+ _SingleStoreCountBuilder = class _SingleStoreCountBuilder extends (_c12 = SQL, _b297 = entityKind, _a393 = Symbol.toStringTag, _c12) {
42209
42413
  constructor(params) {
42210
42414
  super(_SingleStoreCountBuilder.buildEmbeddedCount(params.source, params.filters).queryChunks);
42211
42415
  __publicField(this, "sql");
42212
- __publicField(this, _a391, "SingleStoreCountBuilder");
42416
+ __publicField(this, _a393, "SingleStoreCountBuilder");
42213
42417
  __publicField(this, "session");
42214
42418
  this.params = params;
42215
42419
  this.mapWith(Number);
@@ -42247,13 +42451,13 @@ var init_count4 = __esm({
42247
42451
  );
42248
42452
  }
42249
42453
  };
42250
- __publicField(_SingleStoreCountBuilder, _b295, "SingleStoreCountBuilder");
42454
+ __publicField(_SingleStoreCountBuilder, _b297, "SingleStoreCountBuilder");
42251
42455
  SingleStoreCountBuilder = _SingleStoreCountBuilder;
42252
42456
  }
42253
42457
  });
42254
42458
 
42255
42459
  // ../drizzle-orm/dist/singlestore-core/query-builders/delete.js
42256
- var _a392, _b296, SingleStoreDeleteBase;
42460
+ var _a394, _b298, SingleStoreDeleteBase;
42257
42461
  var init_delete4 = __esm({
42258
42462
  "../drizzle-orm/dist/singlestore-core/query-builders/delete.js"() {
42259
42463
  "use strict";
@@ -42261,7 +42465,7 @@ var init_delete4 = __esm({
42261
42465
  init_query_promise();
42262
42466
  init_selection_proxy();
42263
42467
  init_table();
42264
- SingleStoreDeleteBase = class extends (_b296 = QueryPromise, _a392 = entityKind, _b296) {
42468
+ SingleStoreDeleteBase = class extends (_b298 = QueryPromise, _a394 = entityKind, _b298) {
42265
42469
  constructor(table5, session, dialect6, withList) {
42266
42470
  super();
42267
42471
  __publicField(this, "config");
@@ -42351,12 +42555,12 @@ var init_delete4 = __esm({
42351
42555
  return this;
42352
42556
  }
42353
42557
  };
42354
- __publicField(SingleStoreDeleteBase, _a392, "SingleStoreDelete");
42558
+ __publicField(SingleStoreDeleteBase, _a394, "SingleStoreDelete");
42355
42559
  }
42356
42560
  });
42357
42561
 
42358
42562
  // ../drizzle-orm/dist/singlestore-core/query-builders/insert.js
42359
- var _a393, SingleStoreInsertBuilder, _a394, _b297, SingleStoreInsertBase;
42563
+ var _a395, SingleStoreInsertBuilder, _a396, _b299, SingleStoreInsertBase;
42360
42564
  var init_insert4 = __esm({
42361
42565
  "../drizzle-orm/dist/singlestore-core/query-builders/insert.js"() {
42362
42566
  "use strict";
@@ -42365,7 +42569,7 @@ var init_insert4 = __esm({
42365
42569
  init_sql();
42366
42570
  init_table();
42367
42571
  init_utils2();
42368
- _a393 = entityKind;
42572
+ _a395 = entityKind;
42369
42573
  SingleStoreInsertBuilder = class {
42370
42574
  constructor(table5, session, dialect6) {
42371
42575
  __publicField(this, "shouldIgnore", false);
@@ -42394,8 +42598,8 @@ var init_insert4 = __esm({
42394
42598
  return new SingleStoreInsertBase(this.table, mappedValues, this.shouldIgnore, this.session, this.dialect);
42395
42599
  }
42396
42600
  };
42397
- __publicField(SingleStoreInsertBuilder, _a393, "SingleStoreInsertBuilder");
42398
- SingleStoreInsertBase = class extends (_b297 = QueryPromise, _a394 = entityKind, _b297) {
42601
+ __publicField(SingleStoreInsertBuilder, _a395, "SingleStoreInsertBuilder");
42602
+ SingleStoreInsertBase = class extends (_b299 = QueryPromise, _a396 = entityKind, _b299) {
42399
42603
  constructor(table5, values, ignore, session, dialect6) {
42400
42604
  super();
42401
42605
  __publicField(this, "config");
@@ -42476,7 +42680,7 @@ var init_insert4 = __esm({
42476
42680
  return this;
42477
42681
  }
42478
42682
  };
42479
- __publicField(SingleStoreInsertBase, _a394, "SingleStoreInsert");
42683
+ __publicField(SingleStoreInsertBase, _a396, "SingleStoreInsert");
42480
42684
  }
42481
42685
  });
42482
42686
 
@@ -42500,12 +42704,16 @@ function getSingleStoreColumnBuilders() {
42500
42704
  real: real4,
42501
42705
  serial: serial3,
42502
42706
  smallint: smallint3,
42707
+ longtext: longtext2,
42708
+ mediumtext: mediumtext2,
42503
42709
  text: text4,
42710
+ tinytext: tinytext2,
42504
42711
  time: time3,
42505
42712
  timestamp: timestamp3,
42506
42713
  tinyint: tinyint2,
42507
42714
  varbinary: varbinary2,
42508
42715
  varchar: varchar3,
42716
+ vector: vector2,
42509
42717
  year: year2
42510
42718
  };
42511
42719
  }
@@ -42535,6 +42743,7 @@ var init_all4 = __esm({
42535
42743
  init_tinyint2();
42536
42744
  init_varbinary2();
42537
42745
  init_varchar3();
42746
+ init_vector4();
42538
42747
  init_year2();
42539
42748
  }
42540
42749
  });
@@ -42559,20 +42768,20 @@ function singlestoreTableWithSchema(name2, columns, extraConfig, schema5, baseNa
42559
42768
  }
42560
42769
  return table5;
42561
42770
  }
42562
- var _a395, _b298, _c13, _d5, SingleStoreTable;
42771
+ var _a397, _b300, _c13, _d5, SingleStoreTable;
42563
42772
  var init_table5 = __esm({
42564
42773
  "../drizzle-orm/dist/singlestore-core/table.js"() {
42565
42774
  "use strict";
42566
42775
  init_entity();
42567
42776
  init_table();
42568
42777
  init_all4();
42569
- SingleStoreTable = class extends (_d5 = Table2, _c13 = entityKind, _b298 = Table2.Symbol.Columns, _a395 = Table2.Symbol.ExtraConfigBuilder, _d5) {
42778
+ SingleStoreTable = class extends (_d5 = Table2, _c13 = entityKind, _b300 = Table2.Symbol.Columns, _a397 = Table2.Symbol.ExtraConfigBuilder, _d5) {
42570
42779
  constructor() {
42571
42780
  super(...arguments);
42572
42781
  /** @internal */
42573
- __publicField(this, _b298);
42782
+ __publicField(this, _b300);
42574
42783
  /** @internal */
42575
- __publicField(this, _a395);
42784
+ __publicField(this, _a397);
42576
42785
  }
42577
42786
  };
42578
42787
  __publicField(SingleStoreTable, _c13, "SingleStoreTable");
@@ -42582,7 +42791,7 @@ var init_table5 = __esm({
42582
42791
  });
42583
42792
 
42584
42793
  // ../drizzle-orm/dist/singlestore-core/dialect.js
42585
- var _a396, SingleStoreDialect;
42794
+ var _a398, SingleStoreDialect;
42586
42795
  var init_dialect4 = __esm({
42587
42796
  "../drizzle-orm/dist/singlestore-core/dialect.js"() {
42588
42797
  "use strict";
@@ -42600,7 +42809,7 @@ var init_dialect4 = __esm({
42600
42809
  init_view_common();
42601
42810
  init_common5();
42602
42811
  init_table5();
42603
- _a396 = entityKind;
42812
+ _a398 = entityKind;
42604
42813
  SingleStoreDialect = class {
42605
42814
  constructor(config) {
42606
42815
  /** @internal */
@@ -43165,7 +43374,7 @@ var init_dialect4 = __esm({
43165
43374
  };
43166
43375
  }
43167
43376
  };
43168
- __publicField(SingleStoreDialect, _a396, "SingleStoreDialect");
43377
+ __publicField(SingleStoreDialect, _a398, "SingleStoreDialect");
43169
43378
  }
43170
43379
  });
43171
43380
 
@@ -43187,7 +43396,7 @@ function createSetOperator4(type, isAll) {
43187
43396
  return leftSelect.addSetOperators(setOperators);
43188
43397
  };
43189
43398
  }
43190
- var _a397, SingleStoreSelectBuilder, _a398, _b299, SingleStoreSelectQueryBuilderBase, _a399, _b300, SingleStoreSelectBase, getSingleStoreSetOperators, union4, unionAll4, intersect4, except4, minus;
43399
+ var _a399, SingleStoreSelectBuilder, _a400, _b301, SingleStoreSelectQueryBuilderBase, _a401, _b302, SingleStoreSelectBase, getSingleStoreSetOperators, union4, unionAll4, intersect4, except4, minus;
43191
43400
  var init_select5 = __esm({
43192
43401
  "../drizzle-orm/dist/singlestore-core/query-builders/select.js"() {
43193
43402
  "use strict";
@@ -43199,7 +43408,7 @@ var init_select5 = __esm({
43199
43408
  init_subquery();
43200
43409
  init_table();
43201
43410
  init_utils2();
43202
- _a397 = entityKind;
43411
+ _a399 = entityKind;
43203
43412
  SingleStoreSelectBuilder = class {
43204
43413
  constructor(config) {
43205
43414
  __publicField(this, "fields");
@@ -43242,8 +43451,8 @@ var init_select5 = __esm({
43242
43451
  );
43243
43452
  }
43244
43453
  };
43245
- __publicField(SingleStoreSelectBuilder, _a397, "SingleStoreSelectBuilder");
43246
- SingleStoreSelectQueryBuilderBase = class extends (_b299 = TypedQueryBuilder, _a398 = entityKind, _b299) {
43454
+ __publicField(SingleStoreSelectBuilder, _a399, "SingleStoreSelectBuilder");
43455
+ SingleStoreSelectQueryBuilderBase = class extends (_b301 = TypedQueryBuilder, _a400 = entityKind, _b301) {
43247
43456
  constructor({ table: table5, fields, isPartialSelect, session, dialect: dialect6, withList, distinct }) {
43248
43457
  super();
43249
43458
  __publicField(this, "_");
@@ -43784,8 +43993,8 @@ var init_select5 = __esm({
43784
43993
  return this;
43785
43994
  }
43786
43995
  };
43787
- __publicField(SingleStoreSelectQueryBuilderBase, _a398, "SingleStoreSelectQueryBuilder");
43788
- SingleStoreSelectBase = class extends (_b300 = SingleStoreSelectQueryBuilderBase, _a399 = entityKind, _b300) {
43996
+ __publicField(SingleStoreSelectQueryBuilderBase, _a400, "SingleStoreSelectQueryBuilder");
43997
+ SingleStoreSelectBase = class extends (_b302 = SingleStoreSelectQueryBuilderBase, _a401 = entityKind, _b302) {
43789
43998
  constructor() {
43790
43999
  super(...arguments);
43791
44000
  __publicField(this, "execute", (placeholderValues) => {
@@ -43809,7 +44018,7 @@ var init_select5 = __esm({
43809
44018
  return query;
43810
44019
  }
43811
44020
  };
43812
- __publicField(SingleStoreSelectBase, _a399, "SingleStoreSelect");
44021
+ __publicField(SingleStoreSelectBase, _a401, "SingleStoreSelect");
43813
44022
  applyMixins(SingleStoreSelectBase, [QueryPromise]);
43814
44023
  getSingleStoreSetOperators = () => ({
43815
44024
  union: union4,
@@ -43827,7 +44036,7 @@ var init_select5 = __esm({
43827
44036
  });
43828
44037
 
43829
44038
  // ../drizzle-orm/dist/singlestore-core/query-builders/query-builder.js
43830
- var _a400, QueryBuilder4;
44039
+ var _a402, QueryBuilder4;
43831
44040
  var init_query_builder5 = __esm({
43832
44041
  "../drizzle-orm/dist/singlestore-core/query-builders/query-builder.js"() {
43833
44042
  "use strict";
@@ -43836,7 +44045,7 @@ var init_query_builder5 = __esm({
43836
44045
  init_dialect4();
43837
44046
  init_subquery();
43838
44047
  init_select5();
43839
- _a400 = entityKind;
44048
+ _a402 = entityKind;
43840
44049
  QueryBuilder4 = class {
43841
44050
  constructor(dialect6) {
43842
44051
  __publicField(this, "dialect");
@@ -43902,7 +44111,7 @@ var init_query_builder5 = __esm({
43902
44111
  return this.dialect;
43903
44112
  }
43904
44113
  };
43905
- __publicField(QueryBuilder4, _a400, "SingleStoreQueryBuilder");
44114
+ __publicField(QueryBuilder4, _a402, "SingleStoreQueryBuilder");
43906
44115
  }
43907
44116
  });
43908
44117
 
@@ -43914,7 +44123,7 @@ var init_select_types4 = __esm({
43914
44123
  });
43915
44124
 
43916
44125
  // ../drizzle-orm/dist/singlestore-core/query-builders/update.js
43917
- var _a401, SingleStoreUpdateBuilder, _a402, _b301, SingleStoreUpdateBase;
44126
+ var _a403, SingleStoreUpdateBuilder, _a404, _b303, SingleStoreUpdateBase;
43918
44127
  var init_update4 = __esm({
43919
44128
  "../drizzle-orm/dist/singlestore-core/query-builders/update.js"() {
43920
44129
  "use strict";
@@ -43923,7 +44132,7 @@ var init_update4 = __esm({
43923
44132
  init_selection_proxy();
43924
44133
  init_table();
43925
44134
  init_utils2();
43926
- _a401 = entityKind;
44135
+ _a403 = entityKind;
43927
44136
  SingleStoreUpdateBuilder = class {
43928
44137
  constructor(table5, session, dialect6, withList) {
43929
44138
  this.table = table5;
@@ -43941,8 +44150,8 @@ var init_update4 = __esm({
43941
44150
  );
43942
44151
  }
43943
44152
  };
43944
- __publicField(SingleStoreUpdateBuilder, _a401, "SingleStoreUpdateBuilder");
43945
- SingleStoreUpdateBase = class extends (_b301 = QueryPromise, _a402 = entityKind, _b301) {
44153
+ __publicField(SingleStoreUpdateBuilder, _a403, "SingleStoreUpdateBuilder");
44154
+ SingleStoreUpdateBase = class extends (_b303 = QueryPromise, _a404 = entityKind, _b303) {
43946
44155
  constructor(table5, set, session, dialect6, withList) {
43947
44156
  super();
43948
44157
  __publicField(this, "config");
@@ -44035,7 +44244,7 @@ var init_update4 = __esm({
44035
44244
  return this;
44036
44245
  }
44037
44246
  };
44038
- __publicField(SingleStoreUpdateBase, _a402, "SingleStoreUpdate");
44247
+ __publicField(SingleStoreUpdateBase, _a404, "SingleStoreUpdate");
44039
44248
  }
44040
44249
  });
44041
44250
 
@@ -44053,7 +44262,7 @@ var init_query_builders4 = __esm({
44053
44262
  });
44054
44263
 
44055
44264
  // ../drizzle-orm/dist/singlestore-core/db.js
44056
- var _a403, SingleStoreDatabase;
44265
+ var _a405, SingleStoreDatabase;
44057
44266
  var init_db4 = __esm({
44058
44267
  "../drizzle-orm/dist/singlestore-core/db.js"() {
44059
44268
  "use strict";
@@ -44063,7 +44272,7 @@ var init_db4 = __esm({
44063
44272
  init_subquery();
44064
44273
  init_count4();
44065
44274
  init_query_builders4();
44066
- _a403 = entityKind;
44275
+ _a405 = entityKind;
44067
44276
  SingleStoreDatabase = class {
44068
44277
  constructor(dialect6, session, schema5) {
44069
44278
  // We are waiting for SingleStore support for `json_array` function
@@ -44263,17 +44472,17 @@ var init_db4 = __esm({
44263
44472
  return this.session.transaction(transaction, config);
44264
44473
  }
44265
44474
  };
44266
- __publicField(SingleStoreDatabase, _a403, "SingleStoreDatabase");
44475
+ __publicField(SingleStoreDatabase, _a405, "SingleStoreDatabase");
44267
44476
  }
44268
44477
  });
44269
44478
 
44270
44479
  // ../drizzle-orm/dist/singlestore-core/indexes.js
44271
- var _a404, IndexBuilderOn4, _a405, IndexBuilder4, _a406, Index6;
44480
+ var _a406, IndexBuilderOn4, _a407, IndexBuilder4, _a408, Index6;
44272
44481
  var init_indexes4 = __esm({
44273
44482
  "../drizzle-orm/dist/singlestore-core/indexes.js"() {
44274
44483
  "use strict";
44275
44484
  init_entity();
44276
- _a404 = entityKind;
44485
+ _a406 = entityKind;
44277
44486
  IndexBuilderOn4 = class {
44278
44487
  constructor(name2, unique) {
44279
44488
  this.name = name2;
@@ -44283,8 +44492,8 @@ var init_indexes4 = __esm({
44283
44492
  return new IndexBuilder4(this.name, columns, this.unique);
44284
44493
  }
44285
44494
  };
44286
- __publicField(IndexBuilderOn4, _a404, "SingleStoreIndexBuilderOn");
44287
- _a405 = entityKind;
44495
+ __publicField(IndexBuilderOn4, _a406, "SingleStoreIndexBuilderOn");
44496
+ _a407 = entityKind;
44288
44497
  IndexBuilder4 = class {
44289
44498
  constructor(name2, columns, unique) {
44290
44499
  /** @internal */
@@ -44312,26 +44521,26 @@ var init_indexes4 = __esm({
44312
44521
  return new Index6(this.config, table5);
44313
44522
  }
44314
44523
  };
44315
- __publicField(IndexBuilder4, _a405, "SingleStoreIndexBuilder");
44316
- _a406 = entityKind;
44524
+ __publicField(IndexBuilder4, _a407, "SingleStoreIndexBuilder");
44525
+ _a408 = entityKind;
44317
44526
  Index6 = class {
44318
44527
  constructor(config, table5) {
44319
44528
  __publicField(this, "config");
44320
44529
  this.config = { ...config, table: table5 };
44321
44530
  }
44322
44531
  };
44323
- __publicField(Index6, _a406, "SingleStoreIndex");
44532
+ __publicField(Index6, _a408, "SingleStoreIndex");
44324
44533
  }
44325
44534
  });
44326
44535
 
44327
44536
  // ../drizzle-orm/dist/singlestore-core/primary-keys.js
44328
- var _a407, PrimaryKeyBuilder4, _a408, PrimaryKey4;
44537
+ var _a409, PrimaryKeyBuilder4, _a410, PrimaryKey4;
44329
44538
  var init_primary_keys4 = __esm({
44330
44539
  "../drizzle-orm/dist/singlestore-core/primary-keys.js"() {
44331
44540
  "use strict";
44332
44541
  init_entity();
44333
44542
  init_table5();
44334
- _a407 = entityKind;
44543
+ _a409 = entityKind;
44335
44544
  PrimaryKeyBuilder4 = class {
44336
44545
  constructor(columns, name2) {
44337
44546
  /** @internal */
@@ -44346,8 +44555,8 @@ var init_primary_keys4 = __esm({
44346
44555
  return new PrimaryKey4(table5, this.columns, this.name);
44347
44556
  }
44348
44557
  };
44349
- __publicField(PrimaryKeyBuilder4, _a407, "SingleStorePrimaryKeyBuilder");
44350
- _a408 = entityKind;
44558
+ __publicField(PrimaryKeyBuilder4, _a409, "SingleStorePrimaryKeyBuilder");
44559
+ _a410 = entityKind;
44351
44560
  PrimaryKey4 = class {
44352
44561
  constructor(table5, columns, name2) {
44353
44562
  __publicField(this, "columns");
@@ -44360,18 +44569,18 @@ var init_primary_keys4 = __esm({
44360
44569
  return this.name ?? `${this.table[SingleStoreTable.Symbol.Name]}_${this.columns.map((column5) => column5.name).join("_")}_pk`;
44361
44570
  }
44362
44571
  };
44363
- __publicField(PrimaryKey4, _a408, "SingleStorePrimaryKey");
44572
+ __publicField(PrimaryKey4, _a410, "SingleStorePrimaryKey");
44364
44573
  }
44365
44574
  });
44366
44575
 
44367
44576
  // ../drizzle-orm/dist/singlestore-core/schema.js
44368
- var _a409, SingleStoreSchema5;
44577
+ var _a411, SingleStoreSchema5;
44369
44578
  var init_schema3 = __esm({
44370
44579
  "../drizzle-orm/dist/singlestore-core/schema.js"() {
44371
44580
  "use strict";
44372
44581
  init_entity();
44373
44582
  init_table5();
44374
- _a409 = entityKind;
44583
+ _a411 = entityKind;
44375
44584
  SingleStoreSchema5 = class {
44376
44585
  constructor(schemaName) {
44377
44586
  __publicField(this, "table", (name2, columns, extraConfig) => {
@@ -44384,12 +44593,12 @@ var init_schema3 = __esm({
44384
44593
  return singlestoreViewWithSchema(name, columns, this.schemaName);
44385
44594
  }) as typeof singlestoreView; */
44386
44595
  };
44387
- __publicField(SingleStoreSchema5, _a409, "SingleStoreSchema");
44596
+ __publicField(SingleStoreSchema5, _a411, "SingleStoreSchema");
44388
44597
  }
44389
44598
  });
44390
44599
 
44391
44600
  // ../drizzle-orm/dist/singlestore-core/session.js
44392
- var _a410, SingleStorePreparedQuery, _a411, SingleStoreSession, _a412, _b302, SingleStoreTransaction;
44601
+ var _a412, SingleStorePreparedQuery, _a413, SingleStoreSession, _a414, _b304, SingleStoreTransaction;
44393
44602
  var init_session4 = __esm({
44394
44603
  "../drizzle-orm/dist/singlestore-core/session.js"() {
44395
44604
  "use strict";
@@ -44397,15 +44606,15 @@ var init_session4 = __esm({
44397
44606
  init_errors();
44398
44607
  init_sql();
44399
44608
  init_db4();
44400
- _a410 = entityKind;
44609
+ _a412 = entityKind;
44401
44610
  SingleStorePreparedQuery = class {
44402
44611
  constructor() {
44403
44612
  /** @internal */
44404
44613
  __publicField(this, "joinsNotNullableMap");
44405
44614
  }
44406
44615
  };
44407
- __publicField(SingleStorePreparedQuery, _a410, "SingleStorePreparedQuery");
44408
- _a411 = entityKind;
44616
+ __publicField(SingleStorePreparedQuery, _a412, "SingleStorePreparedQuery");
44617
+ _a413 = entityKind;
44409
44618
  SingleStoreSession = class {
44410
44619
  constructor(dialect6) {
44411
44620
  this.dialect = dialect6;
@@ -44440,8 +44649,8 @@ var init_session4 = __esm({
44440
44649
  return parts.length ? sql`start transaction ${sql.raw(parts.join(" "))}` : void 0;
44441
44650
  }
44442
44651
  };
44443
- __publicField(SingleStoreSession, _a411, "SingleStoreSession");
44444
- SingleStoreTransaction = class extends (_b302 = SingleStoreDatabase, _a412 = entityKind, _b302) {
44652
+ __publicField(SingleStoreSession, _a413, "SingleStoreSession");
44653
+ SingleStoreTransaction = class extends (_b304 = SingleStoreDatabase, _a414 = entityKind, _b304) {
44445
44654
  constructor(dialect6, session, schema5, nestedIndex) {
44446
44655
  super(dialect6, session, schema5);
44447
44656
  this.schema = schema5;
@@ -44451,7 +44660,7 @@ var init_session4 = __esm({
44451
44660
  throw new TransactionRollbackError();
44452
44661
  }
44453
44662
  };
44454
- __publicField(SingleStoreTransaction, _a412, "SingleStoreTransaction");
44663
+ __publicField(SingleStoreTransaction, _a414, "SingleStoreTransaction");
44455
44664
  }
44456
44665
  });
44457
44666
 
@@ -44628,7 +44837,7 @@ ${withStyle.errorWarning(`We've found duplicated unique constraint names in ${so
44628
44837
  if (typeof column5.default === "string") {
44629
44838
  columnToSet.default = `'${column5.default}'`;
44630
44839
  } else {
44631
- if (sqlTypeLowered === "json") {
44840
+ if (sqlTypeLowered === "json" || Array.isArray(column5.default)) {
44632
44841
  columnToSet.default = `'${JSON.stringify(column5.default)}'`;
44633
44842
  } else if (column5.default instanceof Date) {
44634
44843
  if (sqlTypeLowered === "date") {
@@ -45398,15 +45607,31 @@ var init_singlestoreImports = __esm({
45398
45607
  var singlestorePushUtils_exports = {};
45399
45608
  __export(singlestorePushUtils_exports, {
45400
45609
  filterStatements: () => filterStatements2,
45610
+ findColumnTypeAlternations: () => findColumnTypeAlternations,
45401
45611
  logSuggestionsAndReturn: () => logSuggestionsAndReturn3
45402
45612
  });
45613
+ function findColumnTypeAlternations(columns1, columns2) {
45614
+ const changes = [];
45615
+ for (const key in columns1) {
45616
+ if (columns1.hasOwnProperty(key) && columns2.hasOwnProperty(key)) {
45617
+ const col1 = columns1[key];
45618
+ const col2 = columns2[key];
45619
+ if (col1.type !== col2.type) {
45620
+ changes.push(col2.name);
45621
+ }
45622
+ }
45623
+ }
45624
+ return changes;
45625
+ }
45403
45626
  var import_hanji10, filterStatements2, logSuggestionsAndReturn3;
45404
45627
  var init_singlestorePushUtils = __esm({
45405
45628
  "src/cli/commands/singlestorePushUtils.ts"() {
45406
45629
  "use strict";
45407
45630
  init_source();
45408
45631
  import_hanji10 = __toESM(require_hanji());
45632
+ init_sqlgenerator();
45409
45633
  init_singlestoreSchema();
45634
+ init_utils();
45410
45635
  init_selector_ui();
45411
45636
  init_outputs();
45412
45637
  filterStatements2 = (statements, currentSchema, prevSchema) => {
@@ -45450,7 +45675,7 @@ var init_singlestorePushUtils = __esm({
45450
45675
  return true;
45451
45676
  });
45452
45677
  };
45453
- logSuggestionsAndReturn3 = async (db, statements, json22) => {
45678
+ logSuggestionsAndReturn3 = async (db, statements, json22, json1) => {
45454
45679
  let shouldAskForApprove = false;
45455
45680
  const statementsToExecute = [];
45456
45681
  const infoToPrint = [];
@@ -45631,6 +45856,71 @@ var init_singlestorePushUtils = __esm({
45631
45856
  shouldAskForApprove = true;
45632
45857
  }
45633
45858
  }
45859
+ } else if (statement.type === "singlestore_recreate_table") {
45860
+ const tableName = statement.tableName;
45861
+ const prevColumns = json1.tables[tableName].columns;
45862
+ const currentColumns = json22.tables[tableName].columns;
45863
+ const { removedColumns, addedColumns } = findAddedAndRemoved(
45864
+ Object.keys(prevColumns),
45865
+ Object.keys(currentColumns)
45866
+ );
45867
+ if (removedColumns.length) {
45868
+ for (const removedColumn of removedColumns) {
45869
+ const res = await db.query(
45870
+ `select count(\`${tableName}\`.\`${removedColumn}\`) as count from \`${tableName}\``
45871
+ );
45872
+ const count2 = Number(res[0].count);
45873
+ if (count2 > 0) {
45874
+ infoToPrint.push(
45875
+ `\xB7 You're about to delete ${source_default.underline(
45876
+ removedColumn
45877
+ )} column in ${tableName} table with ${count2} items`
45878
+ );
45879
+ columnsToRemove.push(removedColumn);
45880
+ shouldAskForApprove = true;
45881
+ }
45882
+ }
45883
+ }
45884
+ if (addedColumns.length) {
45885
+ for (const addedColumn of addedColumns) {
45886
+ const [res] = await db.query(
45887
+ `select count(*) as count from \`${tableName}\``
45888
+ );
45889
+ const columnConf = json22.tables[tableName].columns[addedColumn];
45890
+ const count2 = Number(res.count);
45891
+ if (count2 > 0 && columnConf.notNull && !columnConf.default) {
45892
+ infoToPrint.push(
45893
+ `\xB7 You're about to add not-null ${source_default.underline(
45894
+ addedColumn
45895
+ )} column without default value to table, which contains ${count2} items`
45896
+ );
45897
+ shouldAskForApprove = true;
45898
+ tablesToTruncate.push(tableName);
45899
+ statementsToExecute.push(`TRUNCATE TABLE \`${tableName}\`;`);
45900
+ }
45901
+ }
45902
+ }
45903
+ const columnWithChangedType = findColumnTypeAlternations(prevColumns, currentColumns);
45904
+ for (const column5 of columnWithChangedType) {
45905
+ const [res] = await db.query(
45906
+ `select count(*) as count from \`${tableName}\` WHERE \`${tableName}\`.\`${column5}\` IS NOT NULL;`
45907
+ );
45908
+ const count2 = Number(res.count);
45909
+ if (count2 > 0) {
45910
+ infoToPrint.push(
45911
+ `\xB7 You're about recreate ${source_default.underline(tableName)} table with data type changing for ${source_default.underline(
45912
+ column5
45913
+ )} column, which contains ${count2} items`
45914
+ );
45915
+ shouldAskForApprove = true;
45916
+ tablesToTruncate.push(tableName);
45917
+ statementsToExecute.push(`TRUNCATE TABLE \`${tableName}\`;`);
45918
+ }
45919
+ }
45920
+ }
45921
+ const stmnt = fromJson([statement], "singlestore", "push");
45922
+ if (typeof stmnt !== "undefined") {
45923
+ statementsToExecute.push(...stmnt);
45634
45924
  }
45635
45925
  }
45636
45926
  return {
@@ -46476,7 +46766,8 @@ var pushSingleStoreSchema = async (imports, drizzleInstance, databaseName) => {
46476
46766
  const { shouldAskForApprove, statementsToExecute, infoToPrint } = await logSuggestionsAndReturn4(
46477
46767
  db,
46478
46768
  statements,
46479
- validatedCur
46769
+ squashedCur,
46770
+ squashedPrev
46480
46771
  );
46481
46772
  return {
46482
46773
  hasDataLoss: shouldAskForApprove,