orez 0.9.7 → 0.10.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 +27 -19
- package/dist/config.d.ts +0 -4
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +0 -1
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -43
- package/dist/index.js.map +1 -1
- package/package.json +7 -71
- package/dist/cf-deploy/bundle.d.ts +0 -21
- package/dist/cf-deploy/bundle.d.ts.map +0 -1
- package/dist/cf-deploy/bundle.js +0 -347
- package/dist/cf-deploy/bundle.js.map +0 -1
- package/dist/cf-deploy/config.d.ts +0 -52
- package/dist/cf-deploy/config.d.ts.map +0 -1
- package/dist/cf-deploy/config.js +0 -23
- package/dist/cf-deploy/config.js.map +0 -1
- package/dist/cf-deploy/index.d.ts +0 -11
- package/dist/cf-deploy/index.d.ts.map +0 -1
- package/dist/cf-deploy/index.js +0 -17
- package/dist/cf-deploy/index.js.map +0 -1
- package/dist/cf-deploy/leaves.d.ts +0 -19
- package/dist/cf-deploy/leaves.d.ts.map +0 -1
- package/dist/cf-deploy/leaves.js +0 -109
- package/dist/cf-deploy/leaves.js.map +0 -1
- package/dist/cf-deploy/migration.d.ts +0 -40
- package/dist/cf-deploy/migration.d.ts.map +0 -1
- package/dist/cf-deploy/migration.js +0 -891
- package/dist/cf-deploy/migration.js.map +0 -1
- package/dist/cf-deploy/nativeMigrations.d.ts +0 -24
- package/dist/cf-deploy/nativeMigrations.d.ts.map +0 -1
- package/dist/cf-deploy/nativeMigrations.js +0 -185
- package/dist/cf-deploy/nativeMigrations.js.map +0 -1
- package/dist/cf-deploy/prune.d.ts +0 -14
- package/dist/cf-deploy/prune.d.ts.map +0 -1
- package/dist/cf-deploy/prune.js +0 -235
- package/dist/cf-deploy/prune.js.map +0 -1
- package/dist/cf-deploy/shims.d.ts +0 -13
- package/dist/cf-deploy/shims.d.ts.map +0 -1
- package/dist/cf-deploy/shims.js +0 -737
- package/dist/cf-deploy/shims.js.map +0 -1
- package/dist/cf-deploy/smoke.d.ts +0 -15
- package/dist/cf-deploy/smoke.d.ts.map +0 -1
- package/dist/cf-deploy/smoke.js +0 -141
- package/dist/cf-deploy/smoke.js.map +0 -1
- package/dist/cf-deploy/sources.d.ts +0 -9
- package/dist/cf-deploy/sources.d.ts.map +0 -1
- package/dist/cf-deploy/sources.js +0 -276
- package/dist/cf-deploy/sources.js.map +0 -1
- package/dist/cf-deploy/wrangler.d.ts +0 -6
- package/dist/cf-deploy/wrangler.d.ts.map +0 -1
- package/dist/cf-deploy/wrangler.js +0 -168
- package/dist/cf-deploy/wrangler.js.map +0 -1
- package/dist/cf-do/application-sql.d.ts +0 -49
- package/dist/cf-do/application-sql.d.ts.map +0 -1
- package/dist/cf-do/application-sql.js +0 -124
- package/dist/cf-do/application-sql.js.map +0 -1
- package/dist/cf-do/cdc.d.ts +0 -155
- package/dist/cf-do/cdc.d.ts.map +0 -1
- package/dist/cf-do/cdc.js +0 -719
- package/dist/cf-do/cdc.js.map +0 -1
- package/dist/cf-do/cursor-pull.d.ts +0 -27
- package/dist/cf-do/cursor-pull.d.ts.map +0 -1
- package/dist/cf-do/cursor-pull.js +0 -78
- package/dist/cf-do/cursor-pull.js.map +0 -1
- package/dist/cf-do/row-undo.d.ts +0 -36
- package/dist/cf-do/row-undo.d.ts.map +0 -1
- package/dist/cf-do/row-undo.js +0 -221
- package/dist/cf-do/row-undo.js.map +0 -1
- package/dist/cf-do/tx-journal.d.ts +0 -119
- package/dist/cf-do/tx-journal.d.ts.map +0 -1
- package/dist/cf-do/tx-journal.js +0 -718
- package/dist/cf-do/tx-journal.js.map +0 -1
- package/dist/cf-do/watermark.d.ts +0 -29
- package/dist/cf-do/watermark.d.ts.map +0 -1
- package/dist/cf-do/watermark.js +0 -105
- package/dist/cf-do/watermark.js.map +0 -1
- package/dist/cf-do/worker.d.ts +0 -287
- package/dist/cf-do/worker.d.ts.map +0 -1
- package/dist/cf-do/worker.js +0 -1961
- package/dist/cf-do/worker.js.map +0 -1
- package/dist/do-sql-tracking.d.ts +0 -104
- package/dist/do-sql-tracking.d.ts.map +0 -1
- package/dist/do-sql-tracking.js +0 -255
- package/dist/do-sql-tracking.js.map +0 -1
- package/dist/pg-proxy-do-backend.d.ts +0 -211
- package/dist/pg-proxy-do-backend.d.ts.map +0 -1
- package/dist/pg-proxy-do-backend.js +0 -7884
- package/dist/pg-proxy-do-backend.js.map +0 -1
- package/dist/pg-sqlite-compiler/catalog/seed.d.ts +0 -67
- package/dist/pg-sqlite-compiler/catalog/seed.d.ts.map +0 -1
- package/dist/pg-sqlite-compiler/catalog/seed.js +0 -436
- package/dist/pg-sqlite-compiler/catalog/seed.js.map +0 -1
- package/dist/pg-sqlite-compiler/compiler.d.ts +0 -17
- package/dist/pg-sqlite-compiler/compiler.d.ts.map +0 -1
- package/dist/pg-sqlite-compiler/compiler.js +0 -86
- package/dist/pg-sqlite-compiler/compiler.js.map +0 -1
- package/dist/pg-sqlite-compiler/index.d.ts +0 -2
- package/dist/pg-sqlite-compiler/index.d.ts.map +0 -1
- package/dist/pg-sqlite-compiler/index.js +0 -13
- package/dist/pg-sqlite-compiler/index.js.map +0 -1
- package/dist/pg-sqlite-compiler/passes/array.d.ts +0 -3
- package/dist/pg-sqlite-compiler/passes/array.d.ts.map +0 -1
- package/dist/pg-sqlite-compiler/passes/array.js +0 -223
- package/dist/pg-sqlite-compiler/passes/array.js.map +0 -1
- package/dist/pg-sqlite-compiler/passes/ast-utils.d.ts +0 -48
- package/dist/pg-sqlite-compiler/passes/ast-utils.d.ts.map +0 -1
- package/dist/pg-sqlite-compiler/passes/ast-utils.js +0 -93
- package/dist/pg-sqlite-compiler/passes/ast-utils.js.map +0 -1
- package/dist/pg-sqlite-compiler/passes/catalog.d.ts +0 -34
- package/dist/pg-sqlite-compiler/passes/catalog.d.ts.map +0 -1
- package/dist/pg-sqlite-compiler/passes/catalog.js +0 -30
- package/dist/pg-sqlite-compiler/passes/catalog.js.map +0 -1
- package/dist/pg-sqlite-compiler/passes/datetime.d.ts +0 -23
- package/dist/pg-sqlite-compiler/passes/datetime.d.ts.map +0 -1
- package/dist/pg-sqlite-compiler/passes/datetime.js +0 -55
- package/dist/pg-sqlite-compiler/passes/datetime.js.map +0 -1
- package/dist/pg-sqlite-compiler/passes/dml-cte.d.ts +0 -22
- package/dist/pg-sqlite-compiler/passes/dml-cte.d.ts.map +0 -1
- package/dist/pg-sqlite-compiler/passes/dml-cte.js +0 -161
- package/dist/pg-sqlite-compiler/passes/dml-cte.js.map +0 -1
- package/dist/pg-sqlite-compiler/passes/index.d.ts +0 -24
- package/dist/pg-sqlite-compiler/passes/index.d.ts.map +0 -1
- package/dist/pg-sqlite-compiler/passes/index.js +0 -52
- package/dist/pg-sqlite-compiler/passes/index.js.map +0 -1
- package/dist/pg-sqlite-compiler/passes/json-functions.d.ts +0 -3
- package/dist/pg-sqlite-compiler/passes/json-functions.d.ts.map +0 -1
- package/dist/pg-sqlite-compiler/passes/json-functions.js +0 -57
- package/dist/pg-sqlite-compiler/passes/json-functions.js.map +0 -1
- package/dist/pg-sqlite-compiler/passes/row-json.d.ts +0 -3
- package/dist/pg-sqlite-compiler/passes/row-json.d.ts.map +0 -1
- package/dist/pg-sqlite-compiler/passes/row-json.js +0 -230
- package/dist/pg-sqlite-compiler/passes/row-json.js.map +0 -1
- package/dist/pg-sqlite-compiler/passes/schema.d.ts +0 -4
- package/dist/pg-sqlite-compiler/passes/schema.d.ts.map +0 -1
- package/dist/pg-sqlite-compiler/passes/schema.js +0 -128
- package/dist/pg-sqlite-compiler/passes/schema.js.map +0 -1
- package/dist/pg-sqlite-compiler/passes/string-functions.d.ts +0 -11
- package/dist/pg-sqlite-compiler/passes/string-functions.d.ts.map +0 -1
- package/dist/pg-sqlite-compiler/passes/string-functions.js +0 -37
- package/dist/pg-sqlite-compiler/passes/string-functions.js.map +0 -1
- package/dist/pg-sqlite-compiler/passes/types.d.ts +0 -41
- package/dist/pg-sqlite-compiler/passes/types.d.ts.map +0 -1
- package/dist/pg-sqlite-compiler/passes/types.js +0 -115
- package/dist/pg-sqlite-compiler/passes/types.js.map +0 -1
- package/dist/pg-sqlite-compiler/passes/unsupported.d.ts +0 -3
- package/dist/pg-sqlite-compiler/passes/unsupported.d.ts.map +0 -1
- package/dist/pg-sqlite-compiler/passes/unsupported.js +0 -57
- package/dist/pg-sqlite-compiler/passes/unsupported.js.map +0 -1
- package/dist/pg-sqlite-compiler/test/oracle.d.ts +0 -34
- package/dist/pg-sqlite-compiler/test/oracle.d.ts.map +0 -1
- package/dist/pg-sqlite-compiler/test/oracle.js +0 -204
- package/dist/pg-sqlite-compiler/test/oracle.js.map +0 -1
- package/dist/pg-sqlite-compiler/types.d.ts +0 -66
- package/dist/pg-sqlite-compiler/types.d.ts.map +0 -1
- package/dist/pg-sqlite-compiler/types.js +0 -2
- package/dist/pg-sqlite-compiler/types.js.map +0 -1
- package/dist/sync-browser-host/generated/sqlite3-browser.wasm +0 -0
- package/dist/sync-browser-host/generated/sync_wasm.js +0 -922
- package/dist/sync-browser-host/generated/sync_wasm_bg.wasm +0 -0
- package/dist/sync-browser-host/host.d.ts +0 -10
- package/dist/sync-browser-host/host.d.ts.map +0 -1
- package/dist/sync-browser-host/host.js +0 -496
- package/dist/sync-browser-host/host.js.map +0 -1
- package/dist/sync-browser-host/idb-snapshot.d.ts +0 -11
- package/dist/sync-browser-host/idb-snapshot.d.ts.map +0 -1
- package/dist/sync-browser-host/idb-snapshot.js +0 -122
- package/dist/sync-browser-host/idb-snapshot.js.map +0 -1
- package/dist/sync-browser-host/index.d.ts +0 -5
- package/dist/sync-browser-host/index.d.ts.map +0 -1
- package/dist/sync-browser-host/index.js +0 -5
- package/dist/sync-browser-host/index.js.map +0 -1
- package/dist/sync-browser-host/message-port.d.ts +0 -7
- package/dist/sync-browser-host/message-port.d.ts.map +0 -1
- package/dist/sync-browser-host/message-port.js +0 -188
- package/dist/sync-browser-host/message-port.js.map +0 -1
- package/dist/sync-browser-host/sqlite-adapter.d.ts +0 -67
- package/dist/sync-browser-host/sqlite-adapter.d.ts.map +0 -1
- package/dist/sync-browser-host/sqlite-adapter.js +0 -145
- package/dist/sync-browser-host/sqlite-adapter.js.map +0 -1
- package/dist/sync-browser-host/types.d.ts +0 -52
- package/dist/sync-browser-host/types.d.ts.map +0 -1
- package/dist/sync-browser-host/types.js +0 -2
- package/dist/sync-browser-host/types.js.map +0 -1
- package/dist/sync-cf-host.d.ts +0 -2
- package/dist/sync-cf-host.d.ts.map +0 -1
- package/dist/sync-cf-host.js +0 -2
- package/dist/sync-cf-host.js.map +0 -1
- package/dist/sync-executor.d.ts +0 -2
- package/dist/sync-executor.d.ts.map +0 -1
- package/dist/sync-executor.js +0 -2
- package/dist/sync-executor.js.map +0 -1
- package/dist/wake.d.ts +0 -22
- package/dist/wake.d.ts.map +0 -1
- package/dist/wake.js +0 -114
- package/dist/wake.js.map +0 -1
- package/dist/worker/cf-do-shim.d.ts +0 -55
- package/dist/worker/cf-do-shim.d.ts.map +0 -1
- package/dist/worker/cf-do-shim.js +0 -58
- package/dist/worker/cf-do-shim.js.map +0 -1
- package/dist/worker/cf-patches.d.ts +0 -43
- package/dist/worker/cf-patches.d.ts.map +0 -1
- package/dist/worker/cf-patches.js +0 -840
- package/dist/worker/cf-patches.js.map +0 -1
- package/dist/worker/local-sql-backend.d.ts +0 -35
- package/dist/worker/local-sql-backend.d.ts.map +0 -1
- package/dist/worker/local-sql-backend.js +0 -217
- package/dist/worker/local-sql-backend.js.map +0 -1
- package/dist/worker/zero-cache-embed-cf.d.ts +0 -92
- package/dist/worker/zero-cache-embed-cf.d.ts.map +0 -1
- package/dist/worker/zero-cache-embed-cf.js +0 -764
- package/dist/worker/zero-cache-embed-cf.js.map +0 -1
- package/dist/worker/zero-sql-write-circuit.d.ts +0 -46
- package/dist/worker/zero-sql-write-circuit.d.ts.map +0 -1
- package/dist/worker/zero-sql-write-circuit.js +0 -161
- package/dist/worker/zero-sql-write-circuit.js.map +0 -1
- package/dist/zero-http/encrypted-column-codec.d.ts +0 -46
- package/dist/zero-http/encrypted-column-codec.d.ts.map +0 -1
- package/dist/zero-http/encrypted-column-codec.js +0 -676
- package/dist/zero-http/encrypted-column-codec.js.map +0 -1
- package/dist/zero-http/encrypted-column-conformance.d.ts +0 -7
- package/dist/zero-http/encrypted-column-conformance.d.ts.map +0 -1
- package/dist/zero-http/encrypted-column-conformance.js +0 -161
- package/dist/zero-http/encrypted-column-conformance.js.map +0 -1
- package/dist/zero-http/fixture-schema.d.ts +0 -127
- package/dist/zero-http/fixture-schema.d.ts.map +0 -1
- package/dist/zero-http/fixture-schema.js +0 -56
- package/dist/zero-http/fixture-schema.js.map +0 -1
- package/dist/zero-http/mount.d.ts +0 -71
- package/dist/zero-http/mount.d.ts.map +0 -1
- package/dist/zero-http/mount.js +0 -594
- package/dist/zero-http/mount.js.map +0 -1
- package/dist/zero-http/payload-codec.d.ts +0 -91
- package/dist/zero-http/payload-codec.d.ts.map +0 -1
- package/dist/zero-http/payload-codec.js +0 -10
- package/dist/zero-http/payload-codec.js.map +0 -1
- package/dist/zero-http/server.d.ts +0 -16
- package/dist/zero-http/server.d.ts.map +0 -1
- package/dist/zero-http/server.js +0 -270
- package/dist/zero-http/server.js.map +0 -1
- package/dist/zero-http/test-harness.d.ts +0 -32
- package/dist/zero-http/test-harness.d.ts.map +0 -1
- package/dist/zero-http/test-harness.js +0 -77
- package/dist/zero-http/test-harness.js.map +0 -1
- package/dist/zero-http/transport.d.ts +0 -71
- package/dist/zero-http/transport.d.ts.map +0 -1
- package/dist/zero-http/transport.js +0 -1106
- package/dist/zero-http/transport.js.map +0 -1
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import { walkAst } from './ast-utils.js';
|
|
2
|
-
function stringNode(value) {
|
|
3
|
-
return { String: { sval: value } };
|
|
4
|
-
}
|
|
5
|
-
function stringValue(node) {
|
|
6
|
-
return node?.String?.sval ?? node?.String?.str ?? null;
|
|
7
|
-
}
|
|
8
|
-
export function flattenSchemaName(schema, name) {
|
|
9
|
-
if (schema === 'public' && name === 'migrations')
|
|
10
|
-
return 'public_migrations';
|
|
11
|
-
if (schema === 'public')
|
|
12
|
-
return name;
|
|
13
|
-
if (schema === '_orez' && name === '_zero_changes')
|
|
14
|
-
return '_zero_changes';
|
|
15
|
-
if (schema === '_orez' && name === '_zero_replication_slots')
|
|
16
|
-
return '_orez__zero_replication_slots';
|
|
17
|
-
if (schema === '_orez')
|
|
18
|
-
return `_orez__${name}`;
|
|
19
|
-
if (schema === '_zero')
|
|
20
|
-
return `_zero_${name}`;
|
|
21
|
-
return `${schema.replaceAll('/', '_')}_${name}`;
|
|
22
|
-
}
|
|
23
|
-
function flattenRangeVar(rangeVar) {
|
|
24
|
-
if (!rangeVar?.schemaname || !rangeVar.relname)
|
|
25
|
-
return rangeVar?.relname ?? null;
|
|
26
|
-
const flattened = flattenSchemaName(rangeVar.schemaname, rangeVar.relname);
|
|
27
|
-
rangeVar.relname = flattened;
|
|
28
|
-
delete rangeVar.schemaname;
|
|
29
|
-
return flattened;
|
|
30
|
-
}
|
|
31
|
-
function flattenColumnRef(columnRef) {
|
|
32
|
-
const fields = columnRef?.fields;
|
|
33
|
-
if (!Array.isArray(fields) || fields.length < 3)
|
|
34
|
-
return;
|
|
35
|
-
const schema = stringValue(fields[0]);
|
|
36
|
-
const table = stringValue(fields[1]);
|
|
37
|
-
if (!schema || !table)
|
|
38
|
-
return;
|
|
39
|
-
fields.splice(0, 2, stringNode(flattenSchemaName(schema, table)));
|
|
40
|
-
}
|
|
41
|
-
function rewriteColumnRefQualifier(node, from, to) {
|
|
42
|
-
if (!node || typeof node !== 'object')
|
|
43
|
-
return;
|
|
44
|
-
if (Array.isArray(node)) {
|
|
45
|
-
for (const item of node)
|
|
46
|
-
rewriteColumnRefQualifier(item, from, to);
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
const fields = node.ColumnRef?.fields;
|
|
50
|
-
if (Array.isArray(fields) && fields.length > 1 && stringValue(fields[0]) === from) {
|
|
51
|
-
fields[0] = stringNode(to);
|
|
52
|
-
}
|
|
53
|
-
for (const child of Object.values(node)) {
|
|
54
|
-
rewriteColumnRefQualifier(child, from, to);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
function flattenSelectRangeVarQualifiers(stmt) {
|
|
58
|
-
const visitFromNode = (node) => {
|
|
59
|
-
if (!node || typeof node !== 'object')
|
|
60
|
-
return;
|
|
61
|
-
const rangeVar = node.RangeVar;
|
|
62
|
-
if (rangeVar?.schemaname && rangeVar.relname) {
|
|
63
|
-
const from = rangeVar.alias?.aliasname ? null : rangeVar.relname;
|
|
64
|
-
const to = flattenRangeVar(rangeVar);
|
|
65
|
-
if (from && to)
|
|
66
|
-
rewriteColumnRefQualifier(stmt, from, to);
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
const join = node.JoinExpr;
|
|
70
|
-
if (join) {
|
|
71
|
-
visitFromNode(join.larg);
|
|
72
|
-
visitFromNode(join.rarg);
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
for (const fromNode of stmt?.fromClause ?? [])
|
|
76
|
-
visitFromNode(fromNode);
|
|
77
|
-
}
|
|
78
|
-
function flattenWriteTargetQualifiers(stmt) {
|
|
79
|
-
const relation = stmt?.relation;
|
|
80
|
-
const from = relation?.alias?.aliasname ?? (relation?.schemaname ? relation.relname : null);
|
|
81
|
-
const to = flattenRangeVar(relation);
|
|
82
|
-
if (!from || !to)
|
|
83
|
-
return;
|
|
84
|
-
if (relation?.alias?.aliasname)
|
|
85
|
-
delete relation.alias;
|
|
86
|
-
rewriteColumnRefQualifier(stmt, from, to);
|
|
87
|
-
}
|
|
88
|
-
export const schemaPass = {
|
|
89
|
-
name: 'schema',
|
|
90
|
-
run(rawStmt, ctx) {
|
|
91
|
-
walkAst(rawStmt, {
|
|
92
|
-
AlterTableCmd: (node) => {
|
|
93
|
-
if (node.subtype !== 'AT_DropColumn' || !node.behavior)
|
|
94
|
-
return;
|
|
95
|
-
if (node.behavior === 'DROP_CASCADE') {
|
|
96
|
-
ctx.warnings.push({
|
|
97
|
-
kind: 'unsupported-alter-table-cascade',
|
|
98
|
-
message: 'SQLite DROP COLUMN does not support CASCADE',
|
|
99
|
-
});
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
// PostgreSQL deparses its default DROP_RESTRICT behavior as an
|
|
103
|
-
// explicit RESTRICT clause. SQLite has the same restrictive default
|
|
104
|
-
// but rejects the keyword, so omit it from the emitted statement.
|
|
105
|
-
delete node.behavior;
|
|
106
|
-
},
|
|
107
|
-
SelectStmt: (node) => {
|
|
108
|
-
flattenSelectRangeVarQualifiers(node);
|
|
109
|
-
},
|
|
110
|
-
InsertStmt: (node) => {
|
|
111
|
-
flattenWriteTargetQualifiers(node);
|
|
112
|
-
},
|
|
113
|
-
UpdateStmt: (node) => {
|
|
114
|
-
flattenWriteTargetQualifiers(node);
|
|
115
|
-
},
|
|
116
|
-
DeleteStmt: (node) => {
|
|
117
|
-
flattenRangeVar(node.relation);
|
|
118
|
-
},
|
|
119
|
-
RangeVar: (node) => {
|
|
120
|
-
flattenRangeVar(node);
|
|
121
|
-
},
|
|
122
|
-
ColumnRef: (node) => {
|
|
123
|
-
flattenColumnRef(node);
|
|
124
|
-
},
|
|
125
|
-
});
|
|
126
|
-
},
|
|
127
|
-
};
|
|
128
|
-
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/pg-sqlite-compiler/passes/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { Pass } from '../types.js';
|
|
2
|
-
/** Rewrite one libpg_query FuncCall to SQLite's ordinary trim functions. */
|
|
3
|
-
export declare function rewriteStringFunctionCall(node: any): boolean;
|
|
4
|
-
/**
|
|
5
|
-
* PostgreSQL parses the SQL-standard TRIM forms as pg_catalog btrim/ltrim/rtrim
|
|
6
|
-
* calls with a special deparse format. That format emits `TRIM(BOTH FROM x)`,
|
|
7
|
-
* which SQLite rejects even though its trim functions have equivalent
|
|
8
|
-
* argument ordering. Emit ordinary SQLite function calls instead.
|
|
9
|
-
*/
|
|
10
|
-
export declare const stringFunctionsPass: Pass;
|
|
11
|
-
//# sourceMappingURL=string-functions.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"string-functions.d.ts","sourceRoot":"","sources":["../../../src/pg-sqlite-compiler/passes/string-functions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAavC,4EAA4E;AAC5E,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAO5D;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,IASjC,CAAA"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { walkAst } from './ast-utils.js';
|
|
2
|
-
function functionName(funcname) {
|
|
3
|
-
if (!funcname || funcname.length === 0)
|
|
4
|
-
return undefined;
|
|
5
|
-
const last = funcname[funcname.length - 1];
|
|
6
|
-
const value = last?.String?.sval ?? last?.String?.str;
|
|
7
|
-
return typeof value === 'string' ? value.toLowerCase() : undefined;
|
|
8
|
-
}
|
|
9
|
-
function stringNode(value) {
|
|
10
|
-
return { String: { sval: value } };
|
|
11
|
-
}
|
|
12
|
-
/** Rewrite one libpg_query FuncCall to SQLite's ordinary trim functions. */
|
|
13
|
-
export function rewriteStringFunctionCall(node) {
|
|
14
|
-
const name = functionName(node?.funcname);
|
|
15
|
-
if (name !== 'btrim' && name !== 'ltrim' && name !== 'rtrim')
|
|
16
|
-
return false;
|
|
17
|
-
node.funcname = [stringNode(name === 'btrim' ? 'trim' : name)];
|
|
18
|
-
node.funcformat = 'COERCE_EXPLICIT_CALL';
|
|
19
|
-
return true;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* PostgreSQL parses the SQL-standard TRIM forms as pg_catalog btrim/ltrim/rtrim
|
|
23
|
-
* calls with a special deparse format. That format emits `TRIM(BOTH FROM x)`,
|
|
24
|
-
* which SQLite rejects even though its trim functions have equivalent
|
|
25
|
-
* argument ordering. Emit ordinary SQLite function calls instead.
|
|
26
|
-
*/
|
|
27
|
-
export const stringFunctionsPass = {
|
|
28
|
-
name: 'string-functions',
|
|
29
|
-
run(rawStmt, _ctx) {
|
|
30
|
-
walkAst(rawStmt, {
|
|
31
|
-
FuncCall: (node) => {
|
|
32
|
-
rewriteStringFunctionCall(node);
|
|
33
|
-
},
|
|
34
|
-
});
|
|
35
|
-
},
|
|
36
|
-
};
|
|
37
|
-
//# sourceMappingURL=string-functions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"string-functions.js","sourceRoot":"","sources":["../../../src/pg-sqlite-compiler/passes/string-functions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAIxC,SAAS,YAAY,CAAC,QAA2B;IAC/C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IACxD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC1C,MAAM,KAAK,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE,MAAM,EAAE,GAAG,CAAA;IACrD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;AACpE,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAA;AACpC,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,yBAAyB,CAAC,IAAS;IACjD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IACzC,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,KAAK,CAAA;IAE1E,IAAI,CAAC,QAAQ,GAAG,CAAC,UAAU,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAC9D,IAAI,CAAC,UAAU,GAAG,sBAAsB,CAAA;IACxC,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAS;IACvC,IAAI,EAAE,kBAAkB;IACxB,GAAG,CAAC,OAAO,EAAE,IAAI;QACf,OAAO,CAAC,OAAO,EAAE;YACf,QAAQ,EAAE,CAAC,IAAS,EAAE,EAAE;gBACtB,yBAAyB,CAAC,IAAI,CAAC,CAAA;YACjC,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Types pass.
|
|
3
|
-
*
|
|
4
|
-
* Normalizes PG type names in CREATE TABLE / ALTER TABLE / CAST / column
|
|
5
|
-
* defs to SQLite-compatible equivalents:
|
|
6
|
-
*
|
|
7
|
-
* bigserial / serial → INTEGER (and PRIMARY KEY on INTEGER becomes
|
|
8
|
-
* SQLite's rowid alias, equivalent to
|
|
9
|
-
* AUTOINCREMENT for our purposes)
|
|
10
|
-
* smallserial → INTEGER
|
|
11
|
-
* jsonb / json → TEXT (stored as JSON text; SQLite json
|
|
12
|
-
* functions operate on TEXT directly)
|
|
13
|
-
* uuid → TEXT
|
|
14
|
-
* bytea → BLOB
|
|
15
|
-
* varchar / character varying → TEXT (drop length typmods)
|
|
16
|
-
* char(N) / character(N)→ TEXT (drop length typmods)
|
|
17
|
-
* text → TEXT
|
|
18
|
-
* timestamp / timestamptz / timestamp with time zone → TEXT
|
|
19
|
-
* (stored as ISO; SQLite datetime fns
|
|
20
|
-
* accept ISO text)
|
|
21
|
-
* date / time / timetz → TEXT
|
|
22
|
-
* interval → TEXT
|
|
23
|
-
* numeric / decimal → NUMERIC (SQLite native affinity; precision/
|
|
24
|
-
* scale typmods dropped)
|
|
25
|
-
* real / float4 → REAL
|
|
26
|
-
* double precision / float8 → REAL
|
|
27
|
-
* integer / int / int4 → INTEGER
|
|
28
|
-
* bigint / int8 → INTEGER
|
|
29
|
-
* smallint / int2 → INTEGER
|
|
30
|
-
* boolean → INTEGER (0/1; SQLite has no BOOLEAN type but
|
|
31
|
-
* the BOOLEAN keyword is accepted as
|
|
32
|
-
* affinity)
|
|
33
|
-
*
|
|
34
|
-
* Array types (any T[] with arrayBounds) become TEXT (stored as JSON arrays).
|
|
35
|
-
*
|
|
36
|
-
* pg_catalog.* prefix is stripped (libpg-query adds it canonically; SQLite
|
|
37
|
-
* doesn't know about pg_catalog).
|
|
38
|
-
*/
|
|
39
|
-
import type { Pass } from '../types.js';
|
|
40
|
-
export declare const typesPass: Pass;
|
|
41
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/pg-sqlite-compiler/passes/types.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AA0FvC,eAAO,MAAM,SAAS,EAAE,IA6CvB,CAAA"}
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import { walkAst } from './ast-utils.js';
|
|
2
|
-
const TYPE_MAP = {
|
|
3
|
-
// serial → integer (PRIMARY KEY on INTEGER is rowid alias in SQLite)
|
|
4
|
-
bigserial: 'INTEGER',
|
|
5
|
-
serial: 'INTEGER',
|
|
6
|
-
serial4: 'INTEGER',
|
|
7
|
-
serial8: 'INTEGER',
|
|
8
|
-
smallserial: 'INTEGER',
|
|
9
|
-
serial2: 'INTEGER',
|
|
10
|
-
// integer
|
|
11
|
-
int: 'INTEGER',
|
|
12
|
-
integer: 'INTEGER',
|
|
13
|
-
int2: 'INTEGER',
|
|
14
|
-
int4: 'INTEGER',
|
|
15
|
-
int8: 'INTEGER',
|
|
16
|
-
bigint: 'INTEGER',
|
|
17
|
-
smallint: 'INTEGER',
|
|
18
|
-
// floats
|
|
19
|
-
real: 'REAL',
|
|
20
|
-
float4: 'REAL',
|
|
21
|
-
float8: 'REAL',
|
|
22
|
-
'double precision': 'REAL',
|
|
23
|
-
double: 'REAL',
|
|
24
|
-
// numerics — keep affinity name; SQLite parses but ignores precision
|
|
25
|
-
numeric: 'NUMERIC',
|
|
26
|
-
decimal: 'NUMERIC',
|
|
27
|
-
// text-ish
|
|
28
|
-
text: 'TEXT',
|
|
29
|
-
varchar: 'TEXT',
|
|
30
|
-
'character varying': 'TEXT',
|
|
31
|
-
bpchar: 'TEXT',
|
|
32
|
-
character: 'TEXT',
|
|
33
|
-
char: 'TEXT',
|
|
34
|
-
name: 'TEXT',
|
|
35
|
-
citext: 'TEXT',
|
|
36
|
-
// json / structured
|
|
37
|
-
json: 'TEXT',
|
|
38
|
-
jsonb: 'TEXT',
|
|
39
|
-
uuid: 'TEXT',
|
|
40
|
-
xml: 'TEXT',
|
|
41
|
-
// bin
|
|
42
|
-
bytea: 'BLOB',
|
|
43
|
-
// bools
|
|
44
|
-
bool: 'INTEGER',
|
|
45
|
-
boolean: 'INTEGER',
|
|
46
|
-
// time
|
|
47
|
-
timestamp: 'TEXT',
|
|
48
|
-
timestamptz: 'TEXT',
|
|
49
|
-
'timestamp with time zone': 'TEXT',
|
|
50
|
-
'timestamp without time zone': 'TEXT',
|
|
51
|
-
date: 'TEXT',
|
|
52
|
-
time: 'TEXT',
|
|
53
|
-
timetz: 'TEXT',
|
|
54
|
-
'time with time zone': 'TEXT',
|
|
55
|
-
'time without time zone': 'TEXT',
|
|
56
|
-
interval: 'TEXT',
|
|
57
|
-
// network / ranges → TEXT for storage compatibility
|
|
58
|
-
inet: 'TEXT',
|
|
59
|
-
cidr: 'TEXT',
|
|
60
|
-
macaddr: 'TEXT',
|
|
61
|
-
macaddr8: 'TEXT',
|
|
62
|
-
money: 'NUMERIC',
|
|
63
|
-
};
|
|
64
|
-
function extractName(names) {
|
|
65
|
-
if (!Array.isArray(names) || names.length === 0)
|
|
66
|
-
return undefined;
|
|
67
|
-
// strip pg_catalog. prefix if present
|
|
68
|
-
const last = names[names.length - 1];
|
|
69
|
-
const sval = last?.String?.sval ?? last?.String?.str;
|
|
70
|
-
return typeof sval === 'string' ? sval.toLowerCase() : undefined;
|
|
71
|
-
}
|
|
72
|
-
function setTypeName(typeName, sqliteName) {
|
|
73
|
-
typeName.names = [{ String: { sval: sqliteName.toLowerCase() } }];
|
|
74
|
-
// drop length/precision typmods
|
|
75
|
-
delete typeName.typmods;
|
|
76
|
-
// drop array bounds (SQLite has no array type; we store as JSON text)
|
|
77
|
-
delete typeName.arrayBounds;
|
|
78
|
-
}
|
|
79
|
-
export const typesPass = {
|
|
80
|
-
name: 'types',
|
|
81
|
-
run(rawStmt, _ctx) {
|
|
82
|
-
walkAst(rawStmt, {
|
|
83
|
-
ColumnDef: (node) => {
|
|
84
|
-
const pgName = extractName(node.typeName?.names);
|
|
85
|
-
if (TYPE_MAP[pgName ?? ''] !== 'INTEGER' || !Array.isArray(node.constraints)) {
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
const constraintTypes = node.constraints.map((constraint) => constraint?.Constraint?.contype);
|
|
89
|
-
if (!constraintTypes.includes('CONSTR_IDENTITY') ||
|
|
90
|
-
!constraintTypes.includes('CONSTR_PRIMARY')) {
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
node.constraints = node.constraints.filter((constraint) => constraint?.Constraint?.contype !== 'CONSTR_IDENTITY');
|
|
94
|
-
},
|
|
95
|
-
TypeName: (node) => {
|
|
96
|
-
const pgName = extractName(node.names);
|
|
97
|
-
if (!pgName)
|
|
98
|
-
return;
|
|
99
|
-
const hasArrayBounds = Array.isArray(node.arrayBounds) && node.arrayBounds.length > 0;
|
|
100
|
-
// Array of anything → TEXT
|
|
101
|
-
if (hasArrayBounds) {
|
|
102
|
-
setTypeName(node, 'TEXT');
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
const sqliteName = TYPE_MAP[pgName];
|
|
106
|
-
if (sqliteName) {
|
|
107
|
-
setTypeName(node, sqliteName);
|
|
108
|
-
}
|
|
109
|
-
// Unknown types we leave alone — let SQLite reject loudly so we know
|
|
110
|
-
// to add a mapping.
|
|
111
|
-
},
|
|
112
|
-
});
|
|
113
|
-
},
|
|
114
|
-
};
|
|
115
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/pg-sqlite-compiler/passes/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"unsupported.d.ts","sourceRoot":"","sources":["../../../src/pg-sqlite-compiler/passes/unsupported.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AA0BvC,eAAO,MAAM,eAAe,EAAE,IA0D7B,CAAA"}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { walkAst } from './ast-utils.js';
|
|
2
|
-
const UNSUPPORTED_FUNCTIONS = new Set([
|
|
3
|
-
'date_trunc',
|
|
4
|
-
'gen_random_uuid',
|
|
5
|
-
'right',
|
|
6
|
-
'unnest',
|
|
7
|
-
]);
|
|
8
|
-
function functionName(func) {
|
|
9
|
-
const parts = func?.funcname;
|
|
10
|
-
if (!Array.isArray(parts) || parts.length === 0)
|
|
11
|
-
return null;
|
|
12
|
-
const last = parts[parts.length - 1];
|
|
13
|
-
const value = last?.String?.sval ?? last?.String?.str;
|
|
14
|
-
return typeof value === 'string' ? value.toLowerCase() : null;
|
|
15
|
-
}
|
|
16
|
-
function warn(ctx, kind, near, message) {
|
|
17
|
-
ctx.warnings.push({ kind, near, message });
|
|
18
|
-
}
|
|
19
|
-
export const unsupportedPass = {
|
|
20
|
-
name: 'unsupported',
|
|
21
|
-
run(rawStmt, ctx) {
|
|
22
|
-
walkAst(rawStmt, {
|
|
23
|
-
FuncCall: (node) => {
|
|
24
|
-
const name = functionName(node);
|
|
25
|
-
if (!name || !UNSUPPORTED_FUNCTIONS.has(name))
|
|
26
|
-
return;
|
|
27
|
-
warn(ctx, 'unsupported-function', 'FuncCall', `${name}() is not supported by pg-to-sqlite`);
|
|
28
|
-
},
|
|
29
|
-
MinMaxExpr: (node) => {
|
|
30
|
-
if (node?.op !== 'IS_GREATEST' && node?.op !== 'IS_LEAST')
|
|
31
|
-
return;
|
|
32
|
-
const name = node.op === 'IS_GREATEST' ? 'greatest' : 'least';
|
|
33
|
-
warn(ctx, 'unsupported-function', 'MinMaxExpr', `${name}() is not supported by pg-to-sqlite`);
|
|
34
|
-
},
|
|
35
|
-
SelectStmt: (node) => {
|
|
36
|
-
const distinct = node?.distinctClause;
|
|
37
|
-
if (!Array.isArray(distinct))
|
|
38
|
-
return;
|
|
39
|
-
const hasDistinctOn = distinct.some((item) => item && typeof item === 'object' && Object.keys(item).length > 0);
|
|
40
|
-
if (!hasDistinctOn)
|
|
41
|
-
return;
|
|
42
|
-
warn(ctx, 'unsupported-syntax', 'SelectStmt', 'DISTINCT ON is not supported by pg-to-sqlite');
|
|
43
|
-
},
|
|
44
|
-
RangeSubselect: (node) => {
|
|
45
|
-
if (!node?.lateral)
|
|
46
|
-
return;
|
|
47
|
-
warn(ctx, 'unsupported-syntax', 'RangeSubselect', 'LATERAL is not supported by pg-to-sqlite');
|
|
48
|
-
},
|
|
49
|
-
RangeFunction: (node) => {
|
|
50
|
-
if (!node?.lateral)
|
|
51
|
-
return;
|
|
52
|
-
warn(ctx, 'unsupported-syntax', 'RangeFunction', 'LATERAL is not supported by pg-to-sqlite');
|
|
53
|
-
},
|
|
54
|
-
});
|
|
55
|
-
},
|
|
56
|
-
};
|
|
57
|
-
//# sourceMappingURL=unsupported.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"unsupported.js","sourceRoot":"","sources":["../../../src/pg-sqlite-compiler/passes/unsupported.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAIxC,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IACpC,YAAY;IACZ,iBAAiB;IACjB,OAAO;IACP,QAAQ;CACT,CAAC,CAAA;AAEF,SAAS,YAAY,CAAC,IAAS;IAC7B,MAAM,KAAK,GAAG,IAAI,EAAE,QAAQ,CAAA;IAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACpC,MAAM,KAAK,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE,MAAM,EAAE,GAAG,CAAA;IACrD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AAC/D,CAAC;AAED,SAAS,IAAI,CACX,GAA+B,EAC/B,IAAY,EACZ,IAAY,EACZ,OAAe;IAEf,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;AAC5C,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAS;IACnC,IAAI,EAAE,aAAa;IACnB,GAAG,CAAC,OAAO,EAAE,GAAG;QACd,OAAO,CAAC,OAAO,EAAE;YACf,QAAQ,EAAE,CAAC,IAAS,EAAE,EAAE;gBACtB,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;gBAC/B,IAAI,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,OAAM;gBACrD,IAAI,CACF,GAAG,EACH,sBAAsB,EACtB,UAAU,EACV,GAAG,IAAI,qCAAqC,CAC7C,CAAA;YACH,CAAC;YACD,UAAU,EAAE,CAAC,IAAS,EAAE,EAAE;gBACxB,IAAI,IAAI,EAAE,EAAE,KAAK,aAAa,IAAI,IAAI,EAAE,EAAE,KAAK,UAAU;oBAAE,OAAM;gBACjE,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAA;gBAC7D,IAAI,CACF,GAAG,EACH,sBAAsB,EACtB,YAAY,EACZ,GAAG,IAAI,qCAAqC,CAC7C,CAAA;YACH,CAAC;YACD,UAAU,EAAE,CAAC,IAAS,EAAE,EAAE;gBACxB,MAAM,QAAQ,GAAG,IAAI,EAAE,cAAc,CAAA;gBACrC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;oBAAE,OAAM;gBACpC,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CACjC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAChF,CAAA;gBACD,IAAI,CAAC,aAAa;oBAAE,OAAM;gBAC1B,IAAI,CACF,GAAG,EACH,oBAAoB,EACpB,YAAY,EACZ,8CAA8C,CAC/C,CAAA;YACH,CAAC;YACD,cAAc,EAAE,CAAC,IAAS,EAAE,EAAE;gBAC5B,IAAI,CAAC,IAAI,EAAE,OAAO;oBAAE,OAAM;gBAC1B,IAAI,CACF,GAAG,EACH,oBAAoB,EACpB,gBAAgB,EAChB,0CAA0C,CAC3C,CAAA;YACH,CAAC;YACD,aAAa,EAAE,CAAC,IAAS,EAAE,EAAE;gBAC3B,IAAI,CAAC,IAAI,EAAE,OAAO;oBAAE,OAAM;gBAC1B,IAAI,CACF,GAAG,EACH,oBAAoB,EACpB,eAAe,EACf,0CAA0C,CAC3C,CAAA;YACH,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
export declare function pgsqliteBinPath(): string | null;
|
|
2
|
-
export declare const ORACLE_AVAILABLE: boolean;
|
|
3
|
-
export interface OracleServer {
|
|
4
|
-
port: number;
|
|
5
|
-
dbPath: string;
|
|
6
|
-
stop(): Promise<void>;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Start a pgsqlite server on an OS-assigned ephemeral port with an ephemeral
|
|
10
|
-
* database. Throws on probe timeout. Caller is responsible for calling
|
|
11
|
-
* `stop()` in a `finally` / `afterAll` hook — `stop()` awaits child exit
|
|
12
|
-
* and cleans up the tempdir.
|
|
13
|
-
*/
|
|
14
|
-
export declare function startPgsqliteServer(): Promise<OracleServer>;
|
|
15
|
-
/**
|
|
16
|
-
* Helper: open a postgres.js client to a running pgsqlite server.
|
|
17
|
-
* Requires `postgres` to be available (we already ship it via @rocicorp/zero).
|
|
18
|
-
*/
|
|
19
|
-
export declare function connectOracle(server: OracleServer): Promise<{
|
|
20
|
-
exec: (sql: string, params?: any[]) => Promise<any[]>;
|
|
21
|
-
end: () => Promise<void>;
|
|
22
|
-
}>;
|
|
23
|
-
/**
|
|
24
|
-
* Run the same query against pgsqlite (oracle) and our compiler+SQLite (under
|
|
25
|
-
* test). Return both result sets so the test can diff them however it wants.
|
|
26
|
-
*
|
|
27
|
-
* Uses freshly-spawned servers/dbs for each call — slow but isolated. For
|
|
28
|
-
* batches use the lower-level helpers above.
|
|
29
|
-
*/
|
|
30
|
-
export declare function runOracleAndCompiler(setupSql: string[], pgSql: string, params?: any[]): Promise<{
|
|
31
|
-
oracle: any[];
|
|
32
|
-
ours: any[];
|
|
33
|
-
}>;
|
|
34
|
-
//# sourceMappingURL=oracle.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oracle.d.ts","sourceRoot":"","sources":["../../../src/pg-sqlite-compiler/test/oracle.ts"],"names":[],"mappings":"AA8BA,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAI/C;AAED,eAAO,MAAM,gBAAgB,SAA6B,CAAA;AAE1D,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACtB;AAgDD;;;;;GAKG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,YAAY,CAAC,CA8DjE;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC;IACjE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IACrD,GAAG,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB,CAAC,CAsBD;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAAE,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,GAAG,EAAO,GACjB,OAAO,CAAC;IACT,MAAM,EAAE,GAAG,EAAE,CAAA;IACb,IAAI,EAAE,GAAG,EAAE,CAAA;CACZ,CAAC,CA+BD"}
|