@zyno-io/dk-server-foundation 26.412.2137 → 26.601.2229

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 (124) hide show
  1. package/dist/resources/proto/generated/devconsole/devconsole.js +1 -1
  2. package/dist/src/app/config.d.ts +1 -0
  3. package/dist/src/app/config.d.ts.map +1 -1
  4. package/dist/src/app/config.js +1 -1
  5. package/dist/src/app/config.js.map +1 -1
  6. package/dist/src/database/common.d.ts +3 -0
  7. package/dist/src/database/common.d.ts.map +1 -1
  8. package/dist/src/database/common.js +46 -1
  9. package/dist/src/database/common.js.map +1 -1
  10. package/dist/src/database/factory.d.ts +17 -0
  11. package/dist/src/database/factory.d.ts.map +1 -0
  12. package/dist/src/database/factory.js +53 -0
  13. package/dist/src/database/factory.js.map +1 -0
  14. package/dist/src/database/index.d.ts +2 -0
  15. package/dist/src/database/index.d.ts.map +1 -1
  16. package/dist/src/database/index.js +2 -0
  17. package/dist/src/database/index.js.map +1 -1
  18. package/dist/src/database/migration/MigrationResetCommand.d.ts.map +1 -1
  19. package/dist/src/database/migration/MigrationResetCommand.js +6 -20
  20. package/dist/src/database/migration/MigrationResetCommand.js.map +1 -1
  21. package/dist/src/database/migration/MigrationRunCommand.d.ts.map +1 -1
  22. package/dist/src/database/migration/MigrationRunCommand.js +2 -0
  23. package/dist/src/database/migration/MigrationRunCommand.js.map +1 -1
  24. package/dist/src/database/migration/create/MigrationCreateCommand.d.ts +2 -0
  25. package/dist/src/database/migration/create/MigrationCreateCommand.d.ts.map +1 -1
  26. package/dist/src/database/migration/create/MigrationCreateCommand.js +36 -11
  27. package/dist/src/database/migration/create/MigrationCreateCommand.js.map +1 -1
  28. package/dist/src/database/migration/create/builder-regenerator.d.ts +12 -0
  29. package/dist/src/database/migration/create/builder-regenerator.d.ts.map +1 -0
  30. package/dist/src/database/migration/create/builder-regenerator.js +308 -0
  31. package/dist/src/database/migration/create/builder-regenerator.js.map +1 -0
  32. package/dist/src/database/migration/create/comparator.js +33 -4
  33. package/dist/src/database/migration/create/comparator.js.map +1 -1
  34. package/dist/src/database/migration/create/db-reader.js +63 -9
  35. package/dist/src/database/migration/create/db-reader.js.map +1 -1
  36. package/dist/src/database/migration/create/ddl-generator.d.ts.map +1 -1
  37. package/dist/src/database/migration/create/ddl-generator.js +44 -206
  38. package/dist/src/database/migration/create/ddl-generator.js.map +1 -1
  39. package/dist/src/database/migration/create/entity-reader.js +47 -5
  40. package/dist/src/database/migration/create/entity-reader.js.map +1 -1
  41. package/dist/src/database/migration/create/file-generator.d.ts +2 -0
  42. package/dist/src/database/migration/create/file-generator.d.ts.map +1 -1
  43. package/dist/src/database/migration/create/file-generator.js +7 -2
  44. package/dist/src/database/migration/create/file-generator.js.map +1 -1
  45. package/dist/src/database/migration/create/schema-model.d.ts +9 -0
  46. package/dist/src/database/migration/create/schema-model.d.ts.map +1 -1
  47. package/dist/src/database/migration/create/schema-model.js +3 -3
  48. package/dist/src/database/mysql.d.ts.map +1 -1
  49. package/dist/src/database/mysql.js +5 -11
  50. package/dist/src/database/mysql.js.map +1 -1
  51. package/dist/src/database/postgres.d.ts +1 -0
  52. package/dist/src/database/postgres.d.ts.map +1 -1
  53. package/dist/src/database/postgres.js +1 -13
  54. package/dist/src/database/postgres.js.map +1 -1
  55. package/dist/src/database/schema/AlterBlueprint.d.ts +50 -0
  56. package/dist/src/database/schema/AlterBlueprint.d.ts.map +1 -0
  57. package/dist/src/database/schema/AlterBlueprint.js +88 -0
  58. package/dist/src/database/schema/AlterBlueprint.js.map +1 -0
  59. package/dist/src/database/schema/Blueprint.d.ts +16 -0
  60. package/dist/src/database/schema/Blueprint.d.ts.map +1 -0
  61. package/dist/src/database/schema/Blueprint.js +51 -0
  62. package/dist/src/database/schema/Blueprint.js.map +1 -0
  63. package/dist/src/database/schema/BlueprintBase.d.ts +65 -0
  64. package/dist/src/database/schema/BlueprintBase.d.ts.map +1 -0
  65. package/dist/src/database/schema/BlueprintBase.js +385 -0
  66. package/dist/src/database/schema/BlueprintBase.js.map +1 -0
  67. package/dist/src/database/schema/ColumnDefinition.d.ts +43 -0
  68. package/dist/src/database/schema/ColumnDefinition.d.ts.map +1 -0
  69. package/dist/src/database/schema/ColumnDefinition.js +117 -0
  70. package/dist/src/database/schema/ColumnDefinition.js.map +1 -0
  71. package/dist/src/database/schema/Schema.d.ts +32 -0
  72. package/dist/src/database/schema/Schema.d.ts.map +1 -0
  73. package/dist/src/database/schema/Schema.js +151 -0
  74. package/dist/src/database/schema/Schema.js.map +1 -0
  75. package/dist/src/database/schema/grammar/Grammar.d.ts +35 -0
  76. package/dist/src/database/schema/grammar/Grammar.d.ts.map +1 -0
  77. package/dist/src/database/schema/grammar/Grammar.js +36 -0
  78. package/dist/src/database/schema/grammar/Grammar.js.map +1 -0
  79. package/dist/src/database/schema/grammar/MySQLGrammar.d.ts +29 -0
  80. package/dist/src/database/schema/grammar/MySQLGrammar.d.ts.map +1 -0
  81. package/dist/src/database/schema/grammar/MySQLGrammar.js +199 -0
  82. package/dist/src/database/schema/grammar/MySQLGrammar.js.map +1 -0
  83. package/dist/src/database/schema/grammar/PostgresGrammar.d.ts +29 -0
  84. package/dist/src/database/schema/grammar/PostgresGrammar.d.ts.map +1 -0
  85. package/dist/src/database/schema/grammar/PostgresGrammar.js +233 -0
  86. package/dist/src/database/schema/grammar/PostgresGrammar.js.map +1 -0
  87. package/dist/src/database/schema/index.d.ts +9 -0
  88. package/dist/src/database/schema/index.d.ts.map +1 -0
  89. package/dist/src/database/schema/index.js +12 -0
  90. package/dist/src/database/schema/index.js.map +1 -0
  91. package/dist/src/database/types.d.ts +8 -0
  92. package/dist/src/database/types.d.ts.map +1 -1
  93. package/dist/src/database/types.js +3 -1
  94. package/dist/src/database/types.js.map +1 -1
  95. package/docs/content/cli.md +4 -1
  96. package/docs/content/configuration.md +6 -0
  97. package/docs/content/database.md +137 -0
  98. package/package.json +1 -1
  99. package/src/app/config.ts +2 -0
  100. package/src/database/common.ts +51 -0
  101. package/src/database/factory.ts +59 -0
  102. package/src/database/index.ts +2 -0
  103. package/src/database/migration/MigrationResetCommand.ts +6 -22
  104. package/src/database/migration/MigrationRunCommand.ts +2 -0
  105. package/src/database/migration/create/MigrationCreateCommand.ts +42 -12
  106. package/src/database/migration/create/builder-regenerator.ts +294 -0
  107. package/src/database/migration/create/comparator.ts +34 -4
  108. package/src/database/migration/create/db-reader.ts +60 -9
  109. package/src/database/migration/create/ddl-generator.ts +45 -212
  110. package/src/database/migration/create/entity-reader.ts +46 -5
  111. package/src/database/migration/create/file-generator.ts +5 -1
  112. package/src/database/migration/create/schema-model.ts +6 -0
  113. package/src/database/mysql.ts +7 -15
  114. package/src/database/postgres.ts +3 -17
  115. package/src/database/schema/AlterBlueprint.ts +92 -0
  116. package/src/database/schema/Blueprint.ts +43 -0
  117. package/src/database/schema/BlueprintBase.ts +425 -0
  118. package/src/database/schema/ColumnDefinition.ts +131 -0
  119. package/src/database/schema/Schema.ts +167 -0
  120. package/src/database/schema/grammar/Grammar.ts +62 -0
  121. package/src/database/schema/grammar/MySQLGrammar.ts +206 -0
  122. package/src/database/schema/grammar/PostgresGrammar.ts +243 -0
  123. package/src/database/schema/index.ts +8 -0
  124. package/src/database/types.ts +6 -0
@@ -46,8 +46,12 @@ async function readMySQLTable(db, tableName) {
46
46
  const columns = await readMySQLColumns(db, tableName);
47
47
  if (columns.length === 0)
48
48
  return null;
49
- const indexes = await readMySQLIndexes(db, tableName);
49
+ const allIndexes = await readMySQLIndexes(db, tableName);
50
50
  const foreignKeys = await readMySQLForeignKeys(db, tableName);
51
+ // MySQL auto-creates an index for FK columns (same name as the FK) if no covering index exists.
52
+ // Filter those out so they don't show up as spurious added/removed-index diffs.
53
+ const fkNames = new Set(foreignKeys.map(__assignType(fk => fk.name, ['fk', '', 'P"2!"/"'])));
54
+ const indexes = allIndexes.filter(__assignType(idx => !fkNames.has(idx.name), ['idx', '', 'P"2!"/"']));
51
55
  return { name: tableName, columns, indexes, foreignKeys };
52
56
  }
53
57
  readMySQLTable.__type = [() => common_1.BaseDatabase, 'db', 'tableName', () => __ΩTableSchema, 'readMySQLTable', 'PP7!2"&2#Pn$,J`/%'];
@@ -61,23 +65,28 @@ async function readMySQLColumns(db, tableName) {
61
65
  WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = ${tableName}
62
66
  ORDER BY ORDINAL_POSITION`);
63
67
  return rows.map(__assignType(row => {
64
- const columnType = (row.COLUMN_TYPE || '').toLowerCase();
68
+ // Original-case COLUMN_TYPE is needed for enum value extraction (enum labels are
69
+ // case-sensitive); a lowercased copy is used for everything else (type/unsigned detection).
70
+ const columnTypeRaw = row.COLUMN_TYPE || '';
71
+ const columnType = columnTypeRaw.toLowerCase();
65
72
  const dataType = (row.DATA_TYPE || '').toLowerCase();
66
73
  const extra = (row.EXTRA || '').toLowerCase();
67
74
  const col = {
68
75
  name: row.COLUMN_NAME,
69
76
  type: normalizeMySQLType(dataType, columnType),
70
77
  size: inferMySQLSize(dataType, columnType, row.CHARACTER_MAXIMUM_LENGTH, row.NUMERIC_PRECISION),
71
- scale: row.NUMERIC_SCALE != null ? Number(row.NUMERIC_SCALE) : undefined,
78
+ // Scale is only meaningful for decimal/numeric. MySQL reports NUMERIC_SCALE=0
79
+ // for ints, which would cause spurious typeChanged diffs against entity-reader output.
80
+ scale: (dataType === 'decimal' || dataType === 'numeric') && row.NUMERIC_SCALE != null ? Number(row.NUMERIC_SCALE) : undefined,
72
81
  unsigned: columnType.includes('unsigned'),
73
82
  nullable: row.IS_NULLABLE === 'YES',
74
83
  autoIncrement: extra.includes('auto_increment'),
75
84
  isPrimaryKey: row.COLUMN_KEY === 'PRI',
76
85
  ordinalPosition: Number(row.ORDINAL_POSITION)
77
86
  };
78
- // Parse enum values
87
+ // Parse enum values from the original-case COLUMN_TYPE to preserve label casing.
79
88
  if (dataType === 'enum') {
80
- col.enumValues = parseEnumValues(columnType);
89
+ col.enumValues = parseEnumValues(columnTypeRaw);
81
90
  }
82
91
  // Default value
83
92
  if (row.COLUMN_DEFAULT != null && !col.autoIncrement) {
@@ -105,10 +114,18 @@ async function readMySQLIndexes(db, tableName) {
105
114
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
106
115
  const rows = await db.rawQuery(`SHOW INDEX FROM ${(0, dialect_1.quoteId)('mysql', tableName)}`);
107
116
  const indexMap = (Map.Ω = [['&'], [() => __ΩIndexSchema, 'schema', 'seq', 'name', 'columnsBySeq', 'Pn!4"P\'4#&4$MF4%M']], new Map());
117
+ // Functional / expression indexes (e.g. multi-valued `CAST(json AS ... ARRAY)`) report a NULL
118
+ // Column_name with an Expression instead. They can't be expressed via entity decorators, so we
119
+ // exclude them entirely rather than emit a half-read (and spuriously dropped) index.
120
+ const expressionIndexes = (Set.Ω = [['&']], new Set());
108
121
  for (const row of rows) {
109
122
  const keyName = row.Key_name;
110
123
  if (keyName === 'PRIMARY')
111
124
  continue; // PK is handled separately
125
+ if (row.Column_name == null) {
126
+ expressionIndexes.add(keyName);
127
+ continue;
128
+ }
112
129
  if (!indexMap.has(keyName)) {
113
130
  indexMap.set(keyName, {
114
131
  schema: {
@@ -122,6 +139,8 @@ async function readMySQLIndexes(db, tableName) {
122
139
  }
123
140
  indexMap.get(keyName).columnsBySeq.push({ seq: Number(row.Seq_in_index), name: row.Column_name });
124
141
  }
142
+ for (const keyName of expressionIndexes)
143
+ indexMap.delete(keyName);
125
144
  // Sort columns by Seq_in_index to ensure correct multi-column index order
126
145
  for (const entry of indexMap.values()) {
127
146
  entry.columnsBySeq.sort(__assignType((a, b) => a.seq - b.seq, ['a', 'b', '', 'P"2!"2""/#']));
@@ -204,7 +223,7 @@ async function readPostgresColumns(db, tableName, pgSchema = 'public') {
204
223
  name: row.column_name,
205
224
  type: dataType,
206
225
  size: inferPostgresSize(dataType, row.character_maximum_length, row.numeric_precision),
207
- scale: row.numeric_scale != null ? Number(row.numeric_scale) : undefined,
226
+ scale: (dataType === 'decimal' || dataType === 'numeric') && row.numeric_scale != null ? Number(row.numeric_scale) : undefined,
208
227
  unsigned: false,
209
228
  nullable: row.is_nullable === 'YES',
210
229
  autoIncrement: isSerial,
@@ -294,12 +313,47 @@ async function readPostgresIndexes(db, tableName, pgSchema = 'public') {
294
313
  GROUP BY i.relname, ix.indisunique`);
295
314
  return rows.map(__assignType(row => ({
296
315
  name: row.index_name,
297
- columns: Array.isArray(row.columns) ? row.columns : [row.columns],
316
+ columns: parsePgTextArray(row.columns),
298
317
  unique: row.is_unique,
299
318
  spatial: false
300
319
  }), ['row', '', 'P"2!"/"']));
301
320
  }
302
321
  readPostgresIndexes.__type = [() => common_1.BaseDatabase, 'db', 'tableName', 'pgSchema', () => "public", () => __ΩIndexSchema, 'readPostgresIndexes', 'PP7!2"&2#&2$>%n&F`/\''];
322
+ /** Parse a Postgres text array literal like `{a,b,"c d"}` into a JS string array.
323
+ * Accepts already-parsed arrays unchanged. */
324
+ function parsePgTextArray(value) {
325
+ if (Array.isArray(value))
326
+ return value;
327
+ if (typeof value !== 'string')
328
+ return [];
329
+ const s = value.trim();
330
+ if (!s.startsWith('{') || !s.endsWith('}'))
331
+ return [s];
332
+ const inner = s.slice(1, -1);
333
+ if (inner === '')
334
+ return [];
335
+ // Split on commas not inside quotes; strip surrounding double quotes if present
336
+ const out = [];
337
+ let cur = '';
338
+ let inQuote = false;
339
+ for (let i = 0; i < inner.length; i++) {
340
+ const ch = inner[i];
341
+ if (ch === '"' && inner[i - 1] !== '\\') {
342
+ inQuote = !inQuote;
343
+ continue;
344
+ }
345
+ if (ch === ',' && !inQuote) {
346
+ out.push(cur);
347
+ cur = '';
348
+ continue;
349
+ }
350
+ cur += ch;
351
+ }
352
+ if (cur.length > 0 || out.length > 0)
353
+ out.push(cur);
354
+ return out;
355
+ }
356
+ parsePgTextArray.__type = ['value', 'parsePgTextArray', 'P#2!&F/"'];
303
357
  async function readPostgresForeignKeys(db, tableName, pgSchema = 'public') {
304
358
  // Use pg_constraint to correctly pair multi-column FK columns via conkey/confkey arrays
305
359
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -331,9 +385,9 @@ async function readPostgresForeignKeys(db, tableName, pgSchema = 'public') {
331
385
  GROUP BY c.conname, ref_cls.relname, c.confdeltype, c.confupdtype`);
332
386
  return rows.map(__assignType(row => ({
333
387
  name: row.constraint_name,
334
- columns: Array.isArray(row.columns) ? row.columns : [row.columns],
388
+ columns: parsePgTextArray(row.columns),
335
389
  referencedTable: row.referenced_table,
336
- referencedColumns: Array.isArray(row.referenced_columns) ? row.referenced_columns : [row.referenced_columns],
390
+ referencedColumns: parsePgTextArray(row.referenced_columns),
337
391
  onDelete: (row.delete_rule || 'RESTRICT').toUpperCase(),
338
392
  onUpdate: (row.update_rule || 'RESTRICT').toUpperCase()
339
393
  }), ['row', '', 'P"2!"/"']));
@@ -1 +1 @@
1
- {"version":3,"file":"db-reader.js","sourceRoot":"","sources":["../../../../../src/database/migration/create/db-reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db-reader.js","sourceRoot":"","sources":["../../../../../src/database/migration/create/db-reader.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ddl-generator.d.ts","sourceRoot":"","sources":["../../../../../src/database/migration/create/ddl-generator.ts"],"names":[],"mappings":"AACA,OAAO,EAA4E,UAAU,EAA0B,MAAM,gBAAgB,CAAC;AAI9I,eAAO,MAAM,cAAc,eAAiB,CAAC;AAE7C,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,EAAE,CA8ItD"}
1
+ {"version":3,"file":"ddl-generator.d.ts","sourceRoot":"","sources":["../../../../../src/database/migration/create/ddl-generator.ts"],"names":[],"mappings":"AACA,OAAO,EAA4E,UAAU,EAA0B,MAAM,gBAAgB,CAAC;AAE9I,eAAO,MAAM,cAAc,eAAiB,CAAC;AAsB7C,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,EAAE,CA8ItD"}
@@ -6,11 +6,30 @@ function __assignType(fn, args) {
6
6
  fn.__type = args;
7
7
  return fn;
8
8
  }
9
- const dialect_1 = require("../../dialect");
9
+ const schema_1 = require("../../schema");
10
10
  /*@ts-ignore*/
11
- var { __ΩSchemaDiff, __ΩTableDiff, __ΩDialect, __ΩTableSchema, __ΩIndexSchema, __ΩForeignKeySchema, __ΩColumnSchema } = require('./schema-model');
12
- const VALID_FK_ACTIONS = new Set(['RESTRICT', 'CASCADE', 'SET NULL', 'SET DEFAULT', 'NO ACTION']);
11
+ var { __ΩDialect, __ΩSchemaDiff, __ΩTableDiff, __ΩTableSchema, __ΩIndexSchema, __ΩForeignKeySchema, __ΩColumnSchema } = require('./schema-model');
13
12
  exports.COMMENT_PREFIX = '\x00comment:';
13
+ // --- Grammar delegation ---
14
+ //
15
+ // SQL emission lives in src/database/schema/grammar/. This module owns the high-level
16
+ // diff orchestration (statement ordering, deferred FKs, PG enum dedup, MySQL column
17
+ // reordering, etc.). The thin helpers below delegate to dialect-specific Grammars.
18
+ const grammarCache = (Map.Ω = [['&'], [() => schema_1.Grammar, 'P7!']], new Map());
19
+ function getGrammar(dialect, pgSchema) {
20
+ const key = `${dialect}:${pgSchema ?? 'public'}`;
21
+ let g = grammarCache.get(key);
22
+ if (!g) {
23
+ g = dialect === 'mysql' ? new schema_1.MySQLGrammar(pgSchema ?? 'public') : new schema_1.PostgresGrammar(pgSchema ?? 'public');
24
+ grammarCache.set(key, g);
25
+ }
26
+ return g;
27
+ }
28
+ getGrammar.__type = [() => __ΩDialect, 'dialect', 'pgSchema', () => schema_1.Grammar, 'getGrammar', 'Pn!2"&2#8P7$/%'];
29
+ function getPgGrammar(pgSchema) {
30
+ return getGrammar('postgres', pgSchema);
31
+ }
32
+ getPgGrammar.__type = ['pgSchema', () => schema_1.PostgresGrammar, 'getPgGrammar', 'P&2!8P7"/#'];
14
33
  function generateDDL(diff) {
15
34
  const statements = [];
16
35
  const { dialect, pgSchema } = diff;
@@ -167,6 +186,10 @@ function generateMySQLTableDDL(diff) {
167
186
  for (const idx of diff.removedIndexes) {
168
187
  stmts.push(`ALTER TABLE ${t} DROP INDEX ${q('mysql', idx.name)}`);
169
188
  }
189
+ // 2b. Rename indexes (after drops, so a freed-up name can be reused)
190
+ for (const r of diff.renamedIndexes) {
191
+ stmts.push(`ALTER TABLE ${t} RENAME INDEX ${q('mysql', r.from)} TO ${q('mysql', r.to)}`);
192
+ }
170
193
  // 3. Drop PK if changed (only if there was an existing PK to drop)
171
194
  // Track columns that had AUTO_INCREMENT temporarily stripped so we can restore it after ADD PK
172
195
  const autoIncStrippedForPKDrop = [];
@@ -332,6 +355,10 @@ function generatePostgresTableDDL(diff, pgSchema, globalEnumTypes) {
332
355
  for (const idx of diff.removedIndexes) {
333
356
  stmts.push(`DROP INDEX ${qTable('postgres', idx.name, pgSchema)}`);
334
357
  }
358
+ // 4b. Rename indexes (after drops, so a freed-up name can be reused)
359
+ for (const r of diff.renamedIndexes) {
360
+ stmts.push(`ALTER INDEX ${qTable('postgres', r.from, pgSchema)} RENAME TO ${q('postgres', r.to)}`);
361
+ }
335
362
  // 5. Drop PK if changed (only if there was an existing PK to drop)
336
363
  if (diff.primaryKeyChanged && diff.oldPrimaryKey && diff.oldPrimaryKey.length > 0) {
337
364
  const constraintName = diff.oldPrimaryKeyConstraintName ?? `${diff.tableName}_pkey`;
@@ -462,210 +489,32 @@ function generatePostgresTableDDL(diff, pgSchema, globalEnumTypes) {
462
489
  generatePostgresTableDDL.__type = [() => __ΩTableDiff, 'diff', 'pgSchema', 'globalEnumTypes', 'generatePostgresTableDDL', 'Pn!2"&2#8&D2$8&F/%'];
463
490
  // --- Shared helpers ---
464
491
  function createTable(table, dialect, pgSchema) {
465
- const lines = [];
466
- const pkCols = table.columns.filter(__assignType(c => c.isPrimaryKey, ['c', '', 'P"2!"/"'])).map(__assignType(c => c.name, ['c', '', 'P"2!"/"']));
467
- for (const col of table.columns) {
468
- if (dialect === 'mysql') {
469
- lines.push(` ${mysqlColumnDef(col)}`);
470
- }
471
- else {
472
- lines.push(` ${pgColumnDef(col, pgSchema)}`);
473
- }
474
- }
475
- if (pkCols.length > 0) {
476
- const quoted = pkCols.map(__assignType(c => q(dialect, c), ['c', '', 'P"2!"/"'])).join(', ');
477
- lines.push(` PRIMARY KEY (${quoted})`);
478
- }
479
- return `CREATE TABLE ${qTable(dialect, table.name, pgSchema)} (\n${lines.join(',\n')}\n)`;
492
+ return getGrammar(dialect, pgSchema).createTable(table);
480
493
  }
481
494
  createTable.__type = [() => __ΩTableSchema, 'table', () => __ΩDialect, 'dialect', 'pgSchema', 'createTable', 'Pn!2"n#2$&2%8&/&'];
482
495
  function createIndex(tableName, idx, dialect, pgSchema) {
483
- const unique = idx.unique ? 'UNIQUE ' : '';
484
- const spatial = idx.spatial && dialect === 'mysql' ? 'SPATIAL ' : '';
485
- const cols = idx.columns.map(__assignType(c => q(dialect, c), ['c', '', 'P"2!"/"'])).join(', ');
486
- return `CREATE ${spatial}${unique}INDEX ${q(dialect, idx.name)} ON ${qTable(dialect, tableName, pgSchema)} (${cols})`;
496
+ return getGrammar(dialect, pgSchema).createIndex(tableName, idx);
487
497
  }
488
498
  createIndex.__type = ['tableName', () => __ΩIndexSchema, 'idx', () => __ΩDialect, 'dialect', 'pgSchema', 'createIndex', 'P&2!n"2#n$2%&2&8&/\''];
489
499
  function addForeignKey(tableName, fk, dialect, pgSchema) {
490
- const cols = fk.columns.map(__assignType(c => q(dialect, c), ['c', '', 'P"2!"/"'])).join(', ');
491
- const refCols = fk.referencedColumns.map(__assignType(c => q(dialect, c), ['c', '', 'P"2!"/"'])).join(', ');
492
- const onDelete = validateFkAction(fk.onDelete, dialect);
493
- const onUpdate = validateFkAction(fk.onUpdate, dialect);
494
- return (`ALTER TABLE ${qTable(dialect, tableName, pgSchema)} ADD CONSTRAINT ${q(dialect, fk.name)} ` +
495
- `FOREIGN KEY (${cols}) REFERENCES ${qTable(dialect, fk.referencedTable, pgSchema)} (${refCols}) ` +
496
- `ON DELETE ${onDelete} ON UPDATE ${onUpdate}`);
500
+ return getGrammar(dialect, pgSchema).addForeignKey(tableName, fk);
497
501
  }
498
502
  addForeignKey.__type = ['tableName', () => __ΩForeignKeySchema, 'fk', () => __ΩDialect, 'dialect', 'pgSchema', 'addForeignKey', 'P&2!n"2#n$2%&2&8&/\''];
499
- function validateFkAction(action, dialect) {
500
- const upper = action.toUpperCase();
501
- if (!VALID_FK_ACTIONS.has(upper)) {
502
- throw new Error(`Invalid foreign key action: '${action}'`);
503
- }
504
- if (upper === 'SET DEFAULT' && dialect === 'mysql') {
505
- throw new Error(`Foreign key action 'SET DEFAULT' is not supported by MySQL/InnoDB`);
506
- }
507
- return upper;
508
- }
509
- validateFkAction.__type = ['action', () => __ΩDialect, 'dialect', 'validateFkAction', 'P&2!n"2#&/$'];
510
503
  function createEnumType(typeName, values, pgSchema) {
511
- const qualifiedName = qType(typeName, pgSchema);
512
- const vals = values.map(__assignType(v => `'${escapeStr(v)}'`, ['v', '', 'P"2!"/"'])).join(', ');
513
- const schemaFilter = pgSchema && pgSchema !== 'public' ? ` AND typnamespace = (SELECT oid FROM pg_namespace WHERE nspname = '${escapeStr(pgSchema)}')` : '';
514
- return [
515
- [
516
- `DO $$ BEGIN`,
517
- `IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = '${escapeStr(typeName)}'${schemaFilter}) THEN`,
518
- ` CREATE TYPE ${qualifiedName} AS ENUM (${vals});`,
519
- `END IF;`,
520
- `END $$`
521
- ].join('\n'),
522
- `CREATE CAST (text AS ${qualifiedName}) WITH INOUT AS IMPLICIT`
523
- ];
504
+ return getPgGrammar(pgSchema).createEnumType(typeName, values);
524
505
  }
525
506
  createEnumType.__type = ['typeName', 'values', 'pgSchema', 'createEnumType', 'P&2!&F2"&2#8&F/$'];
526
- // --- MySQL column definition ---
507
+ // --- Column definition (delegated to Grammar) ---
527
508
  function mysqlColumnDef(col) {
528
- let def = `${q('mysql', col.name)} ${mysqlTypeDef(col)}`;
529
- if (col.unsigned)
530
- def += ' UNSIGNED';
531
- if (!col.nullable)
532
- def += ' NOT NULL';
533
- if (col.autoIncrement)
534
- def += ' AUTO_INCREMENT';
535
- if (col.defaultExpression) {
536
- def += ` DEFAULT ${col.defaultExpression}`;
537
- }
538
- else if (col.defaultValue !== undefined) {
539
- def += ` DEFAULT '${escapeStr(String(col.defaultValue), 'mysql')}'`;
540
- }
541
- if (col.onUpdateExpression) {
542
- def += ` ON UPDATE ${col.onUpdateExpression}`;
543
- }
544
- return def;
509
+ return getGrammar('mysql').columnDef(col);
545
510
  }
546
511
  mysqlColumnDef.__type = [() => __ΩColumnSchema, 'col', 'mysqlColumnDef', 'Pn!2"&/#'];
547
- function mysqlTypeDef(col) {
548
- switch (col.type) {
549
- case 'varchar':
550
- return `VARCHAR(${col.size || 255})`;
551
- case 'char':
552
- return `CHAR(${col.size || 1})`;
553
- case 'tinyint':
554
- return col.size === 1 ? 'TINYINT(1)' : 'TINYINT';
555
- case 'smallint':
556
- return 'SMALLINT';
557
- case 'int':
558
- return 'INT';
559
- case 'bigint':
560
- return 'BIGINT';
561
- case 'float':
562
- return 'FLOAT';
563
- case 'double':
564
- return 'DOUBLE';
565
- case 'decimal':
566
- if (col.size === undefined)
567
- return 'DECIMAL';
568
- return col.scale !== undefined ? `DECIMAL(${col.size},${col.scale})` : `DECIMAL(${col.size})`;
569
- case 'boolean':
570
- return 'TINYINT(1)';
571
- case 'date':
572
- return 'DATE';
573
- case 'datetime':
574
- return 'DATETIME';
575
- case 'timestamp':
576
- return 'TIMESTAMP';
577
- case 'text':
578
- return 'TEXT';
579
- case 'binary':
580
- return `BINARY(${col.size || 16})`;
581
- case 'blob':
582
- return 'BLOB';
583
- case 'json':
584
- return 'JSON';
585
- case 'point':
586
- return 'POINT';
587
- case 'enum':
588
- if (col.enumValues) {
589
- const vals = col.enumValues.map(__assignType(v => `'${escapeStr(v, 'mysql')}'`, ['v', '', 'P"2!"/"'])).join(',');
590
- return `ENUM(${vals})`;
591
- }
592
- return 'VARCHAR(255)';
593
- default:
594
- return col.type.toUpperCase();
595
- }
596
- }
597
- mysqlTypeDef.__type = [() => __ΩColumnSchema, 'col', 'mysqlTypeDef', 'Pn!2"&/#'];
598
- // --- PostgreSQL column definition ---
599
512
  function pgColumnDef(col, pgSchema) {
600
- let typeDef;
601
- if (col.autoIncrement) {
602
- // Use SERIAL/BIGSERIAL for auto-increment
603
- typeDef = col.type === 'bigint' ? 'BIGSERIAL' : 'SERIAL';
604
- }
605
- else {
606
- typeDef = pgTypeDef(col, pgSchema);
607
- }
608
- let def = `${q('postgres', col.name)} ${typeDef}`;
609
- if (!col.nullable && !col.autoIncrement)
610
- def += ' NOT NULL';
611
- if (!col.autoIncrement) {
612
- if (col.defaultExpression) {
613
- def += ` DEFAULT ${col.defaultExpression}`;
614
- }
615
- else if (col.defaultValue !== undefined) {
616
- def += ` DEFAULT '${escapeStr(String(col.defaultValue))}'`;
617
- }
618
- }
619
- return def;
513
+ return getGrammar('postgres', pgSchema).columnDef(col);
620
514
  }
621
515
  pgColumnDef.__type = [() => __ΩColumnSchema, 'col', 'pgSchema', 'pgColumnDef', 'Pn!2"&2#8&/$'];
622
516
  function pgTypeDef(col, pgSchema) {
623
- switch (col.type) {
624
- case 'varchar':
625
- return col.size ? `VARCHAR(${col.size})` : 'VARCHAR';
626
- case 'char':
627
- return `CHAR(${col.size || 1})`;
628
- case 'smallint':
629
- return 'SMALLINT';
630
- case 'int':
631
- case 'integer':
632
- return 'INTEGER';
633
- case 'bigint':
634
- return 'BIGINT';
635
- case 'real':
636
- case 'float':
637
- return 'REAL';
638
- case 'double precision':
639
- case 'double':
640
- return 'DOUBLE PRECISION';
641
- case 'decimal':
642
- case 'numeric':
643
- if (col.size === undefined)
644
- return 'NUMERIC';
645
- return col.scale !== undefined ? `NUMERIC(${col.size},${col.scale})` : `NUMERIC(${col.size})`;
646
- case 'boolean':
647
- return 'BOOLEAN';
648
- case 'date':
649
- return 'DATE';
650
- case 'timestamp':
651
- return 'TIMESTAMP';
652
- case 'timestamptz':
653
- return 'TIMESTAMPTZ';
654
- case 'text':
655
- return 'TEXT';
656
- case 'bytea':
657
- return 'BYTEA';
658
- case 'json':
659
- return 'JSON';
660
- case 'jsonb':
661
- return 'JSONB';
662
- case 'uuid':
663
- return 'UUID';
664
- case 'enum':
665
- return col.enumTypeName ? qType(col.enumTypeName, pgSchema) : 'TEXT';
666
- default:
667
- return col.type.toUpperCase();
668
- }
517
+ return getPgGrammar(pgSchema).columnType(col);
669
518
  }
670
519
  pgTypeDef.__type = [() => __ΩColumnSchema, 'col', 'pgSchema', 'pgTypeDef', 'Pn!2"&2#8&/$'];
671
520
  // --- AFTER clause helpers (MySQL) ---
@@ -705,36 +554,25 @@ function findAfterClauseForExisting(colName, diff, dialect) {
705
554
  }
706
555
  findAfterClauseForExisting.__type = ['colName', () => __ΩTableDiff, 'diff', () => __ΩDialect, 'dialect', 'findAfterClauseForExisting', 'P&2!n"2#n$2%&/&'];
707
556
  function q(dialect, name) {
708
- return (0, dialect_1.quoteId)(dialect, name);
557
+ return getGrammar(dialect).quote(name);
709
558
  }
710
559
  q.__type = [() => __ΩDialect, 'dialect', 'name', 'q', 'Pn!2"&2#&/$'];
711
560
  function qTable(dialect, name, pgSchema) {
712
- if (dialect === 'postgres' && pgSchema && pgSchema !== 'public') {
713
- return `${(0, dialect_1.quoteId)(dialect, pgSchema)}.${(0, dialect_1.quoteId)(dialect, name)}`;
714
- }
715
- return (0, dialect_1.quoteId)(dialect, name);
561
+ return getGrammar(dialect, pgSchema).qualifiedTable(name);
716
562
  }
717
563
  qTable.__type = [() => __ΩDialect, 'dialect', 'name', 'pgSchema', 'qTable', 'Pn!2"&2#&2$8&/%'];
718
564
  function qType(typeName, pgSchema) {
719
- if (pgSchema && pgSchema !== 'public') {
720
- return `${(0, dialect_1.quoteId)('postgres', pgSchema)}.${(0, dialect_1.quoteId)('postgres', typeName)}`;
721
- }
722
- return (0, dialect_1.quoteId)('postgres', typeName);
565
+ return getPgGrammar(pgSchema).qualifiedType(typeName);
723
566
  }
724
567
  qType.__type = ['typeName', 'pgSchema', 'qType', 'P&2!&2"8&/#'];
725
568
  function pgRegclass(name, pgSchema) {
726
- // Build a regclass-compatible identifier string with proper quoting for use inside SQL string literals
727
- if (pgSchema && pgSchema !== 'public') {
728
- return `${(0, dialect_1.quoteId)('postgres', pgSchema)}.${(0, dialect_1.quoteId)('postgres', name)}`;
729
- }
730
- return (0, dialect_1.quoteId)('postgres', name);
569
+ // Same form as qualifiedType used in SQL string literals (quoted identifiers).
570
+ return getPgGrammar(pgSchema).qualifiedType(name);
731
571
  }
732
572
  pgRegclass.__type = ['name', 'pgSchema', 'pgRegclass', 'P&2!&2"8&/#'];
733
573
  function escapeStr(s, dialect) {
734
- // MySQL also treats backslashes as escape characters in string literals
735
- if (dialect === 'mysql') {
574
+ if (dialect === 'mysql')
736
575
  s = s.replace(/\\/g, '\\\\');
737
- }
738
576
  return s.replace(/'/g, "''");
739
577
  }
740
578
  escapeStr.__type = ['s', () => __ΩDialect, 'dialect', 'escapeStr', 'P&2!n"2#8&/$'];