pqb 0.29.1 → 0.30.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 +151 -65
- package/dist/index.js +3734 -3619
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +3735 -3620
- 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, Sql, RecordUnknown, RecordKeyTrue, EmptyObject, QueryBaseCommon, QueryColumns, QueryMetaBase, QueryReturnType, QueryThen, Expression, QueryColumn, MaybeArray, SelectableBase, TemplateLiteralArgs, PickOutputTypeAndOperators, PickQueryResult, OperatorToSQL, ColumnsShapeBase, ColumnsParsers, RecordString, PickQueryTable, FnUnknownToUnknown, getValueKey, PickQueryShape, PickQueryTableMetaResult, EmptyTuple, PickQueryMeta, PickQueryMetaResultReturnType, QueryColumnToNullable, PickQueryMetaShape, PickQueryTableMetaResultShape, QueryColumnBooleanOrNull, SQLQueryArgs, ColumnSchemaConfig, DateColumnData, Code, TimeInterval, ColumnTypeSchemaArg, ColumnDataBase, ArrayMethodsData, RawSQLBase, RawSQLValues, ExpressionTypeMethod, DynamicSQLArg, StaticSQLArgs, ForeignKeyTable, ColumnNameOfTable, BaseNumberData, PickColumnBaseData, ColumnWithDefault, StringTypeData, PrimaryKeyColumn, ParseColumn, EncodeColumn, PickQueryMetaResult, QueryColumnsInit, DefaultSelectColumns, CoreQueryScopes, DbBase, QueryCatch, TransactionState, ColumnTypeBase, PickQueryMetaResultWindows, CoreBaseOperators, PickQueryUniqueProperties, IsQuery, PickQueryMetaShapeResultReturnType, MergeObjects, PickQueryResultUniqueColumns, QueryInternalBase, PickQueryReturnType, PickType, ColumnShapeOutput, PickOutputType, PickQueryMetaReturnType, UniqueColumn, TimestampHelpers, Codes, ColumnDataCheckBase, PickQueryTableMetaShape } from 'orchid-core';
|
|
2
|
+
import { QueryResultRow, AdapterConfigBase, AdapterBase, QueryInput, Sql, RecordUnknown, RecordKeyTrue, EmptyObject, QueryBaseCommon, QueryColumns, QueryMetaBase, QueryReturnType, QueryThen, Expression, QueryColumn, MaybeArray, SelectableBase, TemplateLiteralArgs, PickOutputTypeAndOperators, PickQueryResult, OperatorToSQL, ColumnsShapeBase, ColumnsParsers, RecordString, PickQueryTable, FnUnknownToUnknown, ExpressionChain, getValueKey, PickQueryShape, PickQueryTableMetaResult, EmptyTuple, PickQueryMeta, PickQueryMetaResultReturnType, QueryColumnToNullable, PickQueryMetaShape, PickQueryTableMetaResultShape, QueryColumnBooleanOrNull, SQLQueryArgs, ColumnSchemaConfig, DateColumnData, Code, TimeInterval, ColumnTypeSchemaArg, ColumnDataBase, ArrayMethodsData, RawSQLBase, RawSQLValues, ExpressionTypeMethod, DynamicSQLArg, StaticSQLArgs, ForeignKeyTable, ColumnNameOfTable, BaseNumberData, PickColumnBaseData, ColumnWithDefault, StringTypeData, PrimaryKeyColumn, ParseColumn, EncodeColumn, PickQueryMetaResult, QueryColumnsInit, DefaultSelectColumns, CoreQueryScopes, DbBase, QueryCatch, TransactionState, ColumnTypeBase, PickQueryMetaResultWindows, CoreBaseOperators, PickQueryUniqueProperties, IsQuery, PickQueryMetaShapeResultReturnType, MergeObjects, ExpressionData, PickQueryResultUniqueColumns, QueryInternalBase, PickQueryReturnType, PickType, ColumnShapeOutput, PickOutputType, 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';
|
|
@@ -382,13 +382,14 @@ type QueryHookSelect = string[];
|
|
|
382
382
|
interface QueryScopes {
|
|
383
383
|
[K: string]: QueryScopeData;
|
|
384
384
|
}
|
|
385
|
-
|
|
385
|
+
interface QueryScopeData {
|
|
386
386
|
and?: WhereItem[];
|
|
387
387
|
or?: WhereItem[][];
|
|
388
|
-
}
|
|
388
|
+
}
|
|
389
|
+
type QueryDataFromItem = string | Query | Expression;
|
|
389
390
|
interface QueryDataJoinTo extends PickQueryTable, PickQueryQ {
|
|
390
391
|
}
|
|
391
|
-
|
|
392
|
+
interface CommonQueryData {
|
|
392
393
|
adapter: Adapter;
|
|
393
394
|
shape: ColumnsShapeBase;
|
|
394
395
|
patchResult?(q: Query, queryResult: QueryResult): Promise<void>;
|
|
@@ -408,7 +409,7 @@ type CommonQueryData = {
|
|
|
408
409
|
select?: SelectItem[];
|
|
409
410
|
expr?: Expression;
|
|
410
411
|
as?: string;
|
|
411
|
-
from?:
|
|
412
|
+
from?: MaybeArray<QueryDataFromItem>;
|
|
412
413
|
sources?: {
|
|
413
414
|
[K: string]: QuerySourceItem;
|
|
414
415
|
};
|
|
@@ -445,19 +446,16 @@ type CommonQueryData = {
|
|
|
445
446
|
* Is needed to remove these operators from query object when changing the query type, see {@link setQueryOperators}.
|
|
446
447
|
*/
|
|
447
448
|
operators?: BaseOperators;
|
|
448
|
-
/**
|
|
449
|
-
* Used by {@link setQueryOperators} to store the original `baseQuery` before extending it with operators.
|
|
450
|
-
*/
|
|
451
|
-
originalQuery?: Query;
|
|
452
449
|
scopes: {
|
|
453
450
|
[K: string]: QueryScopeData;
|
|
454
451
|
};
|
|
455
452
|
all?: true;
|
|
456
|
-
|
|
457
|
-
|
|
453
|
+
chain?: ExpressionChain;
|
|
454
|
+
}
|
|
455
|
+
interface SelectQueryData extends CommonQueryData {
|
|
458
456
|
type: undefined;
|
|
459
457
|
distinct?: SelectableOrExpression[];
|
|
460
|
-
|
|
458
|
+
only?: boolean;
|
|
461
459
|
join?: JoinItem[];
|
|
462
460
|
group?: (string | Expression)[];
|
|
463
461
|
having?: HavingItem[];
|
|
@@ -477,9 +475,9 @@ type SelectQueryData = CommonQueryData & {
|
|
|
477
475
|
mode?: 'NO WAIT' | 'SKIP LOCKED';
|
|
478
476
|
};
|
|
479
477
|
[getValueKey]?: QueryColumn;
|
|
480
|
-
}
|
|
478
|
+
}
|
|
481
479
|
type CreateKind = 'object' | 'raw' | 'from';
|
|
482
|
-
|
|
480
|
+
interface InsertQueryData extends CommonQueryData {
|
|
483
481
|
type: 'insert';
|
|
484
482
|
kind: CreateKind;
|
|
485
483
|
columns: string[];
|
|
@@ -494,7 +492,7 @@ type InsertQueryData = CommonQueryData & {
|
|
|
494
492
|
set?: OnConflictSet;
|
|
495
493
|
merge?: OnConflictMerge;
|
|
496
494
|
};
|
|
497
|
-
}
|
|
495
|
+
}
|
|
498
496
|
interface UpdateQueryDataObject {
|
|
499
497
|
[K: string]: Expression | {
|
|
500
498
|
op: string;
|
|
@@ -503,27 +501,27 @@ interface UpdateQueryDataObject {
|
|
|
503
501
|
}
|
|
504
502
|
type UpdatedAtDataInjector = (data: UpdateQueryDataItem[]) => UpdateQueryDataItem | void;
|
|
505
503
|
type UpdateQueryDataItem = UpdateQueryDataObject | Expression | UpdatedAtDataInjector;
|
|
506
|
-
|
|
504
|
+
interface UpdateQueryData extends CommonQueryData {
|
|
507
505
|
type: 'update';
|
|
508
506
|
updateData: UpdateQueryDataItem[];
|
|
509
|
-
}
|
|
510
|
-
|
|
507
|
+
}
|
|
508
|
+
interface DeleteQueryData extends CommonQueryData {
|
|
511
509
|
type: 'delete';
|
|
512
510
|
join?: JoinItem[];
|
|
513
|
-
}
|
|
514
|
-
|
|
511
|
+
}
|
|
512
|
+
interface TruncateQueryData extends CommonQueryData {
|
|
515
513
|
type: 'truncate';
|
|
516
514
|
restartIdentity?: boolean;
|
|
517
515
|
cascade?: boolean;
|
|
518
|
-
}
|
|
519
|
-
|
|
516
|
+
}
|
|
517
|
+
interface ColumnInfoQueryData extends CommonQueryData {
|
|
520
518
|
type: 'columnInfo';
|
|
521
519
|
column?: string;
|
|
522
|
-
}
|
|
523
|
-
|
|
520
|
+
}
|
|
521
|
+
interface CopyQueryData extends CommonQueryData {
|
|
524
522
|
type: 'copy';
|
|
525
523
|
copy: CopyOptions;
|
|
526
|
-
}
|
|
524
|
+
}
|
|
527
525
|
type CopyOptions<Column = string> = {
|
|
528
526
|
columns?: Column[];
|
|
529
527
|
format?: 'text' | 'csv' | 'binary';
|
|
@@ -2258,8 +2256,13 @@ interface DynamicRawSQL<T extends QueryColumn> extends Expression<T>, Expression
|
|
|
2258
2256
|
}
|
|
2259
2257
|
declare class DynamicRawSQL<T extends QueryColumn, ColumnTypes = DefaultColumnTypes<ColumnSchemaConfig>> extends Expression<T> {
|
|
2260
2258
|
fn: DynamicSQLArg;
|
|
2261
|
-
_type: T;
|
|
2262
2259
|
columnTypes: ColumnTypes;
|
|
2260
|
+
result: {
|
|
2261
|
+
value: T;
|
|
2262
|
+
};
|
|
2263
|
+
q: {
|
|
2264
|
+
chain?: ExpressionChain;
|
|
2265
|
+
};
|
|
2263
2266
|
constructor(fn: DynamicSQLArg);
|
|
2264
2267
|
makeSQL(ctx: ToSQLCtx, quotedAs?: string): string;
|
|
2265
2268
|
}
|
|
@@ -3114,7 +3117,7 @@ declare function pushLimitSQL(sql: string[], values: unknown[], q: SelectQueryDa
|
|
|
3114
3117
|
|
|
3115
3118
|
type AliasOrTable<T extends PickQueryMetaTable> = T['meta']['as'] extends string ? T['meta']['as'] : T['table'] extends string ? T['table'] : never;
|
|
3116
3119
|
type SelectableOrExpression<T extends PickQueryMeta = PickQueryMeta, C extends QueryColumn = QueryColumn> = '*' | keyof T['meta']['selectable'] | Expression<C>;
|
|
3117
|
-
type ExpressionOutput<T extends PickQueryMeta, Expr extends SelectableOrExpression<T>> = Expr extends keyof T['meta']['selectable'] ? T['meta']['selectable'][Expr]['column'] : Expr extends Expression ? Expr['
|
|
3120
|
+
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;
|
|
3118
3121
|
declare const getClonedQueryData: (query: QueryData) => QueryData;
|
|
3119
3122
|
declare const getQueryAs: (q: {
|
|
3120
3123
|
table?: string;
|
|
@@ -3161,32 +3164,34 @@ interface FnExpressionArgsValue {
|
|
|
3161
3164
|
value: unknown;
|
|
3162
3165
|
}
|
|
3163
3166
|
declare class FnExpression<Q extends Query = Query, T extends QueryColumn = QueryColumn> extends Expression<T> {
|
|
3164
|
-
|
|
3167
|
+
query: Q;
|
|
3165
3168
|
fn: string;
|
|
3166
3169
|
args: FnExpressionArgs<Q>;
|
|
3167
3170
|
options: AggregateOptions<Q>;
|
|
3168
|
-
|
|
3171
|
+
result: {
|
|
3172
|
+
value: T;
|
|
3173
|
+
};
|
|
3174
|
+
q: QueryData;
|
|
3169
3175
|
/**
|
|
3170
|
-
* @param
|
|
3176
|
+
* @param query - query object.
|
|
3171
3177
|
* @param fn - SQL function name.
|
|
3172
3178
|
* @param args - arguments of the function.
|
|
3173
3179
|
* @param options - aggregate options.
|
|
3174
|
-
* @param
|
|
3180
|
+
* @param value - column type of the function result.
|
|
3175
3181
|
*/
|
|
3176
|
-
constructor(
|
|
3182
|
+
constructor(query: Q, fn: string, args: FnExpressionArgs<Q>, options: AggregateOptions<Q>, value: T);
|
|
3177
3183
|
makeSQL(ctx: ToSQLCtx, quotedAs?: string): string;
|
|
3178
3184
|
}
|
|
3179
3185
|
type ColumnExpression<C extends QueryColumn, Ops extends BaseOperators = C['operators']> = Expression<C> & {
|
|
3180
3186
|
[K in keyof Ops]: (arg: Ops[K]['_opType']) => ColumnExpression<QueryColumnBooleanOrNull>;
|
|
3181
3187
|
};
|
|
3182
|
-
declare const makeExpression: <T extends Query, C extends ColumnTypeBase<orchid_core.ColumnTypeSchemaArg, unknown, any, orchid_core.CoreBaseOperators, unknown, unknown, any, unknown, any, orchid_core.ColumnDataBase>>(self: T, expr: Expression) => SetQueryReturnsColumnOrThrow<T, C> & C['operators'];
|
|
3183
3188
|
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'];
|
|
3184
3189
|
|
|
3185
3190
|
type QueryGetSelf = PickQueryMetaTable;
|
|
3186
3191
|
type GetArg<T extends QueryGetSelf> = GetStringArg<T> | Expression;
|
|
3187
3192
|
type GetStringArg<T extends PickQueryMeta> = keyof T['meta']['selectable'] & string;
|
|
3188
|
-
type GetResult<T extends QueryGetSelf, Arg extends GetArg<T>> = Arg extends string ? SetQueryReturnsValueOrThrow<T, Arg> : Arg extends Expression ? SetQueryReturnsColumnOrThrow<T, Arg['
|
|
3189
|
-
type GetResultOptional<T extends QueryGetSelf, Arg extends GetArg<T>> = Arg extends string ? SetQueryReturnsValueOptional<T, Arg> : Arg extends Expression ? SetQueryReturnsColumnOptional<T, Arg['
|
|
3193
|
+
type GetResult<T extends QueryGetSelf, Arg extends GetArg<T>> = Arg extends string ? SetQueryReturnsValueOrThrow<T, Arg> : Arg extends Expression ? SetQueryReturnsColumnOrThrow<T, Arg['result']['value']> : never;
|
|
3194
|
+
type GetResultOptional<T extends QueryGetSelf, Arg extends GetArg<T>> = Arg extends string ? SetQueryReturnsValueOptional<T, Arg> : Arg extends Expression ? SetQueryReturnsColumnOptional<T, Arg['result']['value']> : never;
|
|
3190
3195
|
declare function _queryGet<T extends QueryGetSelf, Arg extends GetArg<T>>(self: T, arg: Arg): GetResult<T, Arg>;
|
|
3191
3196
|
declare function _queryGetOptional<T extends QueryGetSelf, Arg extends GetArg<T>>(self: T, arg: Arg): GetResultOptional<T, Arg>;
|
|
3192
3197
|
|
|
@@ -4270,61 +4275,97 @@ declare class For {
|
|
|
4270
4275
|
|
|
4271
4276
|
type FromQuerySelf = PickQueryMetaTableShapeReturnTypeWithData;
|
|
4272
4277
|
type FromArg<T extends FromQuerySelf> = PickQueryTableMetaResult | Expression | Exclude<keyof T['withData'], symbol | number>;
|
|
4273
|
-
|
|
4274
|
-
|
|
4275
|
-
}
|
|
4276
|
-
type FromResult<T extends FromQuerySelf, Arg extends FromArg<T>> = Arg extends string ? T['withData'] extends WithDataItems ? Arg extends keyof T['withData'] ? {
|
|
4278
|
+
type UnionToIntersection<U> = (U extends any ? (x: U) => void : never) extends (x: infer I) => void ? I : never;
|
|
4279
|
+
type FromResult<T extends FromQuerySelf, Arg extends MaybeArray<FromArg<T>>> = Arg extends string ? T['withData'] extends WithDataItems ? {
|
|
4277
4280
|
[K in keyof T]: K extends 'meta' ? {
|
|
4278
4281
|
[K in keyof T['meta']]: K extends 'as' ? string | undefined : K extends 'selectable' ? SelectableFromShape<T['withData'][Arg]['shape'], Arg> : T['meta'][K];
|
|
4279
4282
|
} : T[K];
|
|
4280
|
-
} : SetQueryTableAlias<T, Arg> :
|
|
4283
|
+
} : SetQueryTableAlias<T, Arg> : Arg extends PickQueryTableMetaResult ? {
|
|
4281
4284
|
[K in keyof T]: K extends 'meta' ? {
|
|
4282
|
-
[K in keyof T['meta']]: K extends '
|
|
4285
|
+
[K in keyof T['meta']]: K extends 'as' ? AliasOrTable<Arg> : K extends 'selectable' ? {
|
|
4283
4286
|
[K in keyof Arg['result']]: K extends string ? {
|
|
4284
4287
|
as: K;
|
|
4285
4288
|
column: Arg['result'][K];
|
|
4286
4289
|
} : never;
|
|
4287
4290
|
} : T['meta'][K];
|
|
4288
4291
|
} : K extends 'result' ? Arg['result'] : K extends 'shape' ? Arg['result'] : K extends 'then' ? QueryThen<GetQueryResult<T, Arg['result']>> : T[K];
|
|
4292
|
+
} : Arg extends (infer A)[] ? {
|
|
4293
|
+
[K in keyof T]: K extends 'meta' ? {
|
|
4294
|
+
[K in keyof T['meta']]: K extends 'selectable' ? UnionToIntersection<A extends string ? T['withData'] extends WithDataItems ? {
|
|
4295
|
+
[K in keyof T['withData'][A]['shape'] & string as `${A}.${K}`]: {
|
|
4296
|
+
as: K;
|
|
4297
|
+
column: T['withData'][A]['shape'][K];
|
|
4298
|
+
};
|
|
4299
|
+
} : never : A extends PickQueryTableMetaResult ? {
|
|
4300
|
+
[K in keyof A['result'] & string as `${AliasOrTable<A>}.${K}`]: K extends string ? {
|
|
4301
|
+
as: K;
|
|
4302
|
+
column: A['result'][K];
|
|
4303
|
+
} : never;
|
|
4304
|
+
} : never> : T['meta'][K];
|
|
4305
|
+
} : T[K];
|
|
4289
4306
|
} : T;
|
|
4290
|
-
declare function queryFrom<T extends FromQuerySelf, Arg extends FromArg<T
|
|
4307
|
+
declare function queryFrom<T extends FromQuerySelf, Arg extends MaybeArray<FromArg<T>>>(self: T, arg: Arg): FromResult<T, Arg>;
|
|
4291
4308
|
declare function queryFromSql<T extends FromQuerySelf>(self: T, args: SQLQueryArgs): T;
|
|
4292
4309
|
declare class From {
|
|
4293
4310
|
/**
|
|
4294
4311
|
* Set the `FROM` value, by default the table name is used.
|
|
4295
4312
|
*
|
|
4313
|
+
* `from` determines a set of available tables and columns withing the query,
|
|
4314
|
+
* and thus it must not follow `select`, use `select` only after `from`.
|
|
4315
|
+
*
|
|
4296
4316
|
* ```ts
|
|
4297
4317
|
* // accepts sub-query:
|
|
4298
|
-
* db.table.from(
|
|
4318
|
+
* db.table.from(db.otherTable.select('foo', 'bar'));
|
|
4299
4319
|
*
|
|
4300
4320
|
* // accepts alias of `WITH` expression:
|
|
4301
|
-
* q.with('
|
|
4321
|
+
* q.with('withTable', db.table.select('id', 'name'))
|
|
4322
|
+
* .from('withTable')
|
|
4323
|
+
* // `select` is after `from`
|
|
4324
|
+
* .select('id', 'name');
|
|
4302
4325
|
* ```
|
|
4303
4326
|
*
|
|
4304
|
-
*
|
|
4327
|
+
* `from` can accept multiple sources:
|
|
4305
4328
|
*
|
|
4306
4329
|
* ```ts
|
|
4307
|
-
* db.table
|
|
4308
|
-
*
|
|
4309
|
-
*
|
|
4330
|
+
* db.table
|
|
4331
|
+
* // add a `WITH` statement called `withTable
|
|
4332
|
+
* .with('withTable', db.table.select('one'))
|
|
4333
|
+
* // select from `withTable` and from `otherTable`
|
|
4334
|
+
* .from('withTable', db.otherTable.select('two'))
|
|
4335
|
+
* // source names and column names are properly typed when selecting
|
|
4336
|
+
* .select('withTable.one', 'otherTable.two');
|
|
4310
4337
|
* ```
|
|
4311
4338
|
*
|
|
4312
4339
|
* @param arg - query or name of CTE table
|
|
4313
|
-
* @param options - { only: true } for SQL `ONLY` keyword
|
|
4314
4340
|
*/
|
|
4315
|
-
from<T extends FromQuerySelf, Arg extends FromArg<T
|
|
4341
|
+
from<T extends FromQuerySelf, Arg extends MaybeArray<FromArg<T>>>(this: T, arg: T['meta']['hasSelect'] extends true ? '`select` must be places after `from`' : Arg): FromResult<T, Arg>;
|
|
4316
4342
|
/**
|
|
4317
4343
|
* Set the `FROM` value with custom SQL:
|
|
4318
4344
|
*
|
|
4319
4345
|
* ```ts
|
|
4320
4346
|
* const value = 123;
|
|
4321
|
-
* db.table.
|
|
4322
|
-
* db.table.
|
|
4347
|
+
* db.table.fromSql`value = ${value}`;
|
|
4348
|
+
* db.table.fromSql(db.table.sql`value = ${value}`);
|
|
4323
4349
|
* ```
|
|
4324
4350
|
*
|
|
4325
4351
|
* @param args - SQL expression
|
|
4326
4352
|
*/
|
|
4327
|
-
fromSql<T extends FromQuerySelf
|
|
4353
|
+
fromSql<T extends FromQuerySelf>(this: T, ...args: SQLQueryArgs): T;
|
|
4354
|
+
/**
|
|
4355
|
+
* Adds `ONLY` SQL keyword to the `FROM`.
|
|
4356
|
+
* When selecting from a parent table that has a table inheritance,
|
|
4357
|
+
* setting `only` will make it to select rows only from the parent table.
|
|
4358
|
+
*
|
|
4359
|
+
* ```ts
|
|
4360
|
+
* db.table.only();
|
|
4361
|
+
*
|
|
4362
|
+
* // disabling `only` after being enabled
|
|
4363
|
+
* db.table.only().only(false);
|
|
4364
|
+
* ```
|
|
4365
|
+
*
|
|
4366
|
+
* @param only - can be disabled by passing `false` if was enabled previously.
|
|
4367
|
+
*/
|
|
4368
|
+
only<T>(this: T, only?: boolean): T;
|
|
4328
4369
|
}
|
|
4329
4370
|
|
|
4330
4371
|
declare class QueryGet {
|
|
@@ -4837,7 +4878,7 @@ type SelectAsSelectable<Arg> = {
|
|
|
4837
4878
|
};
|
|
4838
4879
|
} : never;
|
|
4839
4880
|
}[keyof Arg];
|
|
4840
|
-
type SelectAsValueResult<T extends SelectSelf, Arg> = Arg extends keyof T['meta']['selectable'] ? T['meta']['selectable'][Arg]['column'] : Arg extends Expression ? Arg['
|
|
4881
|
+
type SelectAsValueResult<T extends SelectSelf, Arg> = Arg extends keyof T['meta']['selectable'] ? T['meta']['selectable'][Arg]['column'] : Arg extends Expression ? Arg['result']['value'] : Arg extends (q: never) => QueryBase ? SelectSubQueryResult<ReturnType<Arg>> : Arg extends (q: never) => Expression ? ReturnType<Arg>['result']['value'] : Arg extends (q: never) => QueryBase | Expression ? SelectSubQueryResult<Exclude<ReturnType<Arg>, Expression>> | Exclude<ReturnType<Arg>, QueryBase>['result']['value'] : never;
|
|
4841
4882
|
type SelectSubQueryResult<Arg extends SelectSelf> = QueryReturnsAll<Arg['returnType']> extends true ? ColumnsShapeToObjectArray<Arg['result']> : Arg['returnType'] extends 'valueOrThrow' ? Arg['result']['value'] : Arg['returnType'] extends 'pluck' ? ColumnsShapeToPluck<Arg['result']> : Arg['returnType'] extends 'one' ? ColumnsShapeToNullableObject<Arg['result']> : ColumnsShapeToObject<Arg['result']>;
|
|
4842
4883
|
declare const addParserForRawExpression: (q: PickQueryQ, key: string | getValueKey, raw: Expression) => void;
|
|
4843
4884
|
declare const addParserForSelectItem: <T extends PickQueryMeta>(q: T, as: string | getValueKey | undefined, key: string, arg: SelectableOrExpression<T> | Query) => string | Expression | Query;
|
|
@@ -4975,7 +5016,7 @@ declare class With {
|
|
|
4975
5016
|
*
|
|
4976
5017
|
* // accepts a callback for a query builder:
|
|
4977
5018
|
* db.table.with('alias', (qb) =>
|
|
4978
|
-
* qb.select({ one: db.table.sql((t) => t.integer())
|
|
5019
|
+
* qb.select({ one: db.table.sql`1`.type((t) => t.integer()) }),
|
|
4979
5020
|
* );
|
|
4980
5021
|
*
|
|
4981
5022
|
* // All mentioned forms can accept options as a second argument:
|
|
@@ -6116,9 +6157,21 @@ type QueryHelper<T extends PickQueryMetaShape, Args extends unknown[], Result> =
|
|
|
6116
6157
|
};
|
|
6117
6158
|
type QueryHelperResult<T extends QueryHelper<Query, unknown[], unknown>> = T['result'];
|
|
6118
6159
|
declare class ColumnRefExpression<T extends QueryColumn> extends Expression<T> {
|
|
6119
|
-
_type: T;
|
|
6120
6160
|
name: string;
|
|
6121
|
-
|
|
6161
|
+
result: {
|
|
6162
|
+
value: T;
|
|
6163
|
+
};
|
|
6164
|
+
q: ExpressionData;
|
|
6165
|
+
constructor(value: T, name: string);
|
|
6166
|
+
makeSQL(ctx: ToSQLCtx, quotedAs?: string): string;
|
|
6167
|
+
}
|
|
6168
|
+
declare class RefExpression<T extends QueryColumn> extends Expression<T> {
|
|
6169
|
+
q: QueryData;
|
|
6170
|
+
ref: string;
|
|
6171
|
+
result: {
|
|
6172
|
+
value: T;
|
|
6173
|
+
};
|
|
6174
|
+
constructor(value: T, q: QueryData, ref: string);
|
|
6122
6175
|
makeSQL(ctx: ToSQLCtx, quotedAs?: string): string;
|
|
6123
6176
|
}
|
|
6124
6177
|
type WrapQueryArg = FromQuerySelf;
|
|
@@ -6602,16 +6655,49 @@ declare class QueryMethods<ColumnTypes> {
|
|
|
6602
6655
|
*/
|
|
6603
6656
|
makeHelper<T extends PickQueryMetaShape, Args extends unknown[], Result>(this: T, fn: (q: T, ...args: Args) => Result): QueryHelper<T, Args, Result>;
|
|
6604
6657
|
/**
|
|
6605
|
-
*
|
|
6606
|
-
*
|
|
6658
|
+
* `column` references a table column, this can be used in raw SQL or when building a column expression.
|
|
6659
|
+
* Only for referencing a column in the query's table. For referencing joined table's columns, see [ref](#ref).
|
|
6660
|
+
*
|
|
6661
|
+
* ```ts
|
|
6662
|
+
* await db.table.select({
|
|
6663
|
+
* // select `("table"."id" = 1 OR "table"."name" = 'name') AS "one"`,
|
|
6664
|
+
* // returns a boolean
|
|
6665
|
+
* one: (q) =>
|
|
6666
|
+
* q.sql<boolean>`${q.column('id')} = ${1} OR ${q.column('name')} = ${'name'}`,
|
|
6667
|
+
*
|
|
6668
|
+
* // selects the same as above, but by building a query
|
|
6669
|
+
* two: (q) => q.column('id').equals(1).or(q.column('name').equals('name')),
|
|
6670
|
+
* });
|
|
6671
|
+
* ```
|
|
6672
|
+
*
|
|
6673
|
+
* @param name - column name
|
|
6674
|
+
*/
|
|
6675
|
+
column<T extends PickQueryShape, K extends keyof T['shape']>(this: T, name: K): ColumnRefExpression<T['shape'][K]> & T['shape'][K]['operators'];
|
|
6676
|
+
/**
|
|
6677
|
+
* `ref` is similar to [column](#column), but it also allows to reference a column of joined table,
|
|
6678
|
+
* and other dynamically defined columns.
|
|
6607
6679
|
*
|
|
6608
6680
|
* ```ts
|
|
6609
|
-
* db.table.
|
|
6681
|
+
* await db.table.join('otherTable').select({
|
|
6682
|
+
* // select `("otherTable"."id" = 1 OR "otherTable"."name" = 'name') AS "one"`,
|
|
6683
|
+
* // returns a boolean
|
|
6684
|
+
* one: (q) =>
|
|
6685
|
+
* q.sql<boolean>`${q.ref('otherTable.id')} = ${1} OR ${q.ref(
|
|
6686
|
+
* 'otherTable.name',
|
|
6687
|
+
* )} = ${'name'}`,
|
|
6688
|
+
*
|
|
6689
|
+
* // selects the same as above, but by building a query
|
|
6690
|
+
* two: (q) =>
|
|
6691
|
+
* q
|
|
6692
|
+
* .ref('otherTable.id')
|
|
6693
|
+
* .equals(1)
|
|
6694
|
+
* .or(q.ref('otherTable.name').equals('name')),
|
|
6695
|
+
* });
|
|
6610
6696
|
* ```
|
|
6611
6697
|
*
|
|
6612
|
-
* @param name
|
|
6698
|
+
* @param arg - any available column name, such as of a joined table
|
|
6613
6699
|
*/
|
|
6614
|
-
|
|
6700
|
+
ref<T extends PickQueryMeta, K extends keyof T['meta']['selectable'] & string>(this: T, arg: K): RefExpression<T['meta']['selectable'][K]['column']> & T['meta']['selectable'][K]['column']['operators'];
|
|
6615
6701
|
}
|
|
6616
6702
|
|
|
6617
6703
|
declare function queryJson<T>(self: T, coalesce?: boolean): SetQueryReturnsColumnOptional<T, QueryColumn<string>>;
|
|
@@ -6800,7 +6886,7 @@ type SetQueryReturnsOneKindResult<T extends PickQueryMetaResult, Kind extends st
|
|
|
6800
6886
|
type SetQueryReturnsRows<T extends PickQueryResult> = {
|
|
6801
6887
|
[K in keyof T]: K extends 'returnType' ? 'rows' : K extends 'then' ? QueryThen<ColumnShapeOutput<T['result']>[keyof T['result']][][]> : T[K];
|
|
6802
6888
|
};
|
|
6803
|
-
type SetQueryReturnsPluck<T extends PickQueryMeta, S extends keyof T['meta']['selectable'] | Expression> = SetQueryReturnsPluckColumn<T, S extends keyof T['meta']['selectable'] ? T['meta']['selectable'][S]['column'] : S extends Expression ? S['
|
|
6889
|
+
type SetQueryReturnsPluck<T extends PickQueryMeta, S extends keyof T['meta']['selectable'] | Expression> = SetQueryReturnsPluckColumn<T, S extends keyof T['meta']['selectable'] ? T['meta']['selectable'][S]['column'] : S extends Expression ? S['result']['value'] : never>;
|
|
6804
6890
|
type SetQueryReturnsPluckColumn<T, C extends QueryColumn> = {
|
|
6805
6891
|
[K in keyof T]: K extends 'result' ? {
|
|
6806
6892
|
pluck: C;
|
|
@@ -7438,7 +7524,7 @@ interface ComputedColumnsBase<T extends PickQueryTableMetaShape> {
|
|
|
7438
7524
|
[K: string]: (q: T) => Expression;
|
|
7439
7525
|
}
|
|
7440
7526
|
type QueryWithComputed<T extends PickQueryTableMetaShape, Computed extends ComputedColumnsBase<T>, Shape extends QueryColumns = {
|
|
7441
|
-
[K in keyof Computed]: ReturnType<Computed[K]>['
|
|
7527
|
+
[K in keyof Computed]: ReturnType<Computed[K]>['result']['value'];
|
|
7442
7528
|
}> = {
|
|
7443
7529
|
[K in keyof T]: K extends 'shape' ? T['shape'] & Shape : K extends 'meta' ? T['meta'] & {
|
|
7444
7530
|
selectable: SelectableFromShape<Shape, T['table']>;
|
|
@@ -7547,4 +7633,4 @@ type CopyResult<T extends PickQueryMeta> = SetQueryKind<T, 'copy'>;
|
|
|
7547
7633
|
*/
|
|
7548
7634
|
declare function copyTableData<T extends PickQueryMetaShape>(query: T, arg: CopyArg<T>): CopyResult<T>;
|
|
7549
7635
|
|
|
7550
|
-
export { Adapter, AdapterConfig, AdapterOptions, AddQueryDefaults, AddQuerySelect, AddQueryWith, AfterHook, AggregateMethods, AggregateOptions, AliasOrTable, ArrayColumn, ArrayColumnValue, ArrayData, AsMethods, AsQueryArg, BaseOperators, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BooleanQueryColumn, BoxColumn, ByteaColumn, CharColumn, CidrColumn, CircleColumn, CitextColumn, Clear, ClearStatement, CloneSelfKeys, ColumnData, ColumnExpression, 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, ExpressionOutput, FnExpression, FnExpressionArgs, FnExpressionArgsPairs, FnExpressionArgsValue, For, From, FromArg,
|
|
7636
|
+
export { Adapter, AdapterConfig, AdapterOptions, AddQueryDefaults, AddQuerySelect, AddQueryWith, AfterHook, AggregateMethods, AggregateOptions, AliasOrTable, ArrayColumn, ArrayColumnValue, ArrayData, AsMethods, AsQueryArg, BaseOperators, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BooleanQueryColumn, BoxColumn, ByteaColumn, CharColumn, CidrColumn, CircleColumn, CitextColumn, Clear, ClearStatement, CloneSelfKeys, ColumnData, ColumnExpression, 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, ExpressionOutput, FnExpression, FnExpressionArgs, FnExpressionArgsPairs, FnExpressionArgsValue, For, From, FromArg, FromQuerySelf, FromResult, GetArg, GetColumnInfo, GetQueryResult, GetResult, GetResultOptional, GetStringArg, GroupArg, 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, JsonItem, JsonMethods, JsonModifiers, 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, OrchidOrmError, OrchidOrmInternalError, OrderArg, OrderArgSelf, OrderArgs, OrderItem, OrderTsQueryConfig, Over, PathColumn, PickColumnData, PickQueryBaseQuery, PickQueryDataShapeAndJoinedShapes, PickQueryInternal, PickQueryMetaRelations, PickQueryMetaResultRelations, PickQueryMetaResultRelationsWindows, PickQueryMetaResultRelationsWindowsColumnTypes, PickQueryMetaResultRelationsWithDataReturnType, PickQueryMetaResultRelationsWithDataReturnTypeShape, PickQueryMetaResultReturnTypeWithDataWindows, PickQueryMetaResultReturnTypeWithDataWindowsTable, PickQueryMetaShapeRelationsWithData, PickQueryMetaTable, PickQueryMetaTableShape, PickQueryMetaTableShapeReturnTypeWithData, PickQueryMetaWithData, PickQueryQ, PickQueryQAndBaseQuery, PickQueryQAndInternal, PickQueryRelations, PickQueryRelationsWithData, PickQueryShapeResultSinglePrimaryKey, PickQueryShapeSinglePrimaryKey, PickQuerySinglePrimaryKey, PickQueryWindows, PickQueryWithData, 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, QueryResult, QueryReturnsAll, QueryScopeData, QueryScopes, QuerySourceItem, QueryTransform, QueryTransformFn, QueryUpsertOrCreate, QueryWithComputed, QueryWithTable, RawSQL, RawSqlMethods, RealColumn, RecordOfColumnsShapeBase, RefExpression, RelationConfigBase, RelationConfigDataForCreate, RelationJoinQuery, RelationQuery, RelationQueryBase, RelationsBase, SearchArg, SearchMethods, SearchWeight, SearchWeightRecord, Select, SelectArg, SelectAs, SelectItem, SelectQueryData, SelectSubQueryResult, SelectableFromShape, SelectableOfType, SelectableOrExpression, SelectableOrExpressionOfType, 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, SetQueryWith, ShapeColumnPrimaryKeys, ShapeUniqueColumns, SimpleJoinItem, SimpleJoinItemNonSubQueryArgs, SmallIntColumn, SmallSerialColumn, SortDir, SqlFn, 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, UnionArg, UnionItem, UnionKind, UniqueConstraints, UniqueQueryTypeOrExpression, UniqueTableDataItem, UnknownColumn, Update, UpdateArg, UpdateCtx, UpdateCtxCollect, UpdateData, UpdateQueryData, UpdateQueryDataItem, UpdateQueryDataObject, UpdateSelf, UpdatedAtDataInjector, UpsertArg, UpsertResult, UpsertThis, VarCharColumn, VirtualColumn, Where, WhereArg, WhereArgs, WhereInArg, WhereInColumn, WhereInItem, WhereInValues, WhereItem, WhereJsonPathEqualsItem, WhereNotArgs, WhereOnItem, WhereOnJoinItem, WhereQueryBuilder, WhereResult, WhereSearchItem, WhereSearchResult, WindowArg, WindowArgDeclaration, WindowDeclaration, WindowItem, With, WithDataBase, WithDataItem, WithDataItems, WithItem, WithOptions, 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, _queryUpdate, _queryUpdateOrThrow, _queryUpdateRaw, _queryWhere, _queryWhereExists, _queryWhereIn, _queryWhereNot, _queryWhereNotSql, _queryWhereSql, addComputedColumns, addParserForRawExpression, addParserForSelectItem, addQueryOn, anyShape, checkIfASimpleQuery, cloneQuery, cloneQueryBaseUnscoped, columnCheckToCode, columnCode, columnForeignKeysToCode, columnIndexesToCode, columnsShapeToCode, constraintInnerToCode, constraintToCode, copyTableData, countSelect, createDb, defaultSchemaConfig, extendQuery, foreignKeyArgumentToCode, getClonedQueryData, getColumnInfo, getColumnTypes, getPrimaryKeys, getQueryAs, getShapeFromSelect, 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, saveSearchAlias, setParserForSelectedString, setQueryObjectValue, setQueryOperators, simplifyColumnDefault, sqlFn, sqlQueryArgsToExpression, tableDataMethods, templateLiteralToSQL, testTransaction, throwIfNoWhere, toSQL, toSQLCacheKey };
|