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.
Files changed (249) hide show
  1. package/README.md +27 -19
  2. package/dist/config.d.ts +0 -4
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +0 -1
  5. package/dist/config.js.map +1 -1
  6. package/dist/index.d.ts +0 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +5 -43
  9. package/dist/index.js.map +1 -1
  10. package/package.json +7 -71
  11. package/dist/cf-deploy/bundle.d.ts +0 -21
  12. package/dist/cf-deploy/bundle.d.ts.map +0 -1
  13. package/dist/cf-deploy/bundle.js +0 -347
  14. package/dist/cf-deploy/bundle.js.map +0 -1
  15. package/dist/cf-deploy/config.d.ts +0 -52
  16. package/dist/cf-deploy/config.d.ts.map +0 -1
  17. package/dist/cf-deploy/config.js +0 -23
  18. package/dist/cf-deploy/config.js.map +0 -1
  19. package/dist/cf-deploy/index.d.ts +0 -11
  20. package/dist/cf-deploy/index.d.ts.map +0 -1
  21. package/dist/cf-deploy/index.js +0 -17
  22. package/dist/cf-deploy/index.js.map +0 -1
  23. package/dist/cf-deploy/leaves.d.ts +0 -19
  24. package/dist/cf-deploy/leaves.d.ts.map +0 -1
  25. package/dist/cf-deploy/leaves.js +0 -109
  26. package/dist/cf-deploy/leaves.js.map +0 -1
  27. package/dist/cf-deploy/migration.d.ts +0 -40
  28. package/dist/cf-deploy/migration.d.ts.map +0 -1
  29. package/dist/cf-deploy/migration.js +0 -891
  30. package/dist/cf-deploy/migration.js.map +0 -1
  31. package/dist/cf-deploy/nativeMigrations.d.ts +0 -24
  32. package/dist/cf-deploy/nativeMigrations.d.ts.map +0 -1
  33. package/dist/cf-deploy/nativeMigrations.js +0 -185
  34. package/dist/cf-deploy/nativeMigrations.js.map +0 -1
  35. package/dist/cf-deploy/prune.d.ts +0 -14
  36. package/dist/cf-deploy/prune.d.ts.map +0 -1
  37. package/dist/cf-deploy/prune.js +0 -235
  38. package/dist/cf-deploy/prune.js.map +0 -1
  39. package/dist/cf-deploy/shims.d.ts +0 -13
  40. package/dist/cf-deploy/shims.d.ts.map +0 -1
  41. package/dist/cf-deploy/shims.js +0 -737
  42. package/dist/cf-deploy/shims.js.map +0 -1
  43. package/dist/cf-deploy/smoke.d.ts +0 -15
  44. package/dist/cf-deploy/smoke.d.ts.map +0 -1
  45. package/dist/cf-deploy/smoke.js +0 -141
  46. package/dist/cf-deploy/smoke.js.map +0 -1
  47. package/dist/cf-deploy/sources.d.ts +0 -9
  48. package/dist/cf-deploy/sources.d.ts.map +0 -1
  49. package/dist/cf-deploy/sources.js +0 -276
  50. package/dist/cf-deploy/sources.js.map +0 -1
  51. package/dist/cf-deploy/wrangler.d.ts +0 -6
  52. package/dist/cf-deploy/wrangler.d.ts.map +0 -1
  53. package/dist/cf-deploy/wrangler.js +0 -168
  54. package/dist/cf-deploy/wrangler.js.map +0 -1
  55. package/dist/cf-do/application-sql.d.ts +0 -49
  56. package/dist/cf-do/application-sql.d.ts.map +0 -1
  57. package/dist/cf-do/application-sql.js +0 -124
  58. package/dist/cf-do/application-sql.js.map +0 -1
  59. package/dist/cf-do/cdc.d.ts +0 -155
  60. package/dist/cf-do/cdc.d.ts.map +0 -1
  61. package/dist/cf-do/cdc.js +0 -719
  62. package/dist/cf-do/cdc.js.map +0 -1
  63. package/dist/cf-do/cursor-pull.d.ts +0 -27
  64. package/dist/cf-do/cursor-pull.d.ts.map +0 -1
  65. package/dist/cf-do/cursor-pull.js +0 -78
  66. package/dist/cf-do/cursor-pull.js.map +0 -1
  67. package/dist/cf-do/row-undo.d.ts +0 -36
  68. package/dist/cf-do/row-undo.d.ts.map +0 -1
  69. package/dist/cf-do/row-undo.js +0 -221
  70. package/dist/cf-do/row-undo.js.map +0 -1
  71. package/dist/cf-do/tx-journal.d.ts +0 -119
  72. package/dist/cf-do/tx-journal.d.ts.map +0 -1
  73. package/dist/cf-do/tx-journal.js +0 -718
  74. package/dist/cf-do/tx-journal.js.map +0 -1
  75. package/dist/cf-do/watermark.d.ts +0 -29
  76. package/dist/cf-do/watermark.d.ts.map +0 -1
  77. package/dist/cf-do/watermark.js +0 -105
  78. package/dist/cf-do/watermark.js.map +0 -1
  79. package/dist/cf-do/worker.d.ts +0 -287
  80. package/dist/cf-do/worker.d.ts.map +0 -1
  81. package/dist/cf-do/worker.js +0 -1961
  82. package/dist/cf-do/worker.js.map +0 -1
  83. package/dist/do-sql-tracking.d.ts +0 -104
  84. package/dist/do-sql-tracking.d.ts.map +0 -1
  85. package/dist/do-sql-tracking.js +0 -255
  86. package/dist/do-sql-tracking.js.map +0 -1
  87. package/dist/pg-proxy-do-backend.d.ts +0 -211
  88. package/dist/pg-proxy-do-backend.d.ts.map +0 -1
  89. package/dist/pg-proxy-do-backend.js +0 -7884
  90. package/dist/pg-proxy-do-backend.js.map +0 -1
  91. package/dist/pg-sqlite-compiler/catalog/seed.d.ts +0 -67
  92. package/dist/pg-sqlite-compiler/catalog/seed.d.ts.map +0 -1
  93. package/dist/pg-sqlite-compiler/catalog/seed.js +0 -436
  94. package/dist/pg-sqlite-compiler/catalog/seed.js.map +0 -1
  95. package/dist/pg-sqlite-compiler/compiler.d.ts +0 -17
  96. package/dist/pg-sqlite-compiler/compiler.d.ts.map +0 -1
  97. package/dist/pg-sqlite-compiler/compiler.js +0 -86
  98. package/dist/pg-sqlite-compiler/compiler.js.map +0 -1
  99. package/dist/pg-sqlite-compiler/index.d.ts +0 -2
  100. package/dist/pg-sqlite-compiler/index.d.ts.map +0 -1
  101. package/dist/pg-sqlite-compiler/index.js +0 -13
  102. package/dist/pg-sqlite-compiler/index.js.map +0 -1
  103. package/dist/pg-sqlite-compiler/passes/array.d.ts +0 -3
  104. package/dist/pg-sqlite-compiler/passes/array.d.ts.map +0 -1
  105. package/dist/pg-sqlite-compiler/passes/array.js +0 -223
  106. package/dist/pg-sqlite-compiler/passes/array.js.map +0 -1
  107. package/dist/pg-sqlite-compiler/passes/ast-utils.d.ts +0 -48
  108. package/dist/pg-sqlite-compiler/passes/ast-utils.d.ts.map +0 -1
  109. package/dist/pg-sqlite-compiler/passes/ast-utils.js +0 -93
  110. package/dist/pg-sqlite-compiler/passes/ast-utils.js.map +0 -1
  111. package/dist/pg-sqlite-compiler/passes/catalog.d.ts +0 -34
  112. package/dist/pg-sqlite-compiler/passes/catalog.d.ts.map +0 -1
  113. package/dist/pg-sqlite-compiler/passes/catalog.js +0 -30
  114. package/dist/pg-sqlite-compiler/passes/catalog.js.map +0 -1
  115. package/dist/pg-sqlite-compiler/passes/datetime.d.ts +0 -23
  116. package/dist/pg-sqlite-compiler/passes/datetime.d.ts.map +0 -1
  117. package/dist/pg-sqlite-compiler/passes/datetime.js +0 -55
  118. package/dist/pg-sqlite-compiler/passes/datetime.js.map +0 -1
  119. package/dist/pg-sqlite-compiler/passes/dml-cte.d.ts +0 -22
  120. package/dist/pg-sqlite-compiler/passes/dml-cte.d.ts.map +0 -1
  121. package/dist/pg-sqlite-compiler/passes/dml-cte.js +0 -161
  122. package/dist/pg-sqlite-compiler/passes/dml-cte.js.map +0 -1
  123. package/dist/pg-sqlite-compiler/passes/index.d.ts +0 -24
  124. package/dist/pg-sqlite-compiler/passes/index.d.ts.map +0 -1
  125. package/dist/pg-sqlite-compiler/passes/index.js +0 -52
  126. package/dist/pg-sqlite-compiler/passes/index.js.map +0 -1
  127. package/dist/pg-sqlite-compiler/passes/json-functions.d.ts +0 -3
  128. package/dist/pg-sqlite-compiler/passes/json-functions.d.ts.map +0 -1
  129. package/dist/pg-sqlite-compiler/passes/json-functions.js +0 -57
  130. package/dist/pg-sqlite-compiler/passes/json-functions.js.map +0 -1
  131. package/dist/pg-sqlite-compiler/passes/row-json.d.ts +0 -3
  132. package/dist/pg-sqlite-compiler/passes/row-json.d.ts.map +0 -1
  133. package/dist/pg-sqlite-compiler/passes/row-json.js +0 -230
  134. package/dist/pg-sqlite-compiler/passes/row-json.js.map +0 -1
  135. package/dist/pg-sqlite-compiler/passes/schema.d.ts +0 -4
  136. package/dist/pg-sqlite-compiler/passes/schema.d.ts.map +0 -1
  137. package/dist/pg-sqlite-compiler/passes/schema.js +0 -128
  138. package/dist/pg-sqlite-compiler/passes/schema.js.map +0 -1
  139. package/dist/pg-sqlite-compiler/passes/string-functions.d.ts +0 -11
  140. package/dist/pg-sqlite-compiler/passes/string-functions.d.ts.map +0 -1
  141. package/dist/pg-sqlite-compiler/passes/string-functions.js +0 -37
  142. package/dist/pg-sqlite-compiler/passes/string-functions.js.map +0 -1
  143. package/dist/pg-sqlite-compiler/passes/types.d.ts +0 -41
  144. package/dist/pg-sqlite-compiler/passes/types.d.ts.map +0 -1
  145. package/dist/pg-sqlite-compiler/passes/types.js +0 -115
  146. package/dist/pg-sqlite-compiler/passes/types.js.map +0 -1
  147. package/dist/pg-sqlite-compiler/passes/unsupported.d.ts +0 -3
  148. package/dist/pg-sqlite-compiler/passes/unsupported.d.ts.map +0 -1
  149. package/dist/pg-sqlite-compiler/passes/unsupported.js +0 -57
  150. package/dist/pg-sqlite-compiler/passes/unsupported.js.map +0 -1
  151. package/dist/pg-sqlite-compiler/test/oracle.d.ts +0 -34
  152. package/dist/pg-sqlite-compiler/test/oracle.d.ts.map +0 -1
  153. package/dist/pg-sqlite-compiler/test/oracle.js +0 -204
  154. package/dist/pg-sqlite-compiler/test/oracle.js.map +0 -1
  155. package/dist/pg-sqlite-compiler/types.d.ts +0 -66
  156. package/dist/pg-sqlite-compiler/types.d.ts.map +0 -1
  157. package/dist/pg-sqlite-compiler/types.js +0 -2
  158. package/dist/pg-sqlite-compiler/types.js.map +0 -1
  159. package/dist/sync-browser-host/generated/sqlite3-browser.wasm +0 -0
  160. package/dist/sync-browser-host/generated/sync_wasm.js +0 -922
  161. package/dist/sync-browser-host/generated/sync_wasm_bg.wasm +0 -0
  162. package/dist/sync-browser-host/host.d.ts +0 -10
  163. package/dist/sync-browser-host/host.d.ts.map +0 -1
  164. package/dist/sync-browser-host/host.js +0 -496
  165. package/dist/sync-browser-host/host.js.map +0 -1
  166. package/dist/sync-browser-host/idb-snapshot.d.ts +0 -11
  167. package/dist/sync-browser-host/idb-snapshot.d.ts.map +0 -1
  168. package/dist/sync-browser-host/idb-snapshot.js +0 -122
  169. package/dist/sync-browser-host/idb-snapshot.js.map +0 -1
  170. package/dist/sync-browser-host/index.d.ts +0 -5
  171. package/dist/sync-browser-host/index.d.ts.map +0 -1
  172. package/dist/sync-browser-host/index.js +0 -5
  173. package/dist/sync-browser-host/index.js.map +0 -1
  174. package/dist/sync-browser-host/message-port.d.ts +0 -7
  175. package/dist/sync-browser-host/message-port.d.ts.map +0 -1
  176. package/dist/sync-browser-host/message-port.js +0 -188
  177. package/dist/sync-browser-host/message-port.js.map +0 -1
  178. package/dist/sync-browser-host/sqlite-adapter.d.ts +0 -67
  179. package/dist/sync-browser-host/sqlite-adapter.d.ts.map +0 -1
  180. package/dist/sync-browser-host/sqlite-adapter.js +0 -145
  181. package/dist/sync-browser-host/sqlite-adapter.js.map +0 -1
  182. package/dist/sync-browser-host/types.d.ts +0 -52
  183. package/dist/sync-browser-host/types.d.ts.map +0 -1
  184. package/dist/sync-browser-host/types.js +0 -2
  185. package/dist/sync-browser-host/types.js.map +0 -1
  186. package/dist/sync-cf-host.d.ts +0 -2
  187. package/dist/sync-cf-host.d.ts.map +0 -1
  188. package/dist/sync-cf-host.js +0 -2
  189. package/dist/sync-cf-host.js.map +0 -1
  190. package/dist/sync-executor.d.ts +0 -2
  191. package/dist/sync-executor.d.ts.map +0 -1
  192. package/dist/sync-executor.js +0 -2
  193. package/dist/sync-executor.js.map +0 -1
  194. package/dist/wake.d.ts +0 -22
  195. package/dist/wake.d.ts.map +0 -1
  196. package/dist/wake.js +0 -114
  197. package/dist/wake.js.map +0 -1
  198. package/dist/worker/cf-do-shim.d.ts +0 -55
  199. package/dist/worker/cf-do-shim.d.ts.map +0 -1
  200. package/dist/worker/cf-do-shim.js +0 -58
  201. package/dist/worker/cf-do-shim.js.map +0 -1
  202. package/dist/worker/cf-patches.d.ts +0 -43
  203. package/dist/worker/cf-patches.d.ts.map +0 -1
  204. package/dist/worker/cf-patches.js +0 -840
  205. package/dist/worker/cf-patches.js.map +0 -1
  206. package/dist/worker/local-sql-backend.d.ts +0 -35
  207. package/dist/worker/local-sql-backend.d.ts.map +0 -1
  208. package/dist/worker/local-sql-backend.js +0 -217
  209. package/dist/worker/local-sql-backend.js.map +0 -1
  210. package/dist/worker/zero-cache-embed-cf.d.ts +0 -92
  211. package/dist/worker/zero-cache-embed-cf.d.ts.map +0 -1
  212. package/dist/worker/zero-cache-embed-cf.js +0 -764
  213. package/dist/worker/zero-cache-embed-cf.js.map +0 -1
  214. package/dist/worker/zero-sql-write-circuit.d.ts +0 -46
  215. package/dist/worker/zero-sql-write-circuit.d.ts.map +0 -1
  216. package/dist/worker/zero-sql-write-circuit.js +0 -161
  217. package/dist/worker/zero-sql-write-circuit.js.map +0 -1
  218. package/dist/zero-http/encrypted-column-codec.d.ts +0 -46
  219. package/dist/zero-http/encrypted-column-codec.d.ts.map +0 -1
  220. package/dist/zero-http/encrypted-column-codec.js +0 -676
  221. package/dist/zero-http/encrypted-column-codec.js.map +0 -1
  222. package/dist/zero-http/encrypted-column-conformance.d.ts +0 -7
  223. package/dist/zero-http/encrypted-column-conformance.d.ts.map +0 -1
  224. package/dist/zero-http/encrypted-column-conformance.js +0 -161
  225. package/dist/zero-http/encrypted-column-conformance.js.map +0 -1
  226. package/dist/zero-http/fixture-schema.d.ts +0 -127
  227. package/dist/zero-http/fixture-schema.d.ts.map +0 -1
  228. package/dist/zero-http/fixture-schema.js +0 -56
  229. package/dist/zero-http/fixture-schema.js.map +0 -1
  230. package/dist/zero-http/mount.d.ts +0 -71
  231. package/dist/zero-http/mount.d.ts.map +0 -1
  232. package/dist/zero-http/mount.js +0 -594
  233. package/dist/zero-http/mount.js.map +0 -1
  234. package/dist/zero-http/payload-codec.d.ts +0 -91
  235. package/dist/zero-http/payload-codec.d.ts.map +0 -1
  236. package/dist/zero-http/payload-codec.js +0 -10
  237. package/dist/zero-http/payload-codec.js.map +0 -1
  238. package/dist/zero-http/server.d.ts +0 -16
  239. package/dist/zero-http/server.d.ts.map +0 -1
  240. package/dist/zero-http/server.js +0 -270
  241. package/dist/zero-http/server.js.map +0 -1
  242. package/dist/zero-http/test-harness.d.ts +0 -32
  243. package/dist/zero-http/test-harness.d.ts.map +0 -1
  244. package/dist/zero-http/test-harness.js +0 -77
  245. package/dist/zero-http/test-harness.js.map +0 -1
  246. package/dist/zero-http/transport.d.ts +0 -71
  247. package/dist/zero-http/transport.d.ts.map +0 -1
  248. package/dist/zero-http/transport.js +0 -1106
  249. 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,3 +0,0 @@
1
- import type { Pass } from '../types.js';
2
- export declare const unsupportedPass: Pass;
3
- //# sourceMappingURL=unsupported.d.ts.map
@@ -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":"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"}
@@ -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"}