@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.
Files changed (57) hide show
  1. package/README.md +18 -1
  2. package/dist/builder-DLGrrQ5F.mjs +1254 -0
  3. package/dist/builder-DLGrrQ5F.mjs.map +1 -0
  4. package/dist/builder-DizPddCD.d.mts +121 -0
  5. package/dist/builder-DizPddCD.d.mts.map +1 -0
  6. package/dist/exports/sql.d.mts +3 -0
  7. package/dist/exports/sql.mjs +3 -0
  8. package/dist/index.d.mts +3 -0
  9. package/dist/index.mjs +3 -0
  10. package/package.json +23 -19
  11. package/src/raw.ts +9 -2
  12. package/src/sql/context.ts +3 -3
  13. package/src/sql/mutation-builder.ts +54 -4
  14. package/src/sql/plan.ts +1 -1
  15. package/src/sql/select-builder.ts +2 -2
  16. package/dist/chunk-GNBTSXFL.js +0 -1580
  17. package/dist/chunk-GNBTSXFL.js.map +0 -1
  18. package/dist/exports/sql.d.ts +0 -5
  19. package/dist/exports/sql.d.ts.map +0 -1
  20. package/dist/exports/sql.js +0 -11
  21. package/dist/exports/sql.js.map +0 -1
  22. package/dist/index.d.ts +0 -5
  23. package/dist/index.d.ts.map +0 -1
  24. package/dist/index.js +0 -11
  25. package/dist/index.js.map +0 -1
  26. package/dist/raw.d.ts +0 -11
  27. package/dist/raw.d.ts.map +0 -1
  28. package/dist/sql/builder.d.ts +0 -11
  29. package/dist/sql/builder.d.ts.map +0 -1
  30. package/dist/sql/context.d.ts +0 -5
  31. package/dist/sql/context.d.ts.map +0 -1
  32. package/dist/sql/include-builder.d.ts +0 -35
  33. package/dist/sql/include-builder.d.ts.map +0 -1
  34. package/dist/sql/join-builder.d.ts +0 -4
  35. package/dist/sql/join-builder.d.ts.map +0 -1
  36. package/dist/sql/mutation-builder.d.ts +0 -64
  37. package/dist/sql/mutation-builder.d.ts.map +0 -1
  38. package/dist/sql/plan.d.ts +0 -4
  39. package/dist/sql/plan.d.ts.map +0 -1
  40. package/dist/sql/predicate-builder.d.ts +0 -11
  41. package/dist/sql/predicate-builder.d.ts.map +0 -1
  42. package/dist/sql/projection.d.ts +0 -18
  43. package/dist/sql/projection.d.ts.map +0 -1
  44. package/dist/sql/select-builder.d.ts +0 -35
  45. package/dist/sql/select-builder.d.ts.map +0 -1
  46. package/dist/types/internal.d.ts +0 -35
  47. package/dist/types/internal.d.ts.map +0 -1
  48. package/dist/types/public.d.ts +0 -18
  49. package/dist/types/public.d.ts.map +0 -1
  50. package/dist/utils/assertions.d.ts +0 -28
  51. package/dist/utils/assertions.d.ts.map +0 -1
  52. package/dist/utils/capabilities.d.ts +0 -4
  53. package/dist/utils/capabilities.d.ts.map +0 -1
  54. package/dist/utils/errors.d.ts +0 -30
  55. package/dist/utils/errors.d.ts.map +0 -1
  56. package/dist/utils/state.d.ts +0 -30
  57. 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 { QueryLaneContext } from '@prisma-next/sql-relational-core/query-lane-context';
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: QueryLaneContext<TContract>;
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: QueryLaneContext<TContract>;
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: QueryLaneContext<TContract>;
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
- coreHash: args.contract.coreHash,
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 { QueryLaneContext } from '@prisma-next/sql-relational-core/query-lane-context';
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: QueryLaneContext<TContract>;
67
+ private readonly context: ExecutionContext<TContract>;
68
68
  private state: BuilderState = {};
69
69
 
70
70
  constructor(options: SqlBuilderOptions<TContract>, state?: BuilderState) {