@prisma-next/sql-lane 0.3.0-dev.34 → 0.3.0-dev.37
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 +18 -1
- package/dist/builder-DLGrrQ5F.mjs +1254 -0
- package/dist/builder-DLGrrQ5F.mjs.map +1 -0
- package/dist/builder-DizPddCD.d.mts +121 -0
- package/dist/builder-DizPddCD.d.mts.map +1 -0
- package/dist/exports/sql.d.mts +3 -0
- package/dist/exports/sql.mjs +3 -0
- package/dist/index.d.mts +3 -0
- package/dist/index.mjs +3 -0
- package/package.json +23 -19
- package/src/raw.ts +9 -2
- package/src/sql/context.ts +3 -3
- package/src/sql/mutation-builder.ts +54 -4
- package/src/sql/plan.ts +1 -1
- package/src/sql/select-builder.ts +2 -2
- package/dist/chunk-GNBTSXFL.js +0 -1580
- package/dist/chunk-GNBTSXFL.js.map +0 -1
- package/dist/exports/sql.d.ts +0 -5
- package/dist/exports/sql.d.ts.map +0 -1
- package/dist/exports/sql.js +0 -11
- package/dist/exports/sql.js.map +0 -1
- package/dist/index.d.ts +0 -5
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -11
- package/dist/index.js.map +0 -1
- package/dist/raw.d.ts +0 -11
- package/dist/raw.d.ts.map +0 -1
- package/dist/sql/builder.d.ts +0 -11
- package/dist/sql/builder.d.ts.map +0 -1
- package/dist/sql/context.d.ts +0 -5
- package/dist/sql/context.d.ts.map +0 -1
- package/dist/sql/include-builder.d.ts +0 -35
- package/dist/sql/include-builder.d.ts.map +0 -1
- package/dist/sql/join-builder.d.ts +0 -4
- package/dist/sql/join-builder.d.ts.map +0 -1
- package/dist/sql/mutation-builder.d.ts +0 -64
- package/dist/sql/mutation-builder.d.ts.map +0 -1
- package/dist/sql/plan.d.ts +0 -4
- package/dist/sql/plan.d.ts.map +0 -1
- package/dist/sql/predicate-builder.d.ts +0 -11
- package/dist/sql/predicate-builder.d.ts.map +0 -1
- package/dist/sql/projection.d.ts +0 -18
- package/dist/sql/projection.d.ts.map +0 -1
- package/dist/sql/select-builder.d.ts +0 -35
- package/dist/sql/select-builder.d.ts.map +0 -1
- package/dist/types/internal.d.ts +0 -35
- package/dist/types/internal.d.ts.map +0 -1
- package/dist/types/public.d.ts +0 -18
- package/dist/types/public.d.ts.map +0 -1
- package/dist/utils/assertions.d.ts +0 -28
- package/dist/utils/assertions.d.ts.map +0 -1
- package/dist/utils/capabilities.d.ts +0 -4
- package/dist/utils/capabilities.d.ts.map +0 -1
- package/dist/utils/errors.d.ts +0 -30
- package/dist/utils/errors.d.ts.map +0 -1
- package/dist/utils/state.d.ts +0 -30
- package/dist/utils/state.d.ts.map +0 -1
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
createUpdateAst,
|
|
11
11
|
} from '@prisma-next/sql-relational-core/ast';
|
|
12
12
|
import type { SqlQueryPlan } from '@prisma-next/sql-relational-core/plan';
|
|
13
|
-
import type {
|
|
13
|
+
import type { ExecutionContext } from '@prisma-next/sql-relational-core/query-lane-context';
|
|
14
14
|
import type {
|
|
15
15
|
AnyColumnBuilder,
|
|
16
16
|
BinaryBuilder,
|
|
@@ -75,7 +75,7 @@ export class InsertBuilderImpl<
|
|
|
75
75
|
> implements InsertBuilder<TContract, CodecTypes, Row>
|
|
76
76
|
{
|
|
77
77
|
private readonly contract: TContract;
|
|
78
|
-
private readonly context:
|
|
78
|
+
private readonly context: ExecutionContext<TContract>;
|
|
79
79
|
private readonly table: TableRef;
|
|
80
80
|
private readonly values: Record<string, ParamPlaceholder>;
|
|
81
81
|
private returningColumns: AnyColumnBuilder[] = [];
|
|
@@ -150,6 +150,31 @@ export class InsertBuilderImpl<
|
|
|
150
150
|
values[columnName] = createParamRef(index, paramName);
|
|
151
151
|
}
|
|
152
152
|
|
|
153
|
+
const appliedDefaults = this.context.applyMutationDefaults({
|
|
154
|
+
op: 'create',
|
|
155
|
+
table: this.table.name,
|
|
156
|
+
values,
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
for (const defaultValue of appliedDefaults) {
|
|
160
|
+
const columnMeta = contractTable.columns[defaultValue.column];
|
|
161
|
+
if (!columnMeta) {
|
|
162
|
+
errorUnknownColumn(defaultValue.column, this.table.name);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
const index = paramValues.push(defaultValue.value);
|
|
166
|
+
paramCodecs[defaultValue.column] = columnMeta.codecId;
|
|
167
|
+
paramDescriptors.push({
|
|
168
|
+
name: defaultValue.column,
|
|
169
|
+
source: 'dsl',
|
|
170
|
+
refs: { table: this.table.name, column: defaultValue.column },
|
|
171
|
+
codecId: columnMeta.codecId,
|
|
172
|
+
nativeType: columnMeta.nativeType,
|
|
173
|
+
nullable: columnMeta.nullable,
|
|
174
|
+
});
|
|
175
|
+
values[defaultValue.column] = createParamRef(index, defaultValue.column);
|
|
176
|
+
}
|
|
177
|
+
|
|
153
178
|
const returning: ColumnRef[] = this.returningColumns.map((col) => {
|
|
154
179
|
// TypeScript can't narrow ColumnBuilder properly
|
|
155
180
|
const c = col as unknown as { table: string; column: string };
|
|
@@ -204,7 +229,7 @@ export class UpdateBuilderImpl<
|
|
|
204
229
|
> implements UpdateBuilder<TContract, CodecTypes, Row>
|
|
205
230
|
{
|
|
206
231
|
private readonly contract: TContract;
|
|
207
|
-
private readonly context:
|
|
232
|
+
private readonly context: ExecutionContext<TContract>;
|
|
208
233
|
private readonly table: TableRef;
|
|
209
234
|
private readonly set: Record<string, ParamPlaceholder>;
|
|
210
235
|
private wherePredicate?: BinaryBuilder | UnaryBuilder;
|
|
@@ -300,6 +325,31 @@ export class UpdateBuilderImpl<
|
|
|
300
325
|
set[columnName] = createParamRef(index, paramName);
|
|
301
326
|
}
|
|
302
327
|
|
|
328
|
+
const appliedDefaults = this.context.applyMutationDefaults({
|
|
329
|
+
op: 'update',
|
|
330
|
+
table: this.table.name,
|
|
331
|
+
values: set,
|
|
332
|
+
});
|
|
333
|
+
|
|
334
|
+
for (const defaultValue of appliedDefaults) {
|
|
335
|
+
const columnMeta = contractTable.columns[defaultValue.column];
|
|
336
|
+
if (!columnMeta) {
|
|
337
|
+
errorUnknownColumn(defaultValue.column, this.table.name);
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
const index = paramValues.push(defaultValue.value);
|
|
341
|
+
paramCodecs[defaultValue.column] = columnMeta.codecId;
|
|
342
|
+
paramDescriptors.push({
|
|
343
|
+
name: defaultValue.column,
|
|
344
|
+
source: 'dsl',
|
|
345
|
+
refs: { table: this.table.name, column: defaultValue.column },
|
|
346
|
+
codecId: columnMeta.codecId,
|
|
347
|
+
nativeType: columnMeta.nativeType,
|
|
348
|
+
nullable: columnMeta.nullable,
|
|
349
|
+
});
|
|
350
|
+
set[defaultValue.column] = createParamRef(index, defaultValue.column);
|
|
351
|
+
}
|
|
352
|
+
|
|
303
353
|
const whereResult = buildWhereExpr(
|
|
304
354
|
this.contract,
|
|
305
355
|
this.wherePredicate,
|
|
@@ -373,7 +423,7 @@ export class DeleteBuilderImpl<
|
|
|
373
423
|
> implements DeleteBuilder<TContract, CodecTypes, Row>
|
|
374
424
|
{
|
|
375
425
|
private readonly contract: TContract;
|
|
376
|
-
private readonly context:
|
|
426
|
+
private readonly context: ExecutionContext<TContract>;
|
|
377
427
|
private readonly table: TableRef;
|
|
378
428
|
private wherePredicate?: BinaryBuilder | UnaryBuilder;
|
|
379
429
|
private returningColumns: AnyColumnBuilder[] = [];
|
package/src/sql/plan.ts
CHANGED
|
@@ -285,7 +285,7 @@ export function buildMeta(args: MetaBuildArgs): PlanMeta {
|
|
|
285
285
|
compact({
|
|
286
286
|
target: args.contract.target,
|
|
287
287
|
targetFamily: args.contract.targetFamily,
|
|
288
|
-
|
|
288
|
+
storageHash: args.contract.storageHash,
|
|
289
289
|
lane: 'dsl',
|
|
290
290
|
refs: {
|
|
291
291
|
tables: Array.from(refsTables),
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
createTableRef,
|
|
18
18
|
} from '@prisma-next/sql-relational-core/ast';
|
|
19
19
|
import type { SqlQueryPlan } from '@prisma-next/sql-relational-core/plan';
|
|
20
|
-
import type {
|
|
20
|
+
import type { ExecutionContext } from '@prisma-next/sql-relational-core/query-lane-context';
|
|
21
21
|
import type {
|
|
22
22
|
AnyBinaryBuilder,
|
|
23
23
|
AnyOrderBuilder,
|
|
@@ -64,7 +64,7 @@ export class SelectBuilderImpl<
|
|
|
64
64
|
> {
|
|
65
65
|
private readonly contract: TContract;
|
|
66
66
|
private readonly codecTypes: CodecTypes;
|
|
67
|
-
private readonly context:
|
|
67
|
+
private readonly context: ExecutionContext<TContract>;
|
|
68
68
|
private state: BuilderState = {};
|
|
69
69
|
|
|
70
70
|
constructor(options: SqlBuilderOptions<TContract>, state?: BuilderState) {
|