@rocicorp/zero 0.18.2025032900 → 0.18.2025040201
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/out/analyze-query/src/bin.d.ts +2 -0
- package/out/analyze-query/src/bin.d.ts.map +1 -0
- package/out/analyze-query/src/bin.js +178 -0
- package/out/analyze-query/src/bin.js.map +1 -0
- package/out/{chunk-I7LQ2GI3.js → chunk-242YQPIZ.js} +241 -97
- package/out/chunk-242YQPIZ.js.map +7 -0
- package/out/{chunk-NBZURO2P.js → chunk-R7QLNPBS.js} +16 -109
- package/out/{chunk-NBZURO2P.js.map → chunk-R7QLNPBS.js.map} +3 -3
- package/out/inspector-RYBBQ63M.js +394 -0
- package/out/inspector-RYBBQ63M.js.map +7 -0
- package/out/otel/src/test-log-config.d.ts +8 -0
- package/out/otel/src/test-log-config.d.ts.map +1 -0
- package/out/otel/src/test-log-config.js +8 -0
- package/out/otel/src/test-log-config.js.map +1 -0
- package/out/replicache/src/replicache-impl.d.ts.map +1 -1
- package/out/replicache/src/replicache-options.d.ts +12 -0
- package/out/replicache/src/replicache-options.d.ts.map +1 -1
- package/out/shared/src/browser-env.d.ts +2 -0
- package/out/shared/src/browser-env.d.ts.map +1 -1
- package/out/shared/src/logging-test-utils.d.ts +12 -0
- package/out/shared/src/logging-test-utils.d.ts.map +1 -0
- package/out/shared/src/logging-test-utils.js +21 -0
- package/out/shared/src/logging-test-utils.js.map +1 -0
- package/out/solid.js +2 -2
- package/out/z2s/src/compiler.d.ts +5 -4
- package/out/z2s/src/compiler.d.ts.map +1 -1
- package/out/z2s/src/compiler.js +86 -59
- package/out/z2s/src/compiler.js.map +1 -1
- package/out/z2s/src/schema.d.ts +11 -0
- package/out/z2s/src/schema.d.ts.map +1 -0
- package/out/z2s/src/schema.js +2 -0
- package/out/z2s/src/schema.js.map +1 -0
- package/out/z2s/src/sql.d.ts +7 -4
- package/out/z2s/src/sql.d.ts.map +1 -1
- package/out/z2s/src/sql.js +113 -66
- package/out/z2s/src/sql.js.map +1 -1
- package/out/zero/src/analyze-query.d.ts +3 -0
- package/out/zero/src/analyze-query.d.ts.map +1 -0
- package/out/zero/src/analyze-query.js +3 -0
- package/out/zero/src/analyze-query.js.map +1 -0
- package/out/zero-cache/src/db/specs.d.ts +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts +5 -5
- package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts +2 -2
- package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts +1 -1
- package/out/zero-cache/src/services/mutagen/pusher.d.ts.map +1 -1
- package/out/zero-cache/src/services/mutagen/pusher.js +10 -6
- package/out/zero-cache/src/services/mutagen/pusher.js.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/change-log.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/change-log.js +17 -16
- package/out/zero-cache/src/services/replicator/schema/change-log.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-schema.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-schema.js +2 -8
- package/out/zero-cache/src/services/view-syncer/client-schema.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.js +8 -15
- package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.js +2 -3
- package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +2 -2
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.js +0 -7
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- package/out/zero-cache/src/types/lite.d.ts +1 -1
- package/out/zero-cache/src/types/lite.d.ts.map +1 -1
- package/out/zero-cache/src/types/lite.js +2 -52
- package/out/zero-cache/src/types/lite.js.map +1 -1
- package/out/zero-cache/src/types/pg.d.ts +2 -0
- package/out/zero-cache/src/types/pg.d.ts.map +1 -1
- package/out/zero-cache/src/types/pg.js +53 -0
- package/out/zero-cache/src/types/pg.js.map +1 -1
- package/out/zero-cache/src/workers/replicator.d.ts.map +1 -1
- package/out/zero-cache/src/workers/replicator.js +14 -3
- package/out/zero-cache/src/workers/replicator.js.map +1 -1
- package/out/zero-client/src/client/custom.d.ts +6 -10
- package/out/zero-client/src/client/custom.d.ts.map +1 -1
- package/out/zero-client/src/client/inspector/inspector.d.ts.map +1 -1
- package/out/zero-client/src/client/inspector/types.d.ts +0 -1
- package/out/zero-client/src/client/inspector/types.d.ts.map +1 -1
- package/out/zero-client/src/client/mutation-tracker.d.ts +7 -3
- package/out/zero-client/src/client/mutation-tracker.d.ts.map +1 -1
- package/out/zero-client/src/client/zero-rep.d.ts +6 -2
- package/out/zero-client/src/client/zero-rep.d.ts.map +1 -1
- package/out/zero-client/src/client/zero.d.ts.map +1 -1
- package/out/zero-client/src/mod.d.ts +1 -1
- package/out/zero-client/src/mod.d.ts.map +1 -1
- package/out/zero-pg/src/custom.d.ts +2 -1
- package/out/zero-pg/src/custom.d.ts.map +1 -1
- package/out/zero-pg/src/custom.js +33 -16
- package/out/zero-pg/src/custom.js.map +1 -1
- package/out/zero-pg/src/query.d.ts +3 -2
- package/out/zero-pg/src/query.d.ts.map +1 -1
- package/out/zero-pg/src/query.js +10 -6
- package/out/zero-pg/src/query.js.map +1 -1
- package/out/zero-pg/src/schema.d.ts +13 -0
- package/out/zero-pg/src/schema.d.ts.map +1 -0
- package/out/zero-pg/src/schema.js +59 -0
- package/out/zero-pg/src/schema.js.map +1 -0
- package/out/zero-pg/src/web.d.ts +2 -1
- package/out/zero-pg/src/web.d.ts.map +1 -1
- package/out/zero-pg/src/web.js +19 -10
- package/out/zero-pg/src/web.js.map +1 -1
- package/out/zero-protocol/src/client-schema.d.ts +1 -1
- package/out/zero-protocol/src/client-schema.d.ts.map +1 -1
- package/out/zero-protocol/src/client-schema.js +1 -1
- package/out/zero-protocol/src/client-schema.js.map +1 -1
- package/out/zero-protocol/src/down.d.ts +5 -5
- package/out/zero-protocol/src/protocol-version.d.ts +1 -1
- package/out/zero-protocol/src/protocol-version.d.ts.map +1 -1
- package/out/zero-protocol/src/protocol-version.js +3 -2
- package/out/zero-protocol/src/protocol-version.js.map +1 -1
- package/out/zero-protocol/src/push.d.ts +16 -16
- package/out/zero-protocol/src/push.d.ts.map +1 -1
- package/out/zero-protocol/src/push.js +8 -5
- package/out/zero-protocol/src/push.js.map +1 -1
- package/out/zero-react/src/mod.d.ts +1 -1
- package/out/zero-react/src/mod.d.ts.map +1 -1
- package/out/zero-schema/src/builder/table-builder.d.ts +0 -12
- package/out/zero-schema/src/builder/table-builder.d.ts.map +1 -1
- package/out/zero-schema/src/builder/table-builder.js +0 -16
- package/out/zero-schema/src/builder/table-builder.js.map +1 -1
- package/out/zero-schema/src/table-schema.d.ts +0 -3
- package/out/zero-schema/src/table-schema.d.ts.map +1 -1
- package/out/zero-schema/src/table-schema.js +0 -3
- package/out/zero-schema/src/table-schema.js.map +1 -1
- package/out/zero-solid/src/mod.d.ts +1 -1
- package/out/zero-solid/src/mod.d.ts.map +1 -1
- package/out/zero.js +4 -8
- package/out/zql/src/ivm/catch.d.ts +51 -0
- package/out/zql/src/ivm/catch.d.ts.map +1 -0
- package/out/zql/src/ivm/catch.js +78 -0
- package/out/zql/src/ivm/catch.js.map +1 -0
- package/out/zql/src/ivm/memory-storage.js +37 -0
- package/out/zql/src/ivm/memory-storage.js.map +1 -0
- package/out/zql/src/query/query-impl.d.ts.map +1 -1
- package/out/zql/src/query/query-impl.js +6 -4
- package/out/zql/src/query/query-impl.js.map +1 -1
- package/out/zqlite/src/table-source.d.ts.map +1 -1
- package/out/zqlite/src/table-source.js +0 -8
- package/out/zqlite/src/table-source.js.map +1 -1
- package/package.json +4 -3
- package/out/chunk-I7LQ2GI3.js.map +0 -7
- package/out/inspector-SH2ZK7O3.js +0 -835
- package/out/inspector-SH2ZK7O3.js.map +0 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../../../z2s/src/compiler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAG7C,OAAO,EAAC,KAAK,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAExD,OAAO,KAAK,EACV,2BAA2B,EAC3B,WAAW,
|
|
1
|
+
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../../../z2s/src/compiler.ts"],"names":[],"mappings":"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"}
|
package/out/z2s/src/compiler.js
CHANGED
|
@@ -4,7 +4,7 @@ import {} from "../../shared/src/json.js";
|
|
|
4
4
|
import { must } from "../../shared/src/must.js";
|
|
5
5
|
import {} from "../../zero-protocol/src/ast.js";
|
|
6
6
|
import { clientToServer, NameMapper } from "../../zero-schema/src/name-mapper.js";
|
|
7
|
-
import { sql,
|
|
7
|
+
import { sql, sqlConvertColumnArg, sqlConvertSingularLiteralArg, sqlConvertPluralLiteralArg, Z2S_COLLATION, } from "./sql.js";
|
|
8
8
|
import { parse as parseBigIntJson, } from "../../zero-cache/src/types/bigint-json.js";
|
|
9
9
|
import { hasOwn } from "../../shared/src/has-own.js";
|
|
10
10
|
const ZQL_RESULT_KEY = 'zql_result';
|
|
@@ -64,15 +64,17 @@ function findPathToBigInt(v) {
|
|
|
64
64
|
* - IN is changed to ANY to allow binding array literals
|
|
65
65
|
* - subqueries are aggregated using PG's `array_agg` and `row_to_json` functions
|
|
66
66
|
*/
|
|
67
|
-
export function compile(ast, tables, format) {
|
|
68
|
-
const compiler = new Compiler(tables);
|
|
67
|
+
export function compile(ast, tables, serverSchema, format) {
|
|
68
|
+
const compiler = new Compiler(tables, serverSchema);
|
|
69
69
|
return compiler.compile(ast, format);
|
|
70
70
|
}
|
|
71
71
|
export class Compiler {
|
|
72
72
|
#tables;
|
|
73
|
+
#serverSchema;
|
|
73
74
|
#nameMapper;
|
|
74
|
-
constructor(tables) {
|
|
75
|
+
constructor(tables, serverSchema) {
|
|
75
76
|
this.#tables = tables;
|
|
77
|
+
this.#serverSchema = serverSchema;
|
|
76
78
|
this.#nameMapper = clientToServer(tables);
|
|
77
79
|
}
|
|
78
80
|
compile(ast, format) {
|
|
@@ -85,8 +87,8 @@ export class Compiler {
|
|
|
85
87
|
correlation) {
|
|
86
88
|
const selectionSet = this.related(ast.related ?? [], format, ast.table);
|
|
87
89
|
const tableSchema = this.#tables[ast.table];
|
|
88
|
-
for (const
|
|
89
|
-
selectionSet.push(this.#selectCol(ast.table, column
|
|
90
|
+
for (const column of Object.keys(tableSchema.columns)) {
|
|
91
|
+
selectionSet.push(this.#selectCol(ast.table, column));
|
|
90
92
|
}
|
|
91
93
|
return sql `SELECT ${sql.join(selectionSet, ',')} FROM ${this.#mapTable(ast.table)} ${ast.where ? sql `WHERE ${this.where(ast.where, ast.table)}` : sql ``} ${correlation
|
|
92
94
|
? sql `${ast.where ? sql `AND` : sql `WHERE`} (${correlation})`
|
|
@@ -96,17 +98,31 @@ export class Compiler {
|
|
|
96
98
|
if (!orderBy) {
|
|
97
99
|
return sql ``;
|
|
98
100
|
}
|
|
99
|
-
return sql `ORDER BY ${sql.join(orderBy.map(([col, dir]) =>
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
101
|
+
return sql `ORDER BY ${sql.join(orderBy.map(([col, dir]) => {
|
|
102
|
+
const serverColumnSchema = this.#serverSchema[this.#nameMapper.tableName(table)][this.#nameMapper.columnName(table, col)];
|
|
103
|
+
return dir === 'asc'
|
|
104
|
+
? // Oh postgres. The table must be referred to be client name but the column by server name.
|
|
105
|
+
// E.g., `SELECT server_col as client_col FROM server_table as client_table ORDER BY client_Table.server_col`
|
|
106
|
+
sql `${sql.ident(table)}.${this.#mapColumnNoAlias(table, col)}${this.#maybeCollate(serverColumnSchema)} ASC`
|
|
107
|
+
: sql `${sql.ident(table)}.${this.#mapColumnNoAlias(table, col)}${this.#maybeCollate(serverColumnSchema)} DESC`;
|
|
108
|
+
}), ', ')}`;
|
|
109
|
+
}
|
|
110
|
+
#maybeCollate(serverColumnSchema) {
|
|
111
|
+
if (serverColumnSchema.type === 'text' ||
|
|
112
|
+
serverColumnSchema.type === 'char' ||
|
|
113
|
+
serverColumnSchema.type === 'varchar') {
|
|
114
|
+
return sql ` COLLATE ${sql.ident(Z2S_COLLATION)}`;
|
|
115
|
+
}
|
|
116
|
+
if (serverColumnSchema.type === 'uuid' || serverColumnSchema.isEnum) {
|
|
117
|
+
return sql `::text COLLATE ${sql.ident(Z2S_COLLATION)}`;
|
|
118
|
+
}
|
|
119
|
+
return sql ``;
|
|
104
120
|
}
|
|
105
121
|
limit(limit) {
|
|
106
122
|
if (!limit) {
|
|
107
123
|
return sql ``;
|
|
108
124
|
}
|
|
109
|
-
return sql `LIMIT ${
|
|
125
|
+
return sql `LIMIT ${sqlConvertSingularLiteralArg(limit)}`;
|
|
110
126
|
}
|
|
111
127
|
related(relationships, format, parentTable) {
|
|
112
128
|
return relationships.map(relationship => this.relationshipSubquery(relationship, format?.relationships[must(relationship.subquery.alias)], parentTable));
|
|
@@ -194,7 +210,7 @@ export class Compiler {
|
|
|
194
210
|
case 'LIKE':
|
|
195
211
|
case 'NOT ILIKE':
|
|
196
212
|
case 'NOT LIKE':
|
|
197
|
-
return sql `${this.
|
|
213
|
+
return sql `${this.valueComparison(condition.left, table, condition.right, false)} ${sql.__dangerous__rawValue(condition.op)} ${this.valueComparison(condition.right, table, condition.left, false)}`;
|
|
198
214
|
case 'NOT IN':
|
|
199
215
|
case 'IN':
|
|
200
216
|
return this.any(condition, table);
|
|
@@ -204,19 +220,61 @@ export class Compiler {
|
|
|
204
220
|
}
|
|
205
221
|
}
|
|
206
222
|
distinctFrom(condition, table) {
|
|
207
|
-
return sql `${this.
|
|
223
|
+
return sql `${this.valueComparison(condition.left, table, condition.right, false)} ${condition.op === 'IS' ? sql `IS NOT DISTINCT FROM` : sql `IS DISTINCT FROM`} ${this.valueComparison(condition.right, table, condition.left, false)}`;
|
|
208
224
|
}
|
|
209
225
|
any(condition, table) {
|
|
210
|
-
return sql `${this.
|
|
226
|
+
return sql `${this.valueComparison(condition.left, table, condition.right, false)} ${condition.op === 'IN' ? sql `= ANY` : sql `!= ANY`} (${this.valueComparison(condition.right, table, condition.left, true)})`;
|
|
211
227
|
}
|
|
212
|
-
|
|
213
|
-
|
|
228
|
+
valueComparison(valuePos, table, otherValuePos, plural) {
|
|
229
|
+
const valuePosType = valuePos.type;
|
|
230
|
+
switch (valuePosType) {
|
|
214
231
|
case 'column':
|
|
215
|
-
return this.#mapColumnNoAlias(table,
|
|
232
|
+
return this.#mapColumnNoAlias(table, valuePos.name);
|
|
216
233
|
case 'literal':
|
|
217
|
-
return
|
|
234
|
+
return this.#literalValueComparison(valuePos, table, otherValuePos, plural);
|
|
218
235
|
case 'static':
|
|
219
236
|
throw new Error('Static parameters must be bound to a value before compiling to SQL');
|
|
237
|
+
default:
|
|
238
|
+
unreachable(valuePosType);
|
|
239
|
+
break;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
#literalValueComparison(valuePos, table, otherValuePos, plural) {
|
|
243
|
+
{
|
|
244
|
+
const otherType = otherValuePos.type;
|
|
245
|
+
switch (otherType) {
|
|
246
|
+
case 'column':
|
|
247
|
+
return sqlConvertColumnArg(this.#serverSchema[this.#nameMapper.tableName(table)][this.#nameMapper.columnName(table, otherValuePos.name)], valuePos.value, plural, true);
|
|
248
|
+
case 'literal': {
|
|
249
|
+
assert(plural === Array.isArray(valuePos.value));
|
|
250
|
+
if (Array.isArray(valuePos.value)) {
|
|
251
|
+
if (valuePos.value.length > 0) {
|
|
252
|
+
// If the array is non-empty base its type on its first
|
|
253
|
+
// element
|
|
254
|
+
return sqlConvertPluralLiteralArg(typeof valuePos.value[0], valuePos.value);
|
|
255
|
+
}
|
|
256
|
+
// If the array is empty, base its type on the other value
|
|
257
|
+
// position's type (as long as the other value position is non-null,
|
|
258
|
+
// cannot have a null[]).
|
|
259
|
+
if (otherValuePos.value !== null) {
|
|
260
|
+
return sqlConvertPluralLiteralArg(typeof otherValuePos.value, []);
|
|
261
|
+
}
|
|
262
|
+
// If the other value position is null, it can be compared to any
|
|
263
|
+
// type of empty array, chose 'string' arbitrarily.
|
|
264
|
+
return sqlConvertPluralLiteralArg('string', []);
|
|
265
|
+
}
|
|
266
|
+
if (typeof valuePos.value === 'string' ||
|
|
267
|
+
typeof valuePos.value === 'number' ||
|
|
268
|
+
typeof valuePos.value === 'boolean') {
|
|
269
|
+
return sqlConvertSingularLiteralArg(valuePos.value);
|
|
270
|
+
}
|
|
271
|
+
throw new Error(`Literal of unexpected type. ${valuePos.value} of type ${typeof valuePos.value}`);
|
|
272
|
+
}
|
|
273
|
+
case 'static':
|
|
274
|
+
throw new Error('Static parameters must be bound to a value before compiling to SQL');
|
|
275
|
+
default:
|
|
276
|
+
unreachable(otherType);
|
|
277
|
+
}
|
|
220
278
|
}
|
|
221
279
|
}
|
|
222
280
|
exists(condition, parentTable) {
|
|
@@ -257,8 +315,15 @@ export class Compiler {
|
|
|
257
315
|
const mapped = this.#nameMapper.tableName(table);
|
|
258
316
|
return sql.ident(mapped);
|
|
259
317
|
}
|
|
260
|
-
#selectCol(table, column
|
|
261
|
-
|
|
318
|
+
#selectCol(table, column) {
|
|
319
|
+
const serverColumnSchema = this.#serverSchema[this.#nameMapper.tableName(table)][this.#nameMapper.columnName(table, column)];
|
|
320
|
+
const serverType = serverColumnSchema.type;
|
|
321
|
+
if (!serverColumnSchema.isEnum &&
|
|
322
|
+
(serverType === 'date' ||
|
|
323
|
+
serverType === 'timestamp' ||
|
|
324
|
+
serverType === 'timestamptz' ||
|
|
325
|
+
serverType === 'timestamp with time zone' ||
|
|
326
|
+
serverType === 'timestamp without time zone')) {
|
|
262
327
|
return sql `EXTRACT(EPOCH FROM ${sql.ident(table)}.${this.#mapColumnNoAlias(table, column)}::timestamp AT TIME ZONE 'UTC') * 1000 as ${sql.ident(column)}`;
|
|
263
328
|
}
|
|
264
329
|
return sql `${sql.ident(table)}.${this.#mapColumn(table, column)}`;
|
|
@@ -266,43 +331,5 @@ export class Compiler {
|
|
|
266
331
|
#toJSON(table, singular = false) {
|
|
267
332
|
return sql `${singular ? sql `` : sql `COALESCE(json_agg`}(row_to_json(${sql.ident(table)})) ${singular ? sql `` : sql `, '[]'::json)`}`;
|
|
268
333
|
}
|
|
269
|
-
#extractType(table,
|
|
270
|
-
// first takes precedence over second in terms of type discovery
|
|
271
|
-
first, second) {
|
|
272
|
-
// Derive the type from the table schema first if able
|
|
273
|
-
const column = first.type === 'column'
|
|
274
|
-
? first.name
|
|
275
|
-
: second.type === 'column'
|
|
276
|
-
? second.name
|
|
277
|
-
: undefined;
|
|
278
|
-
if (column) {
|
|
279
|
-
return this.#tables[table].columns[column].type;
|
|
280
|
-
}
|
|
281
|
-
// We're comparing two literals? Derive the type from the JS type itself.
|
|
282
|
-
const literalValue = first.type === 'literal'
|
|
283
|
-
? first.value
|
|
284
|
-
: second.type === 'literal'
|
|
285
|
-
? second.value
|
|
286
|
-
: undefined;
|
|
287
|
-
assert(literalValue, 'Literal value not found');
|
|
288
|
-
if (literalValue === null) {
|
|
289
|
-
return 'null';
|
|
290
|
-
}
|
|
291
|
-
const jsType = typeof literalValue;
|
|
292
|
-
switch (jsType) {
|
|
293
|
-
case 'boolean':
|
|
294
|
-
case 'number':
|
|
295
|
-
case 'string':
|
|
296
|
-
return jsType;
|
|
297
|
-
case 'object':
|
|
298
|
-
case 'bigint':
|
|
299
|
-
case 'function':
|
|
300
|
-
case 'symbol':
|
|
301
|
-
case 'undefined':
|
|
302
|
-
throw new Error('Unsupported type: ' + jsType);
|
|
303
|
-
default:
|
|
304
|
-
unreachable(jsType);
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
334
|
}
|
|
308
335
|
//# sourceMappingURL=compiler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../../z2s/src/compiler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../../z2s/src/compiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type ServerTableSchema = {
|
|
2
|
+
[columnName: string]: ServerColumnSchema;
|
|
3
|
+
};
|
|
4
|
+
export type ServerColumnSchema = {
|
|
5
|
+
type: string;
|
|
6
|
+
isEnum: boolean;
|
|
7
|
+
};
|
|
8
|
+
export type ServerSchema = {
|
|
9
|
+
[tableName: string]: ServerTableSchema;
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../z2s/src/schema.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,CAAC;CACxC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../z2s/src/schema.ts"],"names":[],"mappings":""}
|
package/out/z2s/src/sql.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { SQLQuery } from '@databases/sql';
|
|
2
2
|
import baseSql from '@databases/sql';
|
|
3
|
-
import type {
|
|
4
|
-
|
|
3
|
+
import type { ServerColumnSchema } from './schema.ts';
|
|
4
|
+
export declare const Z2S_COLLATION = "ucs_basic";
|
|
5
5
|
export declare function formatPg(sql: SQLQuery): {
|
|
6
6
|
text: string;
|
|
7
7
|
values: unknown[];
|
|
@@ -14,7 +14,10 @@ export declare function formatSqlite(sql: SQLQuery): {
|
|
|
14
14
|
text: string;
|
|
15
15
|
values: unknown[];
|
|
16
16
|
};
|
|
17
|
-
export
|
|
18
|
-
export
|
|
17
|
+
export type LiteralType = 'boolean' | 'number' | 'string' | 'null';
|
|
18
|
+
export type PluralLiteralType = Exclude<LiteralType, 'null'>;
|
|
19
|
+
export declare function sqlConvertSingularLiteralArg(value: string | boolean | number | null): SQLQuery;
|
|
20
|
+
export declare function sqlConvertPluralLiteralArg(type: PluralLiteralType, value: PluralLiteralType[]): SQLQuery;
|
|
21
|
+
export declare function sqlConvertColumnArg(serverColumnSchema: ServerColumnSchema, value: unknown, plural: boolean, isComparison: boolean): SQLQuery;
|
|
19
22
|
export declare const sql: baseSql.SQL;
|
|
20
23
|
//# sourceMappingURL=sql.d.ts.map
|
package/out/z2s/src/sql.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../../../z2s/src/sql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAwB,MAAM,gBAAgB,CAAC;AACpE,OAAO,OAAsB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../../../z2s/src/sql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAwB,MAAM,gBAAgB,CAAC;AACpE,OAAO,OAAsB,MAAM,gBAAgB,CAAC;AAMpD,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,aAAa,CAAC;AAGpD,eAAO,MAAM,aAAa,cAAc,CAAC;AAEzC,wBAAgB,QAAQ,CAAC,GAAG,EAAE,QAAQ;UAsQ9B,MAAM;YACJ,OAAO,EAAE;EApQlB;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,QAAQ;UAiQ7C,MAAM;YACJ,OAAO,EAAE;EA/PlB;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,QAAQ;UA4PlC,MAAM;YACJ,OAAO,EAAE;EA1PlB;AAGD,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;AACnE,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAsB7D,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,GACtC,QAAQ,CAQV;AAED,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,iBAAiB,EACvB,KAAK,EAAE,iBAAiB,EAAE,GACzB,QAAQ,CAQV;AAED,wBAAgB,mBAAmB,CACjC,kBAAkB,EAAE,kBAAkB,EACtC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,OAAO,GACpB,QAAQ,CASV;AAiLD,eAAO,MAAM,GAAG,aAAkB,CAAC"}
|
package/out/z2s/src/sql.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import baseSql, { SQLItemType } from '@databases/sql';
|
|
2
2
|
import { escapePostgresIdentifier, escapeSQLiteIdentifier, } from '@databases/escape-identifier';
|
|
3
3
|
import { assert, unreachable } from "../../shared/src/asserts.js";
|
|
4
|
+
export const Z2S_COLLATION = 'ucs_basic';
|
|
4
5
|
export function formatPg(sql) {
|
|
5
6
|
const format = new ReusingFormat(escapePostgresIdentifier);
|
|
6
7
|
return sql.format((items) => formatFn(items, format));
|
|
@@ -17,14 +18,33 @@ const sqlConvert = Symbol('fromJson');
|
|
|
17
18
|
function isSqlConvert(value) {
|
|
18
19
|
return value !== null && typeof value === 'object' && sqlConvert in value;
|
|
19
20
|
}
|
|
20
|
-
export function
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
export function sqlConvertSingularLiteralArg(value) {
|
|
22
|
+
const arg = {
|
|
23
|
+
[sqlConvert]: 'literal',
|
|
24
|
+
type: value === null ? 'null' : typeof value,
|
|
25
|
+
value,
|
|
26
|
+
plural: false,
|
|
27
|
+
};
|
|
28
|
+
return sql.value(arg);
|
|
29
|
+
}
|
|
30
|
+
export function sqlConvertPluralLiteralArg(type, value) {
|
|
31
|
+
const arg = {
|
|
32
|
+
[sqlConvert]: 'literal',
|
|
33
|
+
type,
|
|
34
|
+
value,
|
|
35
|
+
plural: true,
|
|
36
|
+
};
|
|
37
|
+
return sql.value(arg);
|
|
25
38
|
}
|
|
26
|
-
export function
|
|
27
|
-
return
|
|
39
|
+
export function sqlConvertColumnArg(serverColumnSchema, value, plural, isComparison) {
|
|
40
|
+
return sql.value({
|
|
41
|
+
[sqlConvert]: 'column',
|
|
42
|
+
type: serverColumnSchema.type,
|
|
43
|
+
isEnum: serverColumnSchema.isEnum,
|
|
44
|
+
value,
|
|
45
|
+
plural,
|
|
46
|
+
isComparison,
|
|
47
|
+
});
|
|
28
48
|
}
|
|
29
49
|
class ReusingFormat {
|
|
30
50
|
#seen = new Map();
|
|
@@ -44,25 +64,26 @@ class ReusingFormat {
|
|
|
44
64
|
};
|
|
45
65
|
}
|
|
46
66
|
function stringify(arg) {
|
|
67
|
+
if (arg.value === null) {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
47
70
|
if (arg.plural) {
|
|
48
71
|
return JSON.stringify(arg.value);
|
|
49
72
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
return JSON.stringify(arg.value);
|
|
53
|
-
case 'boolean':
|
|
54
|
-
return arg.value ? 'true' : 'false';
|
|
55
|
-
case 'number':
|
|
56
|
-
case 'date':
|
|
57
|
-
case 'timestamp':
|
|
58
|
-
return arg.value.toString();
|
|
59
|
-
case 'string':
|
|
60
|
-
return arg.value;
|
|
61
|
-
case 'null':
|
|
62
|
-
return 'null';
|
|
63
|
-
default:
|
|
64
|
-
unreachable(arg.type);
|
|
73
|
+
if (arg[sqlConvert] === 'literal' && arg.type === 'string') {
|
|
74
|
+
return arg.value;
|
|
65
75
|
}
|
|
76
|
+
if (arg[sqlConvert] === 'column' &&
|
|
77
|
+
(arg.isEnum ||
|
|
78
|
+
arg.type === 'uuid' ||
|
|
79
|
+
arg.type === 'bpchar' ||
|
|
80
|
+
arg.type === 'character' ||
|
|
81
|
+
arg.type === 'text' ||
|
|
82
|
+
arg.type === 'character varying' ||
|
|
83
|
+
arg.type === 'varchar')) {
|
|
84
|
+
return arg.value;
|
|
85
|
+
}
|
|
86
|
+
return JSON.stringify(arg.value);
|
|
66
87
|
}
|
|
67
88
|
class SQLConvertFormat {
|
|
68
89
|
#seen = new Map();
|
|
@@ -85,74 +106,100 @@ class SQLConvertFormat {
|
|
|
85
106
|
value: stringify(value),
|
|
86
107
|
};
|
|
87
108
|
};
|
|
88
|
-
#createPlaceholder(index,
|
|
109
|
+
#createPlaceholder(index, arg) {
|
|
89
110
|
// Ok, so what is with all the `::text` casts
|
|
90
111
|
// before the final cast?
|
|
91
112
|
// This is to force the statement to describe its arguments
|
|
92
113
|
// as being text. Without the text cast the args are described as
|
|
93
114
|
// being bool/json/numeric/whatever and the bindings try to coerce
|
|
94
115
|
// the inputs to those types.
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
116
|
+
if (arg.type === 'null') {
|
|
117
|
+
assert(arg.value === null, "Args of type 'null' must have value null");
|
|
118
|
+
assert(!arg.plural, "Args of type 'null' must not be plural");
|
|
119
|
+
return `$${index}`;
|
|
120
|
+
}
|
|
121
|
+
if (arg[sqlConvert] === 'literal') {
|
|
122
|
+
const collate = arg.type === 'string' ? ` COLLATE "${Z2S_COLLATION}"` : '';
|
|
123
|
+
const { value } = arg;
|
|
124
|
+
if (Array.isArray(value)) {
|
|
125
|
+
const elType = pgTypeForLiteralType(arg.type);
|
|
126
|
+
return formatPlural(index, `value::${elType}${collate}`);
|
|
127
|
+
}
|
|
128
|
+
return `$${index}::text::${pgTypeForLiteralType(arg.type)}${collate}`;
|
|
129
|
+
}
|
|
130
|
+
const collate = arg.isComparison ? ` COLLATE "${Z2S_COLLATION}"` : '';
|
|
131
|
+
if (!arg.plural) {
|
|
132
|
+
if (arg.isEnum) {
|
|
133
|
+
if (arg.isComparison) {
|
|
134
|
+
return `$${index}::text ${collate}`;
|
|
135
|
+
}
|
|
136
|
+
return `$${index}::text::${arg.type}`;
|
|
137
|
+
}
|
|
138
|
+
switch (arg.type) {
|
|
108
139
|
case 'date':
|
|
109
140
|
case 'timestamp':
|
|
110
|
-
|
|
111
|
-
case '
|
|
112
|
-
|
|
141
|
+
case 'timestamptz':
|
|
142
|
+
case 'timestamp with time zone':
|
|
143
|
+
case 'timestamp without time zone':
|
|
144
|
+
return `to_timestamp($${index}::text::bigint / 1000.0) AT TIME ZONE 'UTC'`;
|
|
145
|
+
case 'text':
|
|
146
|
+
return `$${index}::text${collate}`;
|
|
147
|
+
case 'bpchar':
|
|
148
|
+
case 'character':
|
|
149
|
+
case 'character varying':
|
|
150
|
+
case 'varchar':
|
|
151
|
+
return `$${index}::text::${arg.type}${collate}`;
|
|
152
|
+
// uuid doesn't support collation, so we compare as text
|
|
153
|
+
case 'uuid':
|
|
154
|
+
return arg.isComparison
|
|
155
|
+
? `$${index}::text ${collate}`
|
|
156
|
+
: `$${index}::text::uuid`;
|
|
113
157
|
default:
|
|
114
|
-
|
|
158
|
+
return `$${index}::text::${arg.type}`;
|
|
115
159
|
}
|
|
116
160
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
)
|
|
124
|
-
case 'string':
|
|
125
|
-
return `ARRAY(
|
|
126
|
-
SELECT value FROM jsonb_array_elements_text($${index}::text::jsonb)
|
|
127
|
-
)`;
|
|
161
|
+
if (arg.isEnum && arg.isComparison) {
|
|
162
|
+
if (arg.isComparison) {
|
|
163
|
+
return formatPlural(index, `value::text${collate}`);
|
|
164
|
+
}
|
|
165
|
+
return formatPlural(index, `value::${arg.type}`);
|
|
166
|
+
}
|
|
167
|
+
switch (arg.type) {
|
|
128
168
|
case 'date':
|
|
129
169
|
case 'timestamp':
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
case '
|
|
135
|
-
|
|
170
|
+
case 'timestamptz':
|
|
171
|
+
case 'timestamp with time zone':
|
|
172
|
+
case 'timestamp without time zone':
|
|
173
|
+
return formatPlural(index, `to_timestamp(value::bigint / 1000.0)`);
|
|
174
|
+
case 'bpchar':
|
|
175
|
+
case 'character':
|
|
176
|
+
case 'character varying':
|
|
177
|
+
case 'text':
|
|
178
|
+
case 'varchar':
|
|
179
|
+
return formatPlural(index, `value::${arg.type}${collate}`);
|
|
180
|
+
// uuid doesn't support collation, so we compare as text
|
|
181
|
+
case 'uuid':
|
|
182
|
+
return arg.isComparison
|
|
183
|
+
? formatPlural(index, `value::text${collate}`)
|
|
184
|
+
: formatPlural(index, `value::${arg.type}`);
|
|
136
185
|
default:
|
|
137
|
-
|
|
186
|
+
return formatPlural(index, `value::${arg.type}`);
|
|
138
187
|
}
|
|
139
188
|
}
|
|
140
189
|
}
|
|
141
|
-
function
|
|
190
|
+
function formatPlural(index, select) {
|
|
191
|
+
return `ARRAY(
|
|
192
|
+
SELECT ${select} FROM jsonb_array_elements_text($${index}::text::jsonb)
|
|
193
|
+
)`;
|
|
194
|
+
}
|
|
195
|
+
function pgTypeForLiteralType(type) {
|
|
142
196
|
switch (type) {
|
|
143
|
-
case 'json':
|
|
144
|
-
return 'jsonb';
|
|
145
197
|
case 'boolean':
|
|
146
198
|
return 'boolean';
|
|
147
199
|
case 'number':
|
|
148
200
|
return 'numeric';
|
|
149
201
|
case 'string':
|
|
150
202
|
return 'text';
|
|
151
|
-
case 'date':
|
|
152
|
-
case 'timestamp':
|
|
153
|
-
return 'bigint';
|
|
154
|
-
case 'null':
|
|
155
|
-
return 'null';
|
|
156
203
|
default:
|
|
157
204
|
unreachable(type);
|
|
158
205
|
}
|