@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.
- package/README.md +1 -0
- package/dist/src/common/json-types.d.ts.map +1 -1
- package/dist/src/common/json-types.js +0 -1
- package/dist/src/common/json-types.js.map +1 -1
- package/dist/src/common/types.d.ts +1 -1
- package/dist/src/common/types.d.ts.map +1 -1
- package/dist/src/emit/ast-stringify.d.ts.map +1 -1
- package/dist/src/emit/ast-stringify.js +11 -0
- package/dist/src/emit/ast-stringify.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/parser/ast.d.ts +6 -0
- package/dist/src/parser/ast.d.ts.map +1 -1
- package/dist/src/parser/parser.d.ts.map +1 -1
- package/dist/src/parser/parser.js +23 -1
- package/dist/src/parser/parser.js.map +1 -1
- package/dist/src/planner/building/alter-table.d.ts.map +1 -1
- package/dist/src/planner/building/alter-table.js +5 -0
- package/dist/src/planner/building/alter-table.js.map +1 -1
- package/dist/src/planner/building/foreign-key-builder.d.ts.map +1 -1
- package/dist/src/planner/building/foreign-key-builder.js +11 -2
- package/dist/src/planner/building/foreign-key-builder.js.map +1 -1
- package/dist/src/planner/nodes/alter-table-node.d.ts +6 -0
- package/dist/src/planner/nodes/alter-table-node.d.ts.map +1 -1
- package/dist/src/planner/nodes/alter-table-node.js +2 -0
- package/dist/src/planner/nodes/alter-table-node.js.map +1 -1
- package/dist/src/planner/rules/join/rule-join-physical-selection.d.ts.map +1 -1
- package/dist/src/planner/rules/join/rule-join-physical-selection.js +48 -6
- package/dist/src/planner/rules/join/rule-join-physical-selection.js.map +1 -1
- package/dist/src/planner/stats/basic-estimates.d.ts.map +1 -1
- package/dist/src/planner/stats/basic-estimates.js +4 -2
- package/dist/src/planner/stats/basic-estimates.js.map +1 -1
- package/dist/src/runtime/emit/alter-table.d.ts.map +1 -1
- package/dist/src/runtime/emit/alter-table.js +212 -0
- package/dist/src/runtime/emit/alter-table.js.map +1 -1
- package/dist/src/schema/catalog.d.ts +4 -0
- package/dist/src/schema/catalog.d.ts.map +1 -1
- package/dist/src/schema/catalog.js +12 -94
- package/dist/src/schema/catalog.js.map +1 -1
- package/dist/src/schema/ddl-generator.d.ts +25 -0
- package/dist/src/schema/ddl-generator.d.ts.map +1 -0
- package/dist/src/schema/ddl-generator.js +225 -0
- package/dist/src/schema/ddl-generator.js.map +1 -0
- package/dist/src/schema/schema-differ.d.ts +7 -0
- package/dist/src/schema/schema-differ.d.ts.map +1 -1
- package/dist/src/schema/schema-differ.js +64 -3
- package/dist/src/schema/schema-differ.js.map +1 -1
- package/dist/src/util/hrtime.d.ts.map +1 -1
- package/dist/src/util/hrtime.js.map +1 -1
- package/dist/src/vtab/memory/layer/manager.d.ts +5 -0
- package/dist/src/vtab/memory/layer/manager.d.ts.map +1 -1
- package/dist/src/vtab/memory/layer/manager.js +25 -1
- package/dist/src/vtab/memory/layer/manager.js.map +1 -1
- package/dist/src/vtab/memory/module.d.ts.map +1 -1
- package/dist/src/vtab/memory/module.js +22 -0
- package/dist/src/vtab/memory/module.js.map +1 -1
- package/dist/src/vtab/memory/table.d.ts.map +1 -1
- package/dist/src/vtab/memory/table.js +2 -0
- package/dist/src/vtab/memory/table.js.map +1 -1
- package/dist/src/vtab/module.d.ts +6 -0
- package/dist/src/vtab/module.d.ts.map +1 -1
- 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;
|
|
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
|
|
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":"AAIA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,
|
|
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":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAOH,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE/E;;;;GAIG;AACH,SAAS,SAAS,CAAC,IAAY;IAC9B,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;AACxC,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,gBAAgB,CAAC,WAAwB,EAAE,EAAa;IACvE,MAAM,GAAG,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAEnC,MAAM,KAAK,GAAa,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,WAAW,CAAC,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAEpG,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;QACvC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,8EAA8E;IAC9E,0DAA0D;IAC1D,IAAI,WAAW,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnD,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACnC,CAAC;SAAM,IAAI,WAAW,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG,WAAW,CAAC,oBAAoB;aAC7C,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;aACxD,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,UAAU,CAAC,IAAI,CAAC,gBAAgB,MAAM,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEzC,2EAA2E;IAC3E,4CAA4C;IAC5C,MAAM,WAAW,GAAG,iBAAiB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACxD,IAAI,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEzC,wBAAwB;IACxB,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAK,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,gBAAgB,CAC/B,WAAwB,EACxB,WAAwB,EACxB,EAAa;IAEb,MAAM,GAAG,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,KAAK,GAAa,CAAC,cAAc,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAE3F,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAC1C,IAAI,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,GAAG,CAAC,SAAS;YAAE,MAAM,IAAI,YAAY,GAAG,CAAC,SAAS,EAAE,CAAC;QACzD,IAAI,GAAG,CAAC,IAAI;YAAE,MAAM,IAAI,OAAO,CAAC;QAChC,OAAO,MAAM,CAAC;IACf,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEnC,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAK,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;AAeD,SAAS,kBAAkB,CAAC,EAAa;IACxC,IAAI,CAAC,EAAE,EAAE,CAAC;QACT,OAAO;YACN,iBAAiB,EAAE,SAAS;YAC5B,cAAc,EAAE,SAAS;YACzB,iBAAiB,EAAE,SAAS;YAC5B,eAAe,EAAE,SAAS;SAC1B,CAAC;IACH,CAAC;IACD,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,4BAA4B,CAAC,CAAC;IAC7E,OAAO;QACN,iBAAiB,EAAE,EAAE,CAAC,aAAa,CAAC,oBAAoB,EAAE;QAC1D,cAAc,EAAE,WAAW,KAAK,UAAU;QAC1C,iBAAiB,EAAE,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,qBAAqB,CAAC;QACpE,eAAe,EAAE,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,mBAAmB,CAAC;KAChE,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,UAA8B,EAAE,IAAY,EAAE,iBAAqC;IACzG,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,UAAU;QAAE,OAAO,UAAU,CAAC;IACnC,wEAAwE;IACxE,IAAI,iBAAiB,KAAK,SAAS,IAAI,UAAU,CAAC,WAAW,EAAE,KAAK,iBAAiB,CAAC,WAAW,EAAE,EAAE,CAAC;QACrG,OAAO,UAAU,CAAC;IACnB,CAAC;IACD,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,UAAU,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,eAAe,CAAC,GAAiB,EAAE,WAAwB,EAAE,cAAmC;IACxG,IAAI,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,GAAG,CAAC,WAAW;QAAE,MAAM,IAAI,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAE1D,MAAM,cAAc,GAAG,qBAAqB,CAAC,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAC1E,IAAI,cAAc;QAAE,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;IAEnD,IAAI,GAAG,CAAC,UAAU,IAAI,WAAW,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,cAAc,CAAC;IAC1B,CAAC;IAED,IAAI,GAAG,CAAC,YAAY,KAAK,IAAI,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACjE,MAAM,IAAI,YAAY,uBAAuB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;IACnE,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAK,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,SAAS,qBAAqB,CAAC,OAAgB,EAAE,cAAmC;IACnF,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;IACtC,CAAC;IACD,IAAI,cAAc,IAAI,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,CAAC,cAAc,IAAI,OAAO;QAAE,OAAO,UAAU,CAAC;IAClD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,iBAAiB,CAAC,WAAwB,EAAE,GAAgB;IACpE,MAAM,UAAU,GAAG,WAAW,CAAC,cAAc,CAAC;IAC9C,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAE7B,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,IAAI,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAE7C,sDAAsD;IACtD,IAAI,GAAG,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACzC,IAAI,MAAM,GAAG,SAAS,UAAU,EAAE,CAAC;QACnC,IAAI,OAAO;YAAE,MAAM,IAAI,KAAK,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;QACpD,OAAO,MAAM,CAAC;IACf,CAAC;IAED,MAAM,aAAa,GAAG,UAAU,KAAK,GAAG,CAAC,iBAAiB,CAAC;IAC3D,MAAM,WAAW,GAAG,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;IAC9C,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAEzD,IAAI,aAAa,IAAI,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5C,IAAI,MAAM,GAAG,SAAS,UAAU,EAAE,CAAC;IACnC,IAAI,OAAO;QAAE,MAAM,IAAI,KAAK,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;IACpD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,IAA8B;IACrD,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SACzB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;SAC5D,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAoB;IACpD,8EAA8E;IAC9E,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,8EAA8E;AAC9E,SAAS,gBAAgB,CAAC,KAAe;IACxC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;IACvE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACjF,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACzD,kEAAkE;IAClE,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,KAAe;IACtC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAChE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACjF,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;IACvE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAwC;IACjE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SAClC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;SAC3E,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,OAAO,cAAc,OAAO,GAAG,CAAC;AACjC,CAAC;AAED,SAAS,OAAO,CAAC,IAAoD;IACpE,OAAO,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,mBAAmB,CAAC,CAA2B,EAAE,CAA2B;IACpF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACvC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IACjC,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC"}
|
|
@@ -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;
|
|
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;
|
|
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;
|
|
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>;
|