pqb 0.32.0 → 0.33.1
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.ts +368 -380
- package/dist/index.js +168 -262
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +170 -263
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as orchid_core from 'orchid-core';
|
|
2
|
-
import { QueryResultRow, AdapterConfigBase, AdapterBase, QueryInput, SingleSqlItem, Sql, RecordUnknown, RecordKeyTrue, EmptyObject, QueryBaseCommon, QueryColumns, QueryMetaBase, QueryReturnType, QueryThen, Expression,
|
|
2
|
+
import { QueryResultRow, AdapterConfigBase, AdapterBase, QueryInput, SingleSqlItem, Sql, RecordUnknown, RecordKeyTrue, EmptyObject, QueryBaseCommon, QueryColumns, QueryMetaBase, QueryReturnType, QueryThen, Expression, MaybeArray, SelectableBase, TemplateLiteralArgs, ColumnsShapeBase, ColumnsParsers, RecordString, PickQueryTable, QueryDataTransform, ExpressionChain, getValueKey, QueryColumn, PickQueryShape, PickQueryTableMetaResult, EmptyTuple, PickQueryMeta, PickQueryMetaResultReturnType, QueryColumnToNullable, PickQueryMetaShape, PickQueryTableMetaResultShape, PickQueryMetaResultWindows, PickOutputTypeAndOperators, PickQueryResult, ExpressionData, ValExpression, PickOutputType, SQLQueryArgs, ColumnSchemaConfig, DateColumnData, Code, TimeInterval, ColumnTypeSchemaArg, ColumnDataBase, ArrayMethodsData, RawSQLBase, RawSQLValues, ExpressionTypeMethod, DynamicSQLArg, StaticSQLArgs, ForeignKeyTable, ColumnNameOfTable, BaseNumberData, PickColumnBaseData, ColumnWithDefault, StringTypeData, PrimaryKeyColumn, ParseColumn, EncodeColumn, QueryColumnsInit, DefaultSelectColumns, CoreQueryScopes, DbBase, QueryCatch, TransactionState, ColumnTypeBase, PickQueryUniqueProperties, PickQueryMetaResult, IsQuery, PickQueryTableMetaResultInputType, SingleSql, MergeObjects, PickQueryResultUniqueColumns, QueryInternalBase, PickQueryReturnType, PickType, ColumnShapeOutput, OperatorsNullable, PickQueryMetaReturnType, UniqueColumn, TimestampHelpers, Codes, ColumnDataCheckBase, PickQueryTableMetaShape } from 'orchid-core';
|
|
3
3
|
import { PoolConfig, Pool, PoolClient } from 'pg';
|
|
4
4
|
import { inspect } from 'node:util';
|
|
5
5
|
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
@@ -119,50 +119,11 @@ interface WithOptions {
|
|
|
119
119
|
materialized?: true;
|
|
120
120
|
notMaterialized?: true;
|
|
121
121
|
}
|
|
122
|
-
|
|
123
|
-
__json: [
|
|
124
|
-
kind: 'set',
|
|
125
|
-
as: As,
|
|
126
|
-
type: Type,
|
|
127
|
-
column: string | JsonItem,
|
|
128
|
-
path: Array<string | number>,
|
|
129
|
-
value: unknown,
|
|
130
|
-
options?: {
|
|
131
|
-
createIfMissing?: boolean;
|
|
132
|
-
}
|
|
133
|
-
] | [
|
|
134
|
-
kind: 'insert',
|
|
135
|
-
as: As,
|
|
136
|
-
type: Type,
|
|
137
|
-
column: string | JsonItem,
|
|
138
|
-
path: Array<string | number>,
|
|
139
|
-
value: unknown,
|
|
140
|
-
options?: {
|
|
141
|
-
insertAfter?: boolean;
|
|
142
|
-
}
|
|
143
|
-
] | [
|
|
144
|
-
kind: 'remove',
|
|
145
|
-
as: As,
|
|
146
|
-
type: Type,
|
|
147
|
-
column: string | JsonItem,
|
|
148
|
-
path: Array<string | number>
|
|
149
|
-
] | [
|
|
150
|
-
kind: 'pathQuery',
|
|
151
|
-
as: As,
|
|
152
|
-
type: Type,
|
|
153
|
-
column: string | JsonItem,
|
|
154
|
-
path: string,
|
|
155
|
-
options?: {
|
|
156
|
-
vars?: string;
|
|
157
|
-
silent?: boolean;
|
|
158
|
-
}
|
|
159
|
-
];
|
|
160
|
-
}
|
|
161
|
-
type SelectItem = string | SelectAs | JsonItem | Expression;
|
|
122
|
+
type SelectItem = string | SelectAs | Expression;
|
|
162
123
|
interface SelectAs {
|
|
163
|
-
selectAs: SelectAsValue
|
|
124
|
+
selectAs: SelectAsValue;
|
|
164
125
|
}
|
|
165
|
-
interface SelectAsValue
|
|
126
|
+
interface SelectAsValue {
|
|
166
127
|
[K: string]: string | Query | Expression;
|
|
167
128
|
}
|
|
168
129
|
type OrderTsQueryConfig = true | OrderTsQueryConfigObject;
|
|
@@ -307,76 +268,6 @@ type OnConflictMerge = string | string[] | {
|
|
|
307
268
|
except: string | string[];
|
|
308
269
|
};
|
|
309
270
|
|
|
310
|
-
interface Operator<Value, Column extends PickOutputTypeAndOperators = PickOutputTypeAndOperators> {
|
|
311
|
-
<T extends PickQueryResult>(this: T, arg: Value): Omit<SetQueryReturnsColumnOrThrow<T, Column>, keyof T['result']['value']['operators']> & Column['operators'];
|
|
312
|
-
_opType: Value;
|
|
313
|
-
_op: OperatorToSQL<any, ToSQLCtx>;
|
|
314
|
-
}
|
|
315
|
-
interface BaseOperators {
|
|
316
|
-
[K: string]: Operator<any>;
|
|
317
|
-
}
|
|
318
|
-
declare function setQueryOperators(query: PickQueryBaseQuery, operators: BaseOperators): PickQueryBaseQuery;
|
|
319
|
-
type Base<Value> = {
|
|
320
|
-
equals: Operator<Value | Query | Expression, BooleanQueryColumn>;
|
|
321
|
-
not: Operator<Value | Query | Expression, BooleanQueryColumn>;
|
|
322
|
-
in: Operator<Value[] | Query | Expression, BooleanQueryColumn>;
|
|
323
|
-
notIn: Operator<Value[] | Query | Expression, BooleanQueryColumn>;
|
|
324
|
-
};
|
|
325
|
-
type OperatorsBoolean = Base<boolean> & {
|
|
326
|
-
and: Operator<{
|
|
327
|
-
result: {
|
|
328
|
-
value: BooleanQueryColumn;
|
|
329
|
-
};
|
|
330
|
-
} & OperatorsBoolean, BooleanQueryColumn>;
|
|
331
|
-
or: Operator<{
|
|
332
|
-
result: {
|
|
333
|
-
value: BooleanQueryColumn;
|
|
334
|
-
};
|
|
335
|
-
} & OperatorsBoolean, BooleanQueryColumn>;
|
|
336
|
-
};
|
|
337
|
-
type Ord<Value> = Base<Value> & {
|
|
338
|
-
lt: Operator<Value | Query | Expression, BooleanQueryColumn>;
|
|
339
|
-
lte: Operator<Value | Query | Expression, BooleanQueryColumn>;
|
|
340
|
-
gt: Operator<Value | Query | Expression, BooleanQueryColumn>;
|
|
341
|
-
gte: Operator<Value | Query | Expression, BooleanQueryColumn>;
|
|
342
|
-
between: Operator<[
|
|
343
|
-
Value | Query | Expression,
|
|
344
|
-
Value | Query | Expression
|
|
345
|
-
], BooleanQueryColumn>;
|
|
346
|
-
};
|
|
347
|
-
type OperatorsNumber = Ord<number>;
|
|
348
|
-
type OperatorsText = Base<string> & {
|
|
349
|
-
contains: Operator<string | Query | Expression, BooleanQueryColumn>;
|
|
350
|
-
containsSensitive: Operator<string | Query | Expression, BooleanQueryColumn>;
|
|
351
|
-
startsWith: Operator<string | Query | Expression, BooleanQueryColumn>;
|
|
352
|
-
startsWithSensitive: Operator<string | Query | Expression, BooleanQueryColumn>;
|
|
353
|
-
endsWith: Operator<string | Query | Expression, BooleanQueryColumn>;
|
|
354
|
-
endsWithSensitive: Operator<string | Query | Expression, BooleanQueryColumn>;
|
|
355
|
-
};
|
|
356
|
-
type OperatorsJson = Base<unknown> & {
|
|
357
|
-
jsonPath: Operator<[
|
|
358
|
-
path: string,
|
|
359
|
-
op: string,
|
|
360
|
-
value: unknown | Query | Expression
|
|
361
|
-
], BooleanQueryColumn>;
|
|
362
|
-
jsonSupersetOf: Operator<unknown | Query | Expression, BooleanQueryColumn>;
|
|
363
|
-
jsonSubsetOf: Operator<unknown | Query | Expression, BooleanQueryColumn>;
|
|
364
|
-
};
|
|
365
|
-
type OperatorsAny = Base<any>;
|
|
366
|
-
type OperatorsDate = Ord<Date | string>;
|
|
367
|
-
type OperatorsArray = Base<any>;
|
|
368
|
-
type OperatorsTime = Ord<string>;
|
|
369
|
-
declare const Operators: {
|
|
370
|
-
any: OperatorsAny;
|
|
371
|
-
boolean: OperatorsBoolean;
|
|
372
|
-
number: OperatorsNumber;
|
|
373
|
-
date: OperatorsDate;
|
|
374
|
-
time: OperatorsTime;
|
|
375
|
-
text: OperatorsText;
|
|
376
|
-
json: OperatorsJson;
|
|
377
|
-
array: OperatorsArray;
|
|
378
|
-
};
|
|
379
|
-
|
|
380
271
|
interface RecordOfColumnsShapeBase {
|
|
381
272
|
[K: string]: ColumnsShapeBase;
|
|
382
273
|
}
|
|
@@ -446,15 +337,15 @@ interface CommonQueryData {
|
|
|
446
337
|
logger: QueryLogger;
|
|
447
338
|
autoPreparedStatements?: boolean;
|
|
448
339
|
[toSQLCacheKey]?: Sql;
|
|
449
|
-
transform?:
|
|
340
|
+
transform?: QueryDataTransform[];
|
|
450
341
|
language?: string;
|
|
451
|
-
|
|
342
|
+
subQuery?: number;
|
|
452
343
|
relChain?: (Query | RelationQuery)[];
|
|
453
344
|
/**
|
|
454
345
|
* Stores current operator functions available for the query.
|
|
455
346
|
* Is needed to remove these operators from query object when changing the query type, see {@link setQueryOperators}.
|
|
456
347
|
*/
|
|
457
|
-
operators?:
|
|
348
|
+
operators?: RecordUnknown;
|
|
458
349
|
scopes?: {
|
|
459
350
|
[K: string]: QueryScopeData;
|
|
460
351
|
};
|
|
@@ -732,10 +623,11 @@ type JoinOptionalMain<T extends PickQueryMetaResultReturnType, Selectable extend
|
|
|
732
623
|
column: QueryColumnToNullable<T['meta']['selectable'][K]['column']>;
|
|
733
624
|
};
|
|
734
625
|
} & Selectable : T['meta'][K];
|
|
735
|
-
} : K extends 'result' ?
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
626
|
+
} : K extends 'result' ? {
|
|
627
|
+
[K in keyof T['result']]: QueryColumnToNullable<T['result'][K]>;
|
|
628
|
+
} : K extends 'then' ? QueryThen<GetQueryResult<T, {
|
|
629
|
+
[K in keyof T['result']]: QueryColumnToNullable<T['result'][K]>;
|
|
630
|
+
}>> : T[K];
|
|
739
631
|
};
|
|
740
632
|
/**
|
|
741
633
|
* Map the `with` table first argument of `join` or `joinLateral` to a query type.
|
|
@@ -1437,9 +1329,9 @@ declare class OnMethods {
|
|
|
1437
1329
|
|
|
1438
1330
|
interface AggregateOptions<T extends PickQueryMetaResultRelationsWindows> {
|
|
1439
1331
|
distinct?: boolean;
|
|
1440
|
-
order?: OrderArg<T> |
|
|
1332
|
+
order?: OrderArg<T> | OrderArgs<T>;
|
|
1441
1333
|
filter?: WhereArg<T>;
|
|
1442
|
-
filterOr?:
|
|
1334
|
+
filterOr?: WhereArgs<T>;
|
|
1443
1335
|
withinGroup?: boolean;
|
|
1444
1336
|
over?: Over<T>;
|
|
1445
1337
|
}
|
|
@@ -1472,11 +1364,217 @@ declare class FnExpression<Q extends Query = Query, T extends QueryColumn = Quer
|
|
|
1472
1364
|
constructor(query: Q, fn: string, args: FnExpressionArgs<Q>, options: AggregateOptions<Q>, value: T);
|
|
1473
1365
|
makeSQL(ctx: ToSQLCtx, quotedAs?: string): string;
|
|
1474
1366
|
}
|
|
1475
|
-
type ColumnExpression<C extends QueryColumn, Ops extends BaseOperators = C['operators']> = Expression<C> & {
|
|
1476
|
-
[K in keyof Ops]: (arg: Ops[K]['_opType']) => ColumnExpression<QueryColumnBooleanOrNull>;
|
|
1477
|
-
};
|
|
1478
1367
|
declare function makeFnExpression<T extends PickQueryMetaResultRelationsWindows, C extends QueryColumn>(self: T, type: C, fn: string, args: FnExpressionArgs<Query>, options?: AggregateOptions<T>): SetQueryReturnsColumnOrThrow<T, C> & C['operators'];
|
|
1479
1368
|
|
|
1369
|
+
interface Operator<Value, Column extends PickOutputTypeAndOperators = PickOutputTypeAndOperators> {
|
|
1370
|
+
<T extends PickQueryResult>(this: T, arg: Value): Omit<SetQueryReturnsColumnOrThrow<T, Column>, keyof T['result']['value']['operators']> & Column['operators'];
|
|
1371
|
+
_opType: Value;
|
|
1372
|
+
}
|
|
1373
|
+
declare function setQueryOperators(query: PickQueryBaseQuery, operators: RecordUnknown): PickQueryBaseQuery;
|
|
1374
|
+
interface Base<Value> {
|
|
1375
|
+
equals: Operator<Value | Query | Expression, BooleanQueryColumn>;
|
|
1376
|
+
not: Operator<Value | Query | Expression, BooleanQueryColumn>;
|
|
1377
|
+
in: Operator<Value[] | Query | Expression, BooleanQueryColumn>;
|
|
1378
|
+
notIn: Operator<Value[] | Query | Expression, BooleanQueryColumn>;
|
|
1379
|
+
}
|
|
1380
|
+
interface OperatorsBooleanSelf extends OperatorsBoolean {
|
|
1381
|
+
result: {
|
|
1382
|
+
value: BooleanQueryColumn;
|
|
1383
|
+
};
|
|
1384
|
+
}
|
|
1385
|
+
interface OperatorsBoolean extends Base<boolean> {
|
|
1386
|
+
and: Operator<OperatorsBooleanSelf, BooleanQueryColumn>;
|
|
1387
|
+
or: Operator<OperatorsBooleanSelf, BooleanQueryColumn>;
|
|
1388
|
+
}
|
|
1389
|
+
interface Ord<Value> extends Base<Value> {
|
|
1390
|
+
lt: Operator<Value | Query | Expression, BooleanQueryColumn>;
|
|
1391
|
+
lte: Operator<Value | Query | Expression, BooleanQueryColumn>;
|
|
1392
|
+
gt: Operator<Value | Query | Expression, BooleanQueryColumn>;
|
|
1393
|
+
gte: Operator<Value | Query | Expression, BooleanQueryColumn>;
|
|
1394
|
+
between: Operator<[
|
|
1395
|
+
Value | Query | Expression,
|
|
1396
|
+
Value | Query | Expression
|
|
1397
|
+
], BooleanQueryColumn>;
|
|
1398
|
+
}
|
|
1399
|
+
type OperatorsNumber = Ord<number>;
|
|
1400
|
+
interface OperatorsText extends Base<string> {
|
|
1401
|
+
contains: Operator<string | Query | Expression, BooleanQueryColumn>;
|
|
1402
|
+
containsSensitive: Operator<string | Query | Expression, BooleanQueryColumn>;
|
|
1403
|
+
startsWith: Operator<string | Query | Expression, BooleanQueryColumn>;
|
|
1404
|
+
startsWithSensitive: Operator<string | Query | Expression, BooleanQueryColumn>;
|
|
1405
|
+
endsWith: Operator<string | Query | Expression, BooleanQueryColumn>;
|
|
1406
|
+
endsWithSensitive: Operator<string | Query | Expression, BooleanQueryColumn>;
|
|
1407
|
+
}
|
|
1408
|
+
interface JsonPathQueryOptions {
|
|
1409
|
+
vars?: RecordUnknown;
|
|
1410
|
+
silent?: boolean;
|
|
1411
|
+
}
|
|
1412
|
+
interface JsonPathQueryTypeOptions<T extends PickQueryColumnTypes, C extends QueryColumn> extends JsonPathQueryOptions {
|
|
1413
|
+
type?: (types: T['columnTypes']) => C;
|
|
1414
|
+
}
|
|
1415
|
+
interface JsonPathQuery {
|
|
1416
|
+
/**
|
|
1417
|
+
* Selects a value from JSON data using a JSON path.
|
|
1418
|
+
*
|
|
1419
|
+
* Calls the [jsonb_path_query_first](https://www.postgresql.org/docs/current/functions-json.html) Postgres function.
|
|
1420
|
+
*
|
|
1421
|
+
* Type can be provided via `{ type: (t) => t.columnType() }` options, by default the type is `unknown`.
|
|
1422
|
+
*
|
|
1423
|
+
* Optionally takes `vars` and `silent` parameters, see [Postgres docs](https://www.postgresql.org/docs/current/functions-json.html) for details.
|
|
1424
|
+
*
|
|
1425
|
+
* ```ts
|
|
1426
|
+
* // query a single value from a JSON data,
|
|
1427
|
+
* // because of the provided type, string JSON value will be parsed to a Date object.
|
|
1428
|
+
* const value = await db.table
|
|
1429
|
+
* .get('data')
|
|
1430
|
+
* .jsonPathQueryFirst('$.path.to.date', { type: (t) => t.date().asDate() });
|
|
1431
|
+
*
|
|
1432
|
+
* // using it in a select
|
|
1433
|
+
* const records = await db.table.select({
|
|
1434
|
+
* date: (q) =>
|
|
1435
|
+
* q.get('data').jsonPathQueryFirst('$[*] ? (@ = key)', {
|
|
1436
|
+
* type: (t) => t.integer(),
|
|
1437
|
+
* // defining `vars` and `silent`
|
|
1438
|
+
* vars: { key: 'key' },
|
|
1439
|
+
* silent: true,
|
|
1440
|
+
* }),
|
|
1441
|
+
* });
|
|
1442
|
+
*
|
|
1443
|
+
* // using it in `where`
|
|
1444
|
+
* const filtered = await db.table.where((q) =>
|
|
1445
|
+
* // filtering records by the `name` property from the `data` JSON column
|
|
1446
|
+
* q.get('data').jsonPathQueryFirst('$.name').equals('name'),
|
|
1447
|
+
* );
|
|
1448
|
+
*
|
|
1449
|
+
* // using it in update
|
|
1450
|
+
* await db.table.find(id).update({
|
|
1451
|
+
* // using data property to set the `name` column
|
|
1452
|
+
* name: (q) =>
|
|
1453
|
+
* q.get('data').jsonPathQueryFirst('$.name', { type: (t) => t.string() }),
|
|
1454
|
+
* });
|
|
1455
|
+
* ```
|
|
1456
|
+
*
|
|
1457
|
+
* @param path - JSON path
|
|
1458
|
+
* @param options - can have type, vars, silent
|
|
1459
|
+
*/
|
|
1460
|
+
<T extends PickQueryResultColumnTypes, C extends QueryColumn = QueryColumn<unknown, OperatorsAny>>(this: T, path: string, options?: JsonPathQueryTypeOptions<T, C>): Omit<SetQueryReturnsColumnOrThrow<T, C>, keyof T['result']['value']['operators']> & C['operators'];
|
|
1461
|
+
_opType: never;
|
|
1462
|
+
}
|
|
1463
|
+
interface OperatorsJson extends Base<unknown> {
|
|
1464
|
+
jsonPathQueryFirst: JsonPathQuery;
|
|
1465
|
+
jsonSupersetOf: Operator<unknown | Query | Expression, BooleanQueryColumn>;
|
|
1466
|
+
jsonSubsetOf: Operator<unknown | Query | Expression, BooleanQueryColumn>;
|
|
1467
|
+
jsonSet: {
|
|
1468
|
+
/**
|
|
1469
|
+
* Returns a JSON value/object/array where a given value is set at the given path.
|
|
1470
|
+
* The path is a key or an array of keys to access the value.
|
|
1471
|
+
*
|
|
1472
|
+
* Calls the [jsonb_set](https://www.postgresql.org/docs/current/functions-json.html) Postgres function.
|
|
1473
|
+
*
|
|
1474
|
+
* It can be used in all contexts on a single JSON value.
|
|
1475
|
+
*
|
|
1476
|
+
* ```ts
|
|
1477
|
+
* await db.table.find(id).update({
|
|
1478
|
+
* data: (q) => q.get('data').jsonSet(['path', 'to', 'value'], 'new value'),
|
|
1479
|
+
* });
|
|
1480
|
+
* ```
|
|
1481
|
+
*
|
|
1482
|
+
* @param path - key or array of keys
|
|
1483
|
+
* @param value - value to set
|
|
1484
|
+
*/
|
|
1485
|
+
<T extends PickQueryResult>(this: T, path: MaybeArray<string | number>, value: unknown): T;
|
|
1486
|
+
_opType: never;
|
|
1487
|
+
};
|
|
1488
|
+
jsonReplace: {
|
|
1489
|
+
/**
|
|
1490
|
+
* The same as {@link jsonSet}, but sets the last argument of `jsonb_set` to false,
|
|
1491
|
+
* so this function only has effect when the value already existed in the JSON.
|
|
1492
|
+
*
|
|
1493
|
+
* ```ts
|
|
1494
|
+
* await db.table.find(id).update({
|
|
1495
|
+
* // data.path.to.value will be updated only if it already was defined
|
|
1496
|
+
* data: (q) => q.get('data').jsonReplace(['path', 'to', 'value'], 'new value'),
|
|
1497
|
+
* });
|
|
1498
|
+
* ```
|
|
1499
|
+
*
|
|
1500
|
+
* @param path - key or array of keys
|
|
1501
|
+
* @param value - value to set
|
|
1502
|
+
*/
|
|
1503
|
+
<T extends PickQueryResult>(this: T, path: MaybeArray<string | number>, value: unknown): T;
|
|
1504
|
+
_opType: never;
|
|
1505
|
+
};
|
|
1506
|
+
jsonInsert: {
|
|
1507
|
+
/**
|
|
1508
|
+
* Inserts a value into a given position of JSON array and returns the whole array.
|
|
1509
|
+
* The path is a key or an array of keys to access the value.
|
|
1510
|
+
*
|
|
1511
|
+
* If a value exists at the given path, the value is not replaced.
|
|
1512
|
+
*
|
|
1513
|
+
* Provide `{ after: true }` option to insert a value after a given position.
|
|
1514
|
+
*
|
|
1515
|
+
* Calls the [jsonb_insert](https://www.postgresql.org/docs/current/functions-json.html) Postgres function.
|
|
1516
|
+
*
|
|
1517
|
+
* It can be used in all contexts on a single JSON value.
|
|
1518
|
+
*
|
|
1519
|
+
* ```ts
|
|
1520
|
+
* // update the record with data { tags: ['two'] } to have data { tags: ['one', 'two'] }
|
|
1521
|
+
* await db.table.find(id).update({
|
|
1522
|
+
* data: (q) => q.get('data').jsonInsert(['tags', 0], 'one'),
|
|
1523
|
+
* });
|
|
1524
|
+
*
|
|
1525
|
+
* // add 'three' after 'two'
|
|
1526
|
+
* await db.table.find(id).update({
|
|
1527
|
+
* data: (q) => q.get('data').jsonInsert(['tags', 1], 'three', { after: true }),
|
|
1528
|
+
* });
|
|
1529
|
+
* ```
|
|
1530
|
+
*
|
|
1531
|
+
* @param path - key or array of keys
|
|
1532
|
+
* @param value - value to insert
|
|
1533
|
+
* @param options - can have `after: true`
|
|
1534
|
+
*/
|
|
1535
|
+
<T extends PickQueryResult>(this: T, path: MaybeArray<string | number>, value: unknown, options?: {
|
|
1536
|
+
after?: boolean;
|
|
1537
|
+
}): T;
|
|
1538
|
+
_opType: never;
|
|
1539
|
+
};
|
|
1540
|
+
jsonRemove: {
|
|
1541
|
+
/**
|
|
1542
|
+
* Remove a value from a JSON object or array at a given path.
|
|
1543
|
+
* The path is a key or an array of keys to access the value.
|
|
1544
|
+
*
|
|
1545
|
+
* Uses the [#-](https://www.postgresql.org/docs/current/functions-json.html) Postgres operator.
|
|
1546
|
+
*
|
|
1547
|
+
* It can be used in all contexts on a single JSON value.
|
|
1548
|
+
*
|
|
1549
|
+
* ```ts
|
|
1550
|
+
* // the record has data { tags: ['one', 'two'] }
|
|
1551
|
+
* // removing the first tag, the data will be { tags: ['two'] }
|
|
1552
|
+
* const result = await db.table.find(id).update({
|
|
1553
|
+
* data: (q) => q.get('data').jsonRemove(['tags', 0]),
|
|
1554
|
+
* });
|
|
1555
|
+
* ```
|
|
1556
|
+
*
|
|
1557
|
+
* @param path - key or array of keys
|
|
1558
|
+
*/
|
|
1559
|
+
<T extends PickQueryResult>(this: T, path: MaybeArray<string | number>): T;
|
|
1560
|
+
_opType: never;
|
|
1561
|
+
};
|
|
1562
|
+
}
|
|
1563
|
+
type OperatorsAny = Base<any>;
|
|
1564
|
+
type OperatorsDate = Ord<Date | string>;
|
|
1565
|
+
type OperatorsArray = Base<any>;
|
|
1566
|
+
type OperatorsTime = Ord<string>;
|
|
1567
|
+
declare const Operators: {
|
|
1568
|
+
any: OperatorsAny;
|
|
1569
|
+
boolean: OperatorsBoolean;
|
|
1570
|
+
number: OperatorsNumber;
|
|
1571
|
+
date: OperatorsDate;
|
|
1572
|
+
time: OperatorsTime;
|
|
1573
|
+
text: OperatorsText;
|
|
1574
|
+
json: OperatorsJson;
|
|
1575
|
+
array: OperatorsArray;
|
|
1576
|
+
};
|
|
1577
|
+
|
|
1480
1578
|
declare class ColumnRefExpression<T extends QueryColumn> extends Expression<T> {
|
|
1481
1579
|
name: string;
|
|
1482
1580
|
result: {
|
|
@@ -1603,12 +1701,12 @@ declare class ExpressionMethods {
|
|
|
1603
1701
|
* @param args
|
|
1604
1702
|
* @param options
|
|
1605
1703
|
*/
|
|
1606
|
-
fn<T extends PickQueryMetaResultRelationsWindowsColumnTypes, Type = unknown, C extends QueryColumn = QueryColumn<Type>>(this: T, fn: string, args:
|
|
1704
|
+
fn<T extends PickQueryMetaResultRelationsWindowsColumnTypes, Type = unknown, C extends QueryColumn = QueryColumn<Type>>(this: T, fn: string, args: SelectableOrExpressions<T>, options?: AggregateOptions<T>): SetQueryReturnsFn<T, C>;
|
|
1607
1705
|
or(...args: [OrExpressionArg, ...OrExpressionArg[]]): OrExpression;
|
|
1608
1706
|
}
|
|
1609
1707
|
|
|
1610
1708
|
type WhereArg<T extends PickQueryMetaRelations> = {
|
|
1611
|
-
[K in keyof T['meta']['selectable'] | 'NOT' | 'OR' | 'IN']?: K extends 'NOT' ?
|
|
1709
|
+
[K in keyof T['meta']['selectable'] | 'NOT' | 'OR' | 'IN']?: K extends 'NOT' ? WhereArg<T> | WhereArgs<T> : K extends 'OR' ? (WhereArg<T> | WhereArgs<T>)[] : K extends 'IN' ? MaybeArray<{
|
|
1612
1710
|
columns: (keyof T['meta']['selectable'])[];
|
|
1613
1711
|
values: unknown[][] | QueryBase | Expression;
|
|
1614
1712
|
}> : T['meta']['selectable'][K]['column']['queryType'] | null | ColumnOperators<T['meta']['selectable'], K> | QueryOrExpression<T['meta']['selectable'][K]['column']['queryType'] | null> | ((q: T) => QueryOrExpression<T['meta']['selectable'][K]['column']['queryType'] | null>);
|
|
@@ -1622,9 +1720,9 @@ type WhereArg<T extends PickQueryMetaRelations> = {
|
|
|
1622
1720
|
* ```
|
|
1623
1721
|
*/
|
|
1624
1722
|
type WhereQueryBuilder<T extends PickQueryRelations> = RelationsBase extends T['relations'] ? {
|
|
1625
|
-
[K in keyof T]: K extends keyof QueryBase | keyof Where | keyof ExpressionMethods | 'sql' ? T[K] : never;
|
|
1723
|
+
[K in keyof T]: K extends keyof QueryBase | keyof Where | keyof ExpressionMethods | 'sql' | 'get' | 'ref' ? T[K] : never;
|
|
1626
1724
|
} : {
|
|
1627
|
-
[K in keyof T]: K extends keyof T['relations'] ? T['relations'][K] : K extends keyof QueryBase | keyof Where | keyof ExpressionMethods | 'sql' ? T[K] : never;
|
|
1725
|
+
[K in keyof T]: K extends keyof T['relations'] ? T['relations'][K] : K extends keyof QueryBase | keyof Where | keyof ExpressionMethods | 'sql' | 'get' | 'ref' ? T[K] : never;
|
|
1628
1726
|
};
|
|
1629
1727
|
type WhereArgs<T extends PickQueryMetaRelations> = WhereArg<T>[];
|
|
1630
1728
|
type WhereNotArgs<T extends PickQueryMetaRelations> = [WhereArg<T>];
|
|
@@ -1664,11 +1762,11 @@ declare const _queryWhereNotSql: <T>(q: T, args: SQLQueryArgs) => T;
|
|
|
1664
1762
|
/**
|
|
1665
1763
|
* Mutative {@link Where.orWhere}
|
|
1666
1764
|
*/
|
|
1667
|
-
declare const _queryOr: <T extends PickQueryMetaRelations>(q: T, args:
|
|
1765
|
+
declare const _queryOr: <T extends PickQueryMetaRelations>(q: T, args: WhereArgs<T>) => WhereResult<T>;
|
|
1668
1766
|
/**
|
|
1669
1767
|
* Mutative {@link Where.orWhereNot}
|
|
1670
1768
|
*/
|
|
1671
|
-
declare const _queryOrNot: <T extends PickQueryMetaRelations>(q: T, args:
|
|
1769
|
+
declare const _queryOrNot: <T extends PickQueryMetaRelations>(q: T, args: WhereArgs<T>) => WhereResult<T>;
|
|
1672
1770
|
/**
|
|
1673
1771
|
* Mutative {@link Where.whereIn}
|
|
1674
1772
|
*/
|
|
@@ -2122,13 +2220,13 @@ declare class Where {
|
|
|
2122
2220
|
*
|
|
2123
2221
|
* @param args - {@link WhereArgs} will be joined with `OR`
|
|
2124
2222
|
*/
|
|
2125
|
-
orWhere<T extends PickQueryMetaRelations>(this: T, ...args:
|
|
2223
|
+
orWhere<T extends PickQueryMetaRelations>(this: T, ...args: WhereArgs<T>): WhereResult<T>;
|
|
2126
2224
|
/**
|
|
2127
2225
|
* `orWhereNot` takes the same arguments as {@link orWhere}, and prepends each condition with `NOT` just as {@link whereNot} does.
|
|
2128
2226
|
*
|
|
2129
2227
|
* @param args - {@link WhereArgs} will be prefixed with `NOT` and joined with `OR`
|
|
2130
2228
|
*/
|
|
2131
|
-
orWhereNot<T extends PickQueryMetaRelations>(this: T, ...args:
|
|
2229
|
+
orWhereNot<T extends PickQueryMetaRelations>(this: T, ...args: WhereArgs<T>): WhereResult<T>;
|
|
2132
2230
|
/**
|
|
2133
2231
|
* `whereIn` and related methods are for the `IN` operator to check for inclusion in a list of values.
|
|
2134
2232
|
*
|
|
@@ -2448,7 +2546,7 @@ declare class DynamicRawSQL<T extends QueryColumn, ColumnTypes = DefaultColumnTy
|
|
|
2448
2546
|
}
|
|
2449
2547
|
declare function raw<T = never>(...args: StaticSQLArgs): RawSQL<QueryColumn<T>>;
|
|
2450
2548
|
declare function raw<T = never>(...args: [DynamicSQLArg]): DynamicRawSQL<QueryColumn<T>>;
|
|
2451
|
-
declare const countSelect: RawSQL<QueryColumn<unknown,
|
|
2549
|
+
declare const countSelect: RawSQL<QueryColumn<unknown, any>, DefaultColumnTypes<ColumnSchemaConfig<orchid_core.ColumnTypeBase<orchid_core.ColumnTypeSchemaArg, unknown, any, any, unknown, unknown, any, unknown, any, orchid_core.ColumnDataBase>>>>[];
|
|
2452
2550
|
declare function sqlQueryArgsToExpression(args: SQLQueryArgs): RawSQL<QueryColumn>;
|
|
2453
2551
|
type SqlFn = <T, Args extends [sql: TemplateStringsArray, ...values: unknown[]] | [sql: string] | [values: RecordUnknown, sql?: string]>(this: T, ...args: Args) => Args extends [RecordUnknown] ? (...sql: TemplateLiteralArgs) => RawSQLBase<QueryColumn, T> : RawSQLBase<QueryColumn, T>;
|
|
2454
2552
|
declare const sqlFn: SqlFn;
|
|
@@ -2940,7 +3038,7 @@ interface DefaultSchemaConfig extends ColumnSchemaConfig<ColumnType> {
|
|
|
2940
3038
|
dateAsDate(): ParseColumn<DateBaseColumn<DefaultSchemaConfig>, unknown, Date>;
|
|
2941
3039
|
enum<U extends string, T extends readonly [U, ...U[]]>(dataType: string, type: T): EnumColumn<DefaultSchemaConfig, unknown, U, T>;
|
|
2942
3040
|
array<Item extends ArrayColumnValue>(item: Item): ArrayColumn<DefaultSchemaConfig, Item, unknown, unknown, unknown>;
|
|
2943
|
-
json<T
|
|
3041
|
+
json<T extends MaybeArray<string | number | boolean | RecordUnknown>>(): JSONColumn<T, DefaultSchemaConfig>;
|
|
2944
3042
|
inputSchema(): undefined;
|
|
2945
3043
|
outputSchema(): undefined;
|
|
2946
3044
|
querySchema(): undefined;
|
|
@@ -2968,12 +3066,10 @@ interface DefaultSchemaConfig extends ColumnSchemaConfig<ColumnType> {
|
|
|
2968
3066
|
declare const defaultSchemaConfig: DefaultSchemaConfig;
|
|
2969
3067
|
|
|
2970
3068
|
type SoftDeleteOption<Shape extends QueryColumns> = true | keyof Shape;
|
|
2971
|
-
interface QueryWithSoftDelete extends
|
|
2972
|
-
meta: QueryMetaBase
|
|
2973
|
-
|
|
2974
|
-
|
|
2975
|
-
};
|
|
2976
|
-
};
|
|
3069
|
+
interface QueryWithSoftDelete extends PickQueryResult {
|
|
3070
|
+
meta: QueryMetaBase<{
|
|
3071
|
+
nonDeleted: true;
|
|
3072
|
+
}>;
|
|
2977
3073
|
}
|
|
2978
3074
|
/**
|
|
2979
3075
|
* `softDelete` configures the table to set `deletedAt` to current time instead of deleting records.
|
|
@@ -3258,7 +3354,7 @@ interface DbResult<ColumnTypes> extends Db<string, never, never, never, never, n
|
|
|
3258
3354
|
* })
|
|
3259
3355
|
* ```
|
|
3260
3356
|
*/
|
|
3261
|
-
declare const createDb: <SchemaConfig extends ColumnSchemaConfig<ColumnTypeBase<orchid_core.ColumnTypeSchemaArg, unknown, any,
|
|
3357
|
+
declare const createDb: <SchemaConfig extends ColumnSchemaConfig<ColumnTypeBase<orchid_core.ColumnTypeSchemaArg, unknown, any, any, unknown, unknown, any, unknown, any, orchid_core.ColumnDataBase>> = DefaultSchemaConfig, ColumnTypes = DefaultColumnTypes<SchemaConfig>>({ log, logger, snakeCase, nowSQL, schemaConfig, columnTypes: ctOrFn, ...options }: DbOptions<SchemaConfig, ColumnTypes>) => DbResult<ColumnTypes>;
|
|
3262
3358
|
declare const _initQueryBuilder: (adapter: Adapter, columnTypes: unknown, transactionStorage: AsyncLocalStorage<TransactionState>, commonOptions: DbTableOptions<undefined, QueryColumns>, options: DbSharedOptions) => Db;
|
|
3263
3359
|
|
|
3264
3360
|
type ToSQLCtx = {
|
|
@@ -3299,6 +3395,7 @@ declare const getSqlText: (sql: Sql) => string;
|
|
|
3299
3395
|
|
|
3300
3396
|
type AliasOrTable<T extends PickQueryMetaTable> = T['meta']['as'] extends string ? T['meta']['as'] : T['table'] extends string ? T['table'] : never;
|
|
3301
3397
|
type SelectableOrExpression<T extends PickQueryMeta = PickQueryMeta, C extends QueryColumn = QueryColumn> = '*' | keyof T['meta']['selectable'] | Expression<C>;
|
|
3398
|
+
type SelectableOrExpressions<T extends PickQueryMeta = PickQueryMeta, C extends QueryColumn = QueryColumn> = ('*' | keyof T['meta']['selectable'] | Expression<C>)[];
|
|
3302
3399
|
type ExpressionOutput<T extends PickQueryMeta, Expr extends SelectableOrExpression<T>> = Expr extends keyof T['meta']['selectable'] ? T['meta']['selectable'][Expr]['column'] : Expr extends Expression ? Expr['result']['value'] : never;
|
|
3303
3400
|
declare const getClonedQueryData: (query: QueryData) => QueryData;
|
|
3304
3401
|
declare const getQueryAs: (q: {
|
|
@@ -3336,7 +3433,7 @@ declare function _queryGet<T extends QueryGetSelf, Arg extends GetArg<T>>(self:
|
|
|
3336
3433
|
declare function _queryGetOptional<T extends QueryGetSelf, Arg extends GetArg<T>>(self: T, arg: Arg): GetResultOptional<T, Arg>;
|
|
3337
3434
|
|
|
3338
3435
|
declare const isSelectingCount: (q: PickQueryQ) => boolean;
|
|
3339
|
-
type QueryReturnsAgg<T, C, Op
|
|
3436
|
+
type QueryReturnsAgg<T, C, Op> = SetQueryReturnsColumnOrThrow<T, QueryColumn<C, Op>> & Op;
|
|
3340
3437
|
type CountReturn<T> = QueryReturnsAgg<T, number, OperatorsNumber> & {
|
|
3341
3438
|
isCount: true;
|
|
3342
3439
|
};
|
|
@@ -3803,7 +3900,7 @@ declare class Clear {
|
|
|
3803
3900
|
clear<T extends Query>(this: T, ...clears: ClearStatement[]): T;
|
|
3804
3901
|
}
|
|
3805
3902
|
|
|
3806
|
-
interface CreateSelf extends
|
|
3903
|
+
interface CreateSelf extends PickQueryMetaResultRelationsWithDataReturnTypeShape, PickQueryUniqueProperties {
|
|
3807
3904
|
inputType: RecordUnknown;
|
|
3808
3905
|
}
|
|
3809
3906
|
type CreateData<T extends CreateSelf, BelongsToData = CreateBelongsToData<T>> = RelationsBase extends T['relations'] ? CreateDataWithDefaults<T, keyof T['meta']['defaults']> : CreateRelationsData<T, BelongsToData>;
|
|
@@ -3975,7 +4072,7 @@ declare class Create {
|
|
|
3975
4072
|
* const createdCount = await db.table.insertMany([data, data, data]);
|
|
3976
4073
|
* ```
|
|
3977
4074
|
*
|
|
3978
|
-
* Because of a limitation of Postgres protocol, queries having more than **
|
|
4075
|
+
* Because of a limitation of Postgres protocol, queries having more than **65535** of values are going to fail in runtime.
|
|
3979
4076
|
* To solve this seamlessly, OrchidORM will automatically batch such queries, and wrap them into a transaction, unless they are already in a transaction.
|
|
3980
4077
|
*
|
|
3981
4078
|
* ```ts
|
|
@@ -4778,153 +4875,6 @@ declare abstract class QueryHooks {
|
|
|
4778
4875
|
afterDeleteCommit<T extends PickQueryShape, S extends HookSelect<T>>(this: T, select: S, cb: AfterHook<S, T['shape']>): T;
|
|
4779
4876
|
}
|
|
4780
4877
|
|
|
4781
|
-
type JsonColumnName<T extends PickQueryMeta> = {
|
|
4782
|
-
[K in keyof T['meta']['selectable']]: T['meta']['selectable'][K]['column']['dataType'] extends 'jsonb' ? K : never;
|
|
4783
|
-
}[keyof T['meta']['selectable']] & string;
|
|
4784
|
-
type ColumnOrJsonMethod<T extends PickQueryMeta> = JsonColumnName<T> | JsonItem;
|
|
4785
|
-
type JsonSetResult<T extends PickQueryMetaShapeResultReturnType, Column extends ColumnOrJsonMethod<T>, As extends string> = JsonItem<As, Column extends keyof T['shape'] ? T['shape'][Column] : Column extends JsonItem ? Column['__json'][2] : QueryColumn> & AddQuerySelect<T, Record<As, Column extends keyof T['shape'] ? T['shape'][Column] : Column extends JsonItem ? Column['__json'][2] : QueryColumn>>;
|
|
4786
|
-
type JsonPathQueryResult<T extends PickQueryMetaResultReturnType, As extends string, Type extends QueryColumn> = JsonItem & AddQuerySelect<T, {
|
|
4787
|
-
[K in As]: Type;
|
|
4788
|
-
}>;
|
|
4789
|
-
declare abstract class JsonModifiers {
|
|
4790
|
-
/**
|
|
4791
|
-
* Return a JSON value/object/array where a given value is set at the given path.
|
|
4792
|
-
* The path is an array of keys to access the value.
|
|
4793
|
-
*
|
|
4794
|
-
* Can be used in `update` callback.
|
|
4795
|
-
*
|
|
4796
|
-
* ```ts
|
|
4797
|
-
* const result = await db.table.jsonSet('data', ['name'], 'new value').take();
|
|
4798
|
-
*
|
|
4799
|
-
* expect(result.data).toEqual({ name: 'new value' });
|
|
4800
|
-
* ```
|
|
4801
|
-
*
|
|
4802
|
-
* Optionally takes parameters of type `{ as?: string, createIfMissing?: boolean }`
|
|
4803
|
-
*
|
|
4804
|
-
* ```ts
|
|
4805
|
-
* await db.table.jsonSet('data', ['name'], 'new value', {
|
|
4806
|
-
* as: 'alias', // select data as `alias`
|
|
4807
|
-
* createIfMissing: true, // ignored if missing by default
|
|
4808
|
-
* });
|
|
4809
|
-
* ```
|
|
4810
|
-
*
|
|
4811
|
-
* @param column - name of JSON column, or a result of a nested json method
|
|
4812
|
-
* @param path - path to value inside the json
|
|
4813
|
-
* @param value - value to set into the json
|
|
4814
|
-
* @param options - `as` to alias the json value when selecting, `createIfMissing: true` will create a new JSON property if it didn't exist before
|
|
4815
|
-
*/
|
|
4816
|
-
jsonSet<T extends PickQueryMetaShapeResultReturnType, Column extends ColumnOrJsonMethod<T>, As extends string = Column extends JsonItem ? Column['__json'][1] : Column>(this: T, column: Column, path: Array<string | number>, value: unknown, options?: {
|
|
4817
|
-
as?: As;
|
|
4818
|
-
createIfMissing?: boolean;
|
|
4819
|
-
}): JsonSetResult<T, Column, As>;
|
|
4820
|
-
/**
|
|
4821
|
-
* Return a JSON value/object/array where a given value is inserted at the given JSON path. Value can be a single value or JSON object. If a value exists at the given path, the value is not replaced.
|
|
4822
|
-
*
|
|
4823
|
-
* Can be used in `update` callback.
|
|
4824
|
-
*
|
|
4825
|
-
* ```ts
|
|
4826
|
-
* // imagine user has data = { tags: ['two'] }
|
|
4827
|
-
* const result = await db.table.jsonInsert('data', ['tags', 0], 'one').take();
|
|
4828
|
-
*
|
|
4829
|
-
* // 'one' is inserted to 0 position
|
|
4830
|
-
* expect(result.data).toEqual({ tags: ['one', 'two'] });
|
|
4831
|
-
* ```
|
|
4832
|
-
*
|
|
4833
|
-
* Optionally takes parameters of type `{ as?: string, insertAfter?: boolean }`
|
|
4834
|
-
*
|
|
4835
|
-
* ```ts
|
|
4836
|
-
* // imagine user has data = { tags: ['one'] }
|
|
4837
|
-
* const result = await db.table
|
|
4838
|
-
* .jsonInsert('data', ['tags', 0], 'two', {
|
|
4839
|
-
* as: 'alias', // select as an alias
|
|
4840
|
-
* insertAfter: true, // insert after the specified position
|
|
4841
|
-
* })
|
|
4842
|
-
* .take();
|
|
4843
|
-
*
|
|
4844
|
-
* // 'one' is inserted to 0 position
|
|
4845
|
-
* expect(result.alias).toEqual({ tags: ['one', 'two'] });
|
|
4846
|
-
* ```
|
|
4847
|
-
* @param column - name of JSON column, or a result of a nested json method
|
|
4848
|
-
* @param path - path to the array inside the json, last path element is index to insert into
|
|
4849
|
-
* @param value - value to insert into the json array
|
|
4850
|
-
* @param options - `as` to alias the json value when selecting, `insertAfter: true` to insert after the specified position
|
|
4851
|
-
*/
|
|
4852
|
-
jsonInsert<T extends PickQueryMetaShapeResultReturnType, Column extends ColumnOrJsonMethod<T>, As extends string = Column extends JsonItem ? Column['__json'][1] : Column>(this: T, column: Column, path: Array<string | number>, value: unknown, options?: {
|
|
4853
|
-
as?: As;
|
|
4854
|
-
insertAfter?: boolean;
|
|
4855
|
-
}): JsonSetResult<T, Column, As>;
|
|
4856
|
-
/**
|
|
4857
|
-
* Return a JSON value/object/array where a given value is removed at the given JSON path.
|
|
4858
|
-
*
|
|
4859
|
-
* Can be used in `update` callback.
|
|
4860
|
-
*
|
|
4861
|
-
* ```ts
|
|
4862
|
-
* // imagine a user has data = { tags: ['one', 'two'] }
|
|
4863
|
-
* const result = await db.table
|
|
4864
|
-
* .jsonRemove(
|
|
4865
|
-
* 'data',
|
|
4866
|
-
* ['tags', 0],
|
|
4867
|
-
* // optional parameters:
|
|
4868
|
-
* {
|
|
4869
|
-
* as: 'alias', // select as an alias
|
|
4870
|
-
* },
|
|
4871
|
-
* )
|
|
4872
|
-
* .take();
|
|
4873
|
-
*
|
|
4874
|
-
* expect(result.alias).toEqual({ tags: ['two'] });
|
|
4875
|
-
* ```
|
|
4876
|
-
*
|
|
4877
|
-
* @param column - name of JSON column, or a result of a nested json method
|
|
4878
|
-
* @param path - path to the array inside the json, last path element is index to remove this element
|
|
4879
|
-
* @param options - `as` to alias the json value when selecting
|
|
4880
|
-
*/
|
|
4881
|
-
jsonRemove<T extends PickQueryMetaShapeResultReturnType, Column extends ColumnOrJsonMethod<T>, As extends string = Column extends JsonItem ? Column['__json'][1] : Column>(this: T, column: Column, path: Array<string | number>, options?: {
|
|
4882
|
-
as?: As;
|
|
4883
|
-
}): JsonSetResult<T, Column, As>;
|
|
4884
|
-
/**
|
|
4885
|
-
* Selects a value from JSON data using a JSON path.
|
|
4886
|
-
*
|
|
4887
|
-
* ```ts
|
|
4888
|
-
* import { columnTypes } from 'orchid-orm';
|
|
4889
|
-
*
|
|
4890
|
-
* db.table.jsonPathQuery(
|
|
4891
|
-
* columnTypes.text(3, 100), // type of the value
|
|
4892
|
-
* 'data', // name of the JSON column
|
|
4893
|
-
* '$.name', // JSON path
|
|
4894
|
-
* 'name', // select value as name
|
|
4895
|
-
*
|
|
4896
|
-
* // Optionally supports `vars` and `silent` options
|
|
4897
|
-
* // check Postgres docs for jsonb_path_query for details
|
|
4898
|
-
* {
|
|
4899
|
-
* vars: 'vars',
|
|
4900
|
-
* silent: true,
|
|
4901
|
-
* },
|
|
4902
|
-
* );
|
|
4903
|
-
* ```
|
|
4904
|
-
*
|
|
4905
|
-
* Nested JSON operations can be used in place of JSON column name:
|
|
4906
|
-
*
|
|
4907
|
-
* ```ts
|
|
4908
|
-
* db.table.jsonPathQuery(
|
|
4909
|
-
* columnTypes.text(3, 100),
|
|
4910
|
-
* // Available: .jsonSet, .jsonInsert, .jsonRemove
|
|
4911
|
-
* db.table.jsonSet('data', ['key'], 'value'),
|
|
4912
|
-
* '$.name',
|
|
4913
|
-
* 'name',
|
|
4914
|
-
* );
|
|
4915
|
-
* ```
|
|
4916
|
-
*
|
|
4917
|
-
* @param type - provide a column type to have a correct result type
|
|
4918
|
-
* @param column - name of JSON column, or a result of a nested json method
|
|
4919
|
-
* @param path - special JSON path string to reference a JSON value
|
|
4920
|
-
* @param as - optional alias for the selected value
|
|
4921
|
-
* @param options - supports `vars` and `silent`, check Postgres docs of `json_path_query` for these
|
|
4922
|
-
*/
|
|
4923
|
-
jsonPathQuery<T extends PickQueryMetaShapeResultReturnType, As extends string, Type extends QueryColumn>(this: T, type: Type, column: ColumnOrJsonMethod<T>, path: string, as: As, options?: {
|
|
4924
|
-
vars?: string;
|
|
4925
|
-
silent?: boolean;
|
|
4926
|
-
}): JsonPathQueryResult<T, As, Type>;
|
|
4927
|
-
}
|
|
4928
4878
|
declare abstract class JsonMethods {
|
|
4929
4879
|
/**
|
|
4930
4880
|
* Wraps the query in a way to select a single JSON string.
|
|
@@ -4989,13 +4939,12 @@ interface SelectSelf {
|
|
|
4989
4939
|
withData: WithDataBase;
|
|
4990
4940
|
}
|
|
4991
4941
|
type SelectArg<T extends SelectSelf> = '*' | keyof T['meta']['selectable'];
|
|
4942
|
+
type SelectArgs<T extends SelectSelf> = ('*' | keyof T['meta']['selectable'])[];
|
|
4992
4943
|
interface SelectAsArg<T extends SelectSelf> {
|
|
4993
|
-
[K: string]:
|
|
4944
|
+
[K: string]: keyof T['meta']['selectable'] | Expression | ((q: {
|
|
4945
|
+
[K in keyof T]: K extends keyof T['relations'] ? T['relations'][K]['relationConfig']['methodQuery'] : T[K];
|
|
4946
|
+
}) => QueryBase | Expression);
|
|
4994
4947
|
}
|
|
4995
|
-
type SelectAsValue<T extends SelectSelf> = keyof T['meta']['selectable'] | Expression | ((q: SelectSubQueryArg<T>) => QueryBase | Expression);
|
|
4996
|
-
type SelectSubQueryArg<T extends SelectSelf> = {
|
|
4997
|
-
[K in keyof T]: K extends keyof T['relations'] ? T['relations'][K]['relationConfig']['methodQuery'] : T[K];
|
|
4998
|
-
};
|
|
4999
4948
|
type SelectResult<T extends SelectSelf, Columns extends PropertyKey[]> = {
|
|
5000
4949
|
[K in keyof T]: K extends 'result' ? ('*' extends Columns[number] ? {
|
|
5001
4950
|
[K in Columns[number] | keyof T['shape'] as T['meta']['selectable'][K]['as']]: T['meta']['selectable'][K]['column'];
|
|
@@ -5009,15 +4958,17 @@ type SelectResult<T extends SelectSelf, Columns extends PropertyKey[]> = {
|
|
|
5009
4958
|
} & QueryMetaHasSelect;
|
|
5010
4959
|
type SelectResultObj<T extends SelectSelf, Obj> = {
|
|
5011
4960
|
[K in keyof T]: K extends 'meta' ? T['meta'] & {
|
|
4961
|
+
hasSelect: true;
|
|
5012
4962
|
selectable: SelectAsSelectable<Obj>;
|
|
5013
4963
|
} : K extends 'result' ? {
|
|
5014
|
-
[K in
|
|
4964
|
+
[K in T['meta']['hasSelect'] extends true ? keyof Obj | keyof T['result'] : keyof Obj]: K extends keyof Obj ? SelectAsValueResult<T, Obj[K]> : K extends keyof T['result'] ? T['result'][K] : never;
|
|
5015
4965
|
} : K extends 'then' ? QueryThen<GetQueryResult<T, {
|
|
5016
|
-
[K in
|
|
4966
|
+
[K in T['meta']['hasSelect'] extends true ? keyof Obj | keyof T['result'] : keyof Obj]: K extends keyof Obj ? SelectAsValueResult<T, Obj[K]> : K extends keyof T['result'] ? T['result'][K] : never;
|
|
5017
4967
|
}>> : T[K];
|
|
5018
|
-
}
|
|
4968
|
+
};
|
|
5019
4969
|
type SelectResultColumnsAndObj<T extends SelectSelf, Columns extends PropertyKey[], Obj> = {
|
|
5020
4970
|
[K in keyof T]: K extends 'meta' ? T['meta'] & {
|
|
4971
|
+
hasSelect: true;
|
|
5021
4972
|
selectable: SelectAsSelectable<Obj>;
|
|
5022
4973
|
} : K extends 'result' ? // Combine previously selected items, all columns if * was provided,
|
|
5023
4974
|
{
|
|
@@ -5025,7 +4976,7 @@ type SelectResultColumnsAndObj<T extends SelectSelf, Columns extends PropertyKey
|
|
|
5025
4976
|
} & (T['meta']['hasSelect'] extends true ? Omit<T['result'], Columns[number]> : unknown) : K extends 'then' ? QueryThen<GetQueryResult<T, {
|
|
5026
4977
|
[K in ('*' extends Columns[number] ? Exclude<Columns[number], '*'> | keyof T['shape'] : Columns[number]) | keyof Obj as K extends keyof T['meta']['selectable'] ? T['meta']['selectable'][K]['as'] : K]: K extends keyof T['meta']['selectable'] ? T['meta']['selectable'][K]['column'] : K extends keyof Obj ? SelectAsValueResult<T, Obj[K]> : never;
|
|
5027
4978
|
} & (T['meta']['hasSelect'] extends true ? Omit<T['result'], Columns[number]> : unknown)>> : T[K];
|
|
5028
|
-
}
|
|
4979
|
+
};
|
|
5029
4980
|
type SelectAsSelectable<Arg> = {
|
|
5030
4981
|
[K in keyof Arg]: Arg[K] extends (q: never) => {
|
|
5031
4982
|
returnType: 'value' | 'valueOrThrow';
|
|
@@ -5051,9 +5002,9 @@ declare const addParserForSelectItem: <T extends PickQueryMeta>(q: T, as: string
|
|
|
5051
5002
|
declare const processSelectArg: <T extends SelectSelf>(q: T, as: string | undefined, arg: SelectArg<T>, columnAs?: string | getValueKey) => SelectItem | undefined;
|
|
5052
5003
|
declare const setParserForSelectedString: (q: PickQueryQ, arg: string, as: string | getValueKey | undefined, columnAs?: string | getValueKey) => string;
|
|
5053
5004
|
declare const getShapeFromSelect: (q: QueryBase, isSubQuery?: boolean) => QueryColumns;
|
|
5054
|
-
declare function _querySelect<T extends SelectSelf, Columns extends
|
|
5005
|
+
declare function _querySelect<T extends SelectSelf, Columns extends SelectArgs<T>>(q: T, columns: Columns): SelectResult<T, Columns>;
|
|
5055
5006
|
declare function _querySelect<T extends SelectSelf, Obj extends SelectAsArg<T>>(q: T, obj: Obj): SelectResultObj<T, Obj>;
|
|
5056
|
-
declare function _querySelect<T extends SelectSelf, Columns extends
|
|
5007
|
+
declare function _querySelect<T extends SelectSelf, Columns extends SelectArgs<T>, Obj extends SelectAsArg<T>>(q: T, args: [...columns: Columns, obj: Obj]): SelectResultColumnsAndObj<T, Columns, Obj>;
|
|
5057
5008
|
declare class Select {
|
|
5058
5009
|
/**
|
|
5059
5010
|
* Takes a list of columns to be selected, and by default, the query builder will select all columns of the table.
|
|
@@ -5116,9 +5067,9 @@ declare class Select {
|
|
|
5116
5067
|
* .where({ 'author.isPopular': true });
|
|
5117
5068
|
* ```
|
|
5118
5069
|
*/
|
|
5119
|
-
select<T extends SelectSelf, Columns extends
|
|
5070
|
+
select<T extends SelectSelf, Columns extends SelectArgs<T>>(this: T, ...args: Columns): SelectResult<T, Columns>;
|
|
5120
5071
|
select<T extends SelectSelf, Obj extends SelectAsArg<T>>(this: T, obj: Obj): SelectResultObj<T, Obj>;
|
|
5121
|
-
select<T extends SelectSelf, Columns extends
|
|
5072
|
+
select<T extends SelectSelf, Columns extends SelectArgs<T>, Obj extends SelectAsArg<T>>(this: T, ...args: [...columns: Columns, obj: Obj]): SelectResultColumnsAndObj<T, Columns, Obj>;
|
|
5122
5073
|
/**
|
|
5123
5074
|
* When querying the table or creating records, all columns are selected by default,
|
|
5124
5075
|
* but updating and deleting queries are returning affected row counts by default.
|
|
@@ -5290,9 +5241,11 @@ interface WithArgsOptions {
|
|
|
5290
5241
|
interface WithRecursiveOptions extends WithArgsOptions {
|
|
5291
5242
|
union?: 'UNION' | 'UNION ALL' | 'INTERSECT' | 'INTERSECT ALL' | 'EXCEPT' | 'EXCEPT ALL';
|
|
5292
5243
|
}
|
|
5293
|
-
|
|
5294
|
-
|
|
5295
|
-
|
|
5244
|
+
interface WithQueryBuilder<T extends PickQueryWithDataColumnTypes> extends Query {
|
|
5245
|
+
sql: SqlMethod<T['columnTypes']>['sql'];
|
|
5246
|
+
relations: EmptyObject;
|
|
5247
|
+
withData: T['withData'];
|
|
5248
|
+
}
|
|
5296
5249
|
type WithResult<T extends PickQueryMetaWithDataColumnTypes, Name extends string, Q extends PickQueryResult> = {
|
|
5297
5250
|
[K in keyof T]: K extends 'meta' ? {
|
|
5298
5251
|
[K in keyof T['meta']]: K extends 'kind' ? 'select' : T['meta'][K];
|
|
@@ -5303,7 +5256,7 @@ type WithResult<T extends PickQueryMetaWithDataColumnTypes, Name extends string,
|
|
|
5303
5256
|
} : K extends keyof T['withData'] ? T['withData'][K] : never;
|
|
5304
5257
|
} : T[K];
|
|
5305
5258
|
};
|
|
5306
|
-
type WithSqlResult<T extends PickQueryWithDataColumnTypes, Name extends string, Shape extends
|
|
5259
|
+
type WithSqlResult<T extends PickQueryWithDataColumnTypes, Name extends string, Shape extends QueryColumns> = {
|
|
5307
5260
|
[K in keyof T]: K extends 'withData' ? {
|
|
5308
5261
|
[K in Name | keyof T['withData']]: K extends Name ? {
|
|
5309
5262
|
table: Name;
|
|
@@ -5377,7 +5330,7 @@ declare class WithMethods {
|
|
|
5377
5330
|
* ```
|
|
5378
5331
|
*/
|
|
5379
5332
|
with<T extends PickQueryMetaWithDataColumnTypes, Name extends string, Q>(this: T, name: Name, query: Q | ((q: WithQueryBuilder<T>) => Q)): WithResult<T, Name, Q extends Query ? Q : never>;
|
|
5380
|
-
with<T extends PickQueryMetaWithDataColumnTypes, Name extends string, Q extends Query>(this: T, name: Name, options: WithArgsOptions, query: Q | ((
|
|
5333
|
+
with<T extends PickQueryMetaWithDataColumnTypes, Name extends string, Q extends Query>(this: T, name: Name, options: WithArgsOptions, query: Q | ((q: WithQueryBuilder<T>) => Q)): WithResult<T, Name, Q>;
|
|
5381
5334
|
withRecursive<T extends PickQueryMetaWithDataColumnTypes, Name extends string, Q extends Query, Result = WithResult<T, Name, Q>>(this: T, name: Name, base: Q | ((qb: WithQueryBuilder<T>) => Q), recursive: (qb: {
|
|
5382
5335
|
[K in keyof Result]: K extends 'result' ? Q['result'] : Result[K];
|
|
5383
5336
|
}) => Query): Result;
|
|
@@ -5388,14 +5341,14 @@ declare class WithMethods {
|
|
|
5388
5341
|
withSql<T extends PickQueryWithDataColumnTypes, Name extends string, Shape extends ColumnsShapeBase>(this: T, name: Name, shape: (t: T['columnTypes']) => Shape, expr: (q: T) => Expression): WithSqlResult<T, Name, Shape>;
|
|
5389
5342
|
}
|
|
5390
5343
|
|
|
5391
|
-
type
|
|
5344
|
+
type UnionArgs<T extends PickQueryResult> = ({
|
|
5392
5345
|
result: {
|
|
5393
5346
|
[K in keyof T['result']]: {
|
|
5394
5347
|
queryType: T['result'][K]['queryType'];
|
|
5395
5348
|
};
|
|
5396
5349
|
};
|
|
5397
|
-
} | ((q: T) => Expression);
|
|
5398
|
-
declare const _queryUnion: <T extends Query>(base: T, args:
|
|
5350
|
+
} | ((q: T) => Expression))[];
|
|
5351
|
+
declare const _queryUnion: <T extends Query>(base: T, args: UnionArgs<T>, k: UnionKind) => T;
|
|
5399
5352
|
declare class Union {
|
|
5400
5353
|
/**
|
|
5401
5354
|
* Creates a union query, takes one or more queries or SQL expressions.
|
|
@@ -5451,58 +5404,46 @@ declare class Union {
|
|
|
5451
5404
|
*
|
|
5452
5405
|
* @param args - array of queries or SQL expressions
|
|
5453
5406
|
*/
|
|
5454
|
-
union<T extends PickQueryResult>(this: T, ...args:
|
|
5407
|
+
union<T extends PickQueryResult>(this: T, ...args: UnionArgs<T>): T;
|
|
5455
5408
|
/**
|
|
5456
5409
|
* Same as {@link union}, but allows duplicated rows.
|
|
5457
5410
|
*
|
|
5458
5411
|
* @param args - array of queries or SQL expressions
|
|
5459
5412
|
*/
|
|
5460
|
-
unionAll<T extends PickQueryResult>(this: T, ...args:
|
|
5413
|
+
unionAll<T extends PickQueryResult>(this: T, ...args: UnionArgs<T>): T;
|
|
5461
5414
|
/**
|
|
5462
5415
|
* Same as {@link union}, but uses a `INTERSECT` SQL keyword instead
|
|
5463
5416
|
*
|
|
5464
5417
|
* @param args - array of queries or SQL expressions
|
|
5465
5418
|
*/
|
|
5466
|
-
intersect<T extends PickQueryResult>(this: T, ...args:
|
|
5419
|
+
intersect<T extends PickQueryResult>(this: T, ...args: UnionArgs<T>): T;
|
|
5467
5420
|
/**
|
|
5468
5421
|
* Same as {@link intersect}, but allows duplicated rows.
|
|
5469
5422
|
*
|
|
5470
5423
|
* @param args - array of queries or SQL expressions
|
|
5471
5424
|
*/
|
|
5472
|
-
intersectAll<T extends PickQueryResult>(this: T, ...args:
|
|
5425
|
+
intersectAll<T extends PickQueryResult>(this: T, ...args: UnionArgs<T>): T;
|
|
5473
5426
|
/**
|
|
5474
5427
|
* Same as {@link union}, but uses an `EXCEPT` SQL keyword instead
|
|
5475
5428
|
*
|
|
5476
5429
|
* @param args - array of queries or SQL expressions
|
|
5477
5430
|
*/
|
|
5478
|
-
except<T extends PickQueryResult>(this: T, ...args:
|
|
5431
|
+
except<T extends PickQueryResult>(this: T, ...args: UnionArgs<T>): T;
|
|
5479
5432
|
/**
|
|
5480
5433
|
* Same as {@link except}, but allows duplicated rows.
|
|
5481
5434
|
*
|
|
5482
5435
|
* @param args - array of queries or SQL expressions
|
|
5483
5436
|
*/
|
|
5484
|
-
exceptAll<T extends PickQueryResult>(this: T, ...args:
|
|
5437
|
+
exceptAll<T extends PickQueryResult>(this: T, ...args: UnionArgs<T>): T;
|
|
5485
5438
|
}
|
|
5486
5439
|
|
|
5487
|
-
|
|
5488
|
-
|
|
5489
|
-
}
|
|
5440
|
+
interface UpdateSelf extends PickQueryMetaResultRelationsWithDataReturnTypeShape {
|
|
5441
|
+
inputType: RecordUnknown;
|
|
5442
|
+
}
|
|
5490
5443
|
type UpdateData<T extends UpdateSelf> = {
|
|
5491
|
-
[K in keyof T['inputType']]?: UpdateColumn<T, K>;
|
|
5492
|
-
} & {
|
|
5493
|
-
[K in keyof T['relations']]?: UpdateRelationData<T, T['relations'][K]['relationConfig']>;
|
|
5444
|
+
[K in keyof T['inputType'] | keyof T['relations']]?: K extends keyof T['inputType'] ? UpdateColumn<T, K> : UpdateRelationData<T, T['relations'][K]['relationConfig']>;
|
|
5494
5445
|
};
|
|
5495
|
-
type
|
|
5496
|
-
interface UpdateQueryOrExpression<T> extends QueryOrExpression<T> {
|
|
5497
|
-
meta: {
|
|
5498
|
-
kind: 'select';
|
|
5499
|
-
};
|
|
5500
|
-
}
|
|
5501
|
-
type UpdateColumn<T extends UpdateSelf, Key extends keyof T['inputType']> = T['inputType'][Key] | QueryOrExpression<T['inputType'][Key]> | {
|
|
5502
|
-
[K in keyof Query]: K extends 'then' ? QueryThen<T['inputType'][Key]> : Query[K];
|
|
5503
|
-
} | ((q: {
|
|
5504
|
-
[K in keyof T['relations'] | UpdateColumnArgKeys]: K extends keyof T['relations'] ? T['relations'][K] : K extends UpdateColumnArgKeys ? T[K] : never;
|
|
5505
|
-
}) => JsonItem | UpdateQueryOrExpression<T['inputType'][Key]>);
|
|
5446
|
+
type UpdateColumn<T extends UpdateSelf, Key extends keyof T['inputType']> = T['inputType'][Key] | QueryOrExpression<T['inputType'][Key]> | ((q: T) => QueryOrExpression<T['inputType'][Key]>);
|
|
5506
5447
|
type UpdateRelationData<T extends UpdateSelf, Rel extends RelationConfigBase> = QueryReturnsAll<T['returnType']> extends true ? Rel['dataForUpdate'] : Rel['one'] extends true ? Rel['dataForUpdate'] | Rel['dataForUpdateOne'] : Rel['dataForUpdate'] & Rel['dataForUpdateOne'];
|
|
5507
5448
|
type UpdateArg<T extends UpdateSelf> = T['meta']['hasWhere'] extends true ? UpdateData<T> : never;
|
|
5508
5449
|
type UpdateRawArgs<T extends UpdateSelf> = T['meta']['hasWhere'] extends true ? SQLQueryArgs : never;
|
|
@@ -5918,7 +5859,7 @@ declare module './aggregate' {
|
|
|
5918
5859
|
* @param search - name of the search to use the query from
|
|
5919
5860
|
* @param options - `text` for a text source, `options` for `ts_headline` options
|
|
5920
5861
|
*/
|
|
5921
|
-
headline<T extends PickQueryMeta>(this: T, search: HeadlineSearchArg<T>, options?: HeadlineParams<T>):
|
|
5862
|
+
headline<T extends PickQueryMeta>(this: T, search: HeadlineSearchArg<T>, options?: HeadlineParams<T>): SetQueryReturnsColumnOrThrow<T, QueryColumn<string>>;
|
|
5922
5863
|
}
|
|
5923
5864
|
}
|
|
5924
5865
|
type SearchArg<T extends PickQueryMeta, As extends string> = {
|
|
@@ -6144,22 +6085,14 @@ declare class SearchMethods {
|
|
|
6144
6085
|
search<T extends PickQueryMeta, As extends string>(this: T, arg: SearchArg<T, As>): WhereSearchResult<T, As>;
|
|
6145
6086
|
}
|
|
6146
6087
|
|
|
6147
|
-
type OrCreateArg<
|
|
6148
|
-
type UpsertArg<T extends Query, Data, BT> = {
|
|
6149
|
-
update: Data;
|
|
6150
|
-
create: CreateData<T, BT> | ((update: Data) => CreateData<T, BT>);
|
|
6151
|
-
} | UpsertArgWithData<T, Data, BT>;
|
|
6152
|
-
type UpsertArgWithData<T extends Query, Data, BT> = {
|
|
6153
|
-
data: Data;
|
|
6154
|
-
create: UpsertCreate<keyof Data, CreateData<T, BT>> | ((update: Data) => UpsertCreate<keyof Data, CreateData<T, BT>>);
|
|
6155
|
-
};
|
|
6088
|
+
type OrCreateArg<Data> = Data | (() => Data);
|
|
6156
6089
|
type UpsertCreate<DataKey extends PropertyKey, CD> = {
|
|
6157
6090
|
[K in keyof CD as K extends DataKey ? never : K]: CD[K];
|
|
6158
6091
|
} & {
|
|
6159
6092
|
[K in DataKey]?: K extends keyof CD ? CD[K] : never;
|
|
6160
6093
|
};
|
|
6161
|
-
type UpsertResult<T extends PickQueryMetaResult> = T['meta']['hasSelect'] extends true ? SetQueryReturnsOneKind<T, 'upsert'> :
|
|
6162
|
-
type UpsertThis =
|
|
6094
|
+
type UpsertResult<T extends PickQueryMetaResult> = T['meta']['hasSelect'] extends true ? SetQueryReturnsOneKind<T, 'upsert'> : SetQueryReturnsVoidKind<T, 'upsert'>;
|
|
6095
|
+
type UpsertThis = UpdateSelf & CreateSelf & QueryMetaHasWhere & {
|
|
6163
6096
|
returnType: 'one' | 'oneOrThrow';
|
|
6164
6097
|
};
|
|
6165
6098
|
declare class QueryUpsertOrCreate {
|
|
@@ -6256,7 +6189,13 @@ declare class QueryUpsertOrCreate {
|
|
|
6256
6189
|
*
|
|
6257
6190
|
* @param data - `update` property for the data to update, `create` property for the data to create
|
|
6258
6191
|
*/
|
|
6259
|
-
upsert<T extends UpsertThis, Update extends UpdateData<T>, BT extends CreateBelongsToData<T>>(this: T, data:
|
|
6192
|
+
upsert<T extends UpsertThis, Update extends UpdateData<T>, BT extends CreateBelongsToData<T>>(this: T, data: {
|
|
6193
|
+
update: Update;
|
|
6194
|
+
create: CreateData<T, BT> | ((update: Update) => CreateData<T, BT>);
|
|
6195
|
+
} | {
|
|
6196
|
+
data: Update;
|
|
6197
|
+
create: UpsertCreate<keyof Update, CreateData<T, BT>> | ((update: Update) => UpsertCreate<keyof Update, CreateData<T, BT>>);
|
|
6198
|
+
}): UpsertResult<T>;
|
|
6260
6199
|
/**
|
|
6261
6200
|
* `orCreate` creates a record only if it was not found by conditions.
|
|
6262
6201
|
*
|
|
@@ -6288,21 +6227,17 @@ declare class QueryUpsertOrCreate {
|
|
|
6288
6227
|
*
|
|
6289
6228
|
* @param data - the same data as for `create`, it may be returned from a callback
|
|
6290
6229
|
*/
|
|
6291
|
-
orCreate<T extends UpsertThis, BT extends CreateBelongsToData<T>>(this: T, data: OrCreateArg<T, BT
|
|
6230
|
+
orCreate<T extends UpsertThis, BT extends CreateBelongsToData<T>>(this: T, data: OrCreateArg<CreateData<T, BT>>): UpsertResult<T>;
|
|
6292
6231
|
}
|
|
6293
6232
|
|
|
6294
|
-
type QueryTransformFn<T extends Query> = (input: T['then'] extends QueryThen<infer Data> ? Data : never) => unknown;
|
|
6295
|
-
type QueryTransform<T extends QueryBase, Data> = {
|
|
6296
|
-
[K in keyof T]: K extends 'returnType' ? 'valueOrThrow' : K extends 'result' ? {
|
|
6297
|
-
value: QueryColumn<Data>;
|
|
6298
|
-
} : K extends 'then' ? QueryThen<Data> : T[K];
|
|
6299
|
-
};
|
|
6300
6233
|
declare class TransformMethods {
|
|
6301
6234
|
/**
|
|
6302
6235
|
* Transform the result of the query right after loading it.
|
|
6303
6236
|
*
|
|
6304
6237
|
* `transform` method should be called in the last order, other methods can't be chained after calling it.
|
|
6305
6238
|
*
|
|
6239
|
+
* It is meant to transform the whole result of a query, for transforming individual records consider using {@link QueryMap.map}.
|
|
6240
|
+
*
|
|
6306
6241
|
* The [hooks](/guide/hooks.html) that are going to run after the query will receive the query result **before** transferring.
|
|
6307
6242
|
*
|
|
6308
6243
|
* Consider the following example of a cursor-based pagination by `id`:
|
|
@@ -6349,14 +6284,66 @@ declare class TransformMethods {
|
|
|
6349
6284
|
*
|
|
6350
6285
|
* @param fn - function to transform query result with
|
|
6351
6286
|
*/
|
|
6352
|
-
transform<T extends Query,
|
|
6287
|
+
transform<T extends Query, Result>(this: T, fn: (input: T['then'] extends QueryThen<infer Data> ? Data : never) => Result): {
|
|
6288
|
+
[K in keyof T]: K extends 'returnType' ? 'valueOrThrow' : K extends 'result' ? {
|
|
6289
|
+
value: QueryColumn<Result>;
|
|
6290
|
+
} : K extends 'then' ? QueryThen<Result> : T[K];
|
|
6291
|
+
};
|
|
6292
|
+
}
|
|
6293
|
+
|
|
6294
|
+
declare class QueryMap {
|
|
6295
|
+
/**
|
|
6296
|
+
* Use `map` to transform individual records of a query result.
|
|
6297
|
+
*
|
|
6298
|
+
* It accepts a single record and should return a single transformed record.
|
|
6299
|
+
*
|
|
6300
|
+
* For transforming the whole result of a query, consider using [transform](#transform) instead.
|
|
6301
|
+
*
|
|
6302
|
+
* The [hooks](/guide/hooks) that are going to run after the query will receive the query result **before** transformation.
|
|
6303
|
+
*
|
|
6304
|
+
* ```ts
|
|
6305
|
+
* // add a `titleLength` to every post
|
|
6306
|
+
* const posts = await db.post.limit(10).map((post) => ({
|
|
6307
|
+
* ...post,
|
|
6308
|
+
* titleLength: post.title.length,
|
|
6309
|
+
* }));
|
|
6310
|
+
*
|
|
6311
|
+
* posts[0].titleLength; // number
|
|
6312
|
+
*
|
|
6313
|
+
* // using the exact same `map` function to transform a single post
|
|
6314
|
+
* const singlePost = await db.post.find(id).map((post) => ({
|
|
6315
|
+
* ...post,
|
|
6316
|
+
* titleLength: post.title.length,
|
|
6317
|
+
* }));
|
|
6318
|
+
*
|
|
6319
|
+
* singlePost.titleLength; // number
|
|
6320
|
+
*
|
|
6321
|
+
* // can be used in sub-queries
|
|
6322
|
+
* const postsWithComments = await db.post.select('title', {
|
|
6323
|
+
* comments: (q) =>
|
|
6324
|
+
* q.comments.map((comment) => ({
|
|
6325
|
+
* ...comment,
|
|
6326
|
+
* truncatedContent: comment.content.slice(0, 100),
|
|
6327
|
+
* })),
|
|
6328
|
+
* });
|
|
6329
|
+
*
|
|
6330
|
+
* postsWithComments[0].comments[0].truncatedContent; // string
|
|
6331
|
+
* ```
|
|
6332
|
+
*
|
|
6333
|
+
* @param fn - function to transform an individual record
|
|
6334
|
+
*/
|
|
6335
|
+
map<T extends Query, Result extends RecordUnknown>(this: T, fn: (input: QueryReturnsAll<T['returnType']> extends true ? T['then'] extends QueryThen<(infer Data)[]> ? Data : never : T['then'] extends QueryThen<infer Data> ? Data : never) => Result): {
|
|
6336
|
+
[K in keyof T]: K extends 'result' ? {
|
|
6337
|
+
[K in keyof Result]: QueryColumn<Result[K]>;
|
|
6338
|
+
} : K extends 'then' ? QueryThen<QueryReturnsAll<T['returnType']> extends true ? Result[] : Result> : T[K];
|
|
6339
|
+
};
|
|
6353
6340
|
}
|
|
6354
6341
|
|
|
6355
6342
|
interface WindowArg<T extends OrderArgSelf> {
|
|
6356
6343
|
[K: string]: WindowArgDeclaration<T> | Expression;
|
|
6357
6344
|
}
|
|
6358
6345
|
interface WindowArgDeclaration<T extends OrderArgSelf = OrderArgSelf> {
|
|
6359
|
-
partitionBy?: SelectableOrExpression<T> |
|
|
6346
|
+
partitionBy?: SelectableOrExpression<T> | SelectableOrExpressions<T>;
|
|
6360
6347
|
order?: OrderArg<T>;
|
|
6361
6348
|
}
|
|
6362
6349
|
type WindowResult<T, W extends RecordUnknown> = T & {
|
|
@@ -6368,16 +6355,15 @@ type OrderArgSelf = PickQueryMetaResult;
|
|
|
6368
6355
|
type OrderArg<T extends OrderArgSelf> = OrderArgKey<T> | OrderArgTsQuery<T> | {
|
|
6369
6356
|
[K in OrderArgKey<T> | OrderArgTsQuery<T>]?: K extends OrderArgTsQuery<T> ? OrderTsQueryConfig : SortDir;
|
|
6370
6357
|
} | Expression;
|
|
6358
|
+
type OrderArgs<T extends OrderArgSelf> = OrderArg<T>[];
|
|
6371
6359
|
type OrderArgTsQuery<T extends OrderArgSelf> = string | undefined extends T['meta']['tsQuery'] ? never : Exclude<T['meta']['tsQuery'], undefined>;
|
|
6372
6360
|
type OrderArgKey<T extends OrderArgSelf> = keyof T['meta']['selectable'] | {
|
|
6373
6361
|
[K in keyof T['result']]: T['result'][K]['dataType'] extends 'array' | 'object' ? never : K;
|
|
6374
6362
|
}[keyof T['result']];
|
|
6375
|
-
type
|
|
6376
|
-
type GroupArg<T extends PickQueryResult> = {
|
|
6363
|
+
type GroupArgs<T extends PickQueryResult> = ({
|
|
6377
6364
|
[K in keyof T['result']]: T['result'][K]['dataType'] extends 'array' | 'object' ? never : K;
|
|
6378
|
-
}[keyof T['result']] | Expression;
|
|
6379
|
-
|
|
6380
|
-
type QueryHelper<T extends PickQueryMetaShape, Args extends unknown[], Result> = {
|
|
6365
|
+
}[keyof T['result']] | Expression)[];
|
|
6366
|
+
interface QueryHelper<T extends PickQueryMetaShape, Args extends unknown[], Result> {
|
|
6381
6367
|
<Q extends {
|
|
6382
6368
|
returnType: QueryReturnType;
|
|
6383
6369
|
meta: QueryMetaBase & {
|
|
@@ -6388,7 +6374,7 @@ type QueryHelper<T extends PickQueryMetaShape, Args extends unknown[], Result> =
|
|
|
6388
6374
|
withData: WithDataBase;
|
|
6389
6375
|
}>(q: Q, ...args: Args): Result extends Query ? MergeQuery<Q, Result> : Result;
|
|
6390
6376
|
result: Result;
|
|
6391
|
-
}
|
|
6377
|
+
}
|
|
6392
6378
|
type QueryHelperResult<T extends QueryHelper<Query, unknown[], unknown>> = T['result'];
|
|
6393
6379
|
type NarrowTypeResult<T extends PickQueryMetaResultReturnType, Narrow> = {
|
|
6394
6380
|
[K in keyof T['result']]: K extends keyof Narrow ? {
|
|
@@ -6400,10 +6386,10 @@ declare const _queryAll: <T extends Query>(q: T) => SetQueryReturnsAll<T>;
|
|
|
6400
6386
|
declare const _queryTake: <T extends PickQueryResult>(q: T) => SetQueryReturnsOne<T>;
|
|
6401
6387
|
declare const _queryTakeOptional: <T extends PickQueryResult>(q: T) => SetQueryReturnsOneOptional<T>;
|
|
6402
6388
|
declare const _queryExec: <T extends Query>(q: T) => never;
|
|
6403
|
-
declare const _queryFindBy: <T extends QueryBase<EmptyObject>>(q: T, args:
|
|
6404
|
-
declare const _queryFindByOptional: <T extends QueryBase<EmptyObject>>(q: T, args:
|
|
6389
|
+
declare const _queryFindBy: <T extends QueryBase<EmptyObject>>(q: T, args: WhereArgs<T>) => SetQueryReturnsOne<WhereResult<T>>;
|
|
6390
|
+
declare const _queryFindByOptional: <T extends QueryBase<EmptyObject>>(q: T, args: WhereArgs<T>) => SetQueryReturnsOneOptional<WhereResult<T>>;
|
|
6405
6391
|
declare const _queryRows: <T extends Query>(q: T) => SetQueryReturnsRows<T>;
|
|
6406
|
-
interface QueryMethods<ColumnTypes> extends AsMethods, AggregateMethods, Select, FromMethods, Join, WithMethods, Union,
|
|
6392
|
+
interface QueryMethods<ColumnTypes> extends AsMethods, AggregateMethods, Select, FromMethods, Join, WithMethods, Union, JsonMethods, Create, Update, Delete, Transaction, For, Where, SearchMethods, Clear, Having, QueryLog, QueryHooks, QueryUpsertOrCreate, QueryGet, MergeQueryMethods, SqlMethod<ColumnTypes>, TransformMethods, QueryMap, ScopeMethods, SoftDeleteMethods, ExpressionMethods {
|
|
6407
6393
|
}
|
|
6408
6394
|
declare class QueryMethods<ColumnTypes> {
|
|
6409
6395
|
/**
|
|
@@ -6515,7 +6501,7 @@ declare class QueryMethods<ColumnTypes> {
|
|
|
6515
6501
|
*
|
|
6516
6502
|
* @param columns - column names or a raw SQL
|
|
6517
6503
|
*/
|
|
6518
|
-
distinct<T extends PickQueryMeta>(this: T, ...columns:
|
|
6504
|
+
distinct<T extends PickQueryMeta>(this: T, ...columns: SelectableOrExpressions<T>): T;
|
|
6519
6505
|
/**
|
|
6520
6506
|
* Finds a single record by the primary key (id), throws [NotFoundError](/guide/error-handling.html) if not found.
|
|
6521
6507
|
* Not available if the table has no or multiple primary keys.
|
|
@@ -6526,7 +6512,7 @@ declare class QueryMethods<ColumnTypes> {
|
|
|
6526
6512
|
*
|
|
6527
6513
|
* @param value - primary key value to find by
|
|
6528
6514
|
*/
|
|
6529
|
-
find<T extends PickQueryShapeResultSinglePrimaryKey>(this: T, value:
|
|
6515
|
+
find<T extends PickQueryShapeResultSinglePrimaryKey>(this: T, value: T['internal']['singlePrimaryKey'] | Expression): SetQueryReturnsOne<T> & QueryMetaHasWhere;
|
|
6530
6516
|
/**
|
|
6531
6517
|
* Finds a single record with a given SQL, throws {@link NotFoundError} if not found:
|
|
6532
6518
|
*
|
|
@@ -6539,7 +6525,7 @@ declare class QueryMethods<ColumnTypes> {
|
|
|
6539
6525
|
*
|
|
6540
6526
|
* @param args - SQL expression
|
|
6541
6527
|
*/
|
|
6542
|
-
findBySql<T extends PickQueryResult>(this: T, ...args: SQLQueryArgs): SetQueryReturnsOne<
|
|
6528
|
+
findBySql<T extends PickQueryResult>(this: T, ...args: SQLQueryArgs): SetQueryReturnsOne<T> & QueryMetaHasWhere;
|
|
6543
6529
|
/**
|
|
6544
6530
|
* Finds a single record by the primary key (id), returns `undefined` when not found.
|
|
6545
6531
|
* Not available if the table has no or multiple primary keys.
|
|
@@ -6550,7 +6536,7 @@ declare class QueryMethods<ColumnTypes> {
|
|
|
6550
6536
|
*
|
|
6551
6537
|
* @param value - primary key value to find by, or a raw SQL
|
|
6552
6538
|
*/
|
|
6553
|
-
findOptional<T extends PickQueryShapeResultSinglePrimaryKey>(this: T, value:
|
|
6539
|
+
findOptional<T extends PickQueryShapeResultSinglePrimaryKey>(this: T, value: T['internal']['singlePrimaryKey'] | Expression): SetQueryReturnsOneOptional<T> & QueryMetaHasWhere;
|
|
6554
6540
|
/**
|
|
6555
6541
|
* Finds a single record with a given SQL.
|
|
6556
6542
|
* Returns `undefined` when not found.
|
|
@@ -6564,7 +6550,7 @@ declare class QueryMethods<ColumnTypes> {
|
|
|
6564
6550
|
*
|
|
6565
6551
|
* @param args - SQL expression
|
|
6566
6552
|
*/
|
|
6567
|
-
findBySqlOptional<T extends PickQueryResult>(this: T, ...args: SQLQueryArgs): SetQueryReturnsOneOptional<
|
|
6553
|
+
findBySqlOptional<T extends PickQueryResult>(this: T, ...args: SQLQueryArgs): SetQueryReturnsOneOptional<T> & QueryMetaHasWhere;
|
|
6568
6554
|
/**
|
|
6569
6555
|
* Finds a single unique record, throws [NotFoundError](/guide/error-handling.html) if not found.
|
|
6570
6556
|
* It accepts values of primary keys or unique indexes defined on the table.
|
|
@@ -6578,7 +6564,7 @@ declare class QueryMethods<ColumnTypes> {
|
|
|
6578
6564
|
*
|
|
6579
6565
|
* @param uniqueColumnValues - is derived from primary keys and unique indexes in the table
|
|
6580
6566
|
*/
|
|
6581
|
-
findBy<T extends PickQueryResultUniqueColumns>(this: T, uniqueColumnValues: T['internal']['uniqueColumns']): SetQueryReturnsOne<
|
|
6567
|
+
findBy<T extends PickQueryResultUniqueColumns>(this: T, uniqueColumnValues: T['internal']['uniqueColumns']): SetQueryReturnsOne<T> & QueryMetaHasWhere;
|
|
6582
6568
|
/**
|
|
6583
6569
|
* Finds a single unique record, returns `undefined` if not found.
|
|
6584
6570
|
* It accepts values of primary keys or unique indexes defined on the table.
|
|
@@ -6592,7 +6578,7 @@ declare class QueryMethods<ColumnTypes> {
|
|
|
6592
6578
|
*
|
|
6593
6579
|
* @param uniqueColumnValues - is derived from primary keys and unique indexes in the table
|
|
6594
6580
|
*/
|
|
6595
|
-
findByOptional<T extends PickQueryResultUniqueColumns>(this: T, uniqueColumnValues: T['internal']['uniqueColumns']): SetQueryReturnsOneOptional<
|
|
6581
|
+
findByOptional<T extends PickQueryResultUniqueColumns>(this: T, uniqueColumnValues: T['internal']['uniqueColumns']): SetQueryReturnsOneOptional<T> & QueryMetaHasWhere;
|
|
6596
6582
|
/**
|
|
6597
6583
|
* Specifies the schema to be used as a prefix of a table name.
|
|
6598
6584
|
*
|
|
@@ -6644,7 +6630,7 @@ declare class QueryMethods<ColumnTypes> {
|
|
|
6644
6630
|
*
|
|
6645
6631
|
* @param columns - column names or a raw SQL
|
|
6646
6632
|
*/
|
|
6647
|
-
group<T extends PickQueryResult>(this: T, ...columns:
|
|
6633
|
+
group<T extends PickQueryResult>(this: T, ...columns: GroupArgs<T>): T;
|
|
6648
6634
|
/**
|
|
6649
6635
|
* Add a window with `window` and use it later by its name for aggregate or window functions:
|
|
6650
6636
|
*
|
|
@@ -7056,6 +7042,8 @@ interface PickQueryMetaResultRelationsWindowsColumnTypes extends PickQueryMetaRe
|
|
|
7056
7042
|
}
|
|
7057
7043
|
interface PickQueryWithDataColumnTypes extends PickQueryWithData, PickQueryColumnTypes {
|
|
7058
7044
|
}
|
|
7045
|
+
interface PickQueryResultColumnTypes extends PickQueryResult, PickQueryColumnTypes {
|
|
7046
|
+
}
|
|
7059
7047
|
interface PickQueryMetaWithDataColumnTypes extends PickQueryMeta, PickQueryWithData, PickQueryColumnTypes {
|
|
7060
7048
|
}
|
|
7061
7049
|
interface PickQueryMetaTable extends PickQueryMeta, PickQueryTable {
|
|
@@ -7175,7 +7163,7 @@ type SetQueryReturnsPluckColumnKindResult<T extends PickQueryMetaResult, Kind ex
|
|
|
7175
7163
|
pluck: T['result']['value'];
|
|
7176
7164
|
} : K extends 'returnType' ? 'pluck' : K extends 'result' ? Result : K extends 'then' ? QueryThen<T['result']['value']['outputType'][]> : T[K];
|
|
7177
7165
|
} & QueryMetaHasSelect;
|
|
7178
|
-
type SetQueryReturnsValueOrThrow<T extends PickQueryMeta, Arg extends
|
|
7166
|
+
type SetQueryReturnsValueOrThrow<T extends PickQueryMeta, Arg extends keyof T['meta']['selectable']> = SetQueryReturnsColumnOrThrow<T, T['meta']['selectable'][Arg]['column']> & T['meta']['selectable'][Arg]['column']['operators'];
|
|
7179
7167
|
type SetQueryReturnsValueOptional<T extends PickQueryMeta, Arg extends GetStringArg<T>> = SetQueryReturnsColumnOptional<T, {
|
|
7180
7168
|
[K in keyof T['meta']['selectable'][Arg]['column']]: K extends 'outputType' ? T['meta']['selectable'][Arg]['column'][K] | undefined : T['meta']['selectable'][Arg]['column'][K];
|
|
7181
7169
|
}> & Omit<T['meta']['selectable'][Arg]['column']['operators'], 'equals' | 'not'> & OperatorsNullable<T['meta']['selectable'][Arg]['column']>;
|
|
@@ -7270,7 +7258,7 @@ interface ColumnFromDbParams {
|
|
|
7270
7258
|
interface PickColumnData {
|
|
7271
7259
|
data: ColumnData;
|
|
7272
7260
|
}
|
|
7273
|
-
declare abstract class ColumnType<Schema extends ColumnTypeSchemaArg = ColumnTypeSchemaArg, Type = unknown, InputSchema = any, Ops
|
|
7261
|
+
declare abstract class ColumnType<Schema extends ColumnTypeSchemaArg = ColumnTypeSchemaArg, Type = unknown, InputSchema = any, Ops = any, InputType = Type, OutputType = Type, OutputSchema = InputSchema, QueryType = InputType, QuerySchema = InputSchema> extends ColumnTypeBase<Schema, Type, InputSchema, Ops, InputType, OutputType, OutputSchema, QueryType, QuerySchema, ColumnData> {
|
|
7274
7262
|
/**
|
|
7275
7263
|
* Mark the column as a primary key.
|
|
7276
7264
|
* This column type becomes an argument of the `.find` method.
|
|
@@ -7631,9 +7619,9 @@ interface DefaultColumnTypes<SchemaConfig extends ColumnSchemaConfig> extends Ti
|
|
|
7631
7619
|
type(dataType: string): CustomTypeColumn<SchemaConfig>;
|
|
7632
7620
|
domain(dataType: string): DomainColumn<SchemaConfig>;
|
|
7633
7621
|
}
|
|
7634
|
-
declare const makeColumnTypes: <SchemaConfig extends ColumnSchemaConfig<orchid_core.ColumnTypeBase<orchid_core.ColumnTypeSchemaArg, unknown, any,
|
|
7622
|
+
declare const makeColumnTypes: <SchemaConfig extends ColumnSchemaConfig<orchid_core.ColumnTypeBase<orchid_core.ColumnTypeSchemaArg, unknown, any, any, unknown, unknown, any, unknown, any, orchid_core.ColumnDataBase>>>(schema: SchemaConfig) => DefaultColumnTypes<SchemaConfig>;
|
|
7635
7623
|
|
|
7636
|
-
declare const simplifyColumnDefault: (value?: string) => RawSQL<orchid_core.QueryColumn<unknown,
|
|
7624
|
+
declare const simplifyColumnDefault: (value?: string) => RawSQL<orchid_core.QueryColumn<unknown, any>, DefaultColumnTypes<orchid_core.ColumnSchemaConfig<ColumnTypeBase<orchid_core.ColumnTypeSchemaArg, unknown, any, any, unknown, unknown, any, unknown, any, orchid_core.ColumnDataBase>>>> | undefined;
|
|
7637
7625
|
declare const instantiateColumn: (typeFn: () => ColumnTypeBase, params: ColumnFromDbParams) => ColumnTypeBase;
|
|
7638
7626
|
|
|
7639
7627
|
interface ColumnsShape {
|
|
@@ -7904,4 +7892,4 @@ type CopyResult<T extends PickQueryMeta> = SetQueryKind<T, 'copy'>;
|
|
|
7904
7892
|
*/
|
|
7905
7893
|
declare function copyTableData<T extends PickQueryMetaShape>(query: T, arg: CopyArg<T>): CopyResult<T>;
|
|
7906
7894
|
|
|
7907
|
-
export { Adapter, AdapterConfig, AdapterOptions, AddQueryDefaults, AddQuerySelect, AfterHook, AggregateMethods, AggregateOptions, AliasOrTable, ArrayColumn, ArrayColumnValue, ArrayData, AsMethods, AsQueryArg,
|
|
7895
|
+
export { Adapter, AdapterConfig, AdapterOptions, AddQueryDefaults, AddQuerySelect, AfterHook, AggregateMethods, AggregateOptions, AliasOrTable, ArrayColumn, ArrayColumnValue, ArrayData, AsMethods, AsQueryArg, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BooleanQueryColumn, BoxColumn, ByteaColumn, CharColumn, CidrColumn, CircleColumn, CitextColumn, Clear, ClearStatement, CloneSelfKeys, ColumnData, ColumnFromDbParams, ColumnInfoQueryData, ColumnOperators, ColumnRefExpression, ColumnType, ColumnsByType, ColumnsShape, ColumnsShapeToNullableObject, ColumnsShapeToObject, ColumnsShapeToObjectArray, ColumnsShapeToPluck, CommonQueryData, ComputedColumnsBase, CopyOptions, CopyQueryData, Create, CreateBelongsToData, CreateColumn, CreateCtx, CreateData, CreateKind, CreateMethodsNames, CreateRelationsData, CreateRelationsDataOmittingFKeys, CreateSelf, CustomTypeColumn, DateBaseColumn, DateColumn, DateColumnInput, DateTimeBaseClass, DateTimeTzBaseClass, Db, DbDomainArg, DbDomainArgRecord, DbExtension, DbOptions, DbResult, DbSharedOptions, DbTableConstructor, DbTableOptionScopes, DbTableOptions, DecimalColumn, DecimalColumnData, DefaultColumnTypes, DefaultSchemaConfig, Delete, DeleteArgs, DeleteMethodsNames, DeleteQueryData, DeleteResult, DomainColumn, DoublePrecisionColumn, DynamicRawSQL, EnumColumn, ExpressionMethods, ExpressionOutput, FnExpression, FnExpressionArgs, FnExpressionArgsPairs, FnExpressionArgsValue, For, FromArg, FromMethods, FromQuerySelf, FromResult, GetArg, GetColumnInfo, GetQueryResult, GetResult, GetResultOptional, GetStringArg, GroupArgs, Having, HavingItem, HookAction, HookSelect, IdentityColumn, InetColumn, InsertQueryData, IntegerBaseColumn, IntegerColumn, IntervalColumn, IsolationLevel, JSONColumn, JSONTextColumn, Join, JoinArgs, JoinCallback, JoinFirstArg, JoinItem, JoinItemArgs, JoinLateralCallback, JoinLateralItem, JoinLateralResult, JoinOverrides, JoinQueryBuilder, JoinQueryMethod, JoinResult, JoinedParsers, JoinedShapes, JsonMethods, LimitedTextBaseColumn, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MapTableScopesOption, MergeQuery, MergeQueryMethods, MoneyColumn, MoreThanOneRowError, NoPrimaryKeyOption, NotFoundError, NumberAsStringBaseColumn, NumberBaseColumn, NumberColumnData, OnConflictMerge, OnConflictQueryBuilder, OnConflictSet, OnConflictTarget, OnMethods, Operator, Operators, OperatorsAny, OperatorsArray, OperatorsBoolean, OperatorsDate, OperatorsJson, OperatorsNumber, OperatorsText, OperatorsTime, OrCreateArg, OrExpression, OrchidOrmError, OrchidOrmInternalError, OrderArg, OrderArgSelf, OrderArgs, OrderItem, OrderTsQueryConfig, Over, PathColumn, PickColumnData, PickQueryBaseQuery, PickQueryColumnTypes, PickQueryDataShapeAndJoinedShapes, PickQueryInternal, PickQueryMetaRelations, PickQueryMetaResultRelations, PickQueryMetaResultRelationsWindows, PickQueryMetaResultRelationsWindowsColumnTypes, PickQueryMetaResultRelationsWithDataReturnType, PickQueryMetaResultRelationsWithDataReturnTypeShape, PickQueryMetaResultReturnTypeWithDataWindows, PickQueryMetaResultReturnTypeWithDataWindowsTable, PickQueryMetaShapeRelationsWithData, PickQueryMetaTable, PickQueryMetaTableShape, PickQueryMetaTableShapeReturnTypeWithData, PickQueryMetaWithData, PickQueryMetaWithDataColumnTypes, PickQueryQ, PickQueryQAndBaseQuery, PickQueryQAndInternal, PickQueryRelations, PickQueryRelationsWithData, PickQueryResultColumnTypes, PickQueryShapeResultSinglePrimaryKey, PickQueryShapeSinglePrimaryKey, PickQuerySinglePrimaryKey, PickQueryWindows, PickQueryWithData, PickQueryWithDataColumnTypes, PointColumn, PolygonColumn, Query, QueryAfterHook, QueryArraysResult, QueryBase, QueryBaseThen, QueryBeforeHook, QueryData, QueryDataFromItem, QueryDataJoinTo, QueryDefaultReturnData, QueryError, QueryErrorName, QueryGet, QueryGetSelf, QueryHelperResult, QueryHookSelect, QueryHooks, QueryInternal, QueryLog, QueryLogObject, QueryLogOptions, QueryLogger, QueryMetaHasSelect, QueryMetaHasWhere, QueryMethods, QueryOrExpression, QueryOrExpressionBooleanOrNullResult, QueryResult, QueryReturnsAll, QueryScopeData, QueryScopes, QuerySourceItem, QueryUpsertOrCreate, QueryWithComputed, QueryWithTable, RawSQL, RealColumn, RecordOfColumnsShapeBase, RefExpression, RelationConfigBase, RelationConfigDataForCreate, RelationJoinQuery, RelationQuery, RelationQueryBase, RelationsBase, SearchArg, SearchMethods, SearchWeight, SearchWeightRecord, Select, SelectArg, SelectArgs, SelectAs, SelectItem, SelectQueryData, SelectSubQueryResult, SelectableFromShape, SelectableOfType, SelectableOrExpression, SelectableOrExpressionOfType, SelectableOrExpressions, SerialColumn, SerialColumnData, SetQueryKind, SetQueryKindResult, SetQueryReturnsAll, SetQueryReturnsAllKind, SetQueryReturnsAllKindResult, SetQueryReturnsColumnInfo, SetQueryReturnsColumnKind, SetQueryReturnsColumnKindResult, SetQueryReturnsColumnOptional, SetQueryReturnsColumnOrThrow, SetQueryReturnsOne, SetQueryReturnsOneKind, SetQueryReturnsOneKindResult, SetQueryReturnsOneOptional, SetQueryReturnsPluck, SetQueryReturnsPluckColumn, SetQueryReturnsPluckColumnKind, SetQueryReturnsPluckColumnKindResult, SetQueryReturnsRowCount, SetQueryReturnsRows, SetQueryReturnsValueOptional, SetQueryReturnsValueOrThrow, SetQueryReturnsVoid, SetQueryReturnsVoidKind, SetQueryTableAlias, ShapeColumnPrimaryKeys, ShapeUniqueColumns, SimpleJoinItem, SimpleJoinItemNonSubQueryArgs, SmallIntColumn, SmallSerialColumn, SortDir, SqlFn, SqlMethod, StringColumn$1 as StringColumn, TableData, TableDataFn, TableDataInput, TableDataItem, TableDataItemsUniqueColumnTuples, TableDataItemsUniqueColumns, TableDataItemsUniqueConstraints, TableDataMethods, TextBaseColumn, TextColumn, TextColumnData, Then, TimeColumn, TimestampColumn, TimestampTZColumn, ToSQLCtx, ToSQLOptions, ToSQLQuery, Transaction, TransactionAdapter, TransactionOptions, TransformMethods, TruncateQueryData, TsQueryColumn, TsVectorColumn, TypeParsers, UUIDColumn, UnhandledTypeError, Union, UnionArgs, UnionItem, UnionKind, UnionSet, UniqueConstraints, UniqueQueryTypeOrExpression, UniqueTableDataItem, UnknownColumn, Update, UpdateArg, UpdateCtx, UpdateCtxCollect, UpdateData, UpdateQueryData, UpdateQueryDataItem, UpdateQueryDataObject, UpdateSelf, UpdatedAtDataInjector, UpsertResult, UpsertThis, VarCharColumn, VirtualColumn, Where, WhereArg, WhereArgs, WhereInArg, WhereInColumn, WhereInItem, WhereInValues, WhereItem, WhereJsonPathEqualsItem, WhereNotArgs, WhereOnItem, WhereOnJoinItem, WhereQueryBuilder, WhereResult, WhereSearchItem, WhereSearchResult, WindowArg, WindowArgDeclaration, WindowDeclaration, WindowItem, WithArgsOptions, WithDataBase, WithDataItem, WithDataItems, WithItem, WithMethods, WithOptions, WithQueryBuilder, WithRecursiveOptions, WithResult, WithSqlResult, WrapQueryArg, XMLColumn, _initQueryBuilder, _queryAfterSaveCommit, _queryAll, _queryAs, _queryChangeCounter, _queryCreate, _queryCreateFrom, _queryCreateMany, _queryCreateManyFrom, _queryCreateManyRaw, _queryCreateRaw, _queryDefaults, _queryDelete, _queryExec, _queryFindBy, _queryFindByOptional, _queryGet, _queryGetOptional, _queryHookAfterCreate, _queryHookAfterCreateCommit, _queryHookAfterDelete, _queryHookAfterDeleteCommit, _queryHookAfterQuery, _queryHookAfterSave, _queryHookAfterUpdate, _queryHookAfterUpdateCommit, _queryHookBeforeCreate, _queryHookBeforeDelete, _queryHookBeforeQuery, _queryHookBeforeSave, _queryHookBeforeUpdate, _queryInsert, _queryInsertFrom, _queryInsertMany, _queryInsertManyFrom, _queryInsertManyRaw, _queryInsertRaw, _queryJoinOn, _queryJoinOnJsonPathEquals, _queryJoinOrOn, _queryOr, _queryOrNot, _queryRows, _querySelect, _queryTake, _queryTakeOptional, _queryUnion, _queryUpdate, _queryUpdateOrThrow, _queryUpdateRaw, _queryWhere, _queryWhereExists, _queryWhereIn, _queryWhereNot, _queryWhereNotSql, _queryWhereSql, addComputedColumns, addParserForRawExpression, addParserForSelectItem, addQueryOn, anyShape, checkIfASimpleQuery, cloneQuery, cloneQueryBaseUnscoped, columnCheckToCode, columnCode, columnForeignKeysToCode, columnIndexesToCode, columnsShapeToCode, commitSql, constraintInnerToCode, constraintToCode, copyTableData, countSelect, createDb, defaultSchemaConfig, extendQuery, foreignKeyArgumentToCode, getClonedQueryData, getColumnInfo, getColumnTypes, getPrimaryKeys, getQueryAs, getShapeFromSelect, getSqlText, handleResult, identityToCode, indexInnerToCode, indexToCode, instantiateColumn, isDefaultTimeStamp, isQueryReturnsAll, isSelectingCount, joinSubQuery, logColors, logParamToLogObject, makeColumnTypes, makeColumnsByType, makeFnExpression, makeRegexToFindInSql, makeSQL, parseRecord, parseResult, parseTableData, parseTableDataInput, primaryKeyInnerToCode, processSelectArg, pushLimitSQL, pushQueryArray, pushQueryOn, pushQueryOrOn, pushQueryValue, pushTableDataCode, queryFrom, queryFromSql, queryJson, queryMethodByReturnType, queryTypeWithLimitOne, queryWrap, quote, quoteString, raw, referencesArgsToCode, resolveSubQueryCallback, rollbackSql, saveSearchAlias, setParserForSelectedString, setQueryObjectValue, setQueryOperators, simplifyColumnDefault, sqlFn, sqlQueryArgsToExpression, tableDataMethods, templateLiteralToSQL, testTransaction, throwIfNoWhere, toSQL, toSQLCacheKey };
|