@prisma-next/sql-relational-core 0.16.0-dev.2 → 0.16.0-dev.20
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/dist/{codec-types-C8vFGWij.d.mts → codec-types-Bayoa4PI.d.mts} +3 -2
- package/dist/codec-types-Bayoa4PI.d.mts.map +1 -0
- package/dist/{ddl-types-DzaZCtFT.d.mts → ddl-types-B3SfjPGI.d.mts} +3 -3
- package/dist/{ddl-types-DzaZCtFT.d.mts.map → ddl-types-B3SfjPGI.d.mts.map} +1 -1
- package/dist/exports/ast.d.mts +4 -4
- package/dist/exports/ast.mjs +63 -2
- package/dist/exports/ast.mjs.map +1 -1
- package/dist/exports/codec-descriptor-registry.d.mts +2 -2
- package/dist/exports/contract-free.d.mts +3 -3
- package/dist/exports/contract-free.mjs +1 -1
- package/dist/exports/expression.d.mts +2 -2
- package/dist/exports/expression.mjs +1 -1
- package/dist/exports/middleware.d.mts +1 -1
- package/dist/exports/plan.d.mts +2 -2
- package/dist/exports/query-lane-context.d.mts +1 -1
- package/dist/exports/types.d.mts +1 -1
- package/dist/index.d.mts +9 -9
- package/dist/index.mjs +3 -3
- package/dist/{middleware-CFDg6XOc.d.mts → middleware-_9-4TYKC.d.mts} +2 -2
- package/dist/{middleware-CFDg6XOc.d.mts.map → middleware-_9-4TYKC.d.mts.map} +1 -1
- package/dist/{plan-CBT55zev.d.mts → plan-Dq94efZJ.d.mts} +2 -2
- package/dist/{plan-CBT55zev.d.mts.map → plan-Dq94efZJ.d.mts.map} +1 -1
- package/dist/{query-lane-context-BNbbusGn.d.mts → query-lane-context-DTCOHMXn.d.mts} +2 -2
- package/dist/{query-lane-context-BNbbusGn.d.mts.map → query-lane-context-DTCOHMXn.d.mts.map} +1 -1
- package/dist/{sql-execution-plan-CPw3uKrJ.d.mts → sql-execution-plan-B-C-6cZN.d.mts} +2 -2
- package/dist/{sql-execution-plan-CPw3uKrJ.d.mts.map → sql-execution-plan-B-C-6cZN.d.mts.map} +1 -1
- package/dist/{types-BR266jxM.d.mts → types-CRV7uuOC.d.mts} +5 -5
- package/dist/{types-BR266jxM.d.mts.map → types-CRV7uuOC.d.mts.map} +1 -1
- package/dist/{types-Dr3jep6j.d.mts → types-CWlaErjN.d.mts} +97 -13
- package/dist/types-CWlaErjN.d.mts.map +1 -0
- package/dist/{types-DtzFztRV.mjs → types-DpAvAX8u.mjs} +160 -24
- package/dist/types-DpAvAX8u.mjs.map +1 -0
- package/package.json +11 -11
- package/src/ast/codec-types.ts +37 -0
- package/src/ast/json-value-projection.ts +100 -0
- package/src/ast/types.ts +227 -49
- package/src/exports/ast.ts +1 -0
- package/dist/codec-types-C8vFGWij.d.mts.map +0 -1
- package/dist/types-Dr3jep6j.d.mts.map +0 -1
- package/dist/types-DtzFztRV.mjs.map +0 -1
|
@@ -1,6 +1,44 @@
|
|
|
1
|
-
import { o as CodecRef } from "./codec-types-
|
|
1
|
+
import { o as CodecRef } from "./codec-types-Bayoa4PI.mjs";
|
|
2
2
|
import { ParamSpec } from "@prisma-next/operations";
|
|
3
3
|
import { SqlLoweringSpec } from "@prisma-next/sql-operations";
|
|
4
|
+
//#region src/ast/json-value-projection.d.ts
|
|
5
|
+
declare abstract class JsonValueProjection {
|
|
6
|
+
abstract readonly kind: string;
|
|
7
|
+
readonly value: ProjectionExpr;
|
|
8
|
+
protected constructor(value: ProjectionExpr);
|
|
9
|
+
abstract accept<R>(visitor: JsonValueProjectionVisitor<R>): R;
|
|
10
|
+
abstract rewrite(rewriter: ExpressionRewriter): AnyJsonValueProjection;
|
|
11
|
+
fold<T>(folder: ExpressionFolder<T>): T;
|
|
12
|
+
collectColumnRefs(): ColumnRef[];
|
|
13
|
+
collectParamRefs(): AnyParamRef[];
|
|
14
|
+
protected freeze(): void;
|
|
15
|
+
}
|
|
16
|
+
interface JsonValueProjectionVisitor<R> {
|
|
17
|
+
codec(projection: CodecJsonValueProjection): R;
|
|
18
|
+
native(projection: NativeJsonValueProjection): R;
|
|
19
|
+
document(projection: JsonDocumentProjection): R;
|
|
20
|
+
}
|
|
21
|
+
declare class CodecJsonValueProjection extends JsonValueProjection {
|
|
22
|
+
readonly kind: "codec";
|
|
23
|
+
readonly codec: CodecRef;
|
|
24
|
+
constructor(value: ProjectionExpr, codec: CodecRef);
|
|
25
|
+
accept<R>(visitor: JsonValueProjectionVisitor<R>): R;
|
|
26
|
+
rewrite(rewriter: ExpressionRewriter): CodecJsonValueProjection;
|
|
27
|
+
}
|
|
28
|
+
declare class NativeJsonValueProjection extends JsonValueProjection {
|
|
29
|
+
readonly kind: "native";
|
|
30
|
+
constructor(value: ProjectionExpr);
|
|
31
|
+
accept<R>(visitor: JsonValueProjectionVisitor<R>): R;
|
|
32
|
+
rewrite(rewriter: ExpressionRewriter): NativeJsonValueProjection;
|
|
33
|
+
}
|
|
34
|
+
declare class JsonDocumentProjection extends JsonValueProjection {
|
|
35
|
+
readonly kind: "document";
|
|
36
|
+
constructor(value: ProjectionExpr);
|
|
37
|
+
accept<R>(visitor: JsonValueProjectionVisitor<R>): R;
|
|
38
|
+
rewrite(rewriter: ExpressionRewriter): JsonDocumentProjection;
|
|
39
|
+
}
|
|
40
|
+
type AnyJsonValueProjection = CodecJsonValueProjection | NativeJsonValueProjection | JsonDocumentProjection;
|
|
41
|
+
//#endregion
|
|
4
42
|
//#region src/ast/types.d.ts
|
|
5
43
|
type Direction = 'asc' | 'desc';
|
|
6
44
|
type BinaryOp = 'eq' | 'neq' | 'gt' | 'lt' | 'gte' | 'lte' | 'like' | 'in' | 'notIn';
|
|
@@ -41,6 +79,9 @@ interface ExprVisitor<R> {
|
|
|
41
79
|
operation(expr: OperationExpr): R;
|
|
42
80
|
aggregate(expr: AggregateExpr): R;
|
|
43
81
|
windowFunc(expr: WindowFuncExpr): R;
|
|
82
|
+
functionCall(expr: FunctionCallExpr): R;
|
|
83
|
+
cast(expr: CastExpr): R;
|
|
84
|
+
case(expr: CaseExpr): R;
|
|
44
85
|
jsonObject(expr: JsonObjectExpr): R;
|
|
45
86
|
jsonArrayAgg(expr: JsonArrayAggExpr): R;
|
|
46
87
|
binary(expr: BinaryExpr): R;
|
|
@@ -74,7 +115,7 @@ type JoinOnExpr = EqColJoinOn | AnyExpression;
|
|
|
74
115
|
type WhereArg = AnyExpression | ToWhereExpr;
|
|
75
116
|
type JsonObjectEntry = {
|
|
76
117
|
readonly key: string;
|
|
77
|
-
readonly value:
|
|
118
|
+
readonly value: AnyJsonValueProjection;
|
|
78
119
|
};
|
|
79
120
|
declare abstract class AstNode {
|
|
80
121
|
abstract readonly kind: string;
|
|
@@ -89,6 +130,7 @@ declare abstract class FromSource extends AstNode {
|
|
|
89
130
|
abstract toFromSource(): AnyFromSource;
|
|
90
131
|
}
|
|
91
132
|
declare abstract class Expression extends AstNode implements ExpressionSource {
|
|
133
|
+
#private;
|
|
92
134
|
abstract accept<R>(visitor: ExprVisitor<R>): R;
|
|
93
135
|
abstract rewrite(rewriter: ExpressionRewriter): AnyExpression;
|
|
94
136
|
abstract fold<T>(folder: ExpressionFolder<T>): T;
|
|
@@ -127,13 +169,21 @@ declare class DerivedTableSource extends FromSource {
|
|
|
127
169
|
rewrite(rewriter: AstRewriter): AnyFromSource;
|
|
128
170
|
toFromSource(): AnyFromSource;
|
|
129
171
|
}
|
|
172
|
+
interface FunctionSourceAlias {
|
|
173
|
+
readonly alias: string;
|
|
174
|
+
readonly columnAliases?: ReadonlyArray<string>;
|
|
175
|
+
}
|
|
130
176
|
declare class FunctionSource extends FromSource {
|
|
177
|
+
#private;
|
|
131
178
|
readonly kind: "function-source";
|
|
132
179
|
readonly fn: string;
|
|
133
180
|
readonly args: ReadonlyArray<AnyExpression>;
|
|
134
181
|
readonly alias: string | undefined;
|
|
135
|
-
|
|
136
|
-
|
|
182
|
+
readonly columnAliases: ReadonlyArray<string> | undefined;
|
|
183
|
+
readonly ordinality: boolean;
|
|
184
|
+
protected constructor(fn: string, args: ReadonlyArray<AnyExpression>, alias?: FunctionSourceAlias, ordinality?: boolean);
|
|
185
|
+
static of(fn: string, args: ReadonlyArray<AnyExpression>, alias?: FunctionSourceAlias): FunctionSource;
|
|
186
|
+
withOrdinality(): FunctionSource;
|
|
137
187
|
rewrite(rewriter: AstRewriter): AnyFromSource;
|
|
138
188
|
toFromSource(): AnyFromSource;
|
|
139
189
|
}
|
|
@@ -295,11 +345,45 @@ declare class WindowFuncExpr extends Expression {
|
|
|
295
345
|
rewrite(rewriter: ExpressionRewriter): AnyExpression;
|
|
296
346
|
fold<T>(folder: ExpressionFolder<T>): T;
|
|
297
347
|
}
|
|
348
|
+
declare class FunctionCallExpr extends Expression {
|
|
349
|
+
readonly kind: "function-call";
|
|
350
|
+
readonly fn: string;
|
|
351
|
+
readonly args: ReadonlyArray<AnyExpression>;
|
|
352
|
+
constructor(fn: string, args: ReadonlyArray<AnyExpression>);
|
|
353
|
+
static of(fn: string, args: ReadonlyArray<AnyExpression>): FunctionCallExpr;
|
|
354
|
+
accept<R>(visitor: ExprVisitor<R>): R;
|
|
355
|
+
rewrite(rewriter: ExpressionRewriter): AnyExpression;
|
|
356
|
+
fold<T>(folder: ExpressionFolder<T>): T;
|
|
357
|
+
}
|
|
358
|
+
declare class CastExpr extends Expression {
|
|
359
|
+
readonly kind: "cast";
|
|
360
|
+
readonly expr: AnyExpression;
|
|
361
|
+
readonly targetType: string;
|
|
362
|
+
constructor(expr: AnyExpression, targetType: string);
|
|
363
|
+
static as(expr: AnyExpression, targetType: string): CastExpr;
|
|
364
|
+
accept<R>(visitor: ExprVisitor<R>): R;
|
|
365
|
+
rewrite(rewriter: ExpressionRewriter): AnyExpression;
|
|
366
|
+
fold<T>(folder: ExpressionFolder<T>): T;
|
|
367
|
+
}
|
|
368
|
+
interface CaseBranch {
|
|
369
|
+
readonly condition: AnyExpression;
|
|
370
|
+
readonly value: AnyExpression;
|
|
371
|
+
}
|
|
372
|
+
declare class CaseExpr extends Expression {
|
|
373
|
+
readonly kind: "case";
|
|
374
|
+
readonly branches: ReadonlyArray<Readonly<CaseBranch>>;
|
|
375
|
+
readonly elseExpr: AnyExpression | undefined;
|
|
376
|
+
constructor(branches: ReadonlyArray<CaseBranch>, elseExpr?: AnyExpression);
|
|
377
|
+
static of(branches: ReadonlyArray<CaseBranch>, elseExpr?: AnyExpression): CaseExpr;
|
|
378
|
+
accept<R>(visitor: ExprVisitor<R>): R;
|
|
379
|
+
rewrite(rewriter: ExpressionRewriter): AnyExpression;
|
|
380
|
+
fold<T>(folder: ExpressionFolder<T>): T;
|
|
381
|
+
}
|
|
298
382
|
declare class JsonObjectExpr extends Expression {
|
|
299
383
|
readonly kind: "json-object";
|
|
300
384
|
readonly entries: ReadonlyArray<JsonObjectEntry>;
|
|
301
385
|
constructor(entries: ReadonlyArray<JsonObjectEntry>);
|
|
302
|
-
static entry(key: string, value:
|
|
386
|
+
static entry(key: string, value: AnyJsonValueProjection): JsonObjectEntry;
|
|
303
387
|
static fromEntries(entries: ReadonlyArray<JsonObjectEntry>): JsonObjectExpr;
|
|
304
388
|
accept<R>(visitor: ExprVisitor<R>): R;
|
|
305
389
|
rewrite(rewriter: ExpressionRewriter): AnyExpression;
|
|
@@ -322,11 +406,11 @@ declare class OrderByItem extends AstNode {
|
|
|
322
406
|
}
|
|
323
407
|
declare class JsonArrayAggExpr extends Expression {
|
|
324
408
|
readonly kind: "json-array-agg";
|
|
325
|
-
readonly expr:
|
|
409
|
+
readonly expr: AnyJsonValueProjection;
|
|
326
410
|
readonly onEmpty: 'null' | 'emptyArray';
|
|
327
411
|
readonly orderBy: ReadonlyArray<OrderByItem> | undefined;
|
|
328
|
-
constructor(expr:
|
|
329
|
-
static of(expr:
|
|
412
|
+
constructor(expr: AnyJsonValueProjection, onEmpty?: 'null' | 'emptyArray', orderBy?: ReadonlyArray<OrderByItem>);
|
|
413
|
+
static of(expr: AnyJsonValueProjection, onEmpty?: 'null' | 'emptyArray', orderBy?: ReadonlyArray<OrderByItem>): JsonArrayAggExpr;
|
|
330
414
|
accept<R>(visitor: ExprVisitor<R>): R;
|
|
331
415
|
rewrite(rewriter: ExpressionRewriter): AnyExpression;
|
|
332
416
|
fold<T>(folder: ExpressionFolder<T>): T;
|
|
@@ -437,9 +521,9 @@ declare class ProjectionItem extends AstNode {
|
|
|
437
521
|
readonly alias: string;
|
|
438
522
|
readonly expr: ProjectionExpr;
|
|
439
523
|
/**
|
|
440
|
-
* Codec identity for
|
|
524
|
+
* Codec identity for any known projected result, whether read directly from a contract column or forwarded through a query wrapper. Decode-side dispatch resolves the per-instance codec through `contractCodecs.forCodecRef(codec)` — content-keyed memoisation collapses repeated lookups for the same logical result onto one shared {@link Codec}.
|
|
441
525
|
*
|
|
442
|
-
* Stays `undefined`
|
|
526
|
+
* Stays `undefined` only when the projected result's codec is unknown, such as computed expressions, subqueries, or raw aliases whose decoded type the runtime cannot infer.
|
|
443
527
|
*/
|
|
444
528
|
readonly codec: CodecRef | undefined;
|
|
445
529
|
constructor(alias: string, expr: ProjectionExpr, codec?: CodecRef);
|
|
@@ -595,7 +679,7 @@ declare class RawSqlExpr extends QueryAst {
|
|
|
595
679
|
}
|
|
596
680
|
type AnyQueryAst = SelectAst | InsertAst | UpdateAst | DeleteAst | RawSqlExpr;
|
|
597
681
|
type AnyFromSource = TableSource | DerivedTableSource | FunctionSource;
|
|
598
|
-
type AnyExpression = ColumnRef | IdentifierRef | ParamRef | PreparedParamRef | LiteralExpr | SubqueryExpr | OperationExpr | AggregateExpr | WindowFuncExpr | JsonObjectExpr | JsonArrayAggExpr | ListExpression | BinaryExpr | AndExpr | OrExpr | ExistsExpr | NullCheckExpr | NotExpr | RawExpr;
|
|
682
|
+
type AnyExpression = ColumnRef | IdentifierRef | ParamRef | PreparedParamRef | LiteralExpr | SubqueryExpr | OperationExpr | AggregateExpr | WindowFuncExpr | FunctionCallExpr | CastExpr | CaseExpr | JsonObjectExpr | JsonArrayAggExpr | ListExpression | BinaryExpr | AndExpr | OrExpr | ExistsExpr | NullCheckExpr | NotExpr | RawExpr;
|
|
599
683
|
type AnyParamRef = ParamRef | PreparedParamRef;
|
|
600
684
|
type AnyInsertOnConflictAction = DoNothingConflictAction | DoUpdateSetConflictAction;
|
|
601
685
|
type AnyInsertValue = ColumnRef | ParamRef | PreparedParamRef | DefaultValueExpr | RawExpr;
|
|
@@ -634,5 +718,5 @@ interface LoweredStatement {
|
|
|
634
718
|
readonly annotations?: Record<string, unknown>;
|
|
635
719
|
}
|
|
636
720
|
//#endregion
|
|
637
|
-
export {
|
|
638
|
-
//# sourceMappingURL=types-
|
|
721
|
+
export { OrderByItem as $, ExpressionRewriter as A, JoinOnExpr as B, Direction as C, JsonDocumentProjection as Ct, ExistsExpr as D, EqColJoinOn as E, IdentifierRef as F, ListExpression as G, JsonObjectEntry as H, InsertAst as I, LoweredStatement as J, LiteralExpr as K, InsertOnConflict as L, FunctionCallExpr as M, FunctionSource as N, ExprVisitor as O, FunctionSourceAlias as P, OrExpr as Q, InsertValue as R, DerivedTableSource as S, CodecJsonValueProjection as St, DoUpdateSetConflictAction as T, NativeJsonValueProjection as Tt, JsonObjectExpr as U, JsonArrayAggExpr as V, LimitOffsetValue as W, NullCheckExpr as X, NotExpr as Y, OperationExpr as Z, CaseExpr as _, isQueryAst as _t, AndExpr as a, RawSqlExpr as at, DefaultValueExpr as b, whereExprKinds as bt, AnyInsertOnConflictAction as c, SelectAstOptions as ct, AnyParamRef as d, TableSource as dt, ParamRef as et, AnyQueryAst as f, ToWhereExpr as ft, CaseBranch as g, WindowFuncExpr as gt, BinaryOp as h, WindowFn as ht, AggregateOpFn as i, RawExpr as it, ExpressionSource as j, ExpressionFolder as k, AnyInsertValue as l, SubqueryExpr as lt, BinaryExpr as m, WhereArg as mt, AggregateExpr as n, ProjectionExpr as nt, AnyExpression as o, RawSqlLiteral as ot, AstRewriter as p, UpdateAst as pt, LoweredParam as q, AggregateFn as r, ProjectionItem as rt, AnyFromSource as s, SelectAst as st, AggregateCountFn as t, PreparedParamRef as tt, AnyOperationArg as u, TableRef as ut, CastExpr as v, isWhereExpr as vt, DoNothingConflictAction as w, JsonValueProjectionVisitor as wt, DeleteAst as x, AnyJsonValueProjection as xt, ColumnRef as y, queryAstKinds as yt, JoinAst as z };
|
|
722
|
+
//# sourceMappingURL=types-CWlaErjN.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-CWlaErjN.d.mts","names":[],"sources":["../src/ast/json-value-projection.ts","../src/ast/types.ts"],"mappings":"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"}
|
|
@@ -1,5 +1,50 @@
|
|
|
1
1
|
import { ifDefined } from "@prisma-next/utils/defined";
|
|
2
|
+
import { structuredError } from "@prisma-next/utils/structured-error";
|
|
3
|
+
//#region src/ast/codec-types.ts
|
|
4
|
+
function isJsonArray(value) {
|
|
5
|
+
return Array.isArray(value);
|
|
6
|
+
}
|
|
7
|
+
function freezeJsonValue(value) {
|
|
8
|
+
if (value === null || typeof value !== "object") return;
|
|
9
|
+
if (isJsonArray(value)) for (const item of value) freezeJsonValue(item);
|
|
10
|
+
else for (const item of Object.values(value)) freezeJsonValue(item);
|
|
11
|
+
Object.freeze(value);
|
|
12
|
+
}
|
|
13
|
+
function frozenCodecRef(codec) {
|
|
14
|
+
const typeParams = codec.typeParams === void 0 ? void 0 : structuredClone(codec.typeParams);
|
|
15
|
+
if (typeParams !== void 0) freezeJsonValue(typeParams);
|
|
16
|
+
return Object.freeze({
|
|
17
|
+
codecId: codec.codecId,
|
|
18
|
+
...ifDefined("typeParams", typeParams),
|
|
19
|
+
...ifDefined("many", codec.many)
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
2
23
|
//#region src/ast/types.ts
|
|
24
|
+
const toAnyExpressionVisitor = {
|
|
25
|
+
columnRef: (expr) => expr,
|
|
26
|
+
identifierRef: (expr) => expr,
|
|
27
|
+
subquery: (expr) => expr,
|
|
28
|
+
operation: (expr) => expr,
|
|
29
|
+
aggregate: (expr) => expr,
|
|
30
|
+
windowFunc: (expr) => expr,
|
|
31
|
+
functionCall: (expr) => expr,
|
|
32
|
+
cast: (expr) => expr,
|
|
33
|
+
case: (expr) => expr,
|
|
34
|
+
jsonObject: (expr) => expr,
|
|
35
|
+
jsonArrayAgg: (expr) => expr,
|
|
36
|
+
binary: (expr) => expr,
|
|
37
|
+
and: (expr) => expr,
|
|
38
|
+
or: (expr) => expr,
|
|
39
|
+
exists: (expr) => expr,
|
|
40
|
+
nullCheck: (expr) => expr,
|
|
41
|
+
not: (expr) => expr,
|
|
42
|
+
literal: (expr) => expr,
|
|
43
|
+
param: (expr) => expr,
|
|
44
|
+
preparedParam: (expr) => expr,
|
|
45
|
+
list: (expr) => expr,
|
|
46
|
+
rawExpr: (expr) => expr
|
|
47
|
+
};
|
|
3
48
|
function frozenArrayCopy(values) {
|
|
4
49
|
return Object.freeze([...values]);
|
|
5
50
|
}
|
|
@@ -9,17 +54,6 @@ function frozenOptionalRecordCopy(value) {
|
|
|
9
54
|
function frozenRecordCopy(record) {
|
|
10
55
|
return Object.freeze({ ...record });
|
|
11
56
|
}
|
|
12
|
-
function frozenCodecRef(codec) {
|
|
13
|
-
const typeParams = codec.typeParams === void 0 ? void 0 : structuredClone(codec.typeParams);
|
|
14
|
-
const base = {
|
|
15
|
-
codecId: codec.codecId,
|
|
16
|
-
...ifDefined("typeParams", typeParams)
|
|
17
|
-
};
|
|
18
|
-
return Object.freeze(codec.many ? {
|
|
19
|
-
...base,
|
|
20
|
-
many: true
|
|
21
|
-
} : base);
|
|
22
|
-
}
|
|
23
57
|
function freezeRows(rows) {
|
|
24
58
|
return Object.freeze(rows.map((row) => Object.freeze({ ...row })));
|
|
25
59
|
}
|
|
@@ -131,11 +165,14 @@ var Expression = class extends AstNode {
|
|
|
131
165
|
baseColumnRef() {
|
|
132
166
|
throw new Error(`${this.constructor.name} does not expose a base column reference`);
|
|
133
167
|
}
|
|
168
|
+
#asAnyExpression() {
|
|
169
|
+
return this.accept(toAnyExpressionVisitor);
|
|
170
|
+
}
|
|
134
171
|
toExpr() {
|
|
135
|
-
return this;
|
|
172
|
+
return this.#asAnyExpression();
|
|
136
173
|
}
|
|
137
174
|
not() {
|
|
138
|
-
return new NotExpr(this);
|
|
175
|
+
return new NotExpr(this.#asAnyExpression());
|
|
139
176
|
}
|
|
140
177
|
};
|
|
141
178
|
var TableSource = class TableSource extends FromSource {
|
|
@@ -192,20 +229,39 @@ var FunctionSource = class FunctionSource extends FromSource {
|
|
|
192
229
|
fn;
|
|
193
230
|
args;
|
|
194
231
|
alias;
|
|
195
|
-
|
|
232
|
+
columnAliases;
|
|
233
|
+
ordinality;
|
|
234
|
+
constructor(fn, args, alias, ordinality = false) {
|
|
196
235
|
super();
|
|
236
|
+
if (alias?.columnAliases?.length === 0) throw structuredError("SQL.AST_INVALID", "FunctionSource column aliases must not be empty", { meta: {
|
|
237
|
+
kind: "function-source",
|
|
238
|
+
field: "columnAliases"
|
|
239
|
+
} });
|
|
197
240
|
this.fn = fn;
|
|
198
241
|
this.args = frozenArrayCopy(args);
|
|
199
|
-
this.alias = alias;
|
|
242
|
+
this.alias = alias?.alias;
|
|
243
|
+
this.columnAliases = alias?.columnAliases === void 0 ? void 0 : frozenArrayCopy(alias.columnAliases);
|
|
244
|
+
this.ordinality = ordinality;
|
|
200
245
|
this.freeze();
|
|
201
246
|
}
|
|
202
247
|
static of(fn, args, alias) {
|
|
203
248
|
return new FunctionSource(fn, args, alias);
|
|
204
249
|
}
|
|
250
|
+
#aliasOptions() {
|
|
251
|
+
if (this.alias === void 0) return void 0;
|
|
252
|
+
return {
|
|
253
|
+
alias: this.alias,
|
|
254
|
+
...ifDefined("columnAliases", this.columnAliases)
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
withOrdinality() {
|
|
258
|
+
if (this.ordinality) return this;
|
|
259
|
+
return new FunctionSource(this.fn, this.args, this.#aliasOptions(), true);
|
|
260
|
+
}
|
|
205
261
|
rewrite(rewriter) {
|
|
206
262
|
const rewrittenArgs = this.args.map((arg) => rewriteComparable(arg, rewriter));
|
|
207
263
|
if (rewrittenArgs.every((arg, i) => arg === this.args[i])) return this;
|
|
208
|
-
return new FunctionSource(this.fn, rewrittenArgs, this.
|
|
264
|
+
return new FunctionSource(this.fn, rewrittenArgs, this.#aliasOptions(), this.ordinality);
|
|
209
265
|
}
|
|
210
266
|
toFromSource() {
|
|
211
267
|
return this;
|
|
@@ -511,6 +567,86 @@ var WindowFuncExpr = class WindowFuncExpr extends Expression {
|
|
|
511
567
|
]);
|
|
512
568
|
}
|
|
513
569
|
};
|
|
570
|
+
var FunctionCallExpr = class FunctionCallExpr extends Expression {
|
|
571
|
+
kind = "function-call";
|
|
572
|
+
fn;
|
|
573
|
+
args;
|
|
574
|
+
constructor(fn, args) {
|
|
575
|
+
super();
|
|
576
|
+
this.fn = fn;
|
|
577
|
+
this.args = frozenArrayCopy(args);
|
|
578
|
+
this.freeze();
|
|
579
|
+
}
|
|
580
|
+
static of(fn, args) {
|
|
581
|
+
return new FunctionCallExpr(fn, args);
|
|
582
|
+
}
|
|
583
|
+
accept(visitor) {
|
|
584
|
+
return visitor.functionCall(this);
|
|
585
|
+
}
|
|
586
|
+
rewrite(rewriter) {
|
|
587
|
+
return new FunctionCallExpr(this.fn, this.args.map((arg) => arg.rewrite(rewriter)));
|
|
588
|
+
}
|
|
589
|
+
fold(folder) {
|
|
590
|
+
return combineAll(folder, this.args.map((arg) => () => arg.fold(folder)));
|
|
591
|
+
}
|
|
592
|
+
};
|
|
593
|
+
var CastExpr = class CastExpr extends Expression {
|
|
594
|
+
kind = "cast";
|
|
595
|
+
expr;
|
|
596
|
+
targetType;
|
|
597
|
+
constructor(expr, targetType) {
|
|
598
|
+
super();
|
|
599
|
+
this.expr = expr;
|
|
600
|
+
this.targetType = targetType;
|
|
601
|
+
this.freeze();
|
|
602
|
+
}
|
|
603
|
+
static as(expr, targetType) {
|
|
604
|
+
return new CastExpr(expr, targetType);
|
|
605
|
+
}
|
|
606
|
+
accept(visitor) {
|
|
607
|
+
return visitor.cast(this);
|
|
608
|
+
}
|
|
609
|
+
rewrite(rewriter) {
|
|
610
|
+
return new CastExpr(this.expr.rewrite(rewriter), this.targetType);
|
|
611
|
+
}
|
|
612
|
+
fold(folder) {
|
|
613
|
+
return this.expr.fold(folder);
|
|
614
|
+
}
|
|
615
|
+
};
|
|
616
|
+
var CaseExpr = class CaseExpr extends Expression {
|
|
617
|
+
kind = "case";
|
|
618
|
+
branches;
|
|
619
|
+
elseExpr;
|
|
620
|
+
constructor(branches, elseExpr) {
|
|
621
|
+
super();
|
|
622
|
+
if (branches.length === 0) throw structuredError("SQL.AST_INVALID", "CaseExpr requires at least one branch", { meta: {
|
|
623
|
+
kind: "case",
|
|
624
|
+
field: "branches"
|
|
625
|
+
} });
|
|
626
|
+
this.branches = Object.freeze(branches.map((branch) => Object.freeze({
|
|
627
|
+
condition: branch.condition,
|
|
628
|
+
value: branch.value
|
|
629
|
+
})));
|
|
630
|
+
this.elseExpr = elseExpr;
|
|
631
|
+
this.freeze();
|
|
632
|
+
}
|
|
633
|
+
static of(branches, elseExpr) {
|
|
634
|
+
return new CaseExpr(branches, elseExpr);
|
|
635
|
+
}
|
|
636
|
+
accept(visitor) {
|
|
637
|
+
return visitor.case(this);
|
|
638
|
+
}
|
|
639
|
+
rewrite(rewriter) {
|
|
640
|
+
return new CaseExpr(this.branches.map((branch) => ({
|
|
641
|
+
condition: branch.condition.rewrite(rewriter),
|
|
642
|
+
value: branch.value.rewrite(rewriter)
|
|
643
|
+
})), this.elseExpr?.rewrite(rewriter));
|
|
644
|
+
}
|
|
645
|
+
fold(folder) {
|
|
646
|
+
const elseExpr = this.elseExpr;
|
|
647
|
+
return combineAll(folder, [...this.branches.flatMap((branch) => [() => branch.condition.fold(folder), () => branch.value.fold(folder)]), ...elseExpr === void 0 ? [] : [() => elseExpr.fold(folder)]]);
|
|
648
|
+
}
|
|
649
|
+
};
|
|
514
650
|
var JsonObjectExpr = class JsonObjectExpr extends Expression {
|
|
515
651
|
kind = "json-object";
|
|
516
652
|
entries;
|
|
@@ -534,11 +670,11 @@ var JsonObjectExpr = class JsonObjectExpr extends Expression {
|
|
|
534
670
|
rewrite(rewriter) {
|
|
535
671
|
return new JsonObjectExpr(this.entries.map((entry) => ({
|
|
536
672
|
key: entry.key,
|
|
537
|
-
value: entry.value.
|
|
673
|
+
value: entry.value.rewrite(rewriter)
|
|
538
674
|
})));
|
|
539
675
|
}
|
|
540
676
|
fold(folder) {
|
|
541
|
-
return combineAll(folder, this.entries.map((entry) => () => entry.value.
|
|
677
|
+
return combineAll(folder, this.entries.map((entry) => () => entry.value.fold(folder)));
|
|
542
678
|
}
|
|
543
679
|
};
|
|
544
680
|
var OrderByItem = class OrderByItem extends AstNode {
|
|
@@ -842,9 +978,9 @@ var ProjectionItem = class ProjectionItem extends AstNode {
|
|
|
842
978
|
alias;
|
|
843
979
|
expr;
|
|
844
980
|
/**
|
|
845
|
-
* Codec identity for
|
|
981
|
+
* Codec identity for any known projected result, whether read directly from a contract column or forwarded through a query wrapper. Decode-side dispatch resolves the per-instance codec through `contractCodecs.forCodecRef(codec)` — content-keyed memoisation collapses repeated lookups for the same logical result onto one shared {@link Codec}.
|
|
846
982
|
*
|
|
847
|
-
* Stays `undefined`
|
|
983
|
+
* Stays `undefined` only when the projected result's codec is unknown, such as computed expressions, subqueries, or raw aliases whose decoded type the runtime cannot infer.
|
|
848
984
|
*/
|
|
849
985
|
codec;
|
|
850
986
|
constructor(alias, expr, codec) {
|
|
@@ -1298,12 +1434,12 @@ const whereExprKinds = /* @__PURE__ */ new Set([
|
|
|
1298
1434
|
"not"
|
|
1299
1435
|
]);
|
|
1300
1436
|
function isQueryAst(value) {
|
|
1301
|
-
return typeof value === "object" && value !== null && "kind" in value && queryAstKinds.has(value.kind);
|
|
1437
|
+
return typeof value === "object" && value !== null && "kind" in value && typeof value.kind === "string" && queryAstKinds.has(value.kind);
|
|
1302
1438
|
}
|
|
1303
1439
|
function isWhereExpr(value) {
|
|
1304
|
-
return typeof value === "object" && value !== null && "kind" in value && whereExprKinds.has(value.kind);
|
|
1440
|
+
return typeof value === "object" && value !== null && "kind" in value && typeof value.kind === "string" && whereExprKinds.has(value.kind);
|
|
1305
1441
|
}
|
|
1306
1442
|
//#endregion
|
|
1307
|
-
export {
|
|
1443
|
+
export { PreparedParamRef as A, isWhereExpr as B, LiteralExpr as C, OrExpr as D, OperationExpr as E, SubqueryExpr as F, whereExprKinds as H, TableSource as I, UpdateAst as L, RawExpr as M, RawSqlExpr as N, OrderByItem as O, SelectAst as P, WindowFuncExpr as R, ListExpression as S, NullCheckExpr as T, frozenCodecRef as U, queryAstKinds as V, InsertAst as _, CastExpr as a, JsonArrayAggExpr as b, DeleteAst as c, DoUpdateSetConflictAction as d, EqColJoinOn as f, IdentifierRef as g, FunctionSource as h, CaseExpr as i, ProjectionItem as j, ParamRef as k, DerivedTableSource as l, FunctionCallExpr as m, AndExpr as n, ColumnRef as o, ExistsExpr as p, BinaryExpr as r, DefaultValueExpr as s, AggregateExpr as t, DoNothingConflictAction as u, InsertOnConflict as v, NotExpr as w, JsonObjectExpr as x, JoinAst as y, isQueryAst as z };
|
|
1308
1444
|
|
|
1309
|
-
//# sourceMappingURL=types-
|
|
1445
|
+
//# sourceMappingURL=types-DpAvAX8u.mjs.map
|