@prisma-next/sql-relational-core 0.5.0-dev.60 → 0.5.0-dev.61
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 +45 -47
- package/dist/{errors-p3Ou_n9J.d.mts → errors-Chs-ph28.d.mts} +2 -2
- package/dist/errors-Chs-ph28.d.mts.map +1 -0
- package/dist/{errors-D6kqqjHM.mjs → errors-kgKOaDM1.mjs} +1 -1
- package/dist/{errors-D6kqqjHM.mjs.map → errors-kgKOaDM1.mjs.map} +1 -1
- package/dist/exports/ast.d.mts +141 -87
- package/dist/exports/ast.d.mts.map +1 -1
- package/dist/exports/ast.mjs +242 -272
- package/dist/exports/ast.mjs.map +1 -1
- package/dist/exports/codec-descriptor-registry.d.mts +18 -0
- package/dist/exports/codec-descriptor-registry.d.mts.map +1 -0
- package/dist/exports/codec-descriptor-registry.mjs +40 -0
- package/dist/exports/codec-descriptor-registry.mjs.map +1 -0
- package/dist/exports/errors.d.mts +4 -4
- package/dist/exports/errors.mjs +1 -1
- package/dist/exports/expression.d.mts +29 -24
- package/dist/exports/expression.d.mts.map +1 -1
- package/dist/exports/expression.mjs +33 -11
- package/dist/exports/expression.mjs.map +1 -1
- package/dist/exports/plan.d.mts +2 -2
- package/dist/exports/query-lane-context.d.mts +2 -3
- package/dist/exports/types.d.mts +5 -4
- package/dist/index.d.mts +10 -11
- package/dist/index.mjs +5 -5
- package/dist/{plan-C7SiEWkN.d.mts → plan-nwFE15re.d.mts} +2 -2
- package/dist/plan-nwFE15re.d.mts.map +1 -0
- package/dist/query-lane-context-DlWgKvvt.d.mts +175 -0
- package/dist/query-lane-context-DlWgKvvt.d.mts.map +1 -0
- package/dist/{sql-execution-plan-Dgx7BGin.d.mts → sql-execution-plan-DTfj23Tj.d.mts} +2 -2
- package/dist/{sql-execution-plan-Dgx7BGin.d.mts.map → sql-execution-plan-DTfj23Tj.d.mts.map} +1 -1
- package/dist/{types-DUL-3vy6.mjs → types-CO7zrXfK.mjs} +15 -7
- package/dist/types-CO7zrXfK.mjs.map +1 -0
- package/dist/{types-DviRR7AL.d.mts → types-G3hdNPZZ.d.mts} +4 -4
- package/dist/{types-DviRR7AL.d.mts.map → types-G3hdNPZZ.d.mts.map} +1 -1
- package/dist/{types-B4dL4lc3.d.mts → types-U74HFwNI.d.mts} +22 -4
- package/dist/types-U74HFwNI.d.mts.map +1 -0
- package/dist/{types-BUlUvdIU.d.mts → types-dPxXIUPS.d.mts} +3 -3
- package/dist/{types-BUlUvdIU.d.mts.map → types-dPxXIUPS.d.mts.map} +1 -1
- package/package.json +10 -8
- package/src/ast/adapter-types.ts +3 -19
- package/src/ast/codec-types.ts +53 -541
- package/src/ast/sql-codec-helpers.ts +79 -0
- package/src/ast/sql-codecs.ts +280 -137
- package/src/ast/types.ts +33 -8
- package/src/ast/validate-param-refs.ts +39 -0
- package/src/codec-descriptor-registry.ts +52 -0
- package/src/exports/ast.ts +2 -0
- package/src/exports/codec-descriptor-registry.ts +1 -0
- package/src/expression.ts +40 -23
- package/src/query-lane-context.ts +14 -96
- package/dist/codec-types-DJEaWT36.d.mts +0 -313
- package/dist/codec-types-DJEaWT36.d.mts.map +0 -1
- package/dist/errors-p3Ou_n9J.d.mts.map +0 -1
- package/dist/plan-C7SiEWkN.d.mts.map +0 -1
- package/dist/query-lane-context-Bwca4sc8.d.mts +0 -150
- package/dist/query-lane-context-Bwca4sc8.d.mts.map +0 -1
- package/dist/types-B4dL4lc3.d.mts.map +0 -1
- package/dist/types-DUL-3vy6.mjs.map +0 -1
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { Codec, CodecCallContext, CodecCallContext as CodecCallContext$1, CodecDescriptor, CodecDescriptor as CodecDescriptor$1, CodecInstanceContext, CodecTrait, CodecTrait as CodecTrait$1 } from "@prisma-next/framework-components/codec";
|
|
2
|
+
import { Contract } from "@prisma-next/contract/types";
|
|
3
|
+
import { SqlOperationRegistry } from "@prisma-next/sql-operations";
|
|
4
|
+
import { SqlStorage } from "@prisma-next/sql-contract/types";
|
|
5
|
+
|
|
6
|
+
//#region src/ast/codec-types.d.ts
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* SQL-family addressing of a single column. The decode site populates a `SqlColumnRef` whenever it can resolve the cell to a single underlying `(table, column)` (the typical case for projected columns from a single-table source); cells the runtime cannot resolve (aggregate aliases, include aggregate fields, computed projections without a simple ref) get `column = undefined`.
|
|
10
|
+
*
|
|
11
|
+
* The shape is a structural projection of the runtime's `ColumnRef` so the SQL decode site can reuse the resolution it already performs for `RUNTIME.DECODE_FAILED` envelope construction without allocating twice per cell.
|
|
12
|
+
*/
|
|
13
|
+
interface SqlColumnRef {
|
|
14
|
+
readonly table: string;
|
|
15
|
+
readonly name: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* SQL-family per-call context. Extends the framework {@link CodecCallContext} (which carries `signal` only) with `column?: SqlColumnRef`, populated on **decode** call sites that can resolve a single underlying column ref. Encode call sites currently leave `column` undefined (encode-time column context is the middleware's domain).
|
|
19
|
+
*
|
|
20
|
+
* SQL codec authors writing codec methods observe this type via {@link SqlCodec}. The framework codec dispatch surface (and Mongo) sees only the base `CodecCallContext`.
|
|
21
|
+
*/
|
|
22
|
+
interface SqlCodecCallContext extends CodecCallContext {
|
|
23
|
+
readonly column?: SqlColumnRef;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* SQL-family per-instance context. Extends the framework {@link CodecInstanceContext} (`name` only) with `usedAt`, the set of `(table, column)` pairs the resolved codec serves.
|
|
27
|
+
*
|
|
28
|
+
* - For `typeRef` columns sharing one named `storage.types` instance, the array lists every referencing column — a column-scoped stateful codec (e.g. encryption) can derive aggregated per-instance state across all the columns sharing the named instance.
|
|
29
|
+
* - For inline-`typeParams` columns, the array has exactly one entry — the column that owns the inline params.
|
|
30
|
+
* - For shared non-parameterized codecs, the array carries one representative entry (the column that triggered materialization); the codec is shared across every column with that codec id, so the `usedAt` is informational only.
|
|
31
|
+
*
|
|
32
|
+
* SQL extensions consuming `usedAt` (e.g. column-scoped state derivation) type their factory parameter as `SqlCodecInstanceContext`. Extensions that don't read `usedAt` type their factory parameter as the family-agnostic {@link CodecInstanceContext} — a `SqlCodecInstanceContext` is structurally assignable to the base.
|
|
33
|
+
*/
|
|
34
|
+
interface SqlCodecInstanceContext extends CodecInstanceContext {
|
|
35
|
+
readonly usedAt: ReadonlyArray<{
|
|
36
|
+
readonly table: string;
|
|
37
|
+
readonly column: string;
|
|
38
|
+
}>;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Codec metadata for database-specific type information. Used for schema introspection and verification.
|
|
42
|
+
*/
|
|
43
|
+
interface CodecMeta {
|
|
44
|
+
readonly db?: {
|
|
45
|
+
readonly sql?: {
|
|
46
|
+
readonly postgres?: {
|
|
47
|
+
readonly nativeType: string;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* SQL codec — extends the framework codec base by narrowing the per-call context to the SQL-family {@link SqlCodecCallContext} (adds `column?: SqlColumnRef`). TypeScript treats method-syntax declarations bivariantly, so the SQL narrowing is structurally compatible with the framework {@link BaseCodec} super-interface.
|
|
54
|
+
*
|
|
55
|
+
* Codec-id-keyed static metadata (`traits`, `targetTypes`, `meta`, `paramsSchema`, `renderOutputType`) lives on the unified {@link import('@prisma-next/framework-components/codec').CodecDescriptor} — the codec instance itself only carries `id` plus the four conversion methods.
|
|
56
|
+
*
|
|
57
|
+
* See `Codec` in `@prisma-next/framework-components/codec` for the codec contract that this interface extends.
|
|
58
|
+
*/
|
|
59
|
+
interface Codec$1<Id extends string = string, TTraits$1 extends readonly CodecTrait[] = readonly CodecTrait[], TWire = unknown, TInput = unknown> extends Codec<Id, TTraits$1, TWire, TInput> {
|
|
60
|
+
encode(value: TInput, ctx: SqlCodecCallContext): Promise<TWire>;
|
|
61
|
+
decode(wire: TWire, ctx: SqlCodecCallContext): Promise<TInput>;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Contract-bound codec registry.
|
|
65
|
+
*
|
|
66
|
+
* The dispatch interface for encode/decode at runtime: built once at `ExecutionContext` construction time by walking the contract's `storage.tables[].columns[]` and resolving each column through its descriptor's factory (per-instance for parameterized columns; the cached shared codec for non-parameterized columns). The dispatch path calls `forColumn(table, column).encode/decode(...)` and doesn't know whether the codec
|
|
67
|
+
* is parameterized.
|
|
68
|
+
*
|
|
69
|
+
* `forCodecId(codecId)` is the refs-less fallback. Every column-bound `ParamRef` carries `refs: { table; column }` and the builder-pipeline `validateParamRefRefs` pass enforces refs on every parameterized `ParamRef` before encode runs, so this fallback is only reached for non-parameterized codec ids.
|
|
70
|
+
*/
|
|
71
|
+
interface ContractCodecRegistry {
|
|
72
|
+
/**
|
|
73
|
+
* Resolve the codec for `(table, column)`. Returns the per-instance parameterized codec for parameterized columns, the shared codec for non-parameterized columns, or `undefined` if the column is unknown or the codec isn't registered.
|
|
74
|
+
*/
|
|
75
|
+
forColumn(table: string, column: string): Codec$1 | undefined;
|
|
76
|
+
/**
|
|
77
|
+
* Resolve a codec by id. For non-parameterized codecs this returns the canonical shared instance materialized once at context construction; for parameterized codecs it returns the column-resolved instance when a single column declares the codec id, or the `factory(undefined)` representative when the descriptor's factory is parameter-tolerant. Used by refs-less call sites; the validator pass guarantees the call site's
|
|
78
|
+
* `codecId` is non-parameterized (or parameter-tolerant) at this boundary.
|
|
79
|
+
*/
|
|
80
|
+
forCodecId(codecId: string): Codec$1 | undefined;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Variance-erased descriptor type used for heterogeneous storage in collection containers and on the unified contributor `codecs:` slot. The descriptor's `factory` and `renderOutputType` are contravariant in `P`, so descriptors with different params shapes are not in a subtype relationship; collecting them into one container needs an explicit variance erasure rather than `CodecDescriptor<unknown>` (which is the
|
|
84
|
+
* narrowest, not the widest, of the family).
|
|
85
|
+
*/
|
|
86
|
+
type AnyCodecDescriptor = CodecDescriptor<any>;
|
|
87
|
+
type DescriptorResolvedCodec<D> = D extends CodecDescriptor<infer _P> ? ReturnType<ReturnType<D['factory']>> : never;
|
|
88
|
+
type DescriptorCodecId<D> = D extends AnyCodecDescriptor ? D['codecId'] : never;
|
|
89
|
+
type DescriptorCodecInput<D> = DescriptorResolvedCodec<D> extends Codec<string, readonly CodecTrait[], unknown, infer In> ? In : never;
|
|
90
|
+
/**
|
|
91
|
+
* Resolve the trait union for a descriptor `D`.
|
|
92
|
+
*
|
|
93
|
+
* Reads `traits` directly off the descriptor — concrete descriptor classes declare `override readonly traits = [...] as const`, which preserves the literal trait tuple at the descriptor type. Reading from the resolved codec instance (`CodecImpl<…, TTraits, …>`) would lose the literal because `Codec` carries `TTraits` only on its optional phantom slot (`readonly __codecTraits?: TTraits`); codecs extending `CodecImpl`
|
|
94
|
+
* have no required structural site that pins `TTraits`, so a descriptor-keyed extractor reading from the codec instance would widen to the broad `CodecTrait` union.
|
|
95
|
+
*/
|
|
96
|
+
type DescriptorCodecTraits<D> = D extends {
|
|
97
|
+
readonly traits: infer TTraits extends readonly CodecTrait[];
|
|
98
|
+
} ? TTraits[number] & CodecTrait : never;
|
|
99
|
+
/**
|
|
100
|
+
* Project a record of {@link AnyCodecDescriptor}s keyed by scalar name onto the codec-id-keyed `CodecTypes` shape consumed by emit and no-emit type pipelines (`{ readonly [codecId]: { input; output; traits } }`).
|
|
101
|
+
*
|
|
102
|
+
* Canonical extractor for the descriptor-keyed type pipeline; the legacy instance-keyed extractor and its `mkCodec`-bound builder retired alongside the carrier deletion.
|
|
103
|
+
*/
|
|
104
|
+
type ExtractCodecTypes<ScalarNames extends { readonly [K in keyof ScalarNames]: AnyCodecDescriptor } = Record<never, never>> = { readonly [K in keyof ScalarNames as DescriptorCodecId<ScalarNames[K]>]: {
|
|
105
|
+
readonly input: DescriptorCodecInput<ScalarNames[K]>;
|
|
106
|
+
readonly output: DescriptorCodecInput<ScalarNames[K]>;
|
|
107
|
+
readonly traits: DescriptorCodecTraits<ScalarNames[K]>;
|
|
108
|
+
} };
|
|
109
|
+
//#endregion
|
|
110
|
+
//#region src/query-lane-context.d.ts
|
|
111
|
+
/**
|
|
112
|
+
* Codec-id-keyed accessor for descriptor metadata. The unified read API for codec-id-keyed metadata (`traits`, `targetTypes`, `meta`) — non-branching for parameterized vs. non-parameterized codecs. Every codec ships natively as a `CodecDescriptor` through the unified `codecs:` contributor slot (see ADR 208).
|
|
113
|
+
*/
|
|
114
|
+
interface CodecDescriptorRegistry {
|
|
115
|
+
/**
|
|
116
|
+
* Descriptors carry distinct param shapes per codec id; the registry is heterogeneous and the consumer narrows per codec.
|
|
117
|
+
*/
|
|
118
|
+
descriptorFor(codecId: string): CodecDescriptor<unknown> | undefined;
|
|
119
|
+
/**
|
|
120
|
+
* All registered descriptors. Used by `validateCodecRegistryCompleteness` and other startup-time consumers that enumerate descriptors.
|
|
121
|
+
*/
|
|
122
|
+
values(): IterableIterator<CodecDescriptor<unknown>>;
|
|
123
|
+
/**
|
|
124
|
+
* Descriptors indexed by `targetTypes[i]` (each scalar type the codec advertises). Multiple descriptors may map to the same scalar type; ordering reflects registration order.
|
|
125
|
+
*/
|
|
126
|
+
byTargetType(targetType: string): readonly CodecDescriptor<unknown>[];
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Registry of initialized type helpers from storage.types. Each key is a type name from storage.types, and the value is the resolved codec materialized once for that named instance via `descriptor.factory(typeParams)(ctx)` (or the raw `StorageTypeInstance` metadata for codec ids whose descriptor isn't registered).
|
|
130
|
+
*/
|
|
131
|
+
type TypeHelperRegistry = Record<string, unknown>;
|
|
132
|
+
type MutationDefaultsOp = 'create' | 'update';
|
|
133
|
+
type AppliedMutationDefault = {
|
|
134
|
+
readonly column: string;
|
|
135
|
+
readonly value: unknown;
|
|
136
|
+
};
|
|
137
|
+
type MutationDefaultsOptions = {
|
|
138
|
+
readonly op: MutationDefaultsOp;
|
|
139
|
+
readonly table: string;
|
|
140
|
+
readonly values: Record<string, unknown>;
|
|
141
|
+
/**
|
|
142
|
+
* Per-ORM-operation cache for generators that declare `stability: 'query'`. The caller passes the same `Map` across every `applyMutationDefaults` invocation in one bulk operation; the framework keys by `generatorId` so the same value is reused across all rows and columns. Generators with `stability: 'row'` use a fresh per-call cache the framework manages internally; generators with `stability: 'field'` skip caching
|
|
143
|
+
* entirely. Omit to make every call independent (degrades `'query'` to per-call behavior).
|
|
144
|
+
*/
|
|
145
|
+
readonly defaultValueCache?: Map<string, unknown>;
|
|
146
|
+
};
|
|
147
|
+
/**
|
|
148
|
+
* Minimal context interface for SQL query lanes.
|
|
149
|
+
*
|
|
150
|
+
* Lanes only need contract, operations, and codecs to build typed ASTs and attach operation builders. This interface explicitly excludes runtime concerns like adapters, connection management, and transaction state.
|
|
151
|
+
*/
|
|
152
|
+
interface ExecutionContext<TContract extends Contract<SqlStorage> = Contract<SqlStorage>> {
|
|
153
|
+
readonly contract: TContract;
|
|
154
|
+
/**
|
|
155
|
+
* Contract-bound codec registry built once at context-construction time by walking the contract's columns and resolving each through its descriptor's factory. The dispatch path (`encodeParam` / `decodeRow`) consults `forColumn(table, column)` for column-bound call sites; `forCodecId(codecId)` is the refs-less fallback, permitted only for non-parameterized codec ids (the builder-pipeline validator pass enforces refs on
|
|
156
|
+
* every parameterized `ParamRef`). Pre-populated with one canonical instance per non-parameterized descriptor so `forCodecId` covers refs-less codec ids that no contract column declares.
|
|
157
|
+
*/
|
|
158
|
+
readonly contractCodecs: ContractCodecRegistry;
|
|
159
|
+
/**
|
|
160
|
+
* Codec-id-keyed descriptor map. Single source of truth for codec-id-keyed metadata (`traits`, `targetTypes`, `meta`) — every codec, parameterized or not, resolves through this map without branching.
|
|
161
|
+
*/
|
|
162
|
+
readonly codecDescriptors: CodecDescriptorRegistry;
|
|
163
|
+
readonly queryOperations: SqlOperationRegistry;
|
|
164
|
+
/**
|
|
165
|
+
* Type helper registry for parameterized types. Schema builders expose these helpers via schema.types.
|
|
166
|
+
*/
|
|
167
|
+
readonly types: TypeHelperRegistry;
|
|
168
|
+
/**
|
|
169
|
+
* Applies execution-time mutation defaults for the given table. Returns the applied defaults (caller-provided values always win).
|
|
170
|
+
*/
|
|
171
|
+
applyMutationDefaults(options: MutationDefaultsOptions): ReadonlyArray<AppliedMutationDefault>;
|
|
172
|
+
}
|
|
173
|
+
//#endregion
|
|
174
|
+
export { ExtractCodecTypes as _, MutationDefaultsOptions as a, SqlColumnRef as b, Codec$1 as c, CodecMeta as d, CodecTrait$1 as f, DescriptorCodecTraits as g, DescriptorCodecInput as h, MutationDefaultsOp as i, CodecCallContext$1 as l, DescriptorCodecId as m, CodecDescriptorRegistry as n, TypeHelperRegistry as o, ContractCodecRegistry as p, ExecutionContext as r, AnyCodecDescriptor as s, AppliedMutationDefault as t, CodecDescriptor$1 as u, SqlCodecCallContext as v, SqlCodecInstanceContext as y };
|
|
175
|
+
//# sourceMappingURL=query-lane-context-DlWgKvvt.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-lane-context-DlWgKvvt.d.mts","names":[],"sources":["../src/ast/codec-types.ts","../src/query-lane-context.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { d as AnyQueryAst } from "./types-
|
|
1
|
+
import { d as AnyQueryAst } from "./types-U74HFwNI.mjs";
|
|
2
2
|
import { ExecutionPlan } from "@prisma-next/framework-components/runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/sql-execution-plan.d.ts
|
|
@@ -30,4 +30,4 @@ interface SqlExecutionPlan<Row = unknown> extends ExecutionPlan<Row> {
|
|
|
30
30
|
}
|
|
31
31
|
//#endregion
|
|
32
32
|
export { SqlExecutionPlan as t };
|
|
33
|
-
//# sourceMappingURL=sql-execution-plan-
|
|
33
|
+
//# sourceMappingURL=sql-execution-plan-DTfj23Tj.d.mts.map
|
package/dist/{sql-execution-plan-Dgx7BGin.d.mts.map → sql-execution-plan-DTfj23Tj.d.mts.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-execution-plan-
|
|
1
|
+
{"version":3,"file":"sql-execution-plan-DTfj23Tj.d.mts","names":[],"sources":["../src/sql-execution-plan.ts"],"sourcesContent":[],"mappings":";;;;;;;AAuBA;;;;;;;;;;;;;;;;;;UAAiB,wCAAwC,cAAc;;;iBAGtD"}
|
|
@@ -58,7 +58,7 @@ function rewriteTableSource(table, rewriter) {
|
|
|
58
58
|
}
|
|
59
59
|
function rewriteProjectionItem(item, rewriter) {
|
|
60
60
|
const rewrittenExpr = item.expr.kind === "literal" ? rewriter.literal ? rewriter.literal(item.expr) : item.expr : item.expr.rewrite(rewriter);
|
|
61
|
-
return new ProjectionItem(item.alias, rewrittenExpr, item.codecId);
|
|
61
|
+
return new ProjectionItem(item.alias, rewrittenExpr, item.codecId, item.refs);
|
|
62
62
|
}
|
|
63
63
|
function rewriteInsertValue(value, rewriter) {
|
|
64
64
|
switch (value.kind) {
|
|
@@ -217,11 +217,13 @@ var ParamRef = class ParamRef extends Expression {
|
|
|
217
217
|
value;
|
|
218
218
|
name;
|
|
219
219
|
codecId;
|
|
220
|
+
refs;
|
|
220
221
|
constructor(value, options) {
|
|
221
222
|
super();
|
|
222
223
|
this.value = value;
|
|
223
224
|
this.name = options?.name;
|
|
224
225
|
this.codecId = options?.codecId;
|
|
226
|
+
this.refs = options?.refs ? Object.freeze({ ...options.refs }) : void 0;
|
|
225
227
|
this.freeze();
|
|
226
228
|
}
|
|
227
229
|
static of(value, options) {
|
|
@@ -680,18 +682,24 @@ var ProjectionItem = class ProjectionItem extends AstNode {
|
|
|
680
682
|
alias;
|
|
681
683
|
expr;
|
|
682
684
|
codecId;
|
|
683
|
-
|
|
685
|
+
/**
|
|
686
|
+
* Column-bound metadata for the projection. Populated by builder paths that promote a top-level field shortcut (`select('email', ...)`) into a bare `IdentifierRef` AST while still knowing the originating `(table, column)`. Decode-side dispatch consults `refs` to call `forColumn(table, column)` so parameterized codec ids resolve to the per-instance codec — required when multiple columns share a codec id with distinct
|
|
687
|
+
* typeParams (e.g. `varchar(36)` vs. `varchar(255)`). Stays `undefined` for `column-ref` projections (the AST already carries the binding) and for non-column-bound projections (computed expressions, subqueries, raw aliases).
|
|
688
|
+
*/
|
|
689
|
+
refs;
|
|
690
|
+
constructor(alias, expr, codecId, refs) {
|
|
684
691
|
super();
|
|
685
692
|
this.alias = alias;
|
|
686
693
|
this.expr = expr;
|
|
687
694
|
this.codecId = codecId;
|
|
695
|
+
this.refs = refs ? Object.freeze({ ...refs }) : void 0;
|
|
688
696
|
this.freeze();
|
|
689
697
|
}
|
|
690
|
-
static of(alias, expr, codecId) {
|
|
691
|
-
return new ProjectionItem(alias, expr, codecId);
|
|
698
|
+
static of(alias, expr, codecId, refs) {
|
|
699
|
+
return new ProjectionItem(alias, expr, codecId, refs);
|
|
692
700
|
}
|
|
693
701
|
withCodecId(codecId) {
|
|
694
|
-
return new ProjectionItem(this.alias, this.expr, codecId);
|
|
702
|
+
return new ProjectionItem(this.alias, this.expr, codecId, this.refs);
|
|
695
703
|
}
|
|
696
704
|
};
|
|
697
705
|
var SelectAst = class SelectAst extends QueryAst {
|
|
@@ -822,7 +830,7 @@ var SelectAst = class SelectAst extends QueryAst {
|
|
|
822
830
|
const rewritten = new SelectAst({
|
|
823
831
|
from: this.from.rewrite(rewriter),
|
|
824
832
|
joins: this.joins?.map((join) => join.rewrite(rewriter)),
|
|
825
|
-
projection: this.projection.map((projection) => new ProjectionItem(projection.alias, projection.expr.kind === "literal" ? rewriter.literal ? rewriter.literal(projection.expr) : projection.expr : projection.expr.rewrite(rewriter), projection.codecId)),
|
|
833
|
+
projection: this.projection.map((projection) => new ProjectionItem(projection.alias, projection.expr.kind === "literal" ? rewriter.literal ? rewriter.literal(projection.expr) : projection.expr : projection.expr.rewrite(rewriter), projection.codecId, projection.refs)),
|
|
826
834
|
where: this.where?.rewrite(rewriter),
|
|
827
835
|
orderBy: this.orderBy?.map((orderItem) => orderItem.rewrite(rewriter)),
|
|
828
836
|
distinct: this.distinct,
|
|
@@ -1061,4 +1069,4 @@ function isWhereExpr(value) {
|
|
|
1061
1069
|
|
|
1062
1070
|
//#endregion
|
|
1063
1071
|
export { UpdateAst as A, OrExpr as C, SelectAst as D, ProjectionItem as E, isWhereExpr as M, queryAstKinds as N, SubqueryExpr as O, whereExprKinds as P, OperationExpr as S, ParamRef as T, JsonObjectExpr as _, DefaultValueExpr as a, NotExpr as b, DoNothingConflictAction as c, ExistsExpr as d, IdentifierRef as f, JsonArrayAggExpr as g, JoinAst as h, ColumnRef as i, isQueryAst as j, TableSource as k, DoUpdateSetConflictAction as l, InsertOnConflict as m, AndExpr as n, DeleteAst as o, InsertAst as p, BinaryExpr as r, DerivedTableSource as s, AggregateExpr as t, EqColJoinOn as u, ListExpression as v, OrderByItem as w, NullCheckExpr as x, LiteralExpr as y };
|
|
1064
|
-
//# sourceMappingURL=types-
|
|
1072
|
+
//# sourceMappingURL=types-CO7zrXfK.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-CO7zrXfK.mjs","names":["result: Record<string, InsertValue>","rewritten","result: Record<string, ColumnRef | ParamRef>","refs: ColumnRef[]","refs: ParamRef[]","queryAstKinds: ReadonlySet<string>","whereExprKinds: ReadonlySet<string>"],"sources":["../src/ast/types.ts"],"sourcesContent":["import type { ParamSpec } from '@prisma-next/operations';\nimport type { SqlLoweringSpec } from '@prisma-next/sql-operations';\n\nexport type Direction = 'asc' | 'desc';\n\nexport type BinaryOp = 'eq' | 'neq' | 'gt' | 'lt' | 'gte' | 'lte' | 'like' | 'in' | 'notIn';\n\nexport type AggregateCountFn = 'count';\nexport type AggregateOpFn = 'sum' | 'avg' | 'min' | 'max';\nexport type AggregateFn = AggregateCountFn | AggregateOpFn;\n\nexport interface ExpressionSource {\n toExpr(): AnyExpression;\n}\n\nexport interface ExpressionRewriter {\n columnRef?(expr: ColumnRef): AnyExpression;\n identifierRef?(expr: IdentifierRef): AnyExpression;\n paramRef?(expr: ParamRef): ParamRef | LiteralExpr;\n literal?(expr: LiteralExpr): LiteralExpr;\n list?(expr: ListExpression): ListExpression | LiteralExpr;\n select?(ast: SelectAst): SelectAst;\n}\n\nexport interface AstRewriter extends ExpressionRewriter {\n tableSource?(source: TableSource): TableSource;\n eqColJoinOn?(on: EqColJoinOn): EqColJoinOn | AnyExpression;\n}\n\nexport interface ExprVisitor<R> {\n columnRef(expr: ColumnRef): R;\n identifierRef(expr: IdentifierRef): R;\n subquery(expr: SubqueryExpr): R;\n operation(expr: OperationExpr): R;\n aggregate(expr: AggregateExpr): R;\n jsonObject(expr: JsonObjectExpr): R;\n jsonArrayAgg(expr: JsonArrayAggExpr): R;\n binary(expr: BinaryExpr): R;\n and(expr: AndExpr): R;\n or(expr: OrExpr): R;\n exists(expr: ExistsExpr): R;\n nullCheck(expr: NullCheckExpr): R;\n not(expr: NotExpr): R;\n literal(expr: LiteralExpr): R;\n param(expr: ParamRef): R;\n list(expr: ListExpression): R;\n}\n\nexport interface ExpressionFolder<T> {\n empty: T;\n combine(a: T, b: T): T;\n isAbsorbing?(value: T): boolean;\n columnRef?(expr: ColumnRef): T;\n identifierRef?(expr: IdentifierRef): T;\n paramRef?(expr: ParamRef): T;\n literal?(expr: LiteralExpr): T;\n list?(expr: ListExpression): T;\n select?(ast: SelectAst): T;\n}\n\nexport type ProjectionExpr = AnyExpression;\nexport type InsertValue = ColumnRef | ParamRef | DefaultValueExpr;\nexport type JoinOnExpr = EqColJoinOn | AnyExpression;\nexport type WhereArg = AnyExpression | ToWhereExpr;\nexport type JsonObjectEntry = {\n readonly key: string;\n readonly value: ProjectionExpr;\n};\n\nfunction frozenArrayCopy<T>(values: readonly T[]): ReadonlyArray<T> {\n return Object.freeze([...values]);\n}\n\nfunction frozenOptionalRecordCopy<T extends Record<string, unknown>>(\n value: T | undefined,\n): Readonly<T> | undefined {\n return value === undefined ? undefined : Object.freeze({ ...value });\n}\n\nfunction frozenRecordCopy<T>(record: Readonly<Record<string, T>>): Readonly<Record<string, T>> {\n return Object.freeze({ ...record });\n}\n\nfunction freezeRows(\n rows: ReadonlyArray<Record<string, InsertValue>>,\n): ReadonlyArray<Readonly<Record<string, InsertValue>>> {\n return Object.freeze(rows.map((row) => Object.freeze({ ...row })));\n}\n\nfunction combineAll<T>(folder: ExpressionFolder<T>, thunks: Array<() => T>): T {\n let result = folder.empty;\n for (const thunk of thunks) {\n if (folder.isAbsorbing?.(result)) {\n return result;\n }\n result = folder.combine(result, thunk());\n }\n return result;\n}\n\nfunction rewriteComparable(value: AnyExpression, rewriter: ExpressionRewriter): AnyExpression {\n switch (value.kind) {\n case 'param-ref':\n return rewriter.paramRef ? rewriter.paramRef(value) : value;\n case 'literal':\n return rewriter.literal ? rewriter.literal(value) : value;\n case 'list':\n if (rewriter.list) {\n return rewriter.list(value);\n }\n return value.rewrite(rewriter);\n default:\n return value.rewrite(rewriter);\n }\n}\n\nfunction foldComparable<T>(value: AnyExpression, folder: ExpressionFolder<T>): T {\n switch (value.kind) {\n case 'param-ref':\n return folder.paramRef ? folder.paramRef(value) : folder.empty;\n case 'literal':\n return folder.literal ? folder.literal(value) : folder.empty;\n case 'list':\n return value.fold(folder);\n default:\n return value.fold(folder);\n }\n}\n\nfunction collectColumnRefsWith<TNode extends Expression>(node: TNode): ColumnRef[] {\n return node.fold<ColumnRef[]>({\n empty: [],\n combine: (a, b) => [...a, ...b],\n columnRef: (columnRef) => [columnRef],\n select: (ast) => ast.collectColumnRefs(),\n });\n}\n\nfunction collectParamRefsWith<TNode extends Expression>(node: TNode): ParamRef[] {\n return node.fold<ParamRef[]>({\n empty: [],\n combine: (a, b) => [...a, ...b],\n paramRef: (paramRef) => [paramRef],\n select: (ast) => ast.collectParamRefs(),\n });\n}\n\nfunction rewriteTableSource(table: TableSource, rewriter: AstRewriter): TableSource {\n return rewriter.tableSource ? rewriter.tableSource(table) : table;\n}\n\nfunction rewriteProjectionItem(item: ProjectionItem, rewriter: AstRewriter): ProjectionItem {\n const rewrittenExpr =\n item.expr.kind === 'literal'\n ? rewriter.literal\n ? rewriter.literal(item.expr)\n : item.expr\n : item.expr.rewrite(rewriter);\n return new ProjectionItem(item.alias, rewrittenExpr, item.codecId, item.refs);\n}\n\nfunction rewriteInsertValue(value: InsertValue, rewriter: AstRewriter): InsertValue {\n switch (value.kind) {\n case 'param-ref':\n return rewriter.paramRef ? rewriteParamRefForInsert(value, rewriter) : value;\n case 'column-ref':\n return rewriter.columnRef ? rewriteColumnRefForInsert(value, rewriter) : value;\n case 'default-value':\n return value;\n }\n}\n\nfunction rewriteParamRefForInsert(value: ParamRef, rewriter: AstRewriter): InsertValue {\n const rewritten = rewriter.paramRef ? rewriter.paramRef(value) : value;\n return rewritten.kind === 'param-ref' ? rewritten : value;\n}\n\nfunction rewriteColumnRefForInsert(value: ColumnRef, rewriter: AstRewriter): InsertValue {\n const rewritten = rewriter.columnRef ? rewriter.columnRef(value) : value;\n return rewritten.kind === 'column-ref' ? rewritten : value;\n}\n\nfunction rewriteInsertRow(\n row: Readonly<Record<string, InsertValue>>,\n rewriter: AstRewriter,\n): Record<string, InsertValue> {\n const result: Record<string, InsertValue> = {};\n for (const [key, value] of Object.entries(row)) {\n result[key] = rewriteInsertValue(value, rewriter);\n }\n return result;\n}\n\nfunction rewriteUpdateSetValue(\n value: ColumnRef | ParamRef,\n rewriter: AstRewriter,\n): ColumnRef | ParamRef {\n if (value.kind === 'column-ref') {\n const rewritten = rewriter.columnRef ? rewriter.columnRef(value) : value;\n return rewritten.kind === 'column-ref' ? rewritten : value;\n }\n const rewritten = rewriter.paramRef ? rewriter.paramRef(value) : value;\n return rewritten.kind === 'param-ref' ? rewritten : value;\n}\n\nfunction rewriteUpdateSet(\n set: Readonly<Record<string, ColumnRef | ParamRef>>,\n rewriter: AstRewriter,\n): Record<string, ColumnRef | ParamRef> {\n const result: Record<string, ColumnRef | ParamRef> = {};\n for (const [key, value] of Object.entries(set)) {\n result[key] = rewriteUpdateSetValue(value, rewriter);\n }\n return result;\n}\n\nfunction rewriteOnConflict(onConflict: InsertOnConflict, rewriter: AstRewriter): InsertOnConflict {\n const columns = onConflict.columns.map((columnRef) => {\n const rewritten = rewriter.columnRef ? rewriter.columnRef(columnRef) : columnRef;\n return rewritten.kind === 'column-ref' ? rewritten : columnRef;\n });\n\n if (onConflict.action.kind === 'do-nothing') {\n return new InsertOnConflict(columns, new DoNothingConflictAction());\n }\n\n return new InsertOnConflict(\n columns,\n new DoUpdateSetConflictAction(rewriteUpdateSet(onConflict.action.set, rewriter)),\n );\n}\n\nabstract class AstNode {\n abstract readonly kind: string;\n\n protected freeze(): void {\n Object.freeze(this);\n }\n}\n\nabstract class QueryAst extends AstNode {\n abstract collectParamRefs(): ParamRef[];\n abstract toQueryAst(): AnyQueryAst;\n}\n\nabstract class FromSource extends AstNode {\n abstract rewrite(rewriter: AstRewriter): AnyFromSource;\n abstract toFromSource(): AnyFromSource;\n}\n\nabstract class Expression extends AstNode implements ExpressionSource {\n abstract accept<R>(visitor: ExprVisitor<R>): R;\n abstract rewrite(rewriter: ExpressionRewriter): AnyExpression;\n abstract fold<T>(folder: ExpressionFolder<T>): T;\n\n collectColumnRefs(): ColumnRef[] {\n return collectColumnRefsWith(this);\n }\n\n collectParamRefs(): ParamRef[] {\n return collectParamRefsWith(this);\n }\n\n baseColumnRef(): ColumnRef {\n throw new Error(`${this.constructor.name} does not expose a base column reference`);\n }\n\n toExpr(): AnyExpression {\n return this as unknown as AnyExpression;\n }\n\n not(): NotExpr {\n return new NotExpr(this as unknown as AnyExpression);\n }\n}\n\nexport class TableSource extends FromSource {\n readonly kind = 'table-source' as const;\n readonly name: string;\n readonly alias: string | undefined;\n\n constructor(name: string, alias?: string) {\n super();\n this.name = name;\n this.alias = alias;\n this.freeze();\n }\n\n static named(name: string, alias?: string): TableSource {\n return new TableSource(name, alias);\n }\n\n override rewrite(rewriter: AstRewriter): AnyFromSource {\n return rewriter.tableSource ? rewriter.tableSource(this) : this;\n }\n\n override toFromSource(): AnyFromSource {\n return this;\n }\n}\n\nexport interface TableRef {\n readonly name: string;\n readonly alias?: string;\n}\n\nexport class DerivedTableSource extends FromSource {\n readonly kind = 'derived-table-source' as const;\n readonly alias: string;\n readonly query: SelectAst;\n\n constructor(alias: string, query: SelectAst) {\n super();\n this.alias = alias;\n this.query = query;\n this.freeze();\n }\n\n static as(alias: string, query: SelectAst): DerivedTableSource {\n return new DerivedTableSource(alias, query);\n }\n\n // Intentionally does not call rewriter.tableSource — derived tables are rewritten via their inner query, not intercepted at the FromSource level. A future fromSource?(source: AnyFromSource) callback would be needed for that.\n override rewrite(rewriter: AstRewriter): AnyFromSource {\n return new DerivedTableSource(this.alias, this.query.rewrite(rewriter));\n }\n\n override toFromSource(): AnyFromSource {\n return this;\n }\n}\n\nexport class ColumnRef extends Expression {\n readonly kind = 'column-ref' as const;\n readonly table: string;\n readonly column: string;\n\n constructor(table: string, column: string) {\n super();\n this.table = table;\n this.column = column;\n this.freeze();\n }\n\n static of(table: string, column: string): ColumnRef {\n return new ColumnRef(table, column);\n }\n\n override accept<R>(visitor: ExprVisitor<R>): R {\n return visitor.columnRef(this);\n }\n\n override rewrite(rewriter: ExpressionRewriter): AnyExpression {\n return rewriter.columnRef ? rewriter.columnRef(this) : this;\n }\n\n override fold<T>(folder: ExpressionFolder<T>): T {\n return folder.columnRef ? folder.columnRef(this) : folder.empty;\n }\n\n override baseColumnRef(): ColumnRef {\n return this;\n }\n}\n\nexport class IdentifierRef extends Expression {\n readonly kind = 'identifier-ref' as const;\n readonly name: string;\n\n constructor(name: string) {\n super();\n this.name = name;\n this.freeze();\n }\n\n static of(name: string): IdentifierRef {\n return new IdentifierRef(name);\n }\n\n override accept<R>(visitor: ExprVisitor<R>): R {\n return visitor.identifierRef(this);\n }\n\n override rewrite(rewriter: ExpressionRewriter): AnyExpression {\n return rewriter.identifierRef ? rewriter.identifierRef(this) : this;\n }\n\n override fold<T>(folder: ExpressionFolder<T>): T {\n return folder.identifierRef ? folder.identifierRef(this) : folder.empty;\n }\n}\n\n/**\n * Column ref carried by a {@link ParamRef} that was constructed at a column-bound site (e.g. an INSERT/UPDATE column assignment, a `WHERE column = $param` comparison). The encode-side dispatch path uses `refs` to call `contractCodecs.forColumn(refs.table, refs.column)`, which selects the per-instance parameterized codec for the column — required when a parameterized codec id is shared by multiple columns with distinct\n * typeParams (e.g. `vector(1024)` vs. `vector(1536)`).\n *\n * `refs` may legitimately be `undefined` for `ParamRef`s constructed without a column context — the validator pass (`validateParamRefRefs`) treats refs-less ParamRefs as a hard error only when their codec id is parameterized.\n */\nexport interface ParamRefBindingRefs {\n readonly table: string;\n readonly column: string;\n}\n\nexport class ParamRef extends Expression {\n readonly kind = 'param-ref' as const;\n readonly value: unknown;\n readonly name: string | undefined;\n readonly codecId: string | undefined;\n readonly refs: ParamRefBindingRefs | undefined;\n\n constructor(\n value: unknown,\n options?: {\n name?: string;\n codecId?: string;\n refs?: ParamRefBindingRefs;\n },\n ) {\n super();\n this.value = value;\n this.name = options?.name;\n this.codecId = options?.codecId;\n this.refs = options?.refs ? Object.freeze({ ...options.refs }) : undefined;\n this.freeze();\n }\n\n static of(\n value: unknown,\n options?: {\n name?: string;\n codecId?: string;\n refs?: ParamRefBindingRefs;\n },\n ): ParamRef {\n return new ParamRef(value, options);\n }\n\n override accept<R>(visitor: ExprVisitor<R>): R {\n return visitor.param(this);\n }\n\n override rewrite(rewriter: ExpressionRewriter): AnyExpression {\n return rewriter.paramRef ? rewriter.paramRef(this) : this;\n }\n\n override fold<T>(folder: ExpressionFolder<T>): T {\n return folder.paramRef ? folder.paramRef(this) : folder.empty;\n }\n}\n\nexport class DefaultValueExpr extends AstNode {\n readonly kind = 'default-value' as const;\n\n constructor() {\n super();\n this.freeze();\n }\n}\n\nexport class LiteralExpr extends Expression {\n readonly kind = 'literal' as const;\n readonly value: unknown;\n\n constructor(value: unknown) {\n super();\n this.value = value;\n this.freeze();\n }\n\n static of(value: unknown): LiteralExpr {\n return new LiteralExpr(value);\n }\n\n override accept<R>(visitor: ExprVisitor<R>): R {\n return visitor.literal(this);\n }\n\n override rewrite(rewriter: ExpressionRewriter): AnyExpression {\n return rewriter.literal ? rewriter.literal(this) : this;\n }\n\n override fold<T>(folder: ExpressionFolder<T>): T {\n return folder.literal ? folder.literal(this) : folder.empty;\n }\n}\n\nexport class SubqueryExpr extends Expression {\n readonly kind = 'subquery' as const;\n readonly query: SelectAst;\n\n constructor(query: SelectAst) {\n super();\n this.query = query;\n this.freeze();\n }\n\n static of(query: SelectAst): SubqueryExpr {\n return new SubqueryExpr(query);\n }\n\n override accept<R>(visitor: ExprVisitor<R>): R {\n return visitor.subquery(this);\n }\n\n override rewrite(rewriter: ExpressionRewriter): AnyExpression {\n const query = this.query.rewrite(rewriter);\n return new SubqueryExpr(query);\n }\n\n override fold<T>(folder: ExpressionFolder<T>): T {\n return folder.select ? folder.select(this.query) : folder.empty;\n }\n}\n\nexport class OperationExpr extends Expression {\n readonly kind = 'operation' as const;\n readonly method: string;\n readonly self: AnyExpression;\n readonly args: ReadonlyArray<AnyExpression | ParamRef | LiteralExpr>;\n readonly returns: ParamSpec;\n readonly lowering: SqlLoweringSpec;\n\n constructor(options: {\n readonly method: string;\n readonly self: AnyExpression;\n readonly args: ReadonlyArray<AnyExpression | ParamRef | LiteralExpr> | undefined;\n readonly returns: ParamSpec;\n readonly lowering: SqlLoweringSpec;\n }) {\n super();\n this.method = options.method;\n this.self = options.self;\n this.args = frozenArrayCopy(options.args ?? []);\n this.returns = options.returns;\n this.lowering = options.lowering;\n this.freeze();\n }\n\n override accept<R>(visitor: ExprVisitor<R>): R {\n return visitor.operation(this);\n }\n\n override rewrite(rewriter: ExpressionRewriter): AnyExpression {\n return new OperationExpr({\n method: this.method,\n self: this.self.rewrite(rewriter),\n args: this.args.map((arg) => rewriteComparable(arg, rewriter)) as ReadonlyArray<\n AnyExpression | ParamRef | LiteralExpr\n >,\n returns: this.returns,\n lowering: this.lowering,\n });\n }\n\n override fold<T>(folder: ExpressionFolder<T>): T {\n return combineAll(folder, [\n () => this.self.fold(folder),\n ...this.args.map((arg) => () => foldComparable(arg, folder)),\n ]);\n }\n\n override baseColumnRef(): ColumnRef {\n return this.self.baseColumnRef();\n }\n}\n\nexport class AggregateExpr extends Expression {\n readonly kind = 'aggregate' as const;\n readonly fn: AggregateFn;\n readonly expr: AnyExpression | undefined;\n\n constructor(fn: AggregateFn, expr?: AnyExpression) {\n super();\n if (fn !== 'count' && expr === undefined) {\n throw new Error(`Aggregate function \"${fn}\" requires an expression`);\n }\n this.fn = fn;\n this.expr = expr;\n this.freeze();\n }\n\n static count(expr?: AnyExpression): AggregateExpr {\n return new AggregateExpr('count', expr);\n }\n\n static sum(expr: AnyExpression): AggregateExpr {\n return new AggregateExpr('sum', expr);\n }\n\n static avg(expr: AnyExpression): AggregateExpr {\n return new AggregateExpr('avg', expr);\n }\n\n static min(expr: AnyExpression): AggregateExpr {\n return new AggregateExpr('min', expr);\n }\n\n static max(expr: AnyExpression): AggregateExpr {\n return new AggregateExpr('max', expr);\n }\n\n override accept<R>(visitor: ExprVisitor<R>): R {\n return visitor.aggregate(this);\n }\n\n override rewrite(rewriter: ExpressionRewriter): AnyExpression {\n return this.expr === undefined ? this : new AggregateExpr(this.fn, this.expr.rewrite(rewriter));\n }\n\n override fold<T>(folder: ExpressionFolder<T>): T {\n return this.expr ? this.expr.fold(folder) : folder.empty;\n }\n}\n\nexport class JsonObjectExpr extends Expression {\n readonly kind = 'json-object' as const;\n readonly entries: ReadonlyArray<JsonObjectEntry>;\n\n constructor(entries: ReadonlyArray<JsonObjectEntry>) {\n super();\n this.entries = frozenArrayCopy(entries.map((entry) => Object.freeze({ ...entry })));\n this.freeze();\n }\n\n static entry(key: string, value: ProjectionExpr): JsonObjectEntry {\n return {\n key,\n value,\n };\n }\n\n static fromEntries(entries: ReadonlyArray<JsonObjectEntry>): JsonObjectExpr {\n return new JsonObjectExpr(entries);\n }\n\n override accept<R>(visitor: ExprVisitor<R>): R {\n return visitor.jsonObject(this);\n }\n\n override rewrite(rewriter: ExpressionRewriter): AnyExpression {\n return new JsonObjectExpr(\n this.entries.map((entry) => ({\n key: entry.key,\n value:\n entry.value.kind === 'literal'\n ? rewriter.literal\n ? rewriter.literal(entry.value)\n : entry.value\n : entry.value.rewrite(rewriter),\n })),\n );\n }\n\n override fold<T>(folder: ExpressionFolder<T>): T {\n return combineAll(\n folder,\n this.entries.map(\n (entry) => () =>\n entry.value.kind === 'literal'\n ? folder.literal\n ? folder.literal(entry.value)\n : folder.empty\n : entry.value.fold(folder),\n ),\n );\n }\n}\n\nexport class OrderByItem extends AstNode {\n readonly kind = 'order-by-item' as const;\n readonly expr: AnyExpression;\n readonly dir: Direction;\n\n constructor(expr: AnyExpression, dir: Direction) {\n super();\n this.expr = expr;\n this.dir = dir;\n this.freeze();\n }\n\n static asc(expr: AnyExpression): OrderByItem {\n return new OrderByItem(expr, 'asc');\n }\n\n static desc(expr: AnyExpression): OrderByItem {\n return new OrderByItem(expr, 'desc');\n }\n\n rewrite(rewriter: ExpressionRewriter): OrderByItem {\n return new OrderByItem(this.expr.rewrite(rewriter), this.dir);\n }\n}\n\nexport class JsonArrayAggExpr extends Expression {\n readonly kind = 'json-array-agg' as const;\n readonly expr: AnyExpression;\n readonly onEmpty: 'null' | 'emptyArray';\n readonly orderBy: ReadonlyArray<OrderByItem> | undefined;\n\n constructor(\n expr: AnyExpression,\n onEmpty: 'null' | 'emptyArray' = 'null',\n orderBy?: ReadonlyArray<OrderByItem>,\n ) {\n super();\n this.expr = expr;\n this.onEmpty = onEmpty;\n this.orderBy = orderBy && orderBy.length > 0 ? frozenArrayCopy(orderBy) : undefined;\n this.freeze();\n }\n\n static of(\n expr: AnyExpression,\n onEmpty: 'null' | 'emptyArray' = 'null',\n orderBy?: ReadonlyArray<OrderByItem>,\n ): JsonArrayAggExpr {\n return new JsonArrayAggExpr(expr, onEmpty, orderBy);\n }\n\n override accept<R>(visitor: ExprVisitor<R>): R {\n return visitor.jsonArrayAgg(this);\n }\n\n override rewrite(rewriter: ExpressionRewriter): AnyExpression {\n return new JsonArrayAggExpr(\n this.expr.rewrite(rewriter),\n this.onEmpty,\n this.orderBy?.map((orderItem) => orderItem.rewrite(rewriter)),\n );\n }\n\n override fold<T>(folder: ExpressionFolder<T>): T {\n return combineAll(folder, [\n () => this.expr.fold(folder),\n ...(this.orderBy ?? []).map((orderItem) => () => orderItem.expr.fold(folder)),\n ]);\n }\n}\n\nexport class ListExpression extends Expression {\n readonly kind = 'list' as const;\n readonly values: ReadonlyArray<AnyExpression>;\n\n constructor(values: ReadonlyArray<AnyExpression>) {\n super();\n this.values = frozenArrayCopy(values);\n this.freeze();\n }\n\n static of(values: ReadonlyArray<AnyExpression>): ListExpression {\n return new ListExpression(values);\n }\n\n static fromValues(values: ReadonlyArray<unknown>): ListExpression {\n return new ListExpression(values.map((value) => new LiteralExpr(value)));\n }\n\n override accept<R>(visitor: ExprVisitor<R>): R {\n return visitor.list(this);\n }\n\n override rewrite(rewriter: ExpressionRewriter): AnyExpression {\n if (rewriter.list) {\n return rewriter.list(this);\n }\n\n return new ListExpression(this.values.map((value) => value.rewrite(rewriter)));\n }\n\n fold<T>(folder: ExpressionFolder<T>): T {\n if (folder.list) {\n return folder.list(this);\n }\n return combineAll(\n folder,\n this.values.map((value) => () => value.fold(folder)),\n );\n }\n}\n\nexport class BinaryExpr extends Expression {\n readonly kind = 'binary' as const;\n readonly op: BinaryOp;\n readonly left: AnyExpression;\n readonly right: AnyExpression;\n\n constructor(op: BinaryOp, left: AnyExpression, right: AnyExpression) {\n super();\n this.op = op;\n this.left = left;\n this.right = right;\n this.freeze();\n }\n\n static eq(left: AnyExpression, right: AnyExpression): BinaryExpr {\n return new BinaryExpr('eq', left, right);\n }\n\n static neq(left: AnyExpression, right: AnyExpression): BinaryExpr {\n return new BinaryExpr('neq', left, right);\n }\n\n static gt(left: AnyExpression, right: AnyExpression): BinaryExpr {\n return new BinaryExpr('gt', left, right);\n }\n\n static lt(left: AnyExpression, right: AnyExpression): BinaryExpr {\n return new BinaryExpr('lt', left, right);\n }\n\n static gte(left: AnyExpression, right: AnyExpression): BinaryExpr {\n return new BinaryExpr('gte', left, right);\n }\n\n static lte(left: AnyExpression, right: AnyExpression): BinaryExpr {\n return new BinaryExpr('lte', left, right);\n }\n\n static like(left: AnyExpression, right: AnyExpression): BinaryExpr {\n return new BinaryExpr('like', left, right);\n }\n\n static in(left: AnyExpression, right: AnyExpression): BinaryExpr {\n return new BinaryExpr('in', left, right);\n }\n\n static notIn(left: AnyExpression, right: AnyExpression): BinaryExpr {\n return new BinaryExpr('notIn', left, right);\n }\n\n override accept<R>(visitor: ExprVisitor<R>): R {\n return visitor.binary(this);\n }\n\n override rewrite(rewriter: ExpressionRewriter): AnyExpression {\n return new BinaryExpr(\n this.op,\n rewriteComparable(this.left, rewriter),\n rewriteComparable(this.right, rewriter),\n );\n }\n\n override fold<T>(folder: ExpressionFolder<T>): T {\n return combineAll(folder, [\n () => foldComparable(this.left, folder),\n () => foldComparable(this.right, folder),\n ]);\n }\n}\n\nexport class AndExpr extends Expression {\n readonly kind = 'and' as const;\n readonly exprs: ReadonlyArray<AnyExpression>;\n\n constructor(exprs: ReadonlyArray<AnyExpression>) {\n super();\n this.exprs = frozenArrayCopy(exprs);\n this.freeze();\n }\n\n static of(exprs: ReadonlyArray<AnyExpression>): AndExpr {\n return new AndExpr(exprs);\n }\n\n static true(): AndExpr {\n return new AndExpr([]);\n }\n\n override accept<R>(visitor: ExprVisitor<R>): R {\n return visitor.and(this);\n }\n\n override rewrite(rewriter: ExpressionRewriter): AnyExpression {\n return new AndExpr(this.exprs.map((expr) => expr.rewrite(rewriter)));\n }\n\n override fold<T>(folder: ExpressionFolder<T>): T {\n return combineAll(\n folder,\n this.exprs.map((expr) => () => expr.fold(folder)),\n );\n }\n}\n\nexport class OrExpr extends Expression {\n readonly kind = 'or' as const;\n readonly exprs: ReadonlyArray<AnyExpression>;\n\n constructor(exprs: ReadonlyArray<AnyExpression>) {\n super();\n this.exprs = frozenArrayCopy(exprs);\n this.freeze();\n }\n\n static of(exprs: ReadonlyArray<AnyExpression>): OrExpr {\n return new OrExpr(exprs);\n }\n\n static false(): OrExpr {\n return new OrExpr([]);\n }\n\n override accept<R>(visitor: ExprVisitor<R>): R {\n return visitor.or(this);\n }\n\n override rewrite(rewriter: ExpressionRewriter): AnyExpression {\n return new OrExpr(this.exprs.map((expr) => expr.rewrite(rewriter)));\n }\n\n override fold<T>(folder: ExpressionFolder<T>): T {\n return combineAll(\n folder,\n this.exprs.map((expr) => () => expr.fold(folder)),\n );\n }\n}\n\nexport class ExistsExpr extends Expression {\n readonly kind = 'exists' as const;\n readonly notExists: boolean;\n readonly subquery: SelectAst;\n\n constructor(subquery: SelectAst, notExists = false) {\n super();\n this.notExists = notExists;\n this.subquery = subquery;\n this.freeze();\n }\n\n static exists(subquery: SelectAst): ExistsExpr {\n return new ExistsExpr(subquery, false);\n }\n\n static notExists(subquery: SelectAst): ExistsExpr {\n return new ExistsExpr(subquery, true);\n }\n\n override accept<R>(visitor: ExprVisitor<R>): R {\n return visitor.exists(this);\n }\n\n override rewrite(rewriter: ExpressionRewriter): AnyExpression {\n return new ExistsExpr(this.subquery.rewrite(rewriter), this.notExists);\n }\n\n override fold<T>(folder: ExpressionFolder<T>): T {\n return folder.select ? folder.select(this.subquery) : folder.empty;\n }\n}\n\nexport class NullCheckExpr extends Expression {\n readonly kind = 'null-check' as const;\n readonly expr: AnyExpression;\n readonly isNull: boolean;\n\n constructor(expr: AnyExpression, isNull: boolean) {\n super();\n this.expr = expr;\n this.isNull = isNull;\n this.freeze();\n }\n\n static isNull(expr: AnyExpression): NullCheckExpr {\n return new NullCheckExpr(expr, true);\n }\n\n static isNotNull(expr: AnyExpression): NullCheckExpr {\n return new NullCheckExpr(expr, false);\n }\n\n override accept<R>(visitor: ExprVisitor<R>): R {\n return visitor.nullCheck(this);\n }\n\n override rewrite(rewriter: ExpressionRewriter): AnyExpression {\n return new NullCheckExpr(this.expr.rewrite(rewriter), this.isNull);\n }\n\n override fold<T>(folder: ExpressionFolder<T>): T {\n return this.expr.fold(folder);\n }\n}\n\nexport class NotExpr extends Expression {\n readonly kind = 'not' as const;\n readonly expr: AnyExpression;\n\n constructor(expr: AnyExpression) {\n super();\n this.expr = expr;\n this.freeze();\n }\n\n toWhereExpr(): AnyExpression {\n return this;\n }\n\n override accept<R>(visitor: ExprVisitor<R>): R {\n return visitor.not(this);\n }\n\n override rewrite(rewriter: ExpressionRewriter): AnyExpression {\n return new NotExpr(this.expr.rewrite(rewriter));\n }\n\n override fold<T>(folder: ExpressionFolder<T>): T {\n return this.expr.fold(folder);\n }\n}\n\nexport class EqColJoinOn extends AstNode {\n readonly kind = 'eq-col-join-on' as const;\n readonly left: ColumnRef;\n readonly right: ColumnRef;\n\n constructor(left: ColumnRef, right: ColumnRef) {\n super();\n this.left = left;\n this.right = right;\n this.freeze();\n }\n\n static of(left: ColumnRef, right: ColumnRef): EqColJoinOn {\n return new EqColJoinOn(left, right);\n }\n\n rewrite(rewriter: AstRewriter): EqColJoinOn | AnyExpression {\n return rewriter.eqColJoinOn ? rewriter.eqColJoinOn(this) : this;\n }\n}\n\nexport class JoinAst extends AstNode {\n readonly kind = 'join' as const;\n readonly joinType: 'inner' | 'left' | 'right' | 'full';\n readonly source: AnyFromSource;\n readonly lateral: boolean;\n readonly on: JoinOnExpr;\n\n constructor(\n joinType: 'inner' | 'left' | 'right' | 'full',\n source: AnyFromSource,\n on: JoinOnExpr,\n lateral = false,\n ) {\n super();\n this.joinType = joinType;\n this.source = source;\n this.lateral = lateral;\n this.on = on;\n this.freeze();\n }\n\n static inner(source: AnyFromSource, on: JoinOnExpr, lateral = false): JoinAst {\n return new JoinAst('inner', source, on, lateral);\n }\n\n static left(source: AnyFromSource, on: JoinOnExpr, lateral = false): JoinAst {\n return new JoinAst('left', source, on, lateral);\n }\n\n static right(source: AnyFromSource, on: JoinOnExpr, lateral = false): JoinAst {\n return new JoinAst('right', source, on, lateral);\n }\n\n static full(source: AnyFromSource, on: JoinOnExpr, lateral = false): JoinAst {\n return new JoinAst('full', source, on, lateral);\n }\n\n rewrite(rewriter: AstRewriter): JoinAst {\n return new JoinAst(\n this.joinType,\n this.source.rewrite(rewriter),\n this.on.kind === 'eq-col-join-on' ? this.on.rewrite(rewriter) : this.on.rewrite(rewriter),\n this.lateral,\n );\n }\n}\n\nexport class ProjectionItem extends AstNode {\n readonly kind = 'projection-item' as const;\n readonly alias: string;\n readonly expr: ProjectionExpr;\n readonly codecId: string | undefined;\n /**\n * Column-bound metadata for the projection. Populated by builder paths that promote a top-level field shortcut (`select('email', ...)`) into a bare `IdentifierRef` AST while still knowing the originating `(table, column)`. Decode-side dispatch consults `refs` to call `forColumn(table, column)` so parameterized codec ids resolve to the per-instance codec — required when multiple columns share a codec id with distinct\n * typeParams (e.g. `varchar(36)` vs. `varchar(255)`). Stays `undefined` for `column-ref` projections (the AST already carries the binding) and for non-column-bound projections (computed expressions, subqueries, raw aliases).\n */\n readonly refs: ParamRefBindingRefs | undefined;\n\n constructor(alias: string, expr: ProjectionExpr, codecId?: string, refs?: ParamRefBindingRefs) {\n super();\n this.alias = alias;\n this.expr = expr;\n this.codecId = codecId;\n this.refs = refs ? Object.freeze({ ...refs }) : undefined;\n this.freeze();\n }\n\n static of(\n alias: string,\n expr: ProjectionExpr,\n codecId?: string,\n refs?: ParamRefBindingRefs,\n ): ProjectionItem {\n return new ProjectionItem(alias, expr, codecId, refs);\n }\n\n withCodecId(codecId: string | undefined): ProjectionItem {\n return new ProjectionItem(this.alias, this.expr, codecId, this.refs);\n }\n}\n\nexport interface SelectAstOptions {\n readonly from: AnyFromSource;\n readonly joins: ReadonlyArray<JoinAst> | undefined;\n readonly projection: ReadonlyArray<ProjectionItem>;\n readonly where: AnyExpression | undefined;\n readonly orderBy: ReadonlyArray<OrderByItem> | undefined;\n readonly distinct: true | undefined;\n readonly distinctOn: ReadonlyArray<AnyExpression> | undefined;\n readonly groupBy: ReadonlyArray<AnyExpression> | undefined;\n readonly having: AnyExpression | undefined;\n readonly limit: number | undefined;\n readonly offset: number | undefined;\n readonly selectAllIntent: { readonly table?: string } | undefined;\n}\n\nexport class SelectAst extends QueryAst {\n readonly kind = 'select' as const;\n readonly from: AnyFromSource;\n readonly joins: ReadonlyArray<JoinAst> | undefined;\n readonly projection: ReadonlyArray<ProjectionItem>;\n readonly where: AnyExpression | undefined;\n readonly orderBy: ReadonlyArray<OrderByItem> | undefined;\n readonly distinct: true | undefined;\n readonly distinctOn: ReadonlyArray<AnyExpression> | undefined;\n readonly groupBy: ReadonlyArray<AnyExpression> | undefined;\n readonly having: AnyExpression | undefined;\n readonly limit: number | undefined;\n readonly offset: number | undefined;\n readonly selectAllIntent: { readonly table?: string } | undefined;\n\n constructor(options: SelectAstOptions) {\n super();\n this.from = options.from;\n this.joins =\n options.joins && options.joins.length > 0 ? frozenArrayCopy(options.joins) : undefined;\n this.projection = frozenArrayCopy(options.projection);\n this.where = options.where;\n this.orderBy =\n options.orderBy && options.orderBy.length > 0 ? frozenArrayCopy(options.orderBy) : undefined;\n this.distinct = options.distinct;\n this.distinctOn =\n options.distinctOn && options.distinctOn.length > 0\n ? frozenArrayCopy(options.distinctOn)\n : undefined;\n this.groupBy =\n options.groupBy && options.groupBy.length > 0 ? frozenArrayCopy(options.groupBy) : undefined;\n this.having = options.having;\n this.limit = options.limit;\n this.offset = options.offset;\n this.selectAllIntent = frozenOptionalRecordCopy(options.selectAllIntent);\n this.freeze();\n }\n\n static from(from: AnyFromSource): SelectAst {\n return new SelectAst({\n from,\n joins: undefined,\n projection: [],\n where: undefined,\n orderBy: undefined,\n distinct: undefined,\n distinctOn: undefined,\n groupBy: undefined,\n having: undefined,\n limit: undefined,\n offset: undefined,\n selectAllIntent: undefined,\n });\n }\n\n withFrom(from: AnyFromSource): SelectAst {\n return new SelectAst({ ...this, from });\n }\n\n withJoins(joins: ReadonlyArray<JoinAst>): SelectAst {\n return new SelectAst({\n ...this,\n joins: joins.length > 0 ? joins : undefined,\n });\n }\n\n withProjection(projection: ReadonlyArray<ProjectionItem>): SelectAst {\n return new SelectAst({ ...this, projection });\n }\n\n addProjection(alias: string, expr: ProjectionExpr): SelectAst {\n return new SelectAst({\n ...this,\n projection: [...this.projection, new ProjectionItem(alias, expr)],\n });\n }\n\n withWhere(where: AnyExpression | undefined): SelectAst {\n return new SelectAst({ ...this, where });\n }\n\n withOrderBy(orderBy: ReadonlyArray<OrderByItem>): SelectAst {\n return new SelectAst({\n ...this,\n orderBy: orderBy.length > 0 ? orderBy : undefined,\n });\n }\n\n withDistinct(enabled = true): SelectAst {\n return new SelectAst({\n ...this,\n distinct: enabled ? true : undefined,\n });\n }\n\n withDistinctOn(distinctOn: ReadonlyArray<AnyExpression>): SelectAst {\n return new SelectAst({\n ...this,\n distinctOn: distinctOn.length > 0 ? distinctOn : undefined,\n });\n }\n\n withGroupBy(groupBy: ReadonlyArray<AnyExpression>): SelectAst {\n return new SelectAst({\n ...this,\n groupBy: groupBy.length > 0 ? groupBy : undefined,\n });\n }\n\n withHaving(having: AnyExpression | undefined): SelectAst {\n return new SelectAst({ ...this, having });\n }\n\n withLimit(limit: number | undefined): SelectAst {\n return new SelectAst({ ...this, limit });\n }\n\n withOffset(offset: number | undefined): SelectAst {\n return new SelectAst({ ...this, offset });\n }\n\n withSelectAllIntent(selectAllIntent: { readonly table?: string } | undefined): SelectAst {\n return new SelectAst({ ...this, selectAllIntent });\n }\n\n rewrite(rewriter: AstRewriter): SelectAst {\n const rewritten = new SelectAst({\n from: this.from.rewrite(rewriter),\n joins: this.joins?.map((join) => join.rewrite(rewriter)),\n projection: this.projection.map(\n (projection) =>\n new ProjectionItem(\n projection.alias,\n projection.expr.kind === 'literal'\n ? rewriter.literal\n ? rewriter.literal(projection.expr)\n : projection.expr\n : projection.expr.rewrite(rewriter),\n projection.codecId,\n projection.refs,\n ),\n ),\n where: this.where?.rewrite(rewriter),\n orderBy: this.orderBy?.map((orderItem) => orderItem.rewrite(rewriter)),\n distinct: this.distinct,\n distinctOn: this.distinctOn?.map((expr) => expr.rewrite(rewriter)),\n groupBy: this.groupBy?.map((expr) => expr.rewrite(rewriter)),\n having: this.having?.rewrite(rewriter),\n limit: this.limit,\n offset: this.offset,\n selectAllIntent: this.selectAllIntent,\n });\n\n return rewriter.select ? rewriter.select(rewritten) : rewritten;\n }\n\n collectColumnRefs(): ColumnRef[] {\n const refs: ColumnRef[] = [];\n const pushRefs = (columns: ReadonlyArray<ColumnRef>) => {\n refs.push(...columns);\n };\n\n if (this.from.kind === 'derived-table-source') {\n pushRefs(this.from.query.collectColumnRefs());\n }\n\n for (const projection of this.projection) {\n if (!(projection.expr.kind === 'literal')) {\n pushRefs(projection.expr.collectColumnRefs());\n }\n }\n\n if (this.where) {\n pushRefs(this.where.collectColumnRefs());\n }\n if (this.having) {\n pushRefs(this.having.collectColumnRefs());\n }\n for (const orderItem of this.orderBy ?? []) {\n pushRefs(orderItem.expr.collectColumnRefs());\n }\n for (const expr of this.distinctOn ?? []) {\n pushRefs(expr.collectColumnRefs());\n }\n for (const expr of this.groupBy ?? []) {\n pushRefs(expr.collectColumnRefs());\n }\n for (const join of this.joins ?? []) {\n if (join.source.kind === 'derived-table-source') {\n pushRefs(join.source.query.collectColumnRefs());\n }\n if (join.on.kind === 'eq-col-join-on') {\n refs.push(join.on.left, join.on.right);\n } else {\n pushRefs(join.on.collectColumnRefs());\n }\n }\n\n return refs;\n }\n\n collectParamRefs(): ParamRef[] {\n const refs: ParamRef[] = [];\n const pushRefs = (params: ReadonlyArray<ParamRef>) => {\n refs.push(...params);\n };\n\n if (this.from.kind === 'derived-table-source') {\n pushRefs(this.from.query.collectParamRefs());\n }\n\n for (const projection of this.projection) {\n if (!(projection.expr.kind === 'literal')) {\n pushRefs(projection.expr.collectParamRefs());\n }\n }\n\n if (this.where) {\n pushRefs(this.where.collectParamRefs());\n }\n if (this.having) {\n pushRefs(this.having.collectParamRefs());\n }\n for (const orderItem of this.orderBy ?? []) {\n pushRefs(orderItem.expr.collectParamRefs());\n }\n for (const expr of this.distinctOn ?? []) {\n pushRefs(expr.collectParamRefs());\n }\n for (const expr of this.groupBy ?? []) {\n pushRefs(expr.collectParamRefs());\n }\n for (const join of this.joins ?? []) {\n if (join.source.kind === 'derived-table-source') {\n pushRefs(join.source.query.collectParamRefs());\n }\n if (!(join.on.kind === 'eq-col-join-on')) {\n pushRefs(join.on.collectParamRefs());\n }\n }\n\n return refs;\n }\n\n override toQueryAst(): AnyQueryAst {\n return this;\n }\n}\n\nabstract class InsertOnConflictAction extends AstNode {\n abstract toInsertOnConflictAction(): AnyInsertOnConflictAction;\n}\n\nexport class DoNothingConflictAction extends InsertOnConflictAction {\n readonly kind = 'do-nothing' as const;\n\n constructor() {\n super();\n this.freeze();\n }\n\n override toInsertOnConflictAction(): AnyInsertOnConflictAction {\n return this;\n }\n}\n\nexport class DoUpdateSetConflictAction extends InsertOnConflictAction {\n readonly kind = 'do-update-set' as const;\n readonly set: Readonly<Record<string, ColumnRef | ParamRef>>;\n\n constructor(set: Readonly<Record<string, ColumnRef | ParamRef>>) {\n super();\n this.set = frozenRecordCopy(set);\n this.freeze();\n }\n\n override toInsertOnConflictAction(): AnyInsertOnConflictAction {\n return this;\n }\n}\n\nexport class InsertOnConflict extends AstNode {\n readonly kind = 'insert-on-conflict' as const;\n readonly columns: ReadonlyArray<ColumnRef>;\n readonly action: AnyInsertOnConflictAction;\n\n constructor(columns: ReadonlyArray<ColumnRef>, action: AnyInsertOnConflictAction) {\n super();\n this.columns = frozenArrayCopy(columns);\n this.action = action;\n this.freeze();\n }\n\n static on(columns: ReadonlyArray<ColumnRef>): InsertOnConflict {\n return new InsertOnConflict(columns, new DoNothingConflictAction());\n }\n\n doNothing(): InsertOnConflict {\n return new InsertOnConflict(this.columns, new DoNothingConflictAction());\n }\n\n doUpdateSet(set: Readonly<Record<string, ColumnRef | ParamRef>>): InsertOnConflict {\n return new InsertOnConflict(this.columns, new DoUpdateSetConflictAction(set));\n }\n}\n\nexport class InsertAst extends QueryAst {\n readonly kind = 'insert' as const;\n readonly table: TableSource;\n readonly rows: ReadonlyArray<Readonly<Record<string, InsertValue>>>;\n readonly onConflict: InsertOnConflict | undefined;\n readonly returning: ReadonlyArray<ProjectionItem> | undefined;\n\n constructor(\n table: TableSource,\n rows: ReadonlyArray<Record<string, InsertValue>> = [{}],\n onConflict?: InsertOnConflict,\n returning?: ReadonlyArray<ProjectionItem>,\n ) {\n super();\n this.table = table;\n this.rows = freezeRows(rows);\n this.onConflict = onConflict;\n this.returning = returning && returning.length > 0 ? frozenArrayCopy(returning) : undefined;\n this.freeze();\n }\n\n static into(table: TableSource): InsertAst {\n return new InsertAst(table);\n }\n\n withValues(values: Record<string, InsertValue>): InsertAst {\n return new InsertAst(this.table, [{ ...values }], this.onConflict, this.returning);\n }\n\n withRows(rows: ReadonlyArray<Record<string, InsertValue>>): InsertAst {\n return new InsertAst(\n this.table,\n rows.map((row) => ({ ...row })),\n this.onConflict,\n this.returning,\n );\n }\n\n withReturning(returning: ReadonlyArray<ProjectionItem> | undefined): InsertAst {\n return new InsertAst(\n this.table,\n this.rows.map((row) => ({ ...row })),\n this.onConflict,\n returning,\n );\n }\n\n withOnConflict(onConflict: InsertOnConflict | undefined): InsertAst {\n return new InsertAst(\n this.table,\n this.rows.map((row) => ({ ...row })),\n onConflict,\n this.returning,\n );\n }\n\n rewrite(rewriter: AstRewriter): InsertAst {\n return new InsertAst(\n rewriteTableSource(this.table, rewriter),\n this.rows.map((row) => rewriteInsertRow(row, rewriter)),\n this.onConflict ? rewriteOnConflict(this.onConflict, rewriter) : undefined,\n this.returning?.map((item) => rewriteProjectionItem(item, rewriter)),\n );\n }\n\n override collectParamRefs(): ParamRef[] {\n const refs: ParamRef[] = [];\n for (const row of this.rows) {\n for (const value of Object.values(row)) {\n if (value.kind === 'param-ref') {\n refs.push(value);\n }\n }\n }\n if (this.onConflict?.action.kind === 'do-update-set') {\n for (const value of Object.values(this.onConflict.action.set)) {\n if (value.kind === 'param-ref') {\n refs.push(value);\n }\n }\n }\n for (const item of this.returning ?? []) {\n if (item.expr.kind !== 'literal') {\n refs.push(...item.expr.collectParamRefs());\n }\n }\n return refs;\n }\n\n override toQueryAst(): AnyQueryAst {\n return this;\n }\n}\n\nexport class UpdateAst extends QueryAst {\n readonly kind = 'update' as const;\n readonly table: TableSource;\n readonly set: Readonly<Record<string, ColumnRef | ParamRef>>;\n readonly where: AnyExpression | undefined;\n readonly returning: ReadonlyArray<ProjectionItem> | undefined;\n\n constructor(\n table: TableSource,\n set: Readonly<Record<string, ColumnRef | ParamRef>> = {},\n where?: AnyExpression,\n returning?: ReadonlyArray<ProjectionItem>,\n ) {\n super();\n this.table = table;\n this.set = frozenRecordCopy(set);\n this.where = where;\n this.returning = returning && returning.length > 0 ? frozenArrayCopy(returning) : undefined;\n this.freeze();\n }\n\n static table(table: TableSource): UpdateAst {\n return new UpdateAst(table);\n }\n\n withSet(set: Readonly<Record<string, ColumnRef | ParamRef>>): UpdateAst {\n return new UpdateAst(this.table, set, this.where, this.returning);\n }\n\n withWhere(where: AnyExpression | undefined): UpdateAst {\n return new UpdateAst(this.table, this.set, where, this.returning);\n }\n\n withReturning(returning: ReadonlyArray<ProjectionItem> | undefined): UpdateAst {\n return new UpdateAst(this.table, this.set, this.where, returning);\n }\n\n rewrite(rewriter: AstRewriter): UpdateAst {\n return new UpdateAst(\n rewriteTableSource(this.table, rewriter),\n rewriteUpdateSet(this.set, rewriter),\n this.where?.rewrite(rewriter),\n this.returning?.map((item) => rewriteProjectionItem(item, rewriter)),\n );\n }\n\n override collectParamRefs(): ParamRef[] {\n const refs: ParamRef[] = [];\n for (const value of Object.values(this.set)) {\n if (value.kind === 'param-ref') {\n refs.push(value);\n }\n }\n if (this.where) {\n refs.push(...this.where.collectParamRefs());\n }\n for (const item of this.returning ?? []) {\n if (item.expr.kind !== 'literal') {\n refs.push(...item.expr.collectParamRefs());\n }\n }\n return refs;\n }\n\n override toQueryAst(): AnyQueryAst {\n return this;\n }\n}\n\nexport class DeleteAst extends QueryAst {\n readonly kind = 'delete' as const;\n readonly table: TableSource;\n readonly where: AnyExpression | undefined;\n readonly returning: ReadonlyArray<ProjectionItem> | undefined;\n\n constructor(\n table: TableSource,\n where?: AnyExpression,\n returning?: ReadonlyArray<ProjectionItem>,\n ) {\n super();\n this.table = table;\n this.where = where;\n this.returning = returning && returning.length > 0 ? frozenArrayCopy(returning) : undefined;\n this.freeze();\n }\n\n static from(table: TableSource): DeleteAst {\n return new DeleteAst(table);\n }\n\n withWhere(where: AnyExpression | undefined): DeleteAst {\n return new DeleteAst(this.table, where, this.returning);\n }\n\n withReturning(returning: ReadonlyArray<ProjectionItem> | undefined): DeleteAst {\n return new DeleteAst(this.table, this.where, returning);\n }\n\n rewrite(rewriter: AstRewriter): DeleteAst {\n return new DeleteAst(\n rewriteTableSource(this.table, rewriter),\n this.where?.rewrite(rewriter),\n this.returning?.map((item) => rewriteProjectionItem(item, rewriter)),\n );\n }\n\n override collectParamRefs(): ParamRef[] {\n const refs: ParamRef[] = [];\n if (this.where) {\n refs.push(...this.where.collectParamRefs());\n }\n for (const item of this.returning ?? []) {\n if (item.expr.kind !== 'literal') {\n refs.push(...item.expr.collectParamRefs());\n }\n }\n return refs;\n }\n\n override toQueryAst(): AnyQueryAst {\n return this;\n }\n}\n\nexport type AnyQueryAst = SelectAst | InsertAst | UpdateAst | DeleteAst;\nexport type AnyFromSource = TableSource | DerivedTableSource;\nexport type AnyExpression =\n | ColumnRef\n | IdentifierRef\n | ParamRef\n | LiteralExpr\n | SubqueryExpr\n | OperationExpr\n | AggregateExpr\n | JsonObjectExpr\n | JsonArrayAggExpr\n | ListExpression\n | BinaryExpr\n | AndExpr\n | OrExpr\n | ExistsExpr\n | NullCheckExpr\n | NotExpr;\nexport type AnyInsertOnConflictAction = DoNothingConflictAction | DoUpdateSetConflictAction;\nexport type AnyInsertValue = ColumnRef | ParamRef | DefaultValueExpr;\nexport type AnyOperationArg = AnyExpression | ParamRef | LiteralExpr;\n\nexport const queryAstKinds: ReadonlySet<string> = new Set<AnyQueryAst['kind']>([\n 'select',\n 'insert',\n 'update',\n 'delete',\n]);\nexport const whereExprKinds: ReadonlySet<string> = new Set<AnyExpression['kind']>([\n 'binary',\n 'and',\n 'or',\n 'exists',\n 'null-check',\n 'not',\n]);\n\nexport function isQueryAst(value: unknown): value is AnyQueryAst {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'kind' in value &&\n queryAstKinds.has((value as { kind: string }).kind)\n );\n}\n\nexport function isWhereExpr(value: unknown): value is AnyExpression {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'kind' in value &&\n whereExprKinds.has((value as { kind: string }).kind)\n );\n}\n\nexport interface ToWhereExpr {\n toWhereExpr(): AnyExpression;\n}\n\nexport interface LoweredStatement {\n readonly sql: string;\n readonly params: readonly unknown[];\n readonly annotations?: Record<string, unknown>;\n}\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { G as ParamRef, h as ColumnRef } from "./types-
|
|
2
|
-
import { r as ExecutionContext } from "./query-lane-context-
|
|
3
|
-
import { t as SqlExecutionPlan } from "./sql-execution-plan-
|
|
1
|
+
import { G as ParamRef, h as ColumnRef } from "./types-U74HFwNI.mjs";
|
|
2
|
+
import { r as ExecutionContext } from "./query-lane-context-DlWgKvvt.mjs";
|
|
3
|
+
import { t as SqlExecutionPlan } from "./sql-execution-plan-DTfj23Tj.mjs";
|
|
4
4
|
import { Contract } from "@prisma-next/contract/types";
|
|
5
5
|
import { ParamSpec } from "@prisma-next/operations";
|
|
6
6
|
import { SqlLoweringSpec } from "@prisma-next/sql-operations";
|
|
@@ -190,4 +190,4 @@ interface SqlBuilderOptions<TContract extends Contract<SqlStorage> = Contract<Sq
|
|
|
190
190
|
}
|
|
191
191
|
//#endregion
|
|
192
192
|
export { TableKey as C, TableDef as S, TablesOf as T, RawTemplateFactory as _, ComputeColumnJsType as a, SqlBuilderOptions as b, META as c, ModelMetadata as d, OperationTypeSignature as f, RawFunctionOptions as g, RawFactory as h, ColumnsOf as i, Meta as l, OperationsForTypeId as m, BuildParamsMap as n, Expr as o, OperationTypes as p, CodecTypes as r, HasIncludeManyCapabilities as s, BuildOptions as t, ModelDef as u, RawTemplateOptions as v, TableMetadata as w, SqlPlan as x, RuntimeError as y };
|
|
193
|
-
//# sourceMappingURL=types-
|
|
193
|
+
//# sourceMappingURL=types-G3hdNPZZ.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types-
|
|
1
|
+
{"version":3,"file":"types-G3hdNPZZ.d.mts","names":[],"sources":["../src/types.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -123,18 +123,31 @@ declare class IdentifierRef extends Expression {
|
|
|
123
123
|
rewrite(rewriter: ExpressionRewriter): AnyExpression;
|
|
124
124
|
fold<T>(folder: ExpressionFolder<T>): T;
|
|
125
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* Column ref carried by a {@link ParamRef} that was constructed at a column-bound site (e.g. an INSERT/UPDATE column assignment, a `WHERE column = $param` comparison). The encode-side dispatch path uses `refs` to call `contractCodecs.forColumn(refs.table, refs.column)`, which selects the per-instance parameterized codec for the column — required when a parameterized codec id is shared by multiple columns with distinct
|
|
128
|
+
* typeParams (e.g. `vector(1024)` vs. `vector(1536)`).
|
|
129
|
+
*
|
|
130
|
+
* `refs` may legitimately be `undefined` for `ParamRef`s constructed without a column context — the validator pass (`validateParamRefRefs`) treats refs-less ParamRefs as a hard error only when their codec id is parameterized.
|
|
131
|
+
*/
|
|
132
|
+
interface ParamRefBindingRefs {
|
|
133
|
+
readonly table: string;
|
|
134
|
+
readonly column: string;
|
|
135
|
+
}
|
|
126
136
|
declare class ParamRef extends Expression {
|
|
127
137
|
readonly kind: "param-ref";
|
|
128
138
|
readonly value: unknown;
|
|
129
139
|
readonly name: string | undefined;
|
|
130
140
|
readonly codecId: string | undefined;
|
|
141
|
+
readonly refs: ParamRefBindingRefs | undefined;
|
|
131
142
|
constructor(value: unknown, options?: {
|
|
132
143
|
name?: string;
|
|
133
144
|
codecId?: string;
|
|
145
|
+
refs?: ParamRefBindingRefs;
|
|
134
146
|
});
|
|
135
147
|
static of(value: unknown, options?: {
|
|
136
148
|
name?: string;
|
|
137
149
|
codecId?: string;
|
|
150
|
+
refs?: ParamRefBindingRefs;
|
|
138
151
|
}): ParamRef;
|
|
139
152
|
accept<R>(visitor: ExprVisitor<R>): R;
|
|
140
153
|
rewrite(rewriter: ExpressionRewriter): AnyExpression;
|
|
@@ -331,8 +344,13 @@ declare class ProjectionItem extends AstNode {
|
|
|
331
344
|
readonly alias: string;
|
|
332
345
|
readonly expr: ProjectionExpr;
|
|
333
346
|
readonly codecId: string | undefined;
|
|
334
|
-
|
|
335
|
-
|
|
347
|
+
/**
|
|
348
|
+
* Column-bound metadata for the projection. Populated by builder paths that promote a top-level field shortcut (`select('email', ...)`) into a bare `IdentifierRef` AST while still knowing the originating `(table, column)`. Decode-side dispatch consults `refs` to call `forColumn(table, column)` so parameterized codec ids resolve to the per-instance codec — required when multiple columns share a codec id with distinct
|
|
349
|
+
* typeParams (e.g. `varchar(36)` vs. `varchar(255)`). Stays `undefined` for `column-ref` projections (the AST already carries the binding) and for non-column-bound projections (computed expressions, subqueries, raw aliases).
|
|
350
|
+
*/
|
|
351
|
+
readonly refs: ParamRefBindingRefs | undefined;
|
|
352
|
+
constructor(alias: string, expr: ProjectionExpr, codecId?: string, refs?: ParamRefBindingRefs);
|
|
353
|
+
static of(alias: string, expr: ProjectionExpr, codecId?: string, refs?: ParamRefBindingRefs): ProjectionItem;
|
|
336
354
|
withCodecId(codecId: string | undefined): ProjectionItem;
|
|
337
355
|
}
|
|
338
356
|
interface SelectAstOptions {
|
|
@@ -475,5 +493,5 @@ interface LoweredStatement {
|
|
|
475
493
|
readonly annotations?: Record<string, unknown>;
|
|
476
494
|
}
|
|
477
495
|
//#endregion
|
|
478
|
-
export {
|
|
479
|
-
//# sourceMappingURL=types-
|
|
496
|
+
export { TableSource as $, InsertOnConflict as A, NotExpr as B, ExistsExpr as C, ExpressionSource as D, ExpressionRewriter as E, JsonObjectEntry as F, ParamRef as G, OperationExpr as H, JsonObjectExpr as I, ProjectionItem as J, ParamRefBindingRefs as K, ListExpression as L, JoinAst as M, JoinOnExpr as N, IdentifierRef as O, JsonArrayAggExpr as P, TableRef as Q, LiteralExpr as R, EqColJoinOn as S, ExpressionFolder as T, OrExpr as U, NullCheckExpr as V, OrderByItem as W, SelectAstOptions as X, SelectAst as Y, SubqueryExpr as Z, DeleteAst as _, AndExpr as a, queryAstKinds as at, DoNothingConflictAction as b, AnyInsertOnConflictAction as c, AnyQueryAst as d, ToWhereExpr as et, AstRewriter as f, DefaultValueExpr as g, ColumnRef as h, AggregateOpFn as i, isWhereExpr as it, InsertValue as j, InsertAst as k, AnyInsertValue as l, BinaryOp as m, AggregateExpr as n, WhereArg as nt, AnyExpression as o, whereExprKinds as ot, BinaryExpr as p, ProjectionExpr as q, AggregateFn as r, isQueryAst as rt, AnyFromSource as s, AggregateCountFn as t, UpdateAst as tt, AnyOperationArg as u, DerivedTableSource as v, ExprVisitor as w, DoUpdateSetConflictAction as x, Direction as y, LoweredStatement as z };
|
|
497
|
+
//# sourceMappingURL=types-U74HFwNI.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-U74HFwNI.d.mts","names":[],"sources":["../src/ast/types.ts"],"sourcesContent":[],"mappings":"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"}
|