pg-to-sqlite 0.4.67 → 0.4.71
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
CHANGED
|
@@ -18,4 +18,6 @@ AST with focused SQLite compatibility passes, then emits SQLite-compatible SQL.
|
|
|
18
18
|
- `compile(sql, options?)`
|
|
19
19
|
- `compileMany(sqls, options?)`
|
|
20
20
|
|
|
21
|
-
Use `strict: true` to throw when a statement produces compiler warnings.
|
|
21
|
+
Use `strict: true` to throw when a statement produces compiler warnings. Strict
|
|
22
|
+
mode rejects known PostgreSQL-only constructs that cannot execute in SQLite,
|
|
23
|
+
including `LATERAL`, `DISTINCT ON`, and `GREATEST`/`LEAST`.
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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"}
|
|
@@ -13,6 +13,9 @@ function functionName(func) {
|
|
|
13
13
|
const value = last?.String?.sval ?? last?.String?.str;
|
|
14
14
|
return typeof value === 'string' ? value.toLowerCase() : null;
|
|
15
15
|
}
|
|
16
|
+
function warn(ctx, kind, near, message) {
|
|
17
|
+
ctx.warnings.push({ kind, near, message });
|
|
18
|
+
}
|
|
16
19
|
export const unsupportedPass = {
|
|
17
20
|
name: 'unsupported',
|
|
18
21
|
run(rawStmt, ctx) {
|
|
@@ -21,11 +24,32 @@ export const unsupportedPass = {
|
|
|
21
24
|
const name = functionName(node);
|
|
22
25
|
if (!name || !UNSUPPORTED_FUNCTIONS.has(name))
|
|
23
26
|
return;
|
|
24
|
-
ctx
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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');
|
|
29
53
|
},
|
|
30
54
|
});
|
|
31
55
|
},
|
|
@@ -1 +1 @@
|
|
|
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,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,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"unsupported.js","sourceRoot":"","sources":["../../../src/pg-sqlite-compiler/passes/unsupported.ts"],"names":[],"mappings":"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"}
|