@prisma/client-engine-runtime 7.10.0-dev.9 → 7.10.0-integration-prisma7-project-closeout.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +123 -91
- package/dist/index.d.ts +123 -91
- package/dist/index.js +393 -99
- package/dist/index.mjs +393 -99
- package/dist/interpreter/query-interpreter.d.ts +20 -1
- package/dist/interpreter/query-interpreter.test.d.ts +1 -0
- package/dist/query-plan.d.ts +61 -31
- package/dist/utils.d.ts +15 -0
- package/dist/utils.test.d.ts +1 -0
- package/package.json +11 -11
package/dist/index.d.mts
CHANGED
|
@@ -173,6 +173,21 @@ export declare type Fragment = {
|
|
|
173
173
|
groupSeparator: string;
|
|
174
174
|
};
|
|
175
175
|
|
|
176
|
+
/**
|
|
177
|
+
* Query plan nodes that perform database I/O: individual queries and statements,
|
|
178
|
+
* and subtrees executed within a transaction.
|
|
179
|
+
*/
|
|
180
|
+
export declare type ImpureQueryPlanNode = {
|
|
181
|
+
type: 'query';
|
|
182
|
+
args: QueryPlanDbQuery;
|
|
183
|
+
} | {
|
|
184
|
+
type: 'execute';
|
|
185
|
+
args: QueryPlanDbQuery;
|
|
186
|
+
} | {
|
|
187
|
+
type: 'transaction';
|
|
188
|
+
args: QueryPlanNode;
|
|
189
|
+
};
|
|
190
|
+
|
|
176
191
|
export declare type InMemoryOps = {
|
|
177
192
|
pagination: Pagination | null;
|
|
178
193
|
distinct: string[] | null;
|
|
@@ -288,72 +303,24 @@ export declare type PrismaValuePlaceholder = {
|
|
|
288
303
|
};
|
|
289
304
|
};
|
|
290
305
|
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
export declare
|
|
299
|
-
#private;
|
|
300
|
-
constructor({ onQuery, tracingHelper, serializer, rawSerializer, provider, connectionInfo, }: QueryInterpreterOptions);
|
|
301
|
-
static forSql(options: {
|
|
302
|
-
onQuery?: (event: QueryEvent) => void;
|
|
303
|
-
tracingHelper: TracingHelper;
|
|
304
|
-
provider?: SchemaProvider;
|
|
305
|
-
connectionInfo?: ConnectionInfo;
|
|
306
|
-
}): QueryInterpreter;
|
|
307
|
-
run(queryPlan: DeepReadonly<QueryPlanNode>, options: QueryRuntimeOptions): Promise<unknown>;
|
|
308
|
-
private interpretNode;
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
export declare type QueryInterpreterOptions = {
|
|
312
|
-
onQuery?: (event: QueryEvent) => void;
|
|
313
|
-
tracingHelper: TracingHelper;
|
|
314
|
-
serializer: (results: SqlResultSet) => Value;
|
|
315
|
-
rawSerializer?: (results: SqlResultSet) => Value;
|
|
316
|
-
provider?: SchemaProvider;
|
|
317
|
-
connectionInfo?: ConnectionInfo;
|
|
318
|
-
};
|
|
319
|
-
|
|
320
|
-
export declare type QueryInterpreterSqlCommenter = {
|
|
321
|
-
plugins: SqlCommenterPlugin[];
|
|
322
|
-
queryInfo: SqlCommenterQueryInfo;
|
|
323
|
-
};
|
|
324
|
-
|
|
325
|
-
export declare type QueryInterpreterTransactionManager = {
|
|
326
|
-
enabled: true;
|
|
327
|
-
manager: TransactionManager;
|
|
328
|
-
} | {
|
|
329
|
-
enabled: false;
|
|
330
|
-
};
|
|
331
|
-
|
|
332
|
-
export declare type QueryPlanBinding = {
|
|
333
|
-
name: string;
|
|
334
|
-
expr: QueryPlanNode;
|
|
335
|
-
};
|
|
336
|
-
|
|
337
|
-
export declare type QueryPlanDbQuery = {
|
|
338
|
-
type: 'rawSql';
|
|
339
|
-
sql: string;
|
|
340
|
-
args: PrismaValue[];
|
|
341
|
-
argTypes: ArgType[];
|
|
342
|
-
} | {
|
|
343
|
-
type: 'templateSql';
|
|
344
|
-
fragments: Fragment[];
|
|
345
|
-
placeholderFormat: PlaceholderFormat;
|
|
346
|
-
args: PrismaValue[];
|
|
347
|
-
argTypes: DynamicArgType[];
|
|
348
|
-
chunkable: boolean;
|
|
349
|
-
};
|
|
350
|
-
|
|
351
|
-
export declare type QueryPlanNode = {
|
|
306
|
+
/**
|
|
307
|
+
* Query plan nodes that are free of side effects and can be interpreted synchronously
|
|
308
|
+
* without touching the database. The `Rest` parameter controls what other nodes may
|
|
309
|
+
* appear in child positions: with the default `never` the tree is fully pure, while
|
|
310
|
+
* `PureQueryPlanNode<ImpureQueryPlanNode>` describes a tree of pure nodes that may
|
|
311
|
+
* contain impure nodes anywhere inside.
|
|
312
|
+
*/
|
|
313
|
+
export declare type PureQueryPlanNode<Rest = never> = {
|
|
352
314
|
type: 'value';
|
|
353
315
|
args: PrismaValue;
|
|
316
|
+
/**
|
|
317
|
+
* Present when this node is the result of evaluating an impure node during
|
|
318
|
+
* query plan purification. Never produced by the query compiler.
|
|
319
|
+
*/
|
|
320
|
+
lastInsertId?: string;
|
|
354
321
|
} | {
|
|
355
322
|
type: 'seq';
|
|
356
|
-
args:
|
|
323
|
+
args: (PureQueryPlanNode<Rest> | Rest)[];
|
|
357
324
|
} | {
|
|
358
325
|
type: 'get';
|
|
359
326
|
args: {
|
|
@@ -362,101 +329,166 @@ export declare type QueryPlanNode = {
|
|
|
362
329
|
} | {
|
|
363
330
|
type: 'let';
|
|
364
331
|
args: {
|
|
365
|
-
bindings:
|
|
366
|
-
|
|
332
|
+
bindings: {
|
|
333
|
+
name: string;
|
|
334
|
+
expr: PureQueryPlanNode<Rest> | Rest;
|
|
335
|
+
}[];
|
|
336
|
+
expr: PureQueryPlanNode<Rest> | Rest;
|
|
367
337
|
};
|
|
368
338
|
} | {
|
|
369
339
|
type: 'getFirstNonEmpty';
|
|
370
340
|
args: {
|
|
371
341
|
names: string[];
|
|
372
342
|
};
|
|
373
|
-
} | {
|
|
374
|
-
type: 'query';
|
|
375
|
-
args: QueryPlanDbQuery;
|
|
376
|
-
} | {
|
|
377
|
-
type: 'execute';
|
|
378
|
-
args: QueryPlanDbQuery;
|
|
379
343
|
} | {
|
|
380
344
|
type: 'reverse';
|
|
381
|
-
args:
|
|
345
|
+
args: PureQueryPlanNode<Rest> | Rest;
|
|
382
346
|
} | {
|
|
383
347
|
type: 'sum';
|
|
384
|
-
args:
|
|
348
|
+
args: (PureQueryPlanNode<Rest> | Rest)[];
|
|
385
349
|
} | {
|
|
386
350
|
type: 'concat';
|
|
387
|
-
args:
|
|
351
|
+
args: (PureQueryPlanNode<Rest> | Rest)[];
|
|
388
352
|
} | {
|
|
389
353
|
type: 'unique';
|
|
390
|
-
args:
|
|
354
|
+
args: PureQueryPlanNode<Rest> | Rest;
|
|
391
355
|
} | {
|
|
392
356
|
type: 'required';
|
|
393
|
-
args:
|
|
357
|
+
args: PureQueryPlanNode<Rest> | Rest;
|
|
394
358
|
} | {
|
|
395
359
|
type: 'join';
|
|
396
360
|
args: {
|
|
397
|
-
parent:
|
|
398
|
-
children:
|
|
361
|
+
parent: PureQueryPlanNode<Rest> | Rest;
|
|
362
|
+
children: {
|
|
363
|
+
child: PureQueryPlanNode<Rest> | Rest;
|
|
364
|
+
on: [left: string, right: string][];
|
|
365
|
+
parentField: string;
|
|
366
|
+
isRelationUnique: boolean;
|
|
367
|
+
}[];
|
|
399
368
|
canAssumeStrictEquality: boolean;
|
|
400
369
|
};
|
|
401
370
|
} | {
|
|
402
371
|
type: 'mapField';
|
|
403
372
|
args: {
|
|
404
373
|
field: string;
|
|
405
|
-
records:
|
|
374
|
+
records: PureQueryPlanNode<Rest> | Rest;
|
|
406
375
|
};
|
|
407
|
-
} | {
|
|
408
|
-
type: 'transaction';
|
|
409
|
-
args: QueryPlanNode;
|
|
410
376
|
} | {
|
|
411
377
|
type: 'dataMap';
|
|
412
378
|
args: {
|
|
413
|
-
expr:
|
|
379
|
+
expr: PureQueryPlanNode<Rest> | Rest;
|
|
414
380
|
structure: ResultNode;
|
|
415
381
|
enums: Record<string, Record<string, string>>;
|
|
416
382
|
};
|
|
417
383
|
} | {
|
|
418
384
|
type: 'validate';
|
|
419
385
|
args: {
|
|
420
|
-
expr:
|
|
386
|
+
expr: PureQueryPlanNode<Rest> | Rest;
|
|
421
387
|
rules: DataRule[];
|
|
422
388
|
} & ValidationError;
|
|
423
389
|
} | {
|
|
424
390
|
type: 'if';
|
|
425
391
|
args: {
|
|
426
|
-
value:
|
|
392
|
+
value: PureQueryPlanNode<Rest> | Rest;
|
|
427
393
|
rule: DataRule;
|
|
428
|
-
then:
|
|
429
|
-
else:
|
|
394
|
+
then: PureQueryPlanNode<Rest> | Rest;
|
|
395
|
+
else: PureQueryPlanNode<Rest> | Rest;
|
|
430
396
|
};
|
|
431
397
|
} | {
|
|
432
398
|
type: 'unit';
|
|
433
399
|
} | {
|
|
434
400
|
type: 'diff';
|
|
435
401
|
args: {
|
|
436
|
-
from:
|
|
437
|
-
to:
|
|
402
|
+
from: PureQueryPlanNode<Rest> | Rest;
|
|
403
|
+
to: PureQueryPlanNode<Rest> | Rest;
|
|
438
404
|
fields: string[];
|
|
439
405
|
};
|
|
440
406
|
} | {
|
|
441
407
|
type: 'initializeRecord';
|
|
442
408
|
args: {
|
|
443
|
-
expr:
|
|
409
|
+
expr: PureQueryPlanNode<Rest> | Rest;
|
|
444
410
|
fields: Record<string, FieldInitializer>;
|
|
445
411
|
};
|
|
446
412
|
} | {
|
|
447
413
|
type: 'mapRecord';
|
|
448
414
|
args: {
|
|
449
|
-
expr:
|
|
415
|
+
expr: PureQueryPlanNode<Rest> | Rest;
|
|
450
416
|
fields: Record<string, FieldOperation>;
|
|
451
417
|
};
|
|
452
418
|
} | {
|
|
453
419
|
type: 'process';
|
|
454
420
|
args: {
|
|
455
|
-
expr:
|
|
421
|
+
expr: PureQueryPlanNode<Rest> | Rest;
|
|
456
422
|
operations: InMemoryOps;
|
|
457
423
|
};
|
|
458
424
|
};
|
|
459
425
|
|
|
426
|
+
export declare type QueryEvent = {
|
|
427
|
+
timestamp: Date;
|
|
428
|
+
query: string;
|
|
429
|
+
params: readonly unknown[];
|
|
430
|
+
duration: number;
|
|
431
|
+
};
|
|
432
|
+
|
|
433
|
+
export declare class QueryInterpreter {
|
|
434
|
+
#private;
|
|
435
|
+
constructor({ onQuery, tracingHelper, serializer, rawSerializer, provider, connectionInfo, }: QueryInterpreterOptions);
|
|
436
|
+
static forSql(options: {
|
|
437
|
+
onQuery?: (event: QueryEvent) => void;
|
|
438
|
+
tracingHelper: TracingHelper;
|
|
439
|
+
provider?: SchemaProvider;
|
|
440
|
+
connectionInfo?: ConnectionInfo;
|
|
441
|
+
}): QueryInterpreter;
|
|
442
|
+
run(queryPlan: DeepReadonly<QueryPlanNode>, options: QueryRuntimeOptions): Promise<unknown>;
|
|
443
|
+
private interpretNode;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
export declare type QueryInterpreterOptions = {
|
|
447
|
+
onQuery?: (event: QueryEvent) => void;
|
|
448
|
+
tracingHelper: TracingHelper;
|
|
449
|
+
serializer: (results: SqlResultSet) => Value;
|
|
450
|
+
rawSerializer?: (results: SqlResultSet) => Value;
|
|
451
|
+
provider?: SchemaProvider;
|
|
452
|
+
connectionInfo?: ConnectionInfo;
|
|
453
|
+
};
|
|
454
|
+
|
|
455
|
+
export declare type QueryInterpreterSqlCommenter = {
|
|
456
|
+
plugins: SqlCommenterPlugin[];
|
|
457
|
+
queryInfo: SqlCommenterQueryInfo;
|
|
458
|
+
};
|
|
459
|
+
|
|
460
|
+
export declare type QueryInterpreterTransactionManager = {
|
|
461
|
+
enabled: true;
|
|
462
|
+
manager: TransactionManager;
|
|
463
|
+
} | {
|
|
464
|
+
enabled: false;
|
|
465
|
+
};
|
|
466
|
+
|
|
467
|
+
export declare type QueryPlanBinding = {
|
|
468
|
+
name: string;
|
|
469
|
+
expr: QueryPlanNode;
|
|
470
|
+
};
|
|
471
|
+
|
|
472
|
+
export declare type QueryPlanDbQuery = {
|
|
473
|
+
type: 'rawSql';
|
|
474
|
+
sql: string;
|
|
475
|
+
args: PrismaValue[];
|
|
476
|
+
argTypes: ArgType[];
|
|
477
|
+
} | {
|
|
478
|
+
type: 'templateSql';
|
|
479
|
+
fragments: Fragment[];
|
|
480
|
+
placeholderFormat: PlaceholderFormat;
|
|
481
|
+
args: PrismaValue[];
|
|
482
|
+
argTypes: DynamicArgType[];
|
|
483
|
+
chunkable: boolean;
|
|
484
|
+
};
|
|
485
|
+
|
|
486
|
+
/**
|
|
487
|
+
* A query plan as emitted by the query compiler: a tree of pure nodes that may
|
|
488
|
+
* contain impure nodes anywhere inside.
|
|
489
|
+
*/
|
|
490
|
+
export declare type QueryPlanNode = ImpureQueryPlanNode | PureQueryPlanNode<ImpureQueryPlanNode>;
|
|
491
|
+
|
|
460
492
|
declare type QueryRuntimeOptions = {
|
|
461
493
|
queryable: SqlQueryable;
|
|
462
494
|
transactionManager: QueryInterpreterTransactionManager;
|
package/dist/index.d.ts
CHANGED
|
@@ -173,6 +173,21 @@ export declare type Fragment = {
|
|
|
173
173
|
groupSeparator: string;
|
|
174
174
|
};
|
|
175
175
|
|
|
176
|
+
/**
|
|
177
|
+
* Query plan nodes that perform database I/O: individual queries and statements,
|
|
178
|
+
* and subtrees executed within a transaction.
|
|
179
|
+
*/
|
|
180
|
+
export declare type ImpureQueryPlanNode = {
|
|
181
|
+
type: 'query';
|
|
182
|
+
args: QueryPlanDbQuery;
|
|
183
|
+
} | {
|
|
184
|
+
type: 'execute';
|
|
185
|
+
args: QueryPlanDbQuery;
|
|
186
|
+
} | {
|
|
187
|
+
type: 'transaction';
|
|
188
|
+
args: QueryPlanNode;
|
|
189
|
+
};
|
|
190
|
+
|
|
176
191
|
export declare type InMemoryOps = {
|
|
177
192
|
pagination: Pagination | null;
|
|
178
193
|
distinct: string[] | null;
|
|
@@ -288,72 +303,24 @@ export declare type PrismaValuePlaceholder = {
|
|
|
288
303
|
};
|
|
289
304
|
};
|
|
290
305
|
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
export declare
|
|
299
|
-
#private;
|
|
300
|
-
constructor({ onQuery, tracingHelper, serializer, rawSerializer, provider, connectionInfo, }: QueryInterpreterOptions);
|
|
301
|
-
static forSql(options: {
|
|
302
|
-
onQuery?: (event: QueryEvent) => void;
|
|
303
|
-
tracingHelper: TracingHelper;
|
|
304
|
-
provider?: SchemaProvider;
|
|
305
|
-
connectionInfo?: ConnectionInfo;
|
|
306
|
-
}): QueryInterpreter;
|
|
307
|
-
run(queryPlan: DeepReadonly<QueryPlanNode>, options: QueryRuntimeOptions): Promise<unknown>;
|
|
308
|
-
private interpretNode;
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
export declare type QueryInterpreterOptions = {
|
|
312
|
-
onQuery?: (event: QueryEvent) => void;
|
|
313
|
-
tracingHelper: TracingHelper;
|
|
314
|
-
serializer: (results: SqlResultSet) => Value;
|
|
315
|
-
rawSerializer?: (results: SqlResultSet) => Value;
|
|
316
|
-
provider?: SchemaProvider;
|
|
317
|
-
connectionInfo?: ConnectionInfo;
|
|
318
|
-
};
|
|
319
|
-
|
|
320
|
-
export declare type QueryInterpreterSqlCommenter = {
|
|
321
|
-
plugins: SqlCommenterPlugin[];
|
|
322
|
-
queryInfo: SqlCommenterQueryInfo;
|
|
323
|
-
};
|
|
324
|
-
|
|
325
|
-
export declare type QueryInterpreterTransactionManager = {
|
|
326
|
-
enabled: true;
|
|
327
|
-
manager: TransactionManager;
|
|
328
|
-
} | {
|
|
329
|
-
enabled: false;
|
|
330
|
-
};
|
|
331
|
-
|
|
332
|
-
export declare type QueryPlanBinding = {
|
|
333
|
-
name: string;
|
|
334
|
-
expr: QueryPlanNode;
|
|
335
|
-
};
|
|
336
|
-
|
|
337
|
-
export declare type QueryPlanDbQuery = {
|
|
338
|
-
type: 'rawSql';
|
|
339
|
-
sql: string;
|
|
340
|
-
args: PrismaValue[];
|
|
341
|
-
argTypes: ArgType[];
|
|
342
|
-
} | {
|
|
343
|
-
type: 'templateSql';
|
|
344
|
-
fragments: Fragment[];
|
|
345
|
-
placeholderFormat: PlaceholderFormat;
|
|
346
|
-
args: PrismaValue[];
|
|
347
|
-
argTypes: DynamicArgType[];
|
|
348
|
-
chunkable: boolean;
|
|
349
|
-
};
|
|
350
|
-
|
|
351
|
-
export declare type QueryPlanNode = {
|
|
306
|
+
/**
|
|
307
|
+
* Query plan nodes that are free of side effects and can be interpreted synchronously
|
|
308
|
+
* without touching the database. The `Rest` parameter controls what other nodes may
|
|
309
|
+
* appear in child positions: with the default `never` the tree is fully pure, while
|
|
310
|
+
* `PureQueryPlanNode<ImpureQueryPlanNode>` describes a tree of pure nodes that may
|
|
311
|
+
* contain impure nodes anywhere inside.
|
|
312
|
+
*/
|
|
313
|
+
export declare type PureQueryPlanNode<Rest = never> = {
|
|
352
314
|
type: 'value';
|
|
353
315
|
args: PrismaValue;
|
|
316
|
+
/**
|
|
317
|
+
* Present when this node is the result of evaluating an impure node during
|
|
318
|
+
* query plan purification. Never produced by the query compiler.
|
|
319
|
+
*/
|
|
320
|
+
lastInsertId?: string;
|
|
354
321
|
} | {
|
|
355
322
|
type: 'seq';
|
|
356
|
-
args:
|
|
323
|
+
args: (PureQueryPlanNode<Rest> | Rest)[];
|
|
357
324
|
} | {
|
|
358
325
|
type: 'get';
|
|
359
326
|
args: {
|
|
@@ -362,101 +329,166 @@ export declare type QueryPlanNode = {
|
|
|
362
329
|
} | {
|
|
363
330
|
type: 'let';
|
|
364
331
|
args: {
|
|
365
|
-
bindings:
|
|
366
|
-
|
|
332
|
+
bindings: {
|
|
333
|
+
name: string;
|
|
334
|
+
expr: PureQueryPlanNode<Rest> | Rest;
|
|
335
|
+
}[];
|
|
336
|
+
expr: PureQueryPlanNode<Rest> | Rest;
|
|
367
337
|
};
|
|
368
338
|
} | {
|
|
369
339
|
type: 'getFirstNonEmpty';
|
|
370
340
|
args: {
|
|
371
341
|
names: string[];
|
|
372
342
|
};
|
|
373
|
-
} | {
|
|
374
|
-
type: 'query';
|
|
375
|
-
args: QueryPlanDbQuery;
|
|
376
|
-
} | {
|
|
377
|
-
type: 'execute';
|
|
378
|
-
args: QueryPlanDbQuery;
|
|
379
343
|
} | {
|
|
380
344
|
type: 'reverse';
|
|
381
|
-
args:
|
|
345
|
+
args: PureQueryPlanNode<Rest> | Rest;
|
|
382
346
|
} | {
|
|
383
347
|
type: 'sum';
|
|
384
|
-
args:
|
|
348
|
+
args: (PureQueryPlanNode<Rest> | Rest)[];
|
|
385
349
|
} | {
|
|
386
350
|
type: 'concat';
|
|
387
|
-
args:
|
|
351
|
+
args: (PureQueryPlanNode<Rest> | Rest)[];
|
|
388
352
|
} | {
|
|
389
353
|
type: 'unique';
|
|
390
|
-
args:
|
|
354
|
+
args: PureQueryPlanNode<Rest> | Rest;
|
|
391
355
|
} | {
|
|
392
356
|
type: 'required';
|
|
393
|
-
args:
|
|
357
|
+
args: PureQueryPlanNode<Rest> | Rest;
|
|
394
358
|
} | {
|
|
395
359
|
type: 'join';
|
|
396
360
|
args: {
|
|
397
|
-
parent:
|
|
398
|
-
children:
|
|
361
|
+
parent: PureQueryPlanNode<Rest> | Rest;
|
|
362
|
+
children: {
|
|
363
|
+
child: PureQueryPlanNode<Rest> | Rest;
|
|
364
|
+
on: [left: string, right: string][];
|
|
365
|
+
parentField: string;
|
|
366
|
+
isRelationUnique: boolean;
|
|
367
|
+
}[];
|
|
399
368
|
canAssumeStrictEquality: boolean;
|
|
400
369
|
};
|
|
401
370
|
} | {
|
|
402
371
|
type: 'mapField';
|
|
403
372
|
args: {
|
|
404
373
|
field: string;
|
|
405
|
-
records:
|
|
374
|
+
records: PureQueryPlanNode<Rest> | Rest;
|
|
406
375
|
};
|
|
407
|
-
} | {
|
|
408
|
-
type: 'transaction';
|
|
409
|
-
args: QueryPlanNode;
|
|
410
376
|
} | {
|
|
411
377
|
type: 'dataMap';
|
|
412
378
|
args: {
|
|
413
|
-
expr:
|
|
379
|
+
expr: PureQueryPlanNode<Rest> | Rest;
|
|
414
380
|
structure: ResultNode;
|
|
415
381
|
enums: Record<string, Record<string, string>>;
|
|
416
382
|
};
|
|
417
383
|
} | {
|
|
418
384
|
type: 'validate';
|
|
419
385
|
args: {
|
|
420
|
-
expr:
|
|
386
|
+
expr: PureQueryPlanNode<Rest> | Rest;
|
|
421
387
|
rules: DataRule[];
|
|
422
388
|
} & ValidationError;
|
|
423
389
|
} | {
|
|
424
390
|
type: 'if';
|
|
425
391
|
args: {
|
|
426
|
-
value:
|
|
392
|
+
value: PureQueryPlanNode<Rest> | Rest;
|
|
427
393
|
rule: DataRule;
|
|
428
|
-
then:
|
|
429
|
-
else:
|
|
394
|
+
then: PureQueryPlanNode<Rest> | Rest;
|
|
395
|
+
else: PureQueryPlanNode<Rest> | Rest;
|
|
430
396
|
};
|
|
431
397
|
} | {
|
|
432
398
|
type: 'unit';
|
|
433
399
|
} | {
|
|
434
400
|
type: 'diff';
|
|
435
401
|
args: {
|
|
436
|
-
from:
|
|
437
|
-
to:
|
|
402
|
+
from: PureQueryPlanNode<Rest> | Rest;
|
|
403
|
+
to: PureQueryPlanNode<Rest> | Rest;
|
|
438
404
|
fields: string[];
|
|
439
405
|
};
|
|
440
406
|
} | {
|
|
441
407
|
type: 'initializeRecord';
|
|
442
408
|
args: {
|
|
443
|
-
expr:
|
|
409
|
+
expr: PureQueryPlanNode<Rest> | Rest;
|
|
444
410
|
fields: Record<string, FieldInitializer>;
|
|
445
411
|
};
|
|
446
412
|
} | {
|
|
447
413
|
type: 'mapRecord';
|
|
448
414
|
args: {
|
|
449
|
-
expr:
|
|
415
|
+
expr: PureQueryPlanNode<Rest> | Rest;
|
|
450
416
|
fields: Record<string, FieldOperation>;
|
|
451
417
|
};
|
|
452
418
|
} | {
|
|
453
419
|
type: 'process';
|
|
454
420
|
args: {
|
|
455
|
-
expr:
|
|
421
|
+
expr: PureQueryPlanNode<Rest> | Rest;
|
|
456
422
|
operations: InMemoryOps;
|
|
457
423
|
};
|
|
458
424
|
};
|
|
459
425
|
|
|
426
|
+
export declare type QueryEvent = {
|
|
427
|
+
timestamp: Date;
|
|
428
|
+
query: string;
|
|
429
|
+
params: readonly unknown[];
|
|
430
|
+
duration: number;
|
|
431
|
+
};
|
|
432
|
+
|
|
433
|
+
export declare class QueryInterpreter {
|
|
434
|
+
#private;
|
|
435
|
+
constructor({ onQuery, tracingHelper, serializer, rawSerializer, provider, connectionInfo, }: QueryInterpreterOptions);
|
|
436
|
+
static forSql(options: {
|
|
437
|
+
onQuery?: (event: QueryEvent) => void;
|
|
438
|
+
tracingHelper: TracingHelper;
|
|
439
|
+
provider?: SchemaProvider;
|
|
440
|
+
connectionInfo?: ConnectionInfo;
|
|
441
|
+
}): QueryInterpreter;
|
|
442
|
+
run(queryPlan: DeepReadonly<QueryPlanNode>, options: QueryRuntimeOptions): Promise<unknown>;
|
|
443
|
+
private interpretNode;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
export declare type QueryInterpreterOptions = {
|
|
447
|
+
onQuery?: (event: QueryEvent) => void;
|
|
448
|
+
tracingHelper: TracingHelper;
|
|
449
|
+
serializer: (results: SqlResultSet) => Value;
|
|
450
|
+
rawSerializer?: (results: SqlResultSet) => Value;
|
|
451
|
+
provider?: SchemaProvider;
|
|
452
|
+
connectionInfo?: ConnectionInfo;
|
|
453
|
+
};
|
|
454
|
+
|
|
455
|
+
export declare type QueryInterpreterSqlCommenter = {
|
|
456
|
+
plugins: SqlCommenterPlugin[];
|
|
457
|
+
queryInfo: SqlCommenterQueryInfo;
|
|
458
|
+
};
|
|
459
|
+
|
|
460
|
+
export declare type QueryInterpreterTransactionManager = {
|
|
461
|
+
enabled: true;
|
|
462
|
+
manager: TransactionManager;
|
|
463
|
+
} | {
|
|
464
|
+
enabled: false;
|
|
465
|
+
};
|
|
466
|
+
|
|
467
|
+
export declare type QueryPlanBinding = {
|
|
468
|
+
name: string;
|
|
469
|
+
expr: QueryPlanNode;
|
|
470
|
+
};
|
|
471
|
+
|
|
472
|
+
export declare type QueryPlanDbQuery = {
|
|
473
|
+
type: 'rawSql';
|
|
474
|
+
sql: string;
|
|
475
|
+
args: PrismaValue[];
|
|
476
|
+
argTypes: ArgType[];
|
|
477
|
+
} | {
|
|
478
|
+
type: 'templateSql';
|
|
479
|
+
fragments: Fragment[];
|
|
480
|
+
placeholderFormat: PlaceholderFormat;
|
|
481
|
+
args: PrismaValue[];
|
|
482
|
+
argTypes: DynamicArgType[];
|
|
483
|
+
chunkable: boolean;
|
|
484
|
+
};
|
|
485
|
+
|
|
486
|
+
/**
|
|
487
|
+
* A query plan as emitted by the query compiler: a tree of pure nodes that may
|
|
488
|
+
* contain impure nodes anywhere inside.
|
|
489
|
+
*/
|
|
490
|
+
export declare type QueryPlanNode = ImpureQueryPlanNode | PureQueryPlanNode<ImpureQueryPlanNode>;
|
|
491
|
+
|
|
460
492
|
declare type QueryRuntimeOptions = {
|
|
461
493
|
queryable: SqlQueryable;
|
|
462
494
|
transactionManager: QueryInterpreterTransactionManager;
|