@quereus/quereus 2.2.0 → 2.4.0

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 (64) hide show
  1. package/README.md +1 -0
  2. package/dist/src/common/json-types.d.ts.map +1 -1
  3. package/dist/src/common/json-types.js +0 -1
  4. package/dist/src/common/json-types.js.map +1 -1
  5. package/dist/src/common/types.d.ts +1 -1
  6. package/dist/src/common/types.d.ts.map +1 -1
  7. package/dist/src/emit/ast-stringify.d.ts.map +1 -1
  8. package/dist/src/emit/ast-stringify.js +11 -0
  9. package/dist/src/emit/ast-stringify.js.map +1 -1
  10. package/dist/src/index.d.ts +1 -0
  11. package/dist/src/index.d.ts.map +1 -1
  12. package/dist/src/index.js +1 -0
  13. package/dist/src/index.js.map +1 -1
  14. package/dist/src/parser/ast.d.ts +6 -0
  15. package/dist/src/parser/ast.d.ts.map +1 -1
  16. package/dist/src/parser/parser.d.ts.map +1 -1
  17. package/dist/src/parser/parser.js +23 -1
  18. package/dist/src/parser/parser.js.map +1 -1
  19. package/dist/src/planner/building/alter-table.d.ts.map +1 -1
  20. package/dist/src/planner/building/alter-table.js +5 -0
  21. package/dist/src/planner/building/alter-table.js.map +1 -1
  22. package/dist/src/planner/building/foreign-key-builder.d.ts.map +1 -1
  23. package/dist/src/planner/building/foreign-key-builder.js +11 -2
  24. package/dist/src/planner/building/foreign-key-builder.js.map +1 -1
  25. package/dist/src/planner/nodes/alter-table-node.d.ts +6 -0
  26. package/dist/src/planner/nodes/alter-table-node.d.ts.map +1 -1
  27. package/dist/src/planner/nodes/alter-table-node.js +2 -0
  28. package/dist/src/planner/nodes/alter-table-node.js.map +1 -1
  29. package/dist/src/planner/rules/join/rule-join-physical-selection.d.ts.map +1 -1
  30. package/dist/src/planner/rules/join/rule-join-physical-selection.js +48 -6
  31. package/dist/src/planner/rules/join/rule-join-physical-selection.js.map +1 -1
  32. package/dist/src/planner/stats/basic-estimates.d.ts.map +1 -1
  33. package/dist/src/planner/stats/basic-estimates.js +4 -2
  34. package/dist/src/planner/stats/basic-estimates.js.map +1 -1
  35. package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
  36. package/dist/src/runtime/emit/alter-table.js +212 -0
  37. package/dist/src/runtime/emit/alter-table.js.map +1 -1
  38. package/dist/src/schema/catalog.d.ts +4 -0
  39. package/dist/src/schema/catalog.d.ts.map +1 -1
  40. package/dist/src/schema/catalog.js +12 -94
  41. package/dist/src/schema/catalog.js.map +1 -1
  42. package/dist/src/schema/ddl-generator.d.ts +25 -0
  43. package/dist/src/schema/ddl-generator.d.ts.map +1 -0
  44. package/dist/src/schema/ddl-generator.js +225 -0
  45. package/dist/src/schema/ddl-generator.js.map +1 -0
  46. package/dist/src/schema/schema-differ.d.ts +7 -0
  47. package/dist/src/schema/schema-differ.d.ts.map +1 -1
  48. package/dist/src/schema/schema-differ.js +64 -3
  49. package/dist/src/schema/schema-differ.js.map +1 -1
  50. package/dist/src/util/hrtime.d.ts.map +1 -1
  51. package/dist/src/util/hrtime.js.map +1 -1
  52. package/dist/src/vtab/memory/layer/manager.d.ts +5 -0
  53. package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
  54. package/dist/src/vtab/memory/layer/manager.js +25 -1
  55. package/dist/src/vtab/memory/layer/manager.js.map +1 -1
  56. package/dist/src/vtab/memory/module.d.ts.map +1 -1
  57. package/dist/src/vtab/memory/module.js +22 -0
  58. package/dist/src/vtab/memory/module.js.map +1 -1
  59. package/dist/src/vtab/memory/table.d.ts.map +1 -1
  60. package/dist/src/vtab/memory/table.js +2 -0
  61. package/dist/src/vtab/memory/table.js.map +1 -1
  62. package/dist/src/vtab/module.d.ts +6 -0
  63. package/dist/src/vtab/module.d.ts.map +1 -1
  64. package/package.json +8 -4
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/schema/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAKpD,OAAO,KAAK,KAAK,GAAG,MAAM,kBAAkB,CAAC;AAG7C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,UAAU,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACtF;AAED,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACZ;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,GAAE,MAAe,GAAG,aAAa,CAoD7F;AAmID;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,GAAG,CAAC,iBAAiB,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CA4D1G"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/schema/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAKpD,OAAO,KAAK,KAAK,GAAG,MAAM,kBAAkB,CAAC;AAG7C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,UAAU,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACtF,UAAU,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACZ;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,GAAE,MAAe,GAAG,aAAa,CAoD7F;AAwCD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,GAAG,CAAC,iBAAiB,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CA4D1G"}
@@ -1,4 +1,5 @@
1
- import { createTableToString, createViewToString, createIndexToString, quoteIdentifier } from '../emit/ast-stringify.js';
1
+ import { createTableToString, createViewToString, createIndexToString } from '../emit/ast-stringify.js';
2
+ import { generateTableDDL, generateIndexDDL } from './ddl-generator.js';
2
3
  /**
3
4
  * Collects current schema state from the database into a catalog representation
4
5
  */
@@ -20,14 +21,14 @@ export function collectSchemaCatalog(db, schemaName = 'main') {
20
21
  // Collect tables
21
22
  for (const tableSchema of schema.getAllTables()) {
22
23
  if (!tableSchema.isView) {
23
- tables.push(tableSchemaToCatalog(tableSchema));
24
+ tables.push(tableSchemaToCatalog(tableSchema, db));
24
25
  // Collect indexes for this table
25
26
  if (tableSchema.indexes && tableSchema.indexes.length > 0) {
26
27
  for (const indexSchema of tableSchema.indexes) {
27
28
  indexes.push({
28
29
  name: indexSchema.name,
29
30
  tableName: tableSchema.name,
30
- ddl: generateIndexDDL(indexSchema, tableSchema)
31
+ ddl: generateIndexDDL(indexSchema, tableSchema, db)
31
32
  });
32
33
  }
33
34
  }
@@ -49,19 +50,24 @@ export function collectSchemaCatalog(db, schemaName = 'main') {
49
50
  assertions
50
51
  };
51
52
  }
52
- function tableSchemaToCatalog(tableSchema) {
53
+ function tableSchemaToCatalog(tableSchema, db) {
53
54
  // Generate canonical DDL from TableSchema
54
- const ddl = generateTableDDL(tableSchema);
55
+ const ddl = generateTableDDL(tableSchema, db);
55
56
  const columns = tableSchema.columns.map(col => ({
56
57
  name: col.name,
57
58
  type: col.logicalType.name,
58
59
  notNull: col.notNull,
59
60
  primaryKey: col.primaryKey
60
61
  }));
62
+ const primaryKey = tableSchema.primaryKeyDefinition.map(pk => ({
63
+ columnName: tableSchema.columns[pk.index].name,
64
+ desc: pk.desc ?? false,
65
+ }));
61
66
  return {
62
67
  name: tableSchema.name,
63
68
  ddl,
64
- columns
69
+ columns,
70
+ primaryKey,
65
71
  };
66
72
  }
67
73
  function viewSchemaToCatalog(viewSchema) {
@@ -76,94 +82,6 @@ function assertionSchemaToCatalog(assertionSchema) {
76
82
  ddl: `CREATE ASSERTION ${assertionSchema.name} CHECK (${assertionSchema.violationSql})`
77
83
  };
78
84
  }
79
- /**
80
- * Generates canonical DDL for an index from its schema
81
- */
82
- function generateIndexDDL(indexSchema, tableSchema) {
83
- // Convert IndexSchema back to AST CreateIndexStmt for stringification
84
- const indexStmt = {
85
- type: 'createIndex',
86
- index: { type: 'identifier', name: indexSchema.name },
87
- table: { type: 'identifier', name: tableSchema.name },
88
- ifNotExists: false,
89
- isUnique: false,
90
- columns: indexSchema.columns.map(col => ({
91
- name: tableSchema.columns[col.index].name,
92
- expr: undefined,
93
- collation: col.collation,
94
- direction: col.desc ? 'desc' : 'asc'
95
- }))
96
- };
97
- return createIndexToString(indexStmt);
98
- }
99
- /**
100
- * Generates canonical DDL for a table from its schema
101
- */
102
- function generateTableDDL(tableSchema) {
103
- const parts = ['CREATE'];
104
- if (tableSchema.isTemporary) {
105
- parts.push('TEMP');
106
- }
107
- parts.push('TABLE');
108
- parts.push(`"${tableSchema.name}"`);
109
- // Generate column definitions
110
- const columnDefs = [];
111
- for (const col of tableSchema.columns) {
112
- let colDef = `"${col.name}"`;
113
- if (col.logicalType) {
114
- colDef += ` ${col.logicalType.name}`;
115
- }
116
- if (col.notNull) {
117
- colDef += ' NOT NULL';
118
- }
119
- if (col.primaryKey && tableSchema.primaryKeyDefinition.length === 1) {
120
- colDef += ' PRIMARY KEY';
121
- }
122
- columnDefs.push(colDef);
123
- }
124
- // Add table-level PRIMARY KEY if composite
125
- if (tableSchema.primaryKeyDefinition.length > 1) {
126
- const pkCols = tableSchema.primaryKeyDefinition
127
- .map(pk => `"${tableSchema.columns[pk.index].name}"`)
128
- .join(', ');
129
- columnDefs.push(`PRIMARY KEY (${pkCols})`);
130
- }
131
- parts.push(`(${columnDefs.join(', ')})`);
132
- // Add USING clause
133
- if (tableSchema.vtabModuleName) {
134
- parts.push(`USING ${tableSchema.vtabModuleName}`);
135
- if (tableSchema.vtabArgs && Object.keys(tableSchema.vtabArgs).length > 0) {
136
- const args = Object.entries(tableSchema.vtabArgs)
137
- .map(([key, value]) => `${key} = ${JSON.stringify(value)}`)
138
- .join(', ');
139
- parts.push(`(${args})`);
140
- }
141
- }
142
- // Add WITH TAGS clause if present
143
- if (tableSchema.tags && Object.keys(tableSchema.tags).length > 0) {
144
- parts.push(formatTagsClause(tableSchema.tags));
145
- }
146
- return parts.join(' ');
147
- }
148
- /** Formats a tag value as a SQL literal */
149
- function formatTagValue(value) {
150
- if (value === null)
151
- return 'NULL';
152
- if (typeof value === 'boolean')
153
- return value ? 'TRUE' : 'FALSE';
154
- if (typeof value === 'number')
155
- return String(value);
156
- if (typeof value === 'string')
157
- return `'${value.replace(/'/g, "''")}'`;
158
- return String(value);
159
- }
160
- /** Formats a tags record as a WITH TAGS (...) clause */
161
- function formatTagsClause(tags) {
162
- const entries = Object.entries(tags)
163
- .map(([key, value]) => `${quoteIdentifier(key)} = ${formatTagValue(value)}`)
164
- .join(', ');
165
- return `WITH TAGS (${entries})`;
166
- }
167
85
  /**
168
86
  * Generates canonical DDL from a declared schema AST
169
87
  */
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/schema/catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/schema/catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Canonical DDL generation from TableSchema / IndexSchema.
3
+ *
4
+ * Exports:
5
+ * - generateTableDDL(tableSchema, db?) => CREATE TABLE ...
6
+ * - generateIndexDDL(indexSchema, tableSchema, db?) => CREATE INDEX ...
7
+ *
8
+ * When `db` is omitted, the generator emits fully-qualified DDL with
9
+ * unconditional annotations (schema name qualified, USING emitted,
10
+ * nullability annotated on every column). This makes the output safe to
11
+ * persist and re-parse in any session.
12
+ *
13
+ * When `db` is provided, clauses that match the current session defaults
14
+ * are elided for readability:
15
+ * - schema name qualification (db.schemaManager current schema)
16
+ * - USING module / args (db.options.default_vtab_module / default_vtab_args)
17
+ * - per-column NULL / NOT NULL annotation (db.options.default_column_nullability)
18
+ */
19
+ import type { Database } from '../core/database.js';
20
+ import type { TableSchema, IndexSchema } from './table.js';
21
+ /** Generate canonical DDL for a table from its schema. */
22
+ export declare function generateTableDDL(tableSchema: TableSchema, db?: Database): string;
23
+ /** Generate canonical DDL for an index from its schema. */
24
+ export declare function generateIndexDDL(indexSchema: IndexSchema, tableSchema: TableSchema, db?: Database): string;
25
+ //# sourceMappingURL=ddl-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ddl-generator.d.ts","sourceRoot":"","sources":["../../../src/schema/ddl-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAe3D,0DAA0D;AAC1D,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAoChF;AAED,2DAA2D;AAC3D,wBAAgB,gBAAgB,CAC/B,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,EAAE,CAAC,EAAE,QAAQ,GACX,MAAM,CAoBR"}
@@ -0,0 +1,225 @@
1
+ /**
2
+ * Canonical DDL generation from TableSchema / IndexSchema.
3
+ *
4
+ * Exports:
5
+ * - generateTableDDL(tableSchema, db?) => CREATE TABLE ...
6
+ * - generateIndexDDL(indexSchema, tableSchema, db?) => CREATE INDEX ...
7
+ *
8
+ * When `db` is omitted, the generator emits fully-qualified DDL with
9
+ * unconditional annotations (schema name qualified, USING emitted,
10
+ * nullability annotated on every column). This makes the output safe to
11
+ * persist and re-parse in any session.
12
+ *
13
+ * When `db` is provided, clauses that match the current session defaults
14
+ * are elided for readability:
15
+ * - schema name qualification (db.schemaManager current schema)
16
+ * - USING module / args (db.options.default_vtab_module / default_vtab_args)
17
+ * - per-column NULL / NOT NULL annotation (db.options.default_column_nullability)
18
+ */
19
+ import { quoteIdentifier, expressionToString } from '../emit/ast-stringify.js';
20
+ /**
21
+ * Unconditionally double-quote an identifier, escaping internal quotes.
22
+ * Used for table/column names in DDL where consistent quoting is safer than
23
+ * the context-sensitive behavior of `quoteIdentifier` (which is for AST stringification).
24
+ */
25
+ function quoteName(name) {
26
+ return `"${name.replace(/"/g, '""')}"`;
27
+ }
28
+ /** Generate canonical DDL for a table from its schema. */
29
+ export function generateTableDDL(tableSchema, db) {
30
+ const ctx = resolveEmitContext(db);
31
+ const parts = ['CREATE'];
32
+ if (tableSchema.isTemporary)
33
+ parts.push('TEMP');
34
+ parts.push('TABLE', qualifiedName(tableSchema.schemaName, tableSchema.name, ctx.currentSchemaName));
35
+ const columnDefs = [];
36
+ for (const col of tableSchema.columns) {
37
+ columnDefs.push(formatColumnDef(col, tableSchema, ctx.defaultNotNull));
38
+ }
39
+ // Table-level PRIMARY KEY: empty () for singleton, (a, b, ...) for composite.
40
+ // Single-column PK is emitted inline on the column above.
41
+ if (tableSchema.primaryKeyDefinition.length === 0) {
42
+ columnDefs.push('PRIMARY KEY ()');
43
+ }
44
+ else if (tableSchema.primaryKeyDefinition.length > 1) {
45
+ const pkCols = tableSchema.primaryKeyDefinition
46
+ .map(pk => quoteName(tableSchema.columns[pk.index].name))
47
+ .join(', ');
48
+ columnDefs.push(`PRIMARY KEY (${pkCols})`);
49
+ }
50
+ parts.push(`(${columnDefs.join(', ')})`);
51
+ // USING clause: emit when vtabModuleName differs from the session default,
52
+ // or always when no db context is provided.
53
+ const usingClause = formatUsingClause(tableSchema, ctx);
54
+ if (usingClause)
55
+ parts.push(usingClause);
56
+ // Table-level WITH TAGS
57
+ if (hasTags(tableSchema.tags)) {
58
+ parts.push(formatTagsClause(tableSchema.tags));
59
+ }
60
+ return parts.join(' ');
61
+ }
62
+ /** Generate canonical DDL for an index from its schema. */
63
+ export function generateIndexDDL(indexSchema, tableSchema, db) {
64
+ const ctx = resolveEmitContext(db);
65
+ const parts = ['CREATE INDEX'];
66
+ parts.push(quoteName(indexSchema.name));
67
+ parts.push('ON');
68
+ parts.push(qualifiedName(tableSchema.schemaName, tableSchema.name, ctx.currentSchemaName));
69
+ const cols = indexSchema.columns.map(col => {
70
+ let colStr = quoteName(tableSchema.columns[col.index].name);
71
+ if (col.collation)
72
+ colStr += ` COLLATE ${col.collation}`;
73
+ if (col.desc)
74
+ colStr += ' DESC';
75
+ return colStr;
76
+ });
77
+ parts.push(`(${cols.join(', ')})`);
78
+ if (hasTags(indexSchema.tags)) {
79
+ parts.push(formatTagsClause(indexSchema.tags));
80
+ }
81
+ return parts.join(' ');
82
+ }
83
+ function resolveEmitContext(db) {
84
+ if (!db) {
85
+ return {
86
+ currentSchemaName: undefined,
87
+ defaultNotNull: undefined,
88
+ defaultVtabModule: undefined,
89
+ defaultVtabArgs: undefined,
90
+ };
91
+ }
92
+ const nullability = db.options.getStringOption('default_column_nullability');
93
+ return {
94
+ currentSchemaName: db.schemaManager.getCurrentSchemaName(),
95
+ defaultNotNull: nullability === 'not_null',
96
+ defaultVtabModule: db.options.getStringOption('default_vtab_module'),
97
+ defaultVtabArgs: db.options.getObjectOption('default_vtab_args'),
98
+ };
99
+ }
100
+ function qualifiedName(schemaName, name, currentSchemaName) {
101
+ const quotedName = quoteName(name);
102
+ if (!schemaName)
103
+ return quotedName;
104
+ // Elide qualification when schema matches the session's current schema.
105
+ if (currentSchemaName !== undefined && schemaName.toLowerCase() === currentSchemaName.toLowerCase()) {
106
+ return quotedName;
107
+ }
108
+ return `${quoteName(schemaName)}.${quotedName}`;
109
+ }
110
+ function formatColumnDef(col, tableSchema, defaultNotNull) {
111
+ let colDef = quoteName(col.name);
112
+ if (col.logicalType)
113
+ colDef += ` ${col.logicalType.name}`;
114
+ const nullAnnotation = nullabilityAnnotation(col.notNull, defaultNotNull);
115
+ if (nullAnnotation)
116
+ colDef += ` ${nullAnnotation}`;
117
+ if (col.primaryKey && tableSchema.primaryKeyDefinition.length === 1) {
118
+ colDef += ' PRIMARY KEY';
119
+ }
120
+ if (col.defaultValue !== null && col.defaultValue !== undefined) {
121
+ colDef += ` DEFAULT ${formatDefaultExpression(col.defaultValue)}`;
122
+ }
123
+ if (hasTags(col.tags)) {
124
+ colDef += ' ' + formatTagsClause(col.tags);
125
+ }
126
+ return colDef;
127
+ }
128
+ /**
129
+ * Decides what nullability annotation (if any) to emit.
130
+ *
131
+ * - With a known session default: emit only the annotation that differs from the default.
132
+ * - Without a session default: always emit explicitly (safe for persistence under any reader).
133
+ */
134
+ function nullabilityAnnotation(notNull, defaultNotNull) {
135
+ if (defaultNotNull === undefined) {
136
+ return notNull ? 'NOT NULL' : 'NULL';
137
+ }
138
+ if (defaultNotNull && !notNull)
139
+ return 'NULL';
140
+ if (!defaultNotNull && notNull)
141
+ return 'NOT NULL';
142
+ return null;
143
+ }
144
+ function formatUsingClause(tableSchema, ctx) {
145
+ const moduleName = tableSchema.vtabModuleName;
146
+ if (!moduleName)
147
+ return null;
148
+ const args = tableSchema.vtabArgs ?? {};
149
+ const hasArgs = Object.keys(args).length > 0;
150
+ // If no db context, always emit both module and args.
151
+ if (ctx.defaultVtabModule === undefined) {
152
+ let clause = `USING ${moduleName}`;
153
+ if (hasArgs)
154
+ clause += ` (${formatVtabArgs(args)})`;
155
+ return clause;
156
+ }
157
+ const moduleMatches = moduleName === ctx.defaultVtabModule;
158
+ const defaultArgs = ctx.defaultVtabArgs ?? {};
159
+ const argsMatch = recordsShallowEqual(args, defaultArgs);
160
+ if (moduleMatches && argsMatch)
161
+ return null;
162
+ let clause = `USING ${moduleName}`;
163
+ if (hasArgs)
164
+ clause += ` (${formatVtabArgs(args)})`;
165
+ return clause;
166
+ }
167
+ function formatVtabArgs(args) {
168
+ return Object.entries(args)
169
+ .map(([key, value]) => `${key} = ${formatSqlLiteral(value)}`)
170
+ .join(', ');
171
+ }
172
+ function formatDefaultExpression(expr) {
173
+ // Prefer AST stringifier, which preserves lexeme for literals where possible.
174
+ return expressionToString(expr);
175
+ }
176
+ /** Format a SqlValue as a SQL literal (suitable for DEFAULT / USING args). */
177
+ function formatSqlLiteral(value) {
178
+ if (value === null)
179
+ return 'NULL';
180
+ if (typeof value === 'string')
181
+ return `'${value.replace(/'/g, "''")}'`;
182
+ if (typeof value === 'number' || typeof value === 'bigint')
183
+ return String(value);
184
+ if (typeof value === 'boolean')
185
+ return value ? '1' : '0';
186
+ // Fallback for complex values — stringify as JSON string literal.
187
+ return `'${JSON.stringify(value).replace(/'/g, "''")}'`;
188
+ }
189
+ /**
190
+ * Format a tag value. Differs from formatSqlLiteral: booleans emit TRUE/FALSE.
191
+ */
192
+ function formatTagValue(value) {
193
+ if (value === null)
194
+ return 'NULL';
195
+ if (typeof value === 'boolean')
196
+ return value ? 'TRUE' : 'FALSE';
197
+ if (typeof value === 'number' || typeof value === 'bigint')
198
+ return String(value);
199
+ if (typeof value === 'string')
200
+ return `'${value.replace(/'/g, "''")}'`;
201
+ return String(value);
202
+ }
203
+ function formatTagsClause(tags) {
204
+ const entries = Object.entries(tags)
205
+ .map(([key, value]) => `${quoteIdentifier(key)} = ${formatTagValue(value)}`)
206
+ .join(', ');
207
+ return `WITH TAGS (${entries})`;
208
+ }
209
+ function hasTags(tags) {
210
+ return !!tags && Object.keys(tags).length > 0;
211
+ }
212
+ function recordsShallowEqual(a, b) {
213
+ const aKeys = Object.keys(a);
214
+ const bKeys = Object.keys(b);
215
+ if (aKeys.length !== bKeys.length)
216
+ return false;
217
+ for (const k of aKeys) {
218
+ if (!Object.hasOwn(b, k))
219
+ return false;
220
+ if (a[k] !== b[k])
221
+ return false;
222
+ }
223
+ return true;
224
+ }
225
+ //# sourceMappingURL=ddl-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ddl-generator.js","sourceRoot":"","sources":["../../../src/schema/ddl-generator.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,13 @@ export interface TableAlterDiff {
18
18
  tableName: string;
19
19
  columnsToAdd: string[];
20
20
  columnsToDrop: string[];
21
+ primaryKeyChange?: {
22
+ oldPkColumns: string[];
23
+ newPkColumns: Array<{
24
+ name: string;
25
+ direction?: 'asc' | 'desc';
26
+ }>;
27
+ };
21
28
  }
22
29
  /**
23
30
  * Computes the difference between declared schema and actual catalog
@@ -1 +1 @@
1
- {"version":3,"file":"schema-differ.d.ts","sourceRoot":"","sources":["../../../src/schema/schema-differ.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,KAAK,GAAG,MAAM,kBAAkB,CAAC;AAM7C;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,cAAc,EAAE,CAAC;IAChC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAChC,cAAc,EAAE,GAAG,CAAC,iBAAiB,EACrC,aAAa,EAAE,aAAa,GAC1B,UAAU,CAmHZ;AAsHD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAE5D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAwCpF"}
1
+ {"version":3,"file":"schema-differ.d.ts","sourceRoot":"","sources":["../../../src/schema/schema-differ.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,KAAK,GAAG,MAAM,kBAAkB,CAAC;AAM7C;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,cAAc,EAAE,CAAC;IAChC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,gBAAgB,CAAC,EAAE;QAClB,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,YAAY,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;SAAE,CAAC,CAAC;KAClE,CAAC;CACF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAChC,cAAc,EAAE,GAAG,CAAC,iBAAiB,EACrC,aAAa,EAAE,aAAa,GAC1B,UAAU,CAmHZ;AA+KD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAE5D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAkDpF"}
@@ -56,7 +56,7 @@ export function computeSchemaDiff(declaredSchema, actualCatalog) {
56
56
  else {
57
57
  // Table exists - check if it needs alteration
58
58
  const alterDiff = computeTableAlterDiff(declaredTable, actualTables.get(name));
59
- if (alterDiff.columnsToAdd.length > 0 || alterDiff.columnsToDrop.length > 0) {
59
+ if (alterDiff.columnsToAdd.length > 0 || alterDiff.columnsToDrop.length > 0 || alterDiff.primaryKeyChange) {
60
60
  diff.tablesToAlter.push(alterDiff);
61
61
  }
62
62
  }
@@ -174,7 +174,7 @@ function computeTableAlterDiff(declaredTable, actualTable) {
174
174
  const diff = {
175
175
  tableName: declaredTable.tableStmt.table.name,
176
176
  columnsToAdd: [],
177
- columnsToDrop: []
177
+ columnsToDrop: [],
178
178
  };
179
179
  const declaredColumns = new Set(declaredTable.tableStmt.columns.map(c => c.name.toLowerCase()));
180
180
  const actualColumns = new Set(actualTable.columns.map(c => c.name.toLowerCase()));
@@ -190,8 +190,58 @@ function computeTableAlterDiff(declaredTable, actualTable) {
190
190
  diff.columnsToDrop.push(col.name);
191
191
  }
192
192
  }
193
+ // Detect PK changes
194
+ const declaredPk = extractDeclaredPK(declaredTable);
195
+ const actualPk = actualTable.primaryKey;
196
+ if (!pkSequencesEqual(declaredPk, actualPk)) {
197
+ diff.primaryKeyChange = {
198
+ oldPkColumns: actualPk.map(pk => pk.columnName),
199
+ newPkColumns: declaredPk,
200
+ };
201
+ }
193
202
  return diff;
194
203
  }
204
+ function extractDeclaredPK(declaredTable) {
205
+ const stmt = declaredTable.tableStmt;
206
+ // Check for table-level PRIMARY KEY constraint
207
+ if (stmt.constraints) {
208
+ for (const constraint of stmt.constraints) {
209
+ if (constraint.type === 'primaryKey' && constraint.columns) {
210
+ return constraint.columns.map(c => ({
211
+ name: c.name,
212
+ direction: c.direction,
213
+ }));
214
+ }
215
+ }
216
+ }
217
+ // Check for column-level PRIMARY KEY
218
+ const pkCols = [];
219
+ for (const col of stmt.columns) {
220
+ if (col.constraints?.some(c => c.type === 'primaryKey')) {
221
+ const pkConstraint = col.constraints.find(c => c.type === 'primaryKey');
222
+ pkCols.push({
223
+ name: col.name,
224
+ direction: pkConstraint?.type === 'primaryKey' ? pkConstraint.direction : undefined,
225
+ });
226
+ }
227
+ }
228
+ if (pkCols.length > 0)
229
+ return pkCols;
230
+ // No explicit PK — Quereus defaults to all columns
231
+ return stmt.columns.map(c => ({ name: c.name }));
232
+ }
233
+ function pkSequencesEqual(declared, actual) {
234
+ if (declared.length !== actual.length)
235
+ return false;
236
+ for (let i = 0; i < declared.length; i++) {
237
+ if (declared[i].name.toLowerCase() !== actual[i].columnName.toLowerCase())
238
+ return false;
239
+ const declaredDesc = declared[i].direction === 'desc';
240
+ if (declaredDesc !== actual[i].desc)
241
+ return false;
242
+ }
243
+ return true;
244
+ }
195
245
  /**
196
246
  * Serializes a schema diff to JSON string
197
247
  */
@@ -223,12 +273,23 @@ export function generateMigrationDDL(diff, schemaName) {
223
273
  statements.push(...diff.viewsToCreate);
224
274
  statements.push(...diff.indexesToCreate);
225
275
  statements.push(...diff.assertionsToCreate);
226
- // Alter existing tables
276
+ // Alter existing tables (order: ADD COLUMN → ALTER PRIMARY KEY → DROP COLUMN)
227
277
  for (const alter of diff.tablesToAlter) {
228
278
  const quotedTable = `${schemaPrefix}${quoteIdentifier(alter.tableName)}`;
229
279
  for (const colDef of alter.columnsToAdd) {
230
280
  statements.push(`ALTER TABLE ${quotedTable} ADD COLUMN ${colDef}`);
231
281
  }
282
+ if (alter.primaryKeyChange) {
283
+ const pkCols = alter.primaryKeyChange.newPkColumns
284
+ .map(c => {
285
+ let s = quoteIdentifier(c.name);
286
+ if (c.direction === 'desc')
287
+ s += ' desc';
288
+ return s;
289
+ })
290
+ .join(', ');
291
+ statements.push(`ALTER TABLE ${quotedTable} ALTER PRIMARY KEY (${pkCols})`);
292
+ }
232
293
  for (const colName of alter.columnsToDrop) {
233
294
  statements.push(`ALTER TABLE ${quotedTable} DROP COLUMN ${quoteIdentifier(colName)}`);
234
295
  }
@@ -1 +1 @@
1
- {"version":3,"file":"schema-differ.js","sourceRoot":"","sources":["../../../src/schema/schema-differ.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-differ.js","sourceRoot":"","sources":["../../../src/schema/schema-differ.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hrtime.d.ts","sourceRoot":"","sources":["../../../src/util/hrtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,KAAK,QAAQ,GAAG,MAAM,MAAM,CAAC;AAkB7B,2EAA2E;AAC3E,eAAO,MAAM,QAAQ,EAAE,QAAwB,CAAC"}
1
+ {"version":3,"file":"hrtime.d.ts","sourceRoot":"","sources":["../../../src/util/hrtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,KAAK,QAAQ,GAAG,MAAM,MAAM,CAAC;AAkB7B,2EAA2E;AAC3E,eAAO,MAAM,QAAQ,EAAE,QAAwB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"hrtime.js","sourceRoot":"","sources":["../../../src/util/hrtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,SAAS,WAAW;IACnB,iCAAiC;IACjC,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,OAAO,CAAC,MAAM,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC;QACpF,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACtC,CAAC;IAED,0EAA0E;IAC1E,IAAI,OAAO,UAAU,CAAC,WAAW,EAAE,GAAG,KAAK,UAAU,EAAE,CAAC;QACvD,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC;QACpC,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,sCAAsC;IACtC,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,QAAU,CAAC;AAC9C,CAAC;AAED,2EAA2E;AAC3E,MAAM,CAAC,MAAM,QAAQ,GAAa,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"hrtime.js","sourceRoot":"","sources":["../../../src/util/hrtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,SAAS,WAAW;IACnB,iCAAiC;IACjC,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,OAAO,CAAC,MAAM,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC;QACpF,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACtC,CAAC;IAED,0EAA0E;IAC1E,IAAI,OAAO,UAAU,CAAC,WAAW,EAAE,GAAG,KAAK,UAAU,EAAE,CAAC;QACvD,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC;QACpC,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,sCAAsC;IACtC,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,QAAU,CAAC;AAC9C,CAAC;AAED,2EAA2E;AAC3E,MAAM,CAAC,MAAM,QAAQ,GAAa,WAAW,EAAE,CAAC"}
@@ -92,6 +92,11 @@ export declare class MemoryTableManager {
92
92
  private checkUniqueViaIndex;
93
93
  private checkUniqueByScanning;
94
94
  renameTable(newName: string): void;
95
+ /** Iterates all committed rows from the current committed layer (for rebuild). */
96
+ scanAllRows(): Row[];
97
+ /** Inserts a row directly into the base layer (for rebuild, bypasses transaction).
98
+ * Throws on duplicate primary key. */
99
+ insertRow(row: Row): void;
95
100
  addColumn(columnDefAst: ASTColumnDef): Promise<void>;
96
101
  dropColumn(columnName: string): Promise<void>;
97
102
  renameColumn(oldName: string, newColumnDefAst: ASTColumnDef): Promise<void>;