pqb 0.41.4 → 0.42.0

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  import { PoolConfig, Pool, PoolClient } from 'pg';
2
2
  import * as orchid_core from 'orchid-core';
3
- import { QueryResultRow, AdapterConfigBase, AdapterBase, QueryInput, SingleSqlItem, Sql, RecordUnknown, RecordKeyTrue, EmptyObject, QueryBaseCommon, QueryColumns, QueryMetaBase, QueryReturnType, QueryThen, Expression, MaybeArray, TemplateLiteralArgs, QueryColumn, MaybePromise, FnUnknownToUnknown, RecordString, ColumnsShapeBase, ColumnsParsers, PickQueryTable, BatchParsers, HookSelect, QueryLogObject, QueryLogger, QueryDataTransform, ExpressionChain, PickQueryShape, ColumnSchemaConfig, RawSQLBase, RawSQLValues, ExpressionTypeMethod, DynamicSQLArg, ExpressionData, StaticSQLArgs, SQLQueryArgs, PickQueryTableMetaResult, EmptyTuple, PickQueryMeta, PickQueryMetaResultReturnType, QueryColumnToNullable, SelectableBase, PickQueryMetaShape, PickQueryTableMetaResultShape, PickQueryMetaResultWindows, PickOutputTypeAndOperators, PickQueryResult, ValExpression, PickOutputType, DateColumnData, ColumnToCodeCtx, Code, TimeInterval, ColumnTypeSchemaArg, ColumnDataBase, ArrayMethodsData, ForeignKeyTable, ColumnNameOfTable, BaseNumberData, PickColumnBaseData, ColumnWithDefault, StringTypeData, PrimaryKeyColumn, ColumnTypeBase, ParseColumn, ParseNullColumn, EncodeColumn, QueryColumnsInit, QueryLogOptions, DefaultSelectColumns, DbBase, QueryCatch, TransactionState, QueryColumnOfDataType, PickQueryUniqueProperties, PickQueryMetaResult, IsQuery, PickQueryTableMetaResultInputType, getValueKey, PickQueryResultUniqueColumns, QueryInternalBase, PickQueryReturnType, PickType, ColumnShapeOutput, OperatorsNullable, PickQueryMetaReturnType, UniqueColumn, TimestampHelpers, Codes, ColumnDataCheckBase } from 'orchid-core';
3
+ import { QueryResultRow, AdapterConfigBase, AdapterBase, QueryInput, SingleSqlItem, Sql, IsQuery, RecordUnknown, Expression, MaybeArray, TemplateLiteralArgs, EmptyObject, QueryColumns, QueryColumn, MaybePromise, FnUnknownToUnknown, QueryMetaBase, QueryReturnType, RecordString, ColumnsShapeBase, ColumnsParsers, PickQueryTable, BatchParsers, HookSelect, QueryLogObject, QueryLogger, QueryDataTransform, ExpressionChain, PickQueryShape, ColumnSchemaConfig, RawSQLBase, RawSQLValues, ExpressionTypeMethod, DynamicSQLArg, ExpressionData, StaticSQLArgs, SQLQueryArgs, PickQueryTableMetaResult, EmptyTuple, PickQueryMeta, PickQueryMetaResultReturnType, QueryColumnToNullable, QueryThen, SelectableBase, PickQueryMetaShape, PickQueryTableMetaResultShape, PickQueryMetaResultWindows, PickOutputTypeAndOperators, PickQueryResult, ValExpression, PickOutputType, DateColumnData, ColumnToCodeCtx, Code, TimeInterval, ColumnTypeSchemaArg, ColumnDataBase, ArrayMethodsData, ForeignKeyTable, ColumnNameOfTable, BaseNumberData, PickColumnBaseData, ColumnWithDefault, StringTypeData, PrimaryKeyColumn, ColumnTypeBase, ParseColumn, ParseNullColumn, EncodeColumn, QueryColumnsInit, QueryLogOptions, DefaultSelectColumns, DefaultSelectOutput, ColumnShapeInput, QueryCatch, TransactionState, QueryColumnOfDataType, PickQueryUniqueProperties, PickQueryMetaResult, PickQueryTableMetaResultInputType, getValueKey, PickQueryReturnType, PickQueryResultUniqueColumns, QueryInternalBase, PickType, RecordKeyTrue, ColumnShapeOutput, OperatorsNullable, PickQueryMetaReturnType, UniqueColumn, TimestampHelpers, Codes, ColumnDataCheckBase } from 'orchid-core';
4
4
  import { inspect } from 'node:util';
5
5
  import { AsyncLocalStorage } from 'node:async_hooks';
6
6
 
@@ -56,11 +56,16 @@ declare class TransactionAdapter implements Adapter {
56
56
  }
57
57
 
58
58
  interface RelationJoinQuery {
59
- (joiningQuery: Query, baseQuery: Query): Query;
59
+ (joiningQuery: IsQuery, baseQuery: IsQuery): IsQuery;
60
60
  }
61
61
  interface RelationConfigBase {
62
- query: Query;
62
+ query: IsQuery;
63
63
  joinQuery: RelationJoinQuery;
64
+ reverseJoin: RelationJoinQuery;
65
+ params: unknown;
66
+ queryRelated(params: unknown): unknown;
67
+ modifyRelatedQuery?(relatedQuery: IsQuery): (query: IsQuery) => void;
68
+ maybeSingle: unknown;
64
69
  omitForeignKeyInCreate: PropertyKey;
65
70
  dataForCreate?: RelationConfigDataForCreate;
66
71
  optionalDataForCreate: unknown;
@@ -77,34 +82,6 @@ interface RelationsBase {
77
82
  interface RelationQueryBase extends Query {
78
83
  relationConfig: RelationConfigBase;
79
84
  }
80
- type RelationQuery<Config extends RelationConfigBase = RelationConfigBase, Params = never, Required = never, One = never> = RelationQueryFnAndConfig<Config, Params, Required, One> & Config['query'];
81
- interface RelationQueryFnAndConfig<Config extends RelationConfigBase = RelationConfigBase, Params = never, Required = never, One = never> {
82
- (params: Params): One extends true ? Required extends true ? SetQueryReturnsOne<Config['query']> : SetQueryReturnsOneOptional<Config['query']> : Config['query'];
83
- relationConfig: Config;
84
- }
85
-
86
- declare abstract class QueryBase<Scopes extends RecordKeyTrue = EmptyObject> implements QueryBaseCommon<Scopes> {
87
- /**
88
- * Clones the current query chain, useful for re-using partial query snippets in other queries without mutating the original.
89
- *
90
- * Used under the hood, and not really needed on the app side.
91
- */
92
- clone<T>(this: T): T;
93
- __isQuery: true;
94
- result: QueryColumns;
95
- q: QueryData;
96
- table?: string;
97
- shape: QueryColumns;
98
- relations: RelationsBase;
99
- withData: WithDataItems;
100
- baseQuery: Query;
101
- internal: QueryInternal;
102
- meta: QueryMetaBase<Scopes>;
103
- returnType: QueryReturnType;
104
- }
105
- interface QueryBaseThen<T> extends QueryBase {
106
- then: QueryThen<T>;
107
- }
108
85
 
109
86
  declare const checkIfASimpleQuery: (q: Query) => boolean;
110
87
  interface WithItem {
@@ -168,25 +145,25 @@ type SimpleJoinItemNonSubQueryArgs = [{
168
145
  rightColumn: string | Expression
169
146
  ];
170
147
  type JoinItemArgs = {
171
- j: Query;
148
+ j: IsQuery;
172
149
  s: boolean;
173
- r?: Query;
150
+ r?: IsQuery;
174
151
  } | {
175
152
  w: string;
176
- r: Query;
153
+ r: IsQuery;
177
154
  s: boolean;
178
155
  } | {
179
156
  w: string;
180
157
  a: SimpleJoinItemNonSubQueryArgs;
181
158
  } | {
182
- q: QueryWithTable;
159
+ q: IsQuery;
183
160
  s: boolean;
184
161
  } | {
185
- q: QueryWithTable;
186
- r: Query;
162
+ q: IsQuery;
163
+ r: IsQuery;
187
164
  s: boolean;
188
165
  } | {
189
- q: QueryWithTable;
166
+ q: IsQuery;
190
167
  a: SimpleJoinItemNonSubQueryArgs;
191
168
  s: boolean;
192
169
  };
@@ -206,7 +183,7 @@ type WhereItem = {
206
183
  EXISTS?: MaybeArray<JoinItemArgs>;
207
184
  ON?: WhereOnItem | WhereJsonPathEqualsItem;
208
185
  SEARCH?: MaybeArray<WhereSearchItem>;
209
- } | ((q: unknown) => QueryBase | RelationQuery | Expression) | Query | Expression;
186
+ } | ((q: unknown) => RelationQueryBase | Expression) | Query | Expression;
210
187
  interface WhereInItem {
211
188
  columns: string[];
212
189
  values: unknown[][] | Query | Expression;
@@ -326,7 +303,7 @@ interface QueryComputedArg<ColumnTypes, Shape extends QueryColumns> extends Expr
326
303
  };
327
304
  };
328
305
  }
329
- declare const applyComputedColumns: (q: Query, fn: ComputedOptionsFactory<never, never>) => void;
306
+ declare const applyComputedColumns: (q: IsQuery, fn: ComputedOptionsFactory<never, never>) => void;
330
307
  declare const processComputedResult: (query: QueryData, result: unknown) => Promise<void[]> | undefined;
331
308
  declare const processComputedBatches: (query: QueryData, batches: QueryBatchResult[], originalReturnType: QueryReturnType, returnType: QueryReturnType, tempColumns: Set<string> | undefined, renames: RecordString | undefined, key: string) => Promise<void> | undefined;
332
309
 
@@ -364,6 +341,8 @@ interface CommonQueryData {
364
341
  patchResult?(q: Query, queryResult: QueryResult): Promise<void>;
365
342
  handleResult: HandleResult;
366
343
  returnType: QueryReturnType;
344
+ returning?: boolean;
345
+ returningMany?: boolean;
367
346
  wrapInTransaction?: boolean;
368
347
  throwOnNotFound?: boolean;
369
348
  with?: WithItem[];
@@ -428,7 +407,7 @@ interface CommonQueryData {
428
407
  transform?: QueryDataTransform[];
429
408
  language?: string;
430
409
  subQuery?: number;
431
- relChain?: (Query | RelationQuery)[];
410
+ relChain?: (Query | RelationQueryBase)[];
432
411
  /**
433
412
  * Stores current operator functions available for the query.
434
413
  * Is needed to remove these operators from query object when changing the query type, see {@link setQueryOperators}.
@@ -699,9 +678,9 @@ type JoinResult<T extends PickQueryMetaResultReturnType, JoinedSelectable, Requi
699
678
  type JoinResultFromArgs<T extends PickQueryMetaResultRelationsWithDataReturnType, Arg, Args, RequireJoined, RequireMain> = JoinResult<T, Args extends GenericJoinCallbackTuple ? JoinResultSelectable<ReturnType<Args[0]>['result'], AliasOrTable<ReturnType<Args[0]>>, RequireJoined> : Arg extends PickQueryTableMetaResultShape ? Arg['meta']['hasSelect'] extends true ? JoinResultSelectable<Arg['result'], AliasOrTable<Arg>, RequireJoined> : JoinResultSelectable<Arg['shape'], AliasOrTable<{
700
679
  table: Arg['table'];
701
680
  meta: Arg['meta'];
702
- }>, RequireJoined> : Arg extends keyof T['relations'] ? JoinResultSelectable<T['relations'][Arg]['relationConfig']['query']['shape'], AliasOrTable<{
703
- table: T['relations'][Arg]['relationConfig']['query']['table'];
704
- meta: T['relations'][Arg]['relationConfig']['query']['meta'];
681
+ }>, RequireJoined> : Arg extends keyof T['relations'] ? JoinResultSelectable<T['relations'][Arg]['shape'], AliasOrTable<{
682
+ table: T['relations'][Arg]['table'];
683
+ meta: T['relations'][Arg]['meta'];
705
684
  }>, RequireJoined> : Arg extends GenericJoinCallback ? JoinResultSelectable<ReturnType<Arg>['shape'], AliasOrTable<{
706
685
  table: ReturnType<Arg>['table'];
707
686
  meta: ReturnType<Arg>['meta'];
@@ -752,22 +731,6 @@ type JoinAddSelectable<T extends PickQueryMeta, Selectable> = {
752
731
  [K in keyof T['meta']]: K extends 'selectable' ? T['meta']['selectable'] & Selectable : T['meta'][K];
753
732
  } : T[K];
754
733
  };
755
- /**
756
- * Map the `with` table first argument of `join` or `joinLateral` to a query type.
757
- * Constructs `selectable` based on `with` table shape, and adds generic types to conform the `QueryBase` type.
758
- */
759
- interface JoinWithArgToQuery<With extends WithDataItem> extends Query {
760
- table: With['table'];
761
- meta: QueryMetaBase & {
762
- selectable: {
763
- [K in keyof With['shape'] & string as `${With['table']}.${K}`]: {
764
- as: K;
765
- column: With['shape'][K];
766
- };
767
- };
768
- };
769
- result: With['shape'];
770
- }
771
734
  /**
772
735
  * Map the first argument of `join` or `joinLateral` to a query type.
773
736
  *
@@ -775,7 +738,16 @@ interface JoinWithArgToQuery<With extends WithDataItem> extends Query {
775
738
  * query arg is returned as is,
776
739
  * relation name is replaced with a relation table.
777
740
  */
778
- type JoinArgToQuery<T extends PickQueryRelationsWithData, Arg extends JoinFirstArg<T>> = Arg extends keyof T['withData'] ? T['withData'][Arg] extends WithDataItem ? JoinWithArgToQuery<T['withData'][Arg]> : never : Arg extends PickQueryTableMetaResult ? Arg : Arg extends keyof T['relations'] ? T['relations'][Arg]['relationConfig']['query'] : Arg extends JoinArgToQueryCallback ? ReturnType<Arg> : never;
741
+ type JoinArgToQuery<T extends PickQueryRelationsWithData, Arg extends JoinFirstArg<T>> = Arg extends keyof T['withData'] ? T['withData'][Arg] extends WithDataItem ? {
742
+ [K in 'table' | 'meta' | 'result' | keyof T]: K extends 'table' ? T['withData'][Arg]['table'] : K extends 'meta' ? QueryMetaBase & {
743
+ selectable: {
744
+ [K in keyof T['withData'][Arg]['shape'] & string as `${T['withData'][Arg]['table']}.${K}`]: {
745
+ as: K;
746
+ column: T['withData'][Arg]['shape'][K];
747
+ };
748
+ };
749
+ } : K extends 'result' ? T['withData'][Arg]['shape'] : K extends keyof T ? T[K] : never;
750
+ } : never : Arg extends PickQueryTableMetaResult ? Arg : Arg extends keyof T['relations'] ? T['relations'][Arg] : Arg extends JoinArgToQueryCallback ? ReturnType<Arg> : never;
779
751
  type JoinArgToQueryCallback = (...args: any[]) => PickQueryTableMetaResult;
780
752
  /**
781
753
  * Type of the `join` callback (not `joinLateral`).
@@ -1482,12 +1454,12 @@ interface Operator<Value, Column extends PickOutputTypeAndOperators = PickOutput
1482
1454
  <T extends PickQueryResult>(this: T, arg: Value): Omit<SetQueryReturnsColumnOrThrow<T, Column>, keyof T['result']['value']['operators']> & Column['operators'];
1483
1455
  _opType: Value;
1484
1456
  }
1485
- declare function setQueryOperators(query: PickQueryBaseQuery, operators: RecordUnknown): PickQueryBaseQuery;
1457
+ declare function setQueryOperators(query: IsQuery, operators: RecordUnknown): IsQuery;
1486
1458
  interface Base<Value> {
1487
- equals: Operator<Value | Query | Expression, BooleanQueryColumn>;
1488
- not: Operator<Value | Query | Expression, BooleanQueryColumn>;
1489
- in: Operator<Value[] | Query | Expression, BooleanQueryColumn>;
1490
- notIn: Operator<Value[] | Query | Expression, BooleanQueryColumn>;
1459
+ equals: Operator<Value | IsQuery | Expression, BooleanQueryColumn>;
1460
+ not: Operator<Value | IsQuery | Expression, BooleanQueryColumn>;
1461
+ in: Operator<Value[] | IsQuery | Expression, BooleanQueryColumn>;
1462
+ notIn: Operator<Value[] | IsQuery | Expression, BooleanQueryColumn>;
1491
1463
  }
1492
1464
  interface OperatorsBooleanSelf extends OperatorsBoolean {
1493
1465
  result: {
@@ -1499,23 +1471,23 @@ interface OperatorsBoolean extends Base<boolean> {
1499
1471
  or: Operator<OperatorsBooleanSelf, BooleanQueryColumn>;
1500
1472
  }
1501
1473
  interface Ord<Value> extends Base<Value> {
1502
- lt: Operator<Value | Query | Expression, BooleanQueryColumn>;
1503
- lte: Operator<Value | Query | Expression, BooleanQueryColumn>;
1504
- gt: Operator<Value | Query | Expression, BooleanQueryColumn>;
1505
- gte: Operator<Value | Query | Expression, BooleanQueryColumn>;
1474
+ lt: Operator<Value | IsQuery | Expression, BooleanQueryColumn>;
1475
+ lte: Operator<Value | IsQuery | Expression, BooleanQueryColumn>;
1476
+ gt: Operator<Value | IsQuery | Expression, BooleanQueryColumn>;
1477
+ gte: Operator<Value | IsQuery | Expression, BooleanQueryColumn>;
1506
1478
  between: Operator<[
1507
- Value | Query | Expression,
1508
- Value | Query | Expression
1479
+ Value | IsQuery | Expression,
1480
+ Value | IsQuery | Expression
1509
1481
  ], BooleanQueryColumn>;
1510
1482
  }
1511
1483
  type OperatorsNumber = Ord<number>;
1512
1484
  interface OperatorsText extends Base<string> {
1513
- contains: Operator<string | Query | Expression, BooleanQueryColumn>;
1514
- containsSensitive: Operator<string | Query | Expression, BooleanQueryColumn>;
1515
- startsWith: Operator<string | Query | Expression, BooleanQueryColumn>;
1516
- startsWithSensitive: Operator<string | Query | Expression, BooleanQueryColumn>;
1517
- endsWith: Operator<string | Query | Expression, BooleanQueryColumn>;
1518
- endsWithSensitive: Operator<string | Query | Expression, BooleanQueryColumn>;
1485
+ contains: Operator<string | IsQuery | Expression, BooleanQueryColumn>;
1486
+ containsSensitive: Operator<string | IsQuery | Expression, BooleanQueryColumn>;
1487
+ startsWith: Operator<string | IsQuery | Expression, BooleanQueryColumn>;
1488
+ startsWithSensitive: Operator<string | IsQuery | Expression, BooleanQueryColumn>;
1489
+ endsWith: Operator<string | IsQuery | Expression, BooleanQueryColumn>;
1490
+ endsWithSensitive: Operator<string | IsQuery | Expression, BooleanQueryColumn>;
1519
1491
  }
1520
1492
  interface JsonPathQueryOptions {
1521
1493
  vars?: RecordUnknown;
@@ -1585,8 +1557,8 @@ interface JsonPathQuery {
1585
1557
  }
1586
1558
  interface OperatorsJson extends Base<unknown> {
1587
1559
  jsonPathQueryFirst: JsonPathQuery;
1588
- jsonSupersetOf: Operator<unknown | Query | Expression, BooleanQueryColumn>;
1589
- jsonSubsetOf: Operator<unknown | Query | Expression, BooleanQueryColumn>;
1560
+ jsonSupersetOf: Operator<unknown | IsQuery | Expression, BooleanQueryColumn>;
1561
+ jsonSubsetOf: Operator<unknown | IsQuery | Expression, BooleanQueryColumn>;
1590
1562
  jsonSet: {
1591
1563
  /**
1592
1564
  * Returns a JSON value/object/array where a given value is set at the given path.
@@ -1835,7 +1807,7 @@ declare class ExpressionMethods {
1835
1807
  type WhereArg<T extends PickQueryMetaRelations> = {
1836
1808
  [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<{
1837
1809
  columns: (keyof T['meta']['selectable'])[];
1838
- values: unknown[][] | QueryBase | Expression;
1810
+ values: unknown[][] | IsQuery | Expression;
1839
1811
  }> : T['meta']['selectable'][K]['column']['queryType'] | null | {
1840
1812
  [O in keyof T['meta']['selectable'][K]['column']['operators']]?: T['meta']['selectable'][K]['column']['operators'][O]['_opType'];
1841
1813
  } | {
@@ -1861,22 +1833,22 @@ type WhereArg<T extends PickQueryMetaRelations> = {
1861
1833
  * ```
1862
1834
  */
1863
1835
  type WhereQueryBuilder<T extends PickQueryRelations> = EmptyObject extends T['relations'] ? {
1864
- [K in keyof T]: K extends keyof QueryBase | keyof Where | keyof ExpressionMethods | 'sql' | 'get' | 'ref' | 'columnTypes' ? T[K] : never;
1836
+ [K in keyof T]: K extends keyof Where | keyof ExpressionMethods | 'get' | 'columnTypes' | 'meta' | 'relations' ? T[K] : never;
1865
1837
  } : {
1866
- [K in keyof T]: K extends keyof T['relations'] ? T['relations'][K] : K extends keyof QueryBase | keyof Where | keyof ExpressionMethods | 'sql' | 'get' | 'ref' | 'columnTypes' ? T[K] : never;
1838
+ [K in keyof T['relations'] | keyof T]: K extends keyof T['relations'] ? T['relations'][K] : K extends keyof T & (keyof Where | keyof ExpressionMethods | 'get' | 'columnTypes' | 'meta' | 'relations') ? T[K] : never;
1867
1839
  };
1868
1840
  type WhereArgs<T extends PickQueryMetaRelations> = WhereArg<T>[];
1869
1841
  type WhereNotArgs<T extends PickQueryMetaRelations> = [WhereArg<T>];
1870
1842
  type WhereInColumn<T extends PickQueryMetaRelations> = keyof T['meta']['selectable'] | [keyof T['meta']['selectable'], ...(keyof T['meta']['selectable'])[]];
1871
- type WhereInValues<T extends PickQueryMetaRelations, Column> = Column extends keyof T['meta']['selectable'] ? T['meta']['selectable'][Column]['column']['queryType'][] | Query | Expression : ({
1843
+ type WhereInValues<T extends PickQueryMetaRelations, Column> = Column extends keyof T['meta']['selectable'] ? T['meta']['selectable'][Column]['column']['queryType'][] | IsQuery | Expression : ({
1872
1844
  [I in keyof Column]: Column[I] extends keyof T['meta']['selectable'] ? T['meta']['selectable'][Column[I]]['column']['queryType'] : never;
1873
1845
  } & {
1874
1846
  length: Column extends {
1875
1847
  length: number;
1876
1848
  } ? Column['length'] : never;
1877
- })[] | Query | Expression;
1849
+ })[] | IsQuery | Expression;
1878
1850
  type WhereInArg<T extends PickQueryMeta> = {
1879
- [K in keyof T['meta']['selectable']]?: T['meta']['selectable'][K]['column']['queryType'][] | Query | Expression;
1851
+ [K in keyof T['meta']['selectable']]?: T['meta']['selectable'][K]['column']['queryType'][] | IsQuery | Expression;
1880
1852
  };
1881
1853
  type WhereResult<T> = T & QueryMetaHasWhere;
1882
1854
  interface QueryMetaHasWhere {
@@ -1920,7 +1892,7 @@ declare const _queryOrNot: <T extends PickQueryMetaRelations>(q: T, args: WhereA
1920
1892
  /**
1921
1893
  * Mutative {@link Where.prototype.whereIn}
1922
1894
  */
1923
- declare const _queryWhereIn: <T>(q: T, and: boolean, arg: unknown, values: unknown[] | unknown[][] | Query | Expression | undefined, not?: boolean) => WhereResult<T>;
1895
+ declare const _queryWhereIn: <T>(q: T, and: boolean, arg: unknown, values: unknown[] | unknown[][] | IsQuery | Expression | undefined, not?: boolean) => WhereResult<T>;
1924
1896
  /**
1925
1897
  * Mutative {@link Where.prototype.whereExists}
1926
1898
  */
@@ -2545,7 +2517,8 @@ declare class Where {
2545
2517
  interface ScopeArgumentQueryMeta<Table extends string | undefined, Shape extends QueryColumns> extends QueryMetaBase {
2546
2518
  selectable: SelectableFromShape<Shape, Table>;
2547
2519
  }
2548
- interface ScopeArgumentQuery<Table extends string | undefined, Shape extends QueryColumns> extends Where, QueryBase {
2520
+ interface ScopeArgumentQuery<Table extends string | undefined, Shape extends QueryColumns> extends Where, PickQueryMetaShapeRelationsWithData {
2521
+ __isQuery: true;
2549
2522
  table: Table;
2550
2523
  shape: Shape;
2551
2524
  meta: ScopeArgumentQueryMeta<Table, Shape>;
@@ -3221,7 +3194,7 @@ interface DefaultSchemaConfig extends ColumnSchemaConfig<ColumnType> {
3221
3194
  declare const defaultSchemaConfig: DefaultSchemaConfig;
3222
3195
 
3223
3196
  type SoftDeleteOption<Shape extends QueryColumns> = true | keyof Shape;
3224
- interface QueryWithSoftDelete extends PickQueryResult {
3197
+ interface QueryWithSoftDelete extends PickQueryMetaResultReturnType {
3225
3198
  meta: QueryMetaBase<{
3226
3199
  nonDeleted: true;
3227
3200
  }>;
@@ -3345,7 +3318,7 @@ interface DbTableOptions<ColumnTypes, Table extends string | undefined, Shape ex
3345
3318
  * See {@link ScopeMethods}
3346
3319
  */
3347
3320
  type DbTableOptionScopes<Table extends string | undefined, Shape extends QueryColumns, Keys extends string = string> = {
3348
- [K in Keys]: (q: ScopeArgumentQuery<Table, Shape>) => QueryBase;
3321
+ [K in Keys]: (q: ScopeArgumentQuery<Table, Shape>) => IsQuery;
3349
3322
  };
3350
3323
  type QueryDefaultReturnData<Shape extends QueryColumnsInit> = {
3351
3324
  [K in DefaultSelectColumns<Shape>]: Shape[K]['outputType'];
@@ -3361,12 +3334,22 @@ interface TableMeta<Table extends string | undefined, Shape extends QueryColumns
3361
3334
  defaultSelect: DefaultSelectColumns<Shape>;
3362
3335
  }
3363
3336
  declare const anyShape: QueryColumnsInit;
3364
- interface Db<Table extends string | undefined = undefined, Shape extends QueryColumnsInit = QueryColumnsInit, PrimaryKeys = never, UniqueColumns = never, UniqueColumnTuples = never, UniqueConstraints = never, ColumnTypes = DefaultColumnTypes<ColumnSchemaConfig>, ShapeWithComputed extends QueryColumnsInit = Shape, Scopes extends RecordUnknown | undefined = EmptyObject> extends DbBase<Adapter, Table, Shape, ColumnTypes, ShapeWithComputed>, QueryMethods<ColumnTypes>, QueryBase {
3365
- result: Pick<Shape, DefaultSelectColumns<Shape>>;
3337
+ declare class Db<Table extends string | undefined = undefined, Shape extends QueryColumnsInit = QueryColumnsInit, PrimaryKeys = never, UniqueColumns = never, UniqueColumnTuples = never, UniqueConstraints = never, ColumnTypes = DefaultColumnTypes<ColumnSchemaConfig>, ShapeWithComputed extends QueryColumnsInit = Shape, Scopes extends RecordUnknown | undefined = EmptyObject> extends QueryMethods<ColumnTypes> implements Query {
3338
+ adapter: Adapter;
3366
3339
  queryBuilder: Db;
3340
+ table: Table;
3341
+ shape: ShapeWithComputed;
3342
+ columnTypes: ColumnTypes;
3343
+ q: QueryData;
3344
+ __isQuery: true;
3345
+ baseQuery: Query;
3346
+ columns: (keyof Shape)[];
3347
+ outputType: DefaultSelectOutput<Shape>;
3348
+ inputType: ColumnShapeInput<Shape>;
3349
+ result: Pick<Shape, DefaultSelectColumns<Shape>>;
3367
3350
  returnType: undefined;
3368
3351
  then: QueryThen<QueryDefaultReturnData<Shape>>;
3369
- windows: Query['windows'];
3352
+ windows: EmptyObject;
3370
3353
  relations: EmptyObject;
3371
3354
  withData: EmptyObject;
3372
3355
  error: new (message: string, length: number, name: QueryErrorName) => QueryError<this>;
@@ -3377,13 +3360,6 @@ interface Db<Table extends string | undefined = undefined, Shape extends QueryCo
3377
3360
  [K in keyof Shape]: Shape[K]['data']['unique'] extends string ? K : never;
3378
3361
  }[keyof Shape] | keyof PrimaryKeys, UniqueColumnTuples, UniqueConstraints>;
3379
3362
  catch: QueryCatch;
3380
- }
3381
- declare class Db<Table extends string | undefined = undefined, Shape extends QueryColumnsInit = QueryColumnsInit, PrimaryKeys = never, UniqueColumns = never, UniqueColumnTuples = never, UniqueConstraints = never, ColumnTypes = DefaultColumnTypes<ColumnSchemaConfig>, ShapeWithComputed extends QueryColumnsInit = Shape> implements Query {
3382
- adapter: Adapter;
3383
- queryBuilder: Db;
3384
- table: Table;
3385
- shape: ShapeWithComputed;
3386
- columnTypes: ColumnTypes;
3387
3363
  constructor(adapter: Adapter, queryBuilder: Db, table: Table, shape: ShapeWithComputed, columnTypes: ColumnTypes, transactionStorage: AsyncLocalStorage<TransactionState>, options: DbTableOptions<ColumnTypes, Table, ShapeWithComputed>, tableData?: TableData);
3388
3364
  [inspect.custom](): string;
3389
3365
  /**
@@ -3568,7 +3544,7 @@ interface ToSQLQuery {
3568
3544
  q: Query['q'];
3569
3545
  queryBuilder: Query['queryBuilder'];
3570
3546
  table?: Query['table'];
3571
- internal: Query['internal'];
3547
+ internal: QueryInternal;
3572
3548
  relations: Query['relations'];
3573
3549
  withData: Query['withData'];
3574
3550
  clone: Query['clone'];
@@ -3628,7 +3604,7 @@ type GetArg<T extends QueryGetSelf> = GetStringArg<T> | Expression;
3628
3604
  type GetStringArg<T extends PickQueryMeta> = keyof T['meta']['selectable'] & string;
3629
3605
  type GetResult<T extends QueryGetSelf, Arg extends GetArg<T>> = Arg extends string ? SetQueryReturnsValueOrThrow<T, Arg> : Arg extends Expression ? SetQueryReturnsColumnOrThrow<T, Arg['result']['value']> : never;
3630
3606
  type GetResultOptional<T extends QueryGetSelf, Arg extends GetArg<T>> = Arg extends string ? SetQueryReturnsValueOptional<T, Arg> : Arg extends Expression ? SetQueryReturnsColumnOptional<T, Arg['result']['value']> : never;
3631
- declare const _getSelectableColumn: (q: Query, arg: string) => QueryColumn | undefined;
3607
+ declare const _getSelectableColumn: (q: IsQuery, arg: string) => QueryColumn | undefined;
3632
3608
  declare function _queryGet<T extends QueryGetSelf, Arg extends GetArg<T>>(self: T, arg: Arg): GetResult<T, Arg>;
3633
3609
  declare function _queryGetOptional<T extends QueryGetSelf, Arg extends GetArg<T>>(self: T, arg: Arg): GetResultOptional<T, Arg>;
3634
3610
 
@@ -4110,7 +4086,7 @@ declare abstract class AsMethods {
4110
4086
 
4111
4087
  type ClearStatement = 'with' | 'select' | 'where' | 'union' | 'using' | 'join' | 'group' | 'order' | 'having' | 'limit' | 'offset' | 'counters';
4112
4088
  declare class Clear {
4113
- clear<T extends Query>(this: T, ...clears: ClearStatement[]): T;
4089
+ clear<T>(this: T, ...clears: ClearStatement[]): T;
4114
4090
  }
4115
4091
 
4116
4092
  interface CreateSelf extends PickQueryMetaResultRelationsWithDataReturnTypeShape, PickQueryUniqueProperties {
@@ -4153,8 +4129,8 @@ type CreateManyResult<T extends CreateSelf, BT> = T extends {
4153
4129
  type CreateManyRawOrFromResult<T extends CreateSelf> = T extends {
4154
4130
  isCount: true;
4155
4131
  } ? SetQueryKind<T, 'create'> : T['returnType'] extends 'one' | 'oneOrThrow' ? SetQueryReturnsAllKind<T, 'create'> : T['returnType'] extends 'value' | 'valueOrThrow' ? SetQueryReturnsPluckColumnKind<T, 'create'> : SetQueryKind<T, 'create'>;
4156
- type InsertManyResult<T extends CreateSelf, BT> = T['meta']['hasSelect'] extends true ? T['returnType'] extends 'one' | 'oneOrThrow' ? SetQueryReturnsAllKindResult<T, 'create', NarrowCreateResult<T, BT>> : T['returnType'] extends 'value' | 'valueOrThrow' ? SetQueryReturnsPluckColumnKindResult<T, 'create', NarrowCreateResult<T, BT>> : SetQueryKindResult<T, 'create', NarrowCreateResult<T, BT>> : SetQueryReturnsRowCount<T, 'create'>;
4157
- type InsertManyRawOrFromResult<T extends CreateSelf> = T['meta']['hasSelect'] extends true ? T['returnType'] extends 'one' | 'oneOrThrow' ? SetQueryReturnsAllKind<T, 'create'> : T['returnType'] extends 'value' | 'valueOrThrow' ? SetQueryReturnsPluckColumnKind<T, 'create'> : SetQueryKind<T, 'create'> : SetQueryReturnsRowCount<T, 'create'>;
4132
+ type InsertManyResult<T extends CreateSelf, BT> = T['meta']['hasSelect'] extends true ? T['returnType'] extends 'one' | 'oneOrThrow' ? SetQueryReturnsAllKindResult<T, 'create', NarrowCreateResult<T, BT>> : T['returnType'] extends 'value' | 'valueOrThrow' ? SetQueryReturnsPluckColumnKindResult<T, 'create', NarrowCreateResult<T, BT>> : SetQueryKindResult<T, 'create', NarrowCreateResult<T, BT>> : SetQueryReturnsRowCountMany<T, 'create'>;
4133
+ type InsertManyRawOrFromResult<T extends CreateSelf> = T['meta']['hasSelect'] extends true ? T['returnType'] extends 'one' | 'oneOrThrow' ? SetQueryReturnsAllKind<T, 'create'> : T['returnType'] extends 'value' | 'valueOrThrow' ? SetQueryReturnsPluckColumnKind<T, 'create'> : SetQueryKind<T, 'create'> : SetQueryReturnsRowCountMany<T, 'create'>;
4158
4134
  /**
4159
4135
  * When creating a record with a *belongs to* nested record,
4160
4136
  * un-nullify foreign key columns of the result.
@@ -4210,14 +4186,14 @@ declare const _queryCreateRaw: <T extends CreateSelf>(q: T, args: CreateRawArgs<
4210
4186
  declare const _queryInsertRaw: <T extends CreateSelf>(q: T, args: CreateRawArgs<T, CreateRawData<T>>) => InsertRawOrFromResult<T>;
4211
4187
  declare const _queryCreateManyRaw: <T extends CreateSelf>(q: T, args: CreateRawArgs<T, CreateManyRawData<T>>) => CreateManyRawOrFromResult<T>;
4212
4188
  declare const _queryInsertManyRaw: <T extends CreateSelf>(q: T, args: CreateRawArgs<T, CreateManyRawData<T>>) => InsertManyRawOrFromResult<T>;
4213
- declare const _queryCreateFrom: <T extends CreateSelf, Q extends Query & {
4214
- returnType: 'one' | 'oneOrThrow';
4215
- }>(q: T, query: Q, data?: Omit<CreateData<T, CreateBelongsToData<T>>, keyof Q['result']>) => CreateRawOrFromResult<T>;
4216
- declare const _queryInsertFrom: <T extends CreateSelf, Q extends Query & {
4189
+ interface QueryReturningOne extends IsQuery {
4190
+ result: QueryColumns;
4217
4191
  returnType: 'one' | 'oneOrThrow';
4218
- }>(q: T, query: Q, data?: Omit<CreateData<T, CreateBelongsToData<T>>, keyof Q['result']>) => InsertRawOrFromResult<T>;
4219
- declare const _queryCreateManyFrom: <T extends CreateSelf>(q: T, query: Query) => CreateManyRawOrFromResult<T>;
4220
- declare const _queryInsertManyFrom: <T extends CreateSelf>(q: T, query: Query) => InsertManyRawOrFromResult<T>;
4192
+ }
4193
+ declare const _queryCreateFrom: <T extends CreateSelf, Q extends QueryReturningOne>(q: T, query: Q, data?: Omit<CreateData<T, CreateBelongsToData<T>>, keyof Q['result']>) => CreateRawOrFromResult<T>;
4194
+ declare const _queryInsertFrom: <T extends CreateSelf, Q extends QueryReturningOne>(q: T, query: Q, data?: Omit<CreateData<T, CreateBelongsToData<T>>, keyof Q['result']>) => InsertRawOrFromResult<T>;
4195
+ declare const _queryCreateManyFrom: <T extends CreateSelf>(q: T, query: IsQuery) => CreateManyRawOrFromResult<T>;
4196
+ declare const _queryInsertManyFrom: <T extends CreateSelf>(q: T, query: IsQuery) => InsertManyRawOrFromResult<T>;
4221
4197
  declare const _queryDefaults: <T extends CreateSelf, Data extends Partial<CreateData<T, CreateBelongsToData<T>>>>(q: T, data: Data) => AddQueryDefaults<T, { [K in keyof Data]: true; }>;
4222
4198
  /**
4223
4199
  * Names of all create methods,
@@ -4406,18 +4382,14 @@ declare class Create {
4406
4382
  * @param query - query to create new records from
4407
4383
  * @param data - additionally you can set some columns
4408
4384
  */
4409
- createFrom<T extends CreateSelf, Q extends Query & {
4410
- returnType: 'one' | 'oneOrThrow';
4411
- }>(this: T, query: Q, data?: Omit<CreateData<T, CreateBelongsToData<T>>, keyof Q['result']>): CreateRawOrFromResult<T>;
4385
+ createFrom<T extends CreateSelf, Q extends QueryReturningOne>(this: T, query: Q, data?: Omit<CreateData<T, CreateBelongsToData<T>>, keyof Q['result']>): CreateRawOrFromResult<T>;
4412
4386
  /**
4413
4387
  * Works exactly as {@link createFrom}, except that it returns inserted row count by default.
4414
4388
  *
4415
4389
  * @param query - query to create new records from
4416
4390
  * @param data - additionally you can set some columns
4417
4391
  */
4418
- insertFrom<T extends CreateSelf, Q extends Query & {
4419
- returnType: 'one' | 'oneOrThrow';
4420
- }>(this: T, query: Q, data?: Omit<CreateData<T, CreateBelongsToData<T>>, keyof Q['result']>): InsertRawOrFromResult<T>;
4392
+ insertFrom<T extends CreateSelf, Q extends QueryReturningOne>(this: T, query: Q, data?: Omit<CreateData<T, CreateBelongsToData<T>>, keyof Q['result']>): InsertRawOrFromResult<T>;
4421
4393
  /**
4422
4394
  * Similar to `createFrom`, but intended to create many records.
4423
4395
  *
@@ -4431,13 +4403,13 @@ declare class Create {
4431
4403
  *
4432
4404
  * @param query - query to create new records from
4433
4405
  */
4434
- createManyFrom<T extends CreateSelf>(this: T, query: Query): CreateManyRawOrFromResult<T>;
4406
+ createManyFrom<T extends CreateSelf>(this: T, query: IsQuery): CreateManyRawOrFromResult<T>;
4435
4407
  /**
4436
4408
  * Works exactly as {@link createManyFrom}, except that it returns inserted row count by default.
4437
4409
  *
4438
4410
  * @param query - query to create new records from
4439
4411
  */
4440
- insertManyFrom<T extends CreateSelf>(this: T, query: Query): InsertManyRawOrFromResult<T>;
4412
+ insertManyFrom<T extends CreateSelf>(this: T, query: IsQuery): InsertManyRawOrFromResult<T>;
4441
4413
  /**
4442
4414
  * `defaults` allows setting values that will be used later in `create`.
4443
4415
  *
@@ -4688,8 +4660,8 @@ declare class OnConflictQueryBuilder<T extends CreateSelf, Arg extends OnConflic
4688
4660
 
4689
4661
  type DeleteMethodsNames = 'delete';
4690
4662
  type DeleteArgs<T extends PickQueryMetaResult> = T['meta']['hasWhere'] extends true ? EmptyTuple : [never];
4691
- type DeleteResult<T extends PickQueryMetaResult> = T['meta']['hasSelect'] extends true ? SetQueryKind<T, 'delete'> : SetQueryReturnsRowCount<T, 'delete'>;
4692
- declare const _queryDelete: <T extends PickQueryMetaResult>(query: T) => DeleteResult<T>;
4663
+ type DeleteResult<T extends PickQueryMetaResultReturnType> = T['meta']['hasSelect'] extends true ? SetQueryKind<T, 'delete'> : T['returnType'] extends undefined | 'all' ? SetQueryReturnsRowCountMany<T, 'delete'> : SetQueryReturnsRowCount<T, 'delete'>;
4664
+ declare const _queryDelete: <T extends PickQueryMetaResultReturnType>(query: T) => DeleteResult<T>;
4693
4665
  declare class Delete {
4694
4666
  /**
4695
4667
  * This method deletes one or more rows, based on other conditions specified in the query.
@@ -4750,7 +4722,7 @@ declare class Delete {
4750
4722
  * .from('b');
4751
4723
  * ```
4752
4724
  */
4753
- delete<T extends PickQueryMetaResult>(this: T, ..._args: DeleteArgs<T>): DeleteResult<T>;
4725
+ delete<T extends PickQueryMetaResultReturnType>(this: T, ..._args: DeleteArgs<T>): DeleteResult<T>;
4754
4726
  }
4755
4727
 
4756
4728
  type ForQueryBuilder<Q> = Q & {
@@ -4947,7 +4919,7 @@ declare class Having {
4947
4919
  *
4948
4920
  * @param args - raw SQL template string or one or multiple callbacks returning a boolean expression
4949
4921
  */
4950
- having<T extends Query>(this: T, ...args: HavingArgFn<T>[]): T;
4922
+ having<T>(this: T, ...args: HavingArgFn<T>[]): T;
4951
4923
  /**
4952
4924
  * Provide SQL expression for the `HAVING` SQL statement:
4953
4925
  *
@@ -4957,7 +4929,7 @@ declare class Having {
4957
4929
  *
4958
4930
  * @param args - SQL expression
4959
4931
  */
4960
- havingSql<T extends Query>(this: T, ...args: SQLQueryArgs): T;
4932
+ havingSql<T>(this: T, ...args: SQLQueryArgs): T;
4961
4933
  }
4962
4934
 
4963
4935
  declare const commitSql: SingleSqlItem;
@@ -5346,7 +5318,7 @@ type MergeQueryResult<T extends PickQueryMetaResult, Q extends PickQueryMetaResu
5346
5318
  [K in keyof T['result'] | keyof Q['result']]: K extends keyof Q['result'] ? Q['result'][K] : T['result'][K];
5347
5319
  } : T['result'] : Q['result'];
5348
5320
  declare class MergeQueryMethods {
5349
- merge<T extends Query, Q extends Query>(this: T, q: Q): MergeQuery<T, Q>;
5321
+ merge<T extends PickQueryMetaResultReturnTypeWithDataWindows, Q extends PickQueryMetaResultReturnTypeWithDataWindows>(this: T, q: Q): MergeQuery<T, Q>;
5350
5322
  }
5351
5323
 
5352
5324
  interface SelectSelf {
@@ -5361,7 +5333,7 @@ type SelectArg<T extends SelectSelf> = '*' | keyof T['meta']['selectable'];
5361
5333
  type SelectArgs<T extends SelectSelf> = ('*' | keyof T['meta']['selectable'])[];
5362
5334
  interface SelectAsArg<T extends SelectSelf> {
5363
5335
  [K: string]: keyof T['meta']['selectable'] | Expression | ((q: EmptyObject extends T['relations'] ? T : {
5364
- [K in keyof T]: K extends keyof T['relations'] ? T[K] extends (...args: any[]) => any ? ReturnType<T[K]> : never : T[K];
5336
+ [K in keyof T['relations'] | keyof T]: K extends keyof T['relations'] ? T['relations'][K]['relationConfig']['maybeSingle'] : K extends keyof T ? T[K] : never;
5365
5337
  }) => unknown);
5366
5338
  }
5367
5339
  type SelectAsFnReturnType = {
@@ -5371,25 +5343,26 @@ type SelectAsFnReturnType = {
5371
5343
  interface SelectAsCheckReturnTypes {
5372
5344
  [K: string]: PropertyKey | Expression | ((q: never) => SelectAsFnReturnType);
5373
5345
  }
5346
+ type SelectReturnType<T extends PickQueryReturnType> = T['returnType'] extends 'valueOrThrow' ? 'oneOrThrow' : T extends 'value' ? 'one' : T['returnType'] extends 'pluck' ? 'all' : T['returnType'];
5374
5347
  type SelectResult<T extends SelectSelf, Columns extends PropertyKey[]> = {
5375
5348
  [K in keyof T]: K extends 'result' ? ('*' extends Columns[number] ? {
5376
5349
  [K in Columns[number] | T['meta']['defaultSelect'] as K extends '*' ? never : T['meta']['selectable'][K]['as']]: T['meta']['selectable'][K]['column'];
5377
5350
  } : {
5378
5351
  [K in Columns[number] as T['meta']['selectable'][K]['as']]: T['meta']['selectable'][K]['column'];
5379
- }) & (T['meta']['hasSelect'] extends true ? Omit<T['result'], Columns[number]> : unknown) : K extends 'then' ? QueryThen<GetQueryResult<T, ('*' extends Columns[number] ? {
5352
+ }) & (T['meta']['hasSelect'] extends (T['returnType'] extends 'value' | 'valueOrThrow' ? never : true) ? Omit<T['result'], Columns[number]> : unknown) : K extends 'returnType' ? SelectReturnType<T> : K extends 'then' ? QueryThen<QueryResultByReturnType<SelectReturnType<T>, ('*' extends Columns[number] ? {
5380
5353
  [K in Exclude<Columns[number], '*'> | T['meta']['defaultSelect'] as T['meta']['selectable'][K]['as']]: T['meta']['selectable'][K]['column'];
5381
5354
  } : {
5382
5355
  [K in Columns[number] as T['meta']['selectable'][K]['as']]: T['meta']['selectable'][K]['column'];
5383
- }) & (T['meta']['hasSelect'] extends true ? Omit<T['result'], Columns[number]> : unknown)>> : T[K];
5356
+ }) & (T['meta']['hasSelect'] extends (T['returnType'] extends 'value' | 'valueOrThrow' ? never : true) ? Omit<T['result'], Columns[number]> : unknown)>> : T[K];
5384
5357
  } & QueryMetaHasSelect;
5385
5358
  type SelectResultObj<T extends SelectSelf, Obj> = Obj extends SelectAsCheckReturnTypes ? {
5386
5359
  [K in keyof T]: K extends 'meta' ? T['meta'] & {
5387
5360
  hasSelect: true;
5388
5361
  selectable: SelectAsSelectable<Obj>;
5389
5362
  } : K extends 'result' ? {
5390
- [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;
5391
- } : K extends 'then' ? QueryThen<GetQueryResult<T, {
5392
- [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;
5363
+ [K in T['meta']['hasSelect'] extends (T['returnType'] extends 'value' | 'valueOrThrow' ? never : 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;
5364
+ } : K extends 'returnType' ? SelectReturnType<T> : K extends 'then' ? QueryThen<QueryResultByReturnType<SelectReturnType<T>, {
5365
+ [K in T['meta']['hasSelect'] extends (T['returnType'] extends 'value' | 'valueOrThrow' ? never : 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;
5393
5366
  }>> : T[K];
5394
5367
  } : `Invalid return type of ${{
5395
5368
  [K in keyof Obj]: Obj[K] extends (...args: any[]) => any ? ReturnType<Obj[K]> extends SelectAsFnReturnType ? never : K : never;
@@ -5401,9 +5374,9 @@ type SelectResultColumnsAndObj<T extends SelectSelf, Columns extends PropertyKey
5401
5374
  } : K extends 'result' ? // Combine previously selected items, all columns if * was provided,
5402
5375
  {
5403
5376
  [K in ('*' extends Columns[number] ? Exclude<Columns[number], '*'> | T['meta']['defaultSelect'] : Columns[number]) | keyof Obj as K extends Columns[number] ? T['meta']['selectable'][K]['as'] : K]: K extends keyof Obj ? SelectAsValueResult<T, Obj[K]> : T['meta']['selectable'][K]['column'];
5404
- } & (T['meta']['hasSelect'] extends true ? Omit<T['result'], Columns[number]> : unknown) : K extends 'then' ? QueryThen<GetQueryResult<T, {
5377
+ } & (T['meta']['hasSelect'] extends (T['returnType'] extends 'value' | 'valueOrThrow' ? never : true) ? Omit<T['result'], Columns[number]> : unknown) : K extends 'returnType' ? SelectReturnType<T> : K extends 'then' ? QueryThen<QueryResultByReturnType<SelectReturnType<T>, {
5405
5378
  [K in ('*' extends Columns[number] ? Exclude<Columns[number], '*'> | T['meta']['defaultSelect'] : Columns[number]) | keyof Obj as K extends Columns[number] ? T['meta']['selectable'][K]['as'] : K]: K extends keyof Obj ? SelectAsValueResult<T, Obj[K]> : T['meta']['selectable'][K]['column'];
5406
- } & (T['meta']['hasSelect'] extends true ? Omit<T['result'], Columns[number]> : unknown)>> : T[K];
5379
+ } & (T['meta']['hasSelect'] extends (T['returnType'] extends 'value' | 'valueOrThrow' ? never : true) ? Omit<T['result'], Columns[number]> : unknown)>> : T[K];
5407
5380
  };
5408
5381
  type SelectAsSelectable<Arg> = {
5409
5382
  [K in keyof Arg]: Arg[K] extends (q: never) => {
@@ -5423,7 +5396,7 @@ type SelectAsSelectable<Arg> = {
5423
5396
  };
5424
5397
  } : never;
5425
5398
  }[keyof Arg];
5426
- 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;
5399
+ 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) => IsQuery ? SelectSubQueryResult<ReturnType<Arg>> : Arg extends (q: never) => Expression ? ReturnType<Arg>['result']['value'] : Arg extends (q: never) => IsQuery | Expression ? SelectSubQueryResult<Exclude<ReturnType<Arg>, Expression>> | Exclude<ReturnType<Arg>, IsQuery>['result']['value'] : never;
5427
5400
  type SelectSubQueryResult<Arg extends SelectSelf> = Arg['returnType'] extends undefined | 'all' ? ColumnsShapeToObjectArray<Arg['result']> : Arg['returnType'] extends 'value' | 'valueOrThrow' ? Arg['result']['value'] : Arg['returnType'] extends 'pluck' ? ColumnsShapeToPluck<Arg['result']> : Arg['returnType'] extends 'one' ? ColumnsShapeToNullableObject<Arg['result']> : ColumnsShapeToObject<Arg['result']>;
5428
5401
  declare const addParserForRawExpression: (q: PickQueryQ, key: string | getValueKey, raw: Expression) => void;
5429
5402
  interface QueryBatchResult {
@@ -5434,7 +5407,7 @@ interface QueryBatchResult {
5434
5407
  declare const addParserForSelectItem: <T extends PickQueryMeta>(q: T, as: string | getValueKey | undefined, key: string, arg: SelectableOrExpression<T> | Query, joinQuery?: boolean) => string | Expression | Query | undefined;
5435
5408
  declare const processSelectArg: <T extends SelectSelf>(q: T, as: string | undefined, arg: SelectArg<T>, columnAs?: string | getValueKey) => SelectItem | undefined | false;
5436
5409
  declare const setParserForSelectedString: (q: PickQueryQAndInternal, arg: string, as: string | getValueKey | undefined, columnAs?: string | getValueKey) => string | undefined;
5437
- declare const getShapeFromSelect: (q: QueryBase, isSubQuery?: boolean) => QueryColumns;
5410
+ declare const getShapeFromSelect: (q: IsQuery, isSubQuery?: boolean) => QueryColumns;
5438
5411
  declare function _querySelect<T extends SelectSelf, Columns extends SelectArgs<T>>(q: T, columns: Columns): SelectResult<T, Columns>;
5439
5412
  declare function _querySelect<T extends SelectSelf, Obj extends SelectAsArg<T>>(q: T, obj: Obj): SelectResultObj<T, Obj>;
5440
5413
  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>;
@@ -5781,8 +5754,8 @@ declare class WithMethods {
5781
5754
  * .select('firstTable.column', 'secondTable.column');
5782
5755
  * ```
5783
5756
  */
5784
- 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>;
5785
- 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>;
5757
+ with<T extends PickQueryMetaWithDataColumnTypes, Name extends string, Q>(this: T, name: Name, query: Q | ((q: WithQueryBuilder<T>) => Q)): WithResult<T, Name, Q extends PickQueryResult ? Q : never>;
5758
+ with<T extends PickQueryMetaWithDataColumnTypes, Name extends string, Q extends PickQueryResult>(this: T, name: Name, options: WithArgsOptions, query: Q | ((q: WithQueryBuilder<T>) => Q)): WithResult<T, Name, Q>;
5786
5759
  /**
5787
5760
  * It is priceless for fetching tree-like structures, or any other recursive cases.
5788
5761
  *
@@ -5866,12 +5839,12 @@ declare class WithMethods {
5866
5839
  * .where({ n: { gt: 10 } });
5867
5840
  * ```
5868
5841
  */
5869
- 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: {
5842
+ withRecursive<T extends PickQueryMetaWithDataColumnTypes, Name extends string, Q extends PickQueryResult, Result = WithResult<T, Name, Q>>(this: T, name: Name, base: Q | ((qb: WithQueryBuilder<T>) => Q), recursive: (qb: {
5870
5843
  [K in keyof Result]: K extends 'result' ? Q['result'] : Result[K];
5871
- }) => Query): Result;
5872
- withRecursive<T extends PickQueryMetaWithDataColumnTypes, Name extends string, Q extends Query, Result = WithResult<T, Name, Q>>(this: T, name: Name, options: WithRecursiveOptions, base: Q | ((qb: WithQueryBuilder<T>) => Q), recursive: (qb: {
5844
+ }) => PickQueryResult): Result;
5845
+ withRecursive<T extends PickQueryMetaWithDataColumnTypes, Name extends string, Q extends PickQueryResult, Result = WithResult<T, Name, Q>>(this: T, name: Name, options: WithRecursiveOptions, base: Q | ((qb: WithQueryBuilder<T>) => Q), recursive: (qb: {
5873
5846
  [K in keyof Result]: K extends 'result' ? Q['result'] : Result[K];
5874
- }) => Query): Result;
5847
+ }) => PickQueryResult): Result;
5875
5848
  /**
5876
5849
  * Use `withSql` to add a Common Table Expression (CTE) based on a custom SQL.
5877
5850
  *
@@ -5936,7 +5909,7 @@ type UnionArgs<T extends PickQueryResult> = ({
5936
5909
  };
5937
5910
  };
5938
5911
  } | ((q: T) => Expression))[];
5939
- declare const _queryUnion: <T extends Query>(base: T, args: UnionArgs<T>, k: UnionKind) => T;
5912
+ declare const _queryUnion: <T extends PickQueryResult>(base: T, args: UnionArgs<T>, k: UnionKind) => T;
5940
5913
  declare class Union {
5941
5914
  /**
5942
5915
  * Creates a union query, takes one or more queries or SQL expressions.
@@ -6035,11 +6008,13 @@ type UpdateData<T extends UpdateSelf> = EmptyObject extends T['relations'] ? {
6035
6008
  } : {
6036
6009
  [K in keyof T['inputType'] | keyof T['relations']]?: K extends keyof T['inputType'] ? UpdateColumn<T, K> : UpdateRelationData<T, T['relations'][K]['relationConfig']>;
6037
6010
  };
6038
- type UpdateColumn<T extends UpdateSelf, Key extends keyof T['inputType']> = T['inputType'][Key] | QueryOrExpression<T['inputType'][Key]> | ((q: T) => QueryOrExpression<T['inputType'][Key]>);
6011
+ type UpdateColumn<T extends UpdateSelf, Key extends keyof T['inputType']> = T['inputType'][Key] | QueryOrExpression<T['inputType'][Key]> | ((q: {
6012
+ [K in keyof T['relations'] | keyof T]: K extends keyof T['relations'] ? T['relations'][K] : K extends keyof T ? T[K] : never;
6013
+ }) => QueryOrExpression<T['inputType'][Key]>);
6039
6014
  type UpdateRelationData<T extends UpdateSelf, Rel extends RelationConfigBase> = T['returnType'] extends undefined | 'all' ? Rel['dataForUpdate'] : Rel['dataForUpdateOne'];
6040
6015
  type UpdateArg<T extends UpdateSelf> = T['meta']['hasWhere'] extends true ? UpdateData<T> : never;
6041
6016
  type UpdateRawArgs<T extends UpdateSelf> = T['meta']['hasWhere'] extends true ? SQLQueryArgs : never;
6042
- type UpdateResult<T extends UpdateSelf> = T['meta']['hasSelect'] extends true ? SetQueryKind<T, 'update'> : SetQueryReturnsRowCount<T, 'update'>;
6017
+ type UpdateResult<T extends UpdateSelf> = T['meta']['hasSelect'] extends true ? SetQueryKind<T, 'update'> : T['returnType'] extends undefined | 'all' ? SetQueryReturnsRowCountMany<T, 'update'> : SetQueryReturnsRowCount<T, 'update'>;
6043
6018
  type NumericColumns<T extends PickQueryShape> = {
6044
6019
  [K in keyof T['shape']]: Exclude<T['shape'][K]['queryType'], string> extends number | bigint | null ? K : never;
6045
6020
  }[keyof T['shape']];
@@ -6870,7 +6845,9 @@ declare class TransformMethods {
6870
6845
  *
6871
6846
  * @param fn - function to transform query result with
6872
6847
  */
6873
- transform<T extends Query, Result>(this: T, fn: (input: T['then'] extends QueryThen<infer Data> ? Data : never) => Result): {
6848
+ transform<T extends IsQuery, Result>(this: T, fn: (input: T extends {
6849
+ then: QueryThen<infer Data>;
6850
+ } ? Data : never) => Result): {
6874
6851
  [K in keyof T]: K extends 'returnType' ? 'valueOrThrow' : K extends 'result' ? {
6875
6852
  value: QueryColumn<Result>;
6876
6853
  } : K extends 'then' ? QueryThen<Result> : T[K];
@@ -6918,7 +6895,11 @@ declare class QueryMap {
6918
6895
  *
6919
6896
  * @param fn - function to transform an individual record
6920
6897
  */
6921
- map<T extends Query, Result>(this: T, fn: (input: T['returnType'] extends undefined | 'all' | 'pluck' ? T['then'] extends QueryThen<(infer Data)[]> ? Data : never : T['then'] extends QueryThen<infer Data | undefined> ? Data : never) => Result): Result extends RecordUnknown ? {
6898
+ map<T extends PickQueryReturnType, Result>(this: T, fn: (input: T['returnType'] extends undefined | 'all' | 'pluck' ? T extends {
6899
+ then: QueryThen<(infer Data)[]>;
6900
+ } ? Data : never : T extends {
6901
+ then: QueryThen<infer Data | undefined>;
6902
+ } ? Data : never) => Result): Result extends RecordUnknown ? {
6922
6903
  [K in keyof T]: K extends 'result' ? {
6923
6904
  [K in keyof Result]: QueryColumn<Result[K]>;
6924
6905
  } : K extends 'then' ? QueryThen<T['returnType'] extends undefined | 'all' ? Result[] : Result> : T[K];
@@ -6968,26 +6949,25 @@ interface QueryHelper<T extends PickQueryMetaShape, Args extends any[], Result>
6968
6949
  result: QueryColumns;
6969
6950
  windows: EmptyObject;
6970
6951
  withData: WithDataItems;
6971
- }>(q: Q, ...args: Args): Result extends Query ? MergeQuery<Q, Result> : Result;
6952
+ }>(q: Q, ...args: Args): Result extends PickQueryMetaResultReturnTypeWithDataWindows ? MergeQuery<Q, Result> : Result;
6972
6953
  result: Result;
6973
6954
  }
6974
- type QueryHelperResult<T extends QueryHelper<Query, any[], unknown>> = T['result'];
6955
+ type QueryHelperResult<T extends QueryHelper<PickQueryMetaShape, any[], unknown>> = T['result'];
6975
6956
  type NarrowTypeResult<T extends PickQueryMetaResultReturnType, Narrow> = {
6976
6957
  [K in keyof T['result']]: K extends keyof Narrow ? {
6977
6958
  [P in keyof T['result'][K]]: P extends 'outputType' ? Narrow[K] extends T['result'][K]['outputType'] ? Narrow[K] : `narrowType() error: passed type does not exist in '${K & string}'s type union` : T['result'][K][P];
6978
6959
  } : T['result'][K];
6979
6960
  };
6980
6961
  type WrapQueryArg = FromQuerySelf;
6981
- declare const _queryAll: <T extends Query>(q: T) => SetQueryReturnsAll<T>;
6982
- declare const _queryTake: <T extends PickQueryResult>(q: T) => SetQueryReturnsOne<T>;
6983
- declare const _queryTakeOptional: <T extends PickQueryResult>(q: T) => SetQueryReturnsOneOptional<T>;
6984
- declare const _queryExec: <T extends Query>(q: T) => never;
6985
- declare const _queryFindBy: <T extends QueryBase<EmptyObject>>(q: T, args: WhereArgs<T>) => SetQueryReturnsOne<WhereResult<T>>;
6986
- declare const _queryFindByOptional: <T extends QueryBase<EmptyObject>>(q: T, args: WhereArgs<T>) => SetQueryReturnsOneOptional<WhereResult<T>>;
6987
- declare const _queryRows: <T extends Query>(q: T) => SetQueryReturnsRows<T>;
6988
6962
  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 {
6989
6963
  }
6990
6964
  declare class QueryMethods<ColumnTypes> {
6965
+ /**
6966
+ * Clones the current query chain, useful for re-using partial query snippets in other queries without mutating the original.
6967
+ *
6968
+ * Used under the hood, and not really needed on the app side.
6969
+ */
6970
+ clone<T>(this: T): T;
6991
6971
  /**
6992
6972
  * `.all` is a default behavior, that returns an array of objects:
6993
6973
  *
@@ -7322,7 +7302,7 @@ declare class QueryMethods<ColumnTypes> {
7322
7302
  *
7323
7303
  * @param arg - offset number
7324
7304
  */
7325
- offset<T extends Query>(this: T, arg: number | undefined): T;
7305
+ offset<T extends IsQuery>(this: T, arg: number | undefined): T;
7326
7306
  /**
7327
7307
  * Truncates the specified table.
7328
7308
  *
@@ -7452,7 +7432,7 @@ declare class QueryMethods<ColumnTypes> {
7452
7432
  *
7453
7433
  * @param fn - function to modify the query with. The result type will be merged with the main query as if the `merge` method was used.
7454
7434
  */
7455
- modify<T extends PickQueryMetaResultReturnTypeWithDataWindowsTable<string | undefined>, Arg extends PickQueryMetaResultReturnTypeWithDataWindowsTable<T['table']>, Result>(this: T, fn: (q: Arg) => Result): Result extends Query ? MergeQuery<T, Result> : Result;
7435
+ modify<T extends PickQueryMetaResultReturnTypeWithDataWindowsTable<string | undefined>, Arg extends PickQueryMetaResultReturnTypeWithDataWindowsTable<T['table']>, Result>(this: T, fn: (q: Arg) => Result): Result extends PickQueryMetaResultReturnTypeWithDataWindows ? MergeQuery<T, Result> : Result;
7456
7436
  /**
7457
7437
  * Use `makeHelper` to make a query helper - a function where you can modify the query, and reuse this function across different places.
7458
7438
  *
@@ -7533,6 +7513,8 @@ declare class QueryMethods<ColumnTypes> {
7533
7513
  narrowType<T extends PickQueryMetaResultReturnType>(this: T): <Narrow>() => {
7534
7514
  [K in keyof T]: K extends 'result' ? NarrowTypeResult<T, Narrow> : K extends 'then' ? QueryThen<GetQueryResult<T, NarrowTypeResult<T, Narrow>>> : T[K];
7535
7515
  };
7516
+ queryRelated<T extends PickQueryRelations, RelName extends keyof T['relations']>(this: T, relName: RelName, params: T['relations'][RelName]['relationConfig']['params']): T['relations'][RelName]['relationConfig']['maybeSingle'];
7517
+ chain<T extends PickQueryMetaRelations, RelName extends keyof T['relations']>(this: T, relName: RelName): T['meta']['subQuery'] extends true ? T['relations'][RelName]['relationConfig']['maybeSingle'] : T['relations'][RelName]['relationConfig']['query'];
7536
7518
  }
7537
7519
 
7538
7520
  declare const queryMethodByReturnType: {
@@ -7582,6 +7564,7 @@ interface QueryInternal<SinglePrimaryKey = any, UniqueColumns = any, UniqueColum
7582
7564
  nowSQL?: string;
7583
7565
  primaryKeys?: string[];
7584
7566
  columnNameToKeyMap?: Map<string, string>;
7567
+ callbackArg?: Query;
7585
7568
  }
7586
7569
  type SelectableFromShape<Shape extends QueryColumns, Table extends string | undefined> = {
7587
7570
  [K in keyof Shape]: {
@@ -7601,7 +7584,15 @@ interface WithDataItem {
7601
7584
  interface WithDataItems {
7602
7585
  [K: string]: WithDataItem;
7603
7586
  }
7604
- interface Query extends QueryBase, QueryMethods<unknown> {
7587
+ interface Query extends QueryMethods<unknown> {
7588
+ __isQuery: true;
7589
+ result: QueryColumns;
7590
+ table?: string;
7591
+ withData: WithDataItems;
7592
+ baseQuery: Query;
7593
+ internal: QueryInternal;
7594
+ meta: QueryMetaBase<EmptyObject>;
7595
+ returnType: QueryReturnType;
7605
7596
  queryBuilder: Db;
7606
7597
  columnTypes: unknown;
7607
7598
  shape: QueryColumns;
@@ -7634,6 +7625,8 @@ interface PickQueryBaseQuery {
7634
7625
  }
7635
7626
  interface PickQueryMetaRelations extends PickQueryMeta, PickQueryRelations {
7636
7627
  }
7628
+ interface PickQueryMetaRelationsResult extends PickQueryMetaRelations, PickQueryResult {
7629
+ }
7637
7630
  interface PickQueryMetaResultRelations extends PickQueryResult, PickQueryMeta, PickQueryRelations {
7638
7631
  }
7639
7632
  interface PickQueryMetaResultRelationsWindows extends PickQueryMetaResultRelations, PickQueryWindows {
@@ -7687,12 +7680,10 @@ type SelectableOfType<T extends PickQueryMeta, Type> = {
7687
7680
  [K in keyof T['meta']['selectable']]: T['meta']['selectable'][K]['column']['type'] extends Type | null ? K : never;
7688
7681
  }[keyof T['meta']['selectable']];
7689
7682
  type SelectableOrExpressionOfType<T extends PickQueryMeta, C extends PickType> = SelectableOfType<T, C['type']> | Expression<QueryColumn<C['type'] | null>>;
7690
- interface QueryWithTable extends Query {
7691
- table: string;
7692
- }
7693
7683
  declare const queryTypeWithLimitOne: RecordKeyTrue;
7694
7684
  declare const isQueryReturnsAll: (q: Query) => boolean;
7695
- type GetQueryResult<T extends PickQueryReturnType, Result extends QueryColumns> = T['returnType'] extends undefined | 'all' ? ColumnShapeOutput<Result>[] : T['returnType'] extends 'one' ? ColumnShapeOutput<Result> | undefined : T['returnType'] extends 'oneOrThrow' ? ColumnShapeOutput<Result> : T['returnType'] extends 'value' ? Result['value']['outputType'] | undefined : T['returnType'] extends 'valueOrThrow' ? Result['value']['outputType'] : T['returnType'] extends 'rows' ? ColumnShapeOutput<Result>[keyof Result][][] : T['returnType'] extends 'pluck' ? Result['pluck']['outputType'][] : T['returnType'] extends 'rowCount' ? number : void;
7685
+ type GetQueryResult<T extends PickQueryReturnType, Result extends QueryColumns> = T['returnType'] extends undefined | 'all' ? ColumnShapeOutput<Result>[] : T['returnType'] extends 'one' ? ColumnShapeOutput<Result> | undefined : T['returnType'] extends 'oneOrThrow' ? ColumnShapeOutput<Result> : T['returnType'] extends 'value' ? Result['value']['outputType'] | undefined : T['returnType'] extends 'valueOrThrow' ? Result['value']['outputType'] : T['returnType'] extends 'rows' ? ColumnShapeOutput<Result>[keyof Result][][] : T['returnType'] extends 'pluck' ? Result['pluck']['outputType'][] : void;
7686
+ type QueryResultByReturnType<ReturnType extends QueryReturnType, Result extends QueryColumns> = ReturnType extends undefined | 'all' ? ColumnShapeOutput<Result>[] : ReturnType extends 'one' ? ColumnShapeOutput<Result> | undefined : ReturnType extends 'oneOrThrow' ? ColumnShapeOutput<Result> : ReturnType extends 'value' ? Result['value']['outputType'] | undefined : ReturnType extends 'valueOrThrow' ? Result['value']['outputType'] : ReturnType extends 'rows' ? ColumnShapeOutput<Result>[keyof Result][][] : ReturnType extends 'pluck' ? Result['pluck']['outputType'][] : void;
7696
7687
  interface QueryMetaHasSelect {
7697
7688
  meta: {
7698
7689
  hasSelect: true;
@@ -7781,7 +7772,16 @@ type SetQueryReturnsColumnKindResult<T extends PickQueryMetaResult, Kind extends
7781
7772
  type SetQueryReturnsRowCount<T extends PickQueryMetaResult, Kind extends string> = {
7782
7773
  [K in keyof T]: K extends 'meta' ? {
7783
7774
  [K in keyof T['meta']]: K extends 'kind' ? Kind : T['meta'][K];
7784
- } : K extends 'returnType' ? 'rowCount' : K extends 'then' ? QueryThen<number> : T[K];
7775
+ } : K extends 'returnType' ? 'valueOrThrow' : K extends 'result' ? {
7776
+ value: QueryColumn<number>;
7777
+ } : K extends 'then' ? QueryThen<number> : T[K];
7778
+ };
7779
+ type SetQueryReturnsRowCountMany<T extends PickQueryMetaResult, Kind extends string> = {
7780
+ [K in keyof T]: K extends 'meta' ? {
7781
+ [K in keyof T['meta']]: K extends 'kind' ? Kind : T['meta'][K];
7782
+ } : K extends 'returnType' ? 'pluck' : K extends 'result' ? {
7783
+ pluck: QueryColumn<number>;
7784
+ } : K extends 'then' ? QueryThen<number> : T[K];
7785
7785
  };
7786
7786
  type SetQueryReturnsVoid<T> = {
7787
7787
  [K in keyof T]: K extends 'returnType' ? 'void' : K extends 'then' ? QueryThen<void> : T[K];
@@ -8324,6 +8324,10 @@ declare const escapeForLog: (value: Value) => string;
8324
8324
  declare const escapeForMigration: (value: Value) => string;
8325
8325
  declare const escapeString: (value: string) => string;
8326
8326
 
8327
+ /**
8328
+ * Call `.clone()` on a supposed query object
8329
+ */
8330
+ declare const _clone: (q: unknown) => Query;
8327
8331
  /**
8328
8332
  * Push all elements of given array into the array in the query data,
8329
8333
  * set given array if there is no array yet in the query data.
@@ -8362,7 +8366,7 @@ declare const setQueryObjectValue: <T extends {
8362
8366
  */
8363
8367
  declare const throwIfNoWhere: (q: PickQueryQ, method: string) => void;
8364
8368
  declare const throwIfJoinLateral: (q: PickQueryQ, method: string) => void;
8365
- declare const saveSearchAlias: (q: QueryBase, as: string, key: 'joinedShapes' | 'withShapes') => string;
8369
+ declare const saveSearchAlias: (q: IsQuery, as: string, key: 'joinedShapes' | 'withShapes') => string;
8366
8370
  /**
8367
8371
  * Extend query prototype with new methods.
8368
8372
  * The query and its data are cloned (with Object.create).
@@ -8372,6 +8376,13 @@ declare const saveSearchAlias: (q: QueryBase, as: string, key: 'joinedShapes' |
8372
8376
  */
8373
8377
  declare const extendQuery: <T extends PickQueryQAndBaseQuery, Methods extends RecordUnknown>(q: T, methods: Methods) => T & Methods;
8374
8378
  declare const getPrimaryKeys: (q: Query) => string[];
8379
+ declare const _queryAll: <T extends PickQueryResult>(q: T) => SetQueryReturnsAll<T>;
8380
+ declare const _queryTake: <T extends PickQueryResult>(q: T) => SetQueryReturnsOne<T>;
8381
+ declare const _queryTakeOptional: <T extends PickQueryResult>(q: T) => SetQueryReturnsOneOptional<T>;
8382
+ declare const _queryExec: <T extends IsQuery>(q: T) => never;
8383
+ declare const _queryFindBy: <T extends PickQueryMetaRelationsResult>(q: T, args: WhereArgs<T>) => SetQueryReturnsOne<WhereResult<T>>;
8384
+ declare const _queryFindByOptional: <T extends PickQueryMetaRelationsResult>(q: T, args: WhereArgs<T>) => SetQueryReturnsOneOptional<WhereResult<T>>;
8385
+ declare const _queryRows: <T extends PickQueryResult>(q: T) => SetQueryReturnsRows<T>;
8375
8386
 
8376
8387
  type Arg = {
8377
8388
  $queryBuilder: Query;
@@ -8495,4 +8506,4 @@ type CopyResult<T extends PickQueryMeta> = SetQueryKind<T, 'copy'>;
8495
8506
  */
8496
8507
  declare function copyTableData<T extends PickQueryMetaShape>(query: T, arg: CopyArg<T>): CopyResult<T>;
8497
8508
 
8498
- export { Adapter, AdapterConfig, AdapterOptions, AddQueryDefaults, AfterCommitError, AfterCommitErrorFulfilledResult, AfterCommitErrorRejectedResult, AfterCommitErrorResult, AfterHook, AggregateArgTypes, AggregateMethods, AggregateOptions, AliasOrTable, ArrayColumn, ArrayColumnValue, ArrayData, AsMethods, AsQueryArg, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BooleanQueryColumn, BoxColumn, ByteaColumn, ChangeCountArg, CidrColumn, CircleColumn, CitextColumn, Clear, ClearStatement, ColumnData, ColumnFromDbParams, ColumnInfoQueryData, ColumnRefExpression, ColumnType, ColumnsByType, ColumnsShape, ColumnsShapeToNullableObject, ColumnsShapeToObject, ColumnsShapeToObjectArray, ColumnsShapeToPluck, CommonQueryData, ComputedColumn, ComputedColumns, ComputedColumnsFromOptions, ComputedMethods, ComputedOptionsFactory, CopyOptions, CopyQueryData, Create, CreateBelongsToData, CreateColumn, CreateCtx, CreateData, CreateKind, CreateMethodsNames, CreateRelationsData, CreateRelationsDataOmittingFKeys, CreateResult, 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, GeneratorIgnore, GetArg, GetColumnInfo, GetQueryResult, GetResult, GetResultOptional, GetStringArg, GroupArgs, HandleResult, Having, HavingItem, HookAction, HookSelectArg, IdentityColumn, InetColumn, InsertQueryData, IntegerBaseColumn, IntegerColumn, IntervalColumn, IsolationLevel, JSONColumn, JSONTextColumn, Join, JoinArgToQuery, JoinArgs, JoinCallback, JoinFirstArg, JoinItem, JoinItemArgs, JoinLateralItem, JoinLateralResult, JoinQueryBuilder, JoinQueryMethod, JoinResult, JoinedParsers, JoinedShapes, JsonMethods, LimitedTextBaseColumn, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MapTableScopesOption, MergeQuery, MergeQueryMethods, MoneyColumn, MoreThanOneRowError, NoPrimaryKeyOption, NonUniqDataItem, NotFoundError, NumberAsStringBaseColumn, NumberBaseColumn, NumberColumnData, NumericColumns, 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, PostgisGeographyPointColumn, PostgisPoint, Query, QueryAfterHook, QueryArraysResult, QueryBase, QueryBaseThen, QueryBatchResult, QueryBeforeHook, QueryComputedArg, QueryData, QueryDataFromItem, QueryDataJoinTo, QueryDefaultReturnData, QueryError, QueryErrorName, QueryGet, QueryGetSelf, QueryHelperResult, QueryHooks, QueryInternal, QueryLog, QueryMetaHasSelect, QueryMetaHasWhere, QueryMethods, QueryOrExpression, QueryOrExpressionBooleanOrNullResult, QueryResult, QueryScopeData, QueryScopes, QuerySourceItem, QueryUpsertOrCreate, QueryWithTable, RawSQL, RealColumn, RecordOfColumnsShapeBase, RefExpression, RelationConfigBase, RelationConfigDataForCreate, RelationJoinQuery, RelationQuery, RelationQueryBase, RelationsBase, RuntimeComputedQueryColumn, SearchArg, SearchMethods, SearchWeight, SearchWeightRecord, Select, SelectArg, SelectArgs, SelectAs, SelectAsValue, 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, WithConfigs, WithDataItem, WithDataItems, WithItem, WithMethods, WithOptions, WithQueryBuilder, WithRecursiveOptions, WithResult, WithSqlResult, WrapQueryArg, XMLColumn, _afterCommitError, _getSelectableColumn, _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, _queryResolveAlias, _queryRows, _querySelect, _queryTake, _queryTakeOptional, _queryUnion, _queryUpdate, _queryUpdateOrThrow, _queryUpdateRaw, _queryWhere, _queryWhereExists, _queryWhereIn, _queryWhereNot, _queryWhereNotOneOf, _queryWhereNotSql, _queryWhereOneOf, _queryWhereSql, addColumnParserToQuery, addParserForRawExpression, addParserForSelectItem, addQueryOn, anyShape, applyComputedColumns, checkIfASimpleQuery, cloneQuery, cloneQueryBaseUnscoped, columnCheckToCode, columnCode, columnForeignKeysToCode, columnIndexesToCode, columnsShapeToCode, commitSql, constraintInnerToCode, constraintToCode, copyTableData, countSelect, createDb, defaultSchemaConfig, escapeForLog, escapeForMigration, escapeString, extendQuery, filterResult, foreignKeyArgumentToCode, getClonedQueryData, getColumnInfo, getColumnTypes, getPrimaryKeys, getQueryAs, getShapeFromSelect, getSqlText, handleResult, identityToCode, indexInnerToCode, indexToCode, instantiateColumn, isDefaultTimeStamp, isQueryReturnsAll, isSelectingCount, joinSubQuery, logParamToLogObject, makeColumnTypes, makeColumnsByType, makeFnExpression, makeRegexToFindInSql, makeSQL, parseRecord, parseTableData, parseTableDataInput, postgisTypmodToSql, primaryKeyInnerToCode, processComputedBatches, processComputedResult, processSelectArg, pushLimitSQL, pushQueryArray, pushQueryOn, pushQueryOnForOuter, pushQueryOrOn, pushQueryValue, pushTableDataCode, queryFrom, queryFromSql, queryJson, queryMethodByReturnType, queryTypeWithLimitOne, queryWrap, raw, referencesArgsToCode, resolveSubQueryCallback, rollbackSql, saveSearchAlias, setColumnDefaultParse, setColumnEncode, setColumnParse, setColumnParseNull, setParserForSelectedString, setQueryObjectValue, setQueryOperators, simplifyColumnDefault, sqlFn, sqlQueryArgsToExpression, tableDataMethods, templateLiteralToSQL, testTransaction, throwIfJoinLateral, throwIfNoWhere, toSQL, toSQLCacheKey };
8509
+ export { Adapter, AdapterConfig, AdapterOptions, AddQueryDefaults, AfterCommitError, AfterCommitErrorFulfilledResult, AfterCommitErrorRejectedResult, AfterCommitErrorResult, AfterHook, AggregateArgTypes, AggregateMethods, AggregateOptions, AliasOrTable, ArrayColumn, ArrayColumnValue, ArrayData, AsMethods, AsQueryArg, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BooleanQueryColumn, BoxColumn, ByteaColumn, ChangeCountArg, CidrColumn, CircleColumn, CitextColumn, Clear, ClearStatement, ColumnData, ColumnFromDbParams, ColumnInfoQueryData, ColumnRefExpression, ColumnType, ColumnsByType, ColumnsShape, ColumnsShapeToNullableObject, ColumnsShapeToObject, ColumnsShapeToObjectArray, ColumnsShapeToPluck, CommonQueryData, ComputedColumn, ComputedColumns, ComputedColumnsFromOptions, ComputedMethods, ComputedOptionsFactory, CopyOptions, CopyQueryData, Create, CreateBelongsToData, CreateColumn, CreateCtx, CreateData, CreateKind, CreateMethodsNames, CreateRelationsData, CreateRelationsDataOmittingFKeys, CreateResult, 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, GeneratorIgnore, GetArg, GetColumnInfo, GetQueryResult, GetResult, GetResultOptional, GetStringArg, GroupArgs, HandleResult, Having, HavingItem, HookAction, HookSelectArg, IdentityColumn, InetColumn, InsertQueryData, IntegerBaseColumn, IntegerColumn, IntervalColumn, IsolationLevel, JSONColumn, JSONTextColumn, Join, JoinArgToQuery, JoinArgs, JoinCallback, JoinFirstArg, JoinItem, JoinItemArgs, JoinLateralItem, JoinLateralResult, JoinQueryBuilder, JoinQueryMethod, JoinResult, JoinedParsers, JoinedShapes, JsonMethods, LimitedTextBaseColumn, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MapTableScopesOption, MergeQuery, MergeQueryMethods, MoneyColumn, MoreThanOneRowError, NoPrimaryKeyOption, NonUniqDataItem, NotFoundError, NumberAsStringBaseColumn, NumberBaseColumn, NumberColumnData, NumericColumns, 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, PickQueryMetaRelationsResult, 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, PostgisGeographyPointColumn, PostgisPoint, Query, QueryAfterHook, QueryArraysResult, QueryBatchResult, QueryBeforeHook, QueryComputedArg, QueryData, QueryDataFromItem, QueryDataJoinTo, QueryDefaultReturnData, QueryError, QueryErrorName, QueryGet, QueryGetSelf, QueryHelperResult, QueryHooks, QueryInternal, QueryLog, QueryMetaHasSelect, QueryMetaHasWhere, QueryMethods, QueryOrExpression, QueryOrExpressionBooleanOrNullResult, QueryResult, QueryResultByReturnType, QueryScopeData, QueryScopes, QuerySourceItem, QueryUpsertOrCreate, RawSQL, RealColumn, RecordOfColumnsShapeBase, RefExpression, RelationConfigBase, RelationConfigDataForCreate, RelationJoinQuery, RelationQueryBase, RelationsBase, RuntimeComputedQueryColumn, SearchArg, SearchMethods, SearchWeight, SearchWeightRecord, Select, SelectArg, SelectArgs, SelectAs, SelectAsValue, 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, SetQueryReturnsRowCountMany, 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, WithConfigs, WithDataItem, WithDataItems, WithItem, WithMethods, WithOptions, WithQueryBuilder, WithRecursiveOptions, WithResult, WithSqlResult, WrapQueryArg, XMLColumn, _afterCommitError, _clone, _getSelectableColumn, _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, _queryResolveAlias, _queryRows, _querySelect, _queryTake, _queryTakeOptional, _queryUnion, _queryUpdate, _queryUpdateOrThrow, _queryUpdateRaw, _queryWhere, _queryWhereExists, _queryWhereIn, _queryWhereNot, _queryWhereNotOneOf, _queryWhereNotSql, _queryWhereOneOf, _queryWhereSql, addColumnParserToQuery, addParserForRawExpression, addParserForSelectItem, addQueryOn, anyShape, applyComputedColumns, checkIfASimpleQuery, cloneQuery, cloneQueryBaseUnscoped, columnCheckToCode, columnCode, columnForeignKeysToCode, columnIndexesToCode, columnsShapeToCode, commitSql, constraintInnerToCode, constraintToCode, copyTableData, countSelect, createDb, defaultSchemaConfig, escapeForLog, escapeForMigration, escapeString, extendQuery, filterResult, foreignKeyArgumentToCode, getClonedQueryData, getColumnInfo, getColumnTypes, getPrimaryKeys, getQueryAs, getShapeFromSelect, getSqlText, handleResult, identityToCode, indexInnerToCode, indexToCode, instantiateColumn, isDefaultTimeStamp, isQueryReturnsAll, isSelectingCount, joinSubQuery, logParamToLogObject, makeColumnTypes, makeColumnsByType, makeFnExpression, makeRegexToFindInSql, makeSQL, parseRecord, parseTableData, parseTableDataInput, postgisTypmodToSql, primaryKeyInnerToCode, processComputedBatches, processComputedResult, processSelectArg, pushLimitSQL, pushQueryArray, pushQueryOn, pushQueryOnForOuter, pushQueryOrOn, pushQueryValue, pushTableDataCode, queryFrom, queryFromSql, queryJson, queryMethodByReturnType, queryTypeWithLimitOne, queryWrap, raw, referencesArgsToCode, resolveSubQueryCallback, rollbackSql, saveSearchAlias, setColumnDefaultParse, setColumnEncode, setColumnParse, setColumnParseNull, setParserForSelectedString, setQueryObjectValue, setQueryOperators, simplifyColumnDefault, sqlFn, sqlQueryArgsToExpression, tableDataMethods, templateLiteralToSQL, testTransaction, throwIfJoinLateral, throwIfNoWhere, toSQL, toSQLCacheKey };