pqb 0.18.28 → 0.18.30
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 +34 -15
- package/dist/index.js +17 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +17 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -82,7 +82,7 @@ type RelationConfigBase = {
|
|
|
82
82
|
dataForUpdate: unknown;
|
|
83
83
|
dataForUpdateOne: unknown;
|
|
84
84
|
params: Record<string, unknown>;
|
|
85
|
-
populate: string
|
|
85
|
+
populate: Record<string, true>;
|
|
86
86
|
chainedCreate: boolean;
|
|
87
87
|
chainedDelete: boolean;
|
|
88
88
|
};
|
|
@@ -97,7 +97,7 @@ type RelationQueryBase = Query & {
|
|
|
97
97
|
type RelationQuery<Name extends PropertyKey = PropertyKey, Config extends RelationConfigBase = RelationConfigBase, T extends Query = Query, Q extends Query = {
|
|
98
98
|
[K in keyof T | 'relationConfig']: K extends 'meta' ? Omit<T['meta'], 'as' | 'defaults'> & {
|
|
99
99
|
as: StringKey<Name>;
|
|
100
|
-
defaults: T['meta']['defaults']
|
|
100
|
+
defaults: T['meta']['defaults'] & Config['populate'];
|
|
101
101
|
hasWhere: true;
|
|
102
102
|
} : K extends 'join' ? <T extends Query>(this: T) => T : K extends CreateMethodsNames ? Config['chainedCreate'] extends true ? T[K] : never : K extends DeleteMethodsNames ? Config['chainedDelete'] extends true ? T[K] : never : K extends keyof T ? T[K] : K extends 'relationConfig' ? Config : never;
|
|
103
103
|
}> = ((params: Config['params']) => Config['one'] extends true ? Config['required'] extends true ? SetQueryReturnsOne<Q> : SetQueryReturnsOneOptional<Q> : Q) & Q;
|
|
@@ -516,8 +516,8 @@ interface Db<Table extends string | undefined = undefined, Shape extends Columns
|
|
|
516
516
|
meta: {
|
|
517
517
|
kind: 'select';
|
|
518
518
|
defaults: {
|
|
519
|
-
[K in keyof Shape
|
|
520
|
-
}
|
|
519
|
+
[K in keyof Shape as unknown extends Shape[K]['data']['default'] ? never : K]: true;
|
|
520
|
+
};
|
|
521
521
|
};
|
|
522
522
|
}
|
|
523
523
|
declare class Db<Table extends string | undefined = undefined, Shape extends ColumnsShapeBase = Record<string, never>, Relations extends RelationsBase = EmptyObject, ColumnTypes = DefaultColumnTypes, ShapeWithComputed extends ColumnsShapeBase = Shape> implements Query {
|
|
@@ -1258,13 +1258,13 @@ declare class CopyMethods {
|
|
|
1258
1258
|
|
|
1259
1259
|
type CreateData<T extends Query, Data = SetOptional<{
|
|
1260
1260
|
[K in keyof T['inputType']]: CreateColumn<T, K>;
|
|
1261
|
-
}, T['meta']['defaults']>> = [keyof T['relations']] extends [never] ? Data : CreateRelationsData<T, T['relations'], Data>;
|
|
1261
|
+
}, keyof T['meta']['defaults']>> = [keyof T['relations']] extends [never] ? Data : CreateRelationsData<T, T['relations'], Data>;
|
|
1262
1262
|
type CreateColumn<T extends Query, Key extends keyof T['inputType']> = Expression | T['inputType'][Key] | {
|
|
1263
1263
|
[K in keyof Query]: K extends 'then' ? QueryThen<T['inputType'][Key]> : Query[K];
|
|
1264
1264
|
};
|
|
1265
1265
|
type CreateRelationsData<T extends Query, Relations extends RelationsBase, Data> = Omit<Data, Relations[keyof Relations]['relationConfig']['omitForeignKeyInCreate']> & CreateRelationsDataOmittingFKeys<T, Relations> & Relations[keyof Relations]['relationConfig']['optionalDataForCreate'];
|
|
1266
1266
|
type CreateRelationsDataOmittingFKeys<T extends Query, Relations extends RelationsBase, Union extends [Record<string, unknown>] = {
|
|
1267
|
-
[K in keyof Relations]: CreateRelationDataOmittingFKeys<Relations[K]['relationConfig'], T['meta']['defaults']>;
|
|
1267
|
+
[K in keyof Relations]: CreateRelationDataOmittingFKeys<Relations[K]['relationConfig'], keyof T['meta']['defaults']>;
|
|
1268
1268
|
}[keyof Relations]> = (Union extends any ? (u: Union) => void : never) extends (u: [infer Obj]) => void ? Obj : never;
|
|
1269
1269
|
type CreateRelationDataOmittingFKeys<RelationConfig extends RelationConfigBase, Defaults extends PropertyKey, Data extends RelationConfigDataForCreate | undefined = RelationConfig['dataForCreate']> = Data extends RelationConfigDataForCreate ? [
|
|
1270
1270
|
keyof Data['columns'] extends Defaults ? Omit<Data['columns'], Defaults> & {
|
|
@@ -1289,7 +1289,7 @@ type CreateManyRawData<T extends Query> = {
|
|
|
1289
1289
|
values: Expression[];
|
|
1290
1290
|
};
|
|
1291
1291
|
type RawRequiredColumns<T extends Query> = {
|
|
1292
|
-
[K in keyof T['inputType'] as K extends T['meta']['defaults'] ? never : null extends T['inputType'][K] ? never : undefined extends T['inputType'][K] ? never : K]: true;
|
|
1292
|
+
[K in keyof T['inputType'] as K extends keyof T['meta']['defaults'] ? never : null extends T['inputType'][K] ? never : undefined extends T['inputType'][K] ? never : K]: true;
|
|
1293
1293
|
};
|
|
1294
1294
|
type CreateRawArgs<T extends Query, Arg extends {
|
|
1295
1295
|
columns: (keyof T['shape'])[];
|
|
@@ -1297,9 +1297,9 @@ type CreateRawArgs<T extends Query, Arg extends {
|
|
|
1297
1297
|
`Missing required columns: ${Exclude<StringKey<keyof RawRequiredColumns<T>>, Arg['columns'][number]>}`
|
|
1298
1298
|
];
|
|
1299
1299
|
type OnConflictArg<T extends Query> = keyof T['shape'] | (keyof T['shape'])[] | Expression;
|
|
1300
|
-
type AddQueryDefaults<T extends Query, Defaults extends
|
|
1300
|
+
type AddQueryDefaults<T extends Query, Defaults extends Record<string, true>> = {
|
|
1301
1301
|
[K in keyof T]: K extends 'meta' ? {
|
|
1302
|
-
[K in keyof T['meta']]: K extends 'defaults' ? T['meta']['defaults']
|
|
1302
|
+
[K in keyof T['meta']]: K extends 'defaults' ? T['meta']['defaults'] & Defaults : T['meta'][K];
|
|
1303
1303
|
} : T[K];
|
|
1304
1304
|
};
|
|
1305
1305
|
/**
|
|
@@ -1537,8 +1537,8 @@ declare class Create {
|
|
|
1537
1537
|
*
|
|
1538
1538
|
* @param data - default values for `create` and `createMany` which will follow `defaults`
|
|
1539
1539
|
*/
|
|
1540
|
-
defaults<T extends Query, Data extends Partial<CreateData<T>>>(this: T, data: Data): AddQueryDefaults<T, keyof Data
|
|
1541
|
-
_defaults<T extends Query, Data extends Partial<CreateData<T>>>(this: T, data: Data): AddQueryDefaults<T, keyof Data
|
|
1540
|
+
defaults<T extends Query, Data extends Partial<CreateData<T>>>(this: T, data: Data): AddQueryDefaults<T, Record<keyof Data, true>>;
|
|
1541
|
+
_defaults<T extends Query, Data extends Partial<CreateData<T>>>(this: T, data: Data): AddQueryDefaults<T, Record<keyof Data, true>>;
|
|
1542
1542
|
/**
|
|
1543
1543
|
* A modifier for creating queries that specify alternative behavior in the case of a conflict.
|
|
1544
1544
|
* A conflict occurs when a table has a `PRIMARY KEY` or a `UNIQUE` index on a column
|
|
@@ -5162,6 +5162,9 @@ type OrderArg<T extends Query, TsQuery extends PropertyKey = string | undefined
|
|
|
5162
5162
|
[K in Key]?: K extends TsQuery ? OrderTsQueryConfig : SortDir;
|
|
5163
5163
|
} | Expression;
|
|
5164
5164
|
type OrderArgs<T extends Query> = OrderArg<T>[] | TemplateLiteralArgs;
|
|
5165
|
+
type GroupArg<T extends Query> = {
|
|
5166
|
+
[K in keyof T['result']]: T['result'][K]['dataType'] extends 'array' | 'object' ? never : K;
|
|
5167
|
+
}[keyof T['result']] | Expression;
|
|
5165
5168
|
type FindArgs<T extends Query> = [T['shape'][T['singlePrimaryKey']]['queryType'] | Expression] | TemplateLiteralArgs;
|
|
5166
5169
|
type QueryHelper<T extends Query, Args extends unknown[], Result> = <Q extends {
|
|
5167
5170
|
[K in keyof T]: K extends 'then' ? QueryThen<unknown> : K extends 'result' ? ColumnsShapeBase : T[K];
|
|
@@ -5379,15 +5382,31 @@ declare class QueryMethods<ColumnTypes> {
|
|
|
5379
5382
|
*
|
|
5380
5383
|
* ```ts
|
|
5381
5384
|
* // Select the category and sum of prices grouped by the category
|
|
5382
|
-
* const results =
|
|
5385
|
+
* const results = db.product
|
|
5386
|
+
* .select('category')
|
|
5383
5387
|
* .selectSum('price', { as: 'sumPrice' })
|
|
5384
5388
|
* .group('category');
|
|
5385
5389
|
* ```
|
|
5386
5390
|
*
|
|
5391
|
+
* Also, it's possible to group by a selected value:
|
|
5392
|
+
*
|
|
5393
|
+
* ```ts
|
|
5394
|
+
* const results = db.product
|
|
5395
|
+
* .select({
|
|
5396
|
+
* month: db.product.sql`extract(month from "createdAt")`.type((t) =>
|
|
5397
|
+
* // month is returned as string, parse it to int
|
|
5398
|
+
* t.string().parse(parseInt),
|
|
5399
|
+
* ),
|
|
5400
|
+
* })
|
|
5401
|
+
* .selectSum('price', { as: 'sumPrice' })
|
|
5402
|
+
* // group by month extracted from "createdAt"
|
|
5403
|
+
* .group('month');
|
|
5404
|
+
* ```
|
|
5405
|
+
*
|
|
5387
5406
|
* @param columns - column names or a raw SQL
|
|
5388
5407
|
*/
|
|
5389
|
-
group<T extends Query>(this: T, ...columns:
|
|
5390
|
-
_group<T extends Query>(this: T, ...columns:
|
|
5408
|
+
group<T extends Query>(this: T, ...columns: GroupArg<T>[]): T;
|
|
5409
|
+
_group<T extends Query>(this: T, ...columns: GroupArg<T>[]): T;
|
|
5391
5410
|
/**
|
|
5392
5411
|
* Add a window with `window` and use it later by its name for aggregate or window functions:
|
|
5393
5412
|
*
|
|
@@ -7124,4 +7143,4 @@ declare module 'orchid-core' {
|
|
|
7124
7143
|
}
|
|
7125
7144
|
declare function addComputedColumns<T extends Query, Computed extends ComputedColumnsBase<T>>(q: T, computed: Computed): QueryWithComputed<T, Computed>;
|
|
7126
7145
|
|
|
7127
|
-
export { Adapter, AdapterConfig, AdapterOptions, AddQueryDefaults, AddQuerySelect, AddQueryWith, AfterHook, AggregateMethods, AggregateOptions, AliasOrTable, ArrayColumn, ArrayData, ArrayOfColumnsObjects, AsMethods, BaseOperators, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BooleanNullable, BoxColumn, ByteaColumn, CharColumn, CidrColumn, CircleColumn, CitextColumn, Clear, ClearStatement, ColumnData, ColumnExpression, ColumnFromDbParams, ColumnInfo, ColumnInfoMethods, ColumnInfoQueryData, ColumnOperators, ColumnRefExpression, ColumnType, ColumnsObject, ColumnsShape, CommonQueryData, ComputedColumnsBase, CopyMethods, CopyOptions, CopyQueryData, Create, CreateColumn, CreateCtx, CreateData, CreateKind, CreateMethodsNames, CreateRelationDataOmittingFKeys, CreateRelationsData, CreateRelationsDataOmittingFKeys, CustomTypeColumn, DateBaseColumn, DateColumn, DateTimeBaseClass, DateTimeTzBaseClass, Db, DbOptions, DbResult, DbTableOptions, DecimalBaseColumn, DecimalColumn, DefaultColumnTypes, Delete, DeleteMethodsNames, DeleteQueryData, DomainColumn, DoublePrecisionColumn, DropMode, DynamicRawSQL, EnumColumn, ExpressionOutput, FnExpression, FnExpressionArgs, For, ForeignKey, ForeignKeyAction, ForeignKeyMatch, ForeignKeyOptions, From, FromArgs, FromResult, GetArg, GetQueryResult, GetStringArg, Having, HavingItem, HookAction, HookSelect, IdentityColumn, IndexColumnOptions, IndexOptions, InetColumn, InsertQueryData, IntegerBaseColumn, IntegerColumn, IntervalColumn, IsolationLevel, JSONColumn, JSONTextColumn, Join, JoinArgs, JoinCallback, JoinFirstArg, JoinItem, JoinLateralCallback, JoinLateralItem, JoinLateralResult, JoinOverrides, JoinResult, JoinedParsers, JoinedShapes, JsonItem, JsonMethods, JsonModifiers, LimitedTextBaseColumn, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MergeQuery, MergeQueryMethods, MoneyColumn, MoreThanOneRowError, NoPrimaryKeyOption, NotFoundError, NumberAsStringBaseColumn, NumberBaseColumn, NumberColumn, NumberColumnData, OnConflictItem, OnConflictMergeUpdate, OnConflictQueryBuilder, OnQueryBuilder, Operator, Operators, OrCreateArg, OrchidOrmError, OrchidOrmInternalError, OrderArg, OrderArgs, OrderItem, OrderTsQueryConfig, Over, PathColumn, PluckResultColumnType, PointColumn, PolygonColumn, Query, QueryAfterHook, QueryArraysResult, QueryBase, QueryBeforeHook, QueryData, QueryDefaultReturnData, QueryError, QueryErrorName, QueryGet, QueryHookSelect, QueryHooks, QueryLog, QueryLogObject, QueryLogOptions, QueryLogger, QueryMethods, QueryResult, QueryReturnType, QueryReturnsAll, QuerySourceItem, QueryTransform, QueryTransformFn, QueryUpsertOrCreate, QueryWithComputed, QueryWithTable, RawSQL, RawSqlMethods, RealColumn, RelationConfigBase, RelationConfigDataForCreate, RelationQuery, RelationQueryBase, RelationsBase, SearchArg, SearchMethods, SearchWeight, Select, SelectArg, SelectAs, SelectItem, SelectQueryData, SelectSubQueryResult, SelectableBase, SelectableFromShape, SelectableOfType, SelectableOrExpression, SelectableOrExpressionOfType, SerialColumn, SerialColumnData, SetQueryKind, SetQueryReturns, SetQueryReturnsAll, SetQueryReturnsColumn, SetQueryReturnsColumnInfo, SetQueryReturnsColumnOptional, SetQueryReturnsOne, SetQueryReturnsOneOptional, SetQueryReturnsPluck, SetQueryReturnsPluckColumn, SetQueryReturnsRowCount, SetQueryReturnsRows, SetQueryReturnsValue, SetQueryReturnsValueOptional, SetQueryReturnsVoid, SetQueryTableAlias, SetQueryWith, SimpleJoinItem, SingleColumnIndexOptions, SmallIntColumn, SmallSerialColumn, SortDir, StringColumn, TableData, TextBaseColumn, TextColumn, TextColumnData, Then, TimeColumn, TimeInterval, TimestampColumn, TimestampTZColumn, ToSQLCtx, ToSQLOptions, Transaction, TransactionAdapter, TransactionOptions, TransformMethods, TruncateQueryData, TsQueryColumn, TsVectorColumn, TypeParsers, UUIDColumn, UnhandledTypeError, Union, UnionArg, UnionItem, UnionKind, UnknownColumn, Update, UpdateCtx, UpdateData, UpdateQueryData, UpdateQueryDataItem, UpdateQueryDataObject, UpdatedAtDataInjector, UpsertArg, UpsertResult, UpsertThis, VarCharColumn, VirtualColumn, Where, WhereArg, WhereArgs, WhereInArg, WhereInColumn, WhereInItem, WhereInValues, WhereItem, WhereJsonPathEqualsItem, WhereOnItem, WhereOnJoinItem, WhereQueryBase, WhereQueryBuilder, WhereResult, WhereSearchItem, WhereSearchResult, WindowArg, WindowArgDeclaration, WindowDeclaration, WindowItem, With, WithDataBase, WithDataItem, WithItem, WithOptions, XMLColumn, addComputedColumns, addOr, addOrNot, addParserForRawExpression, addParserForSelectItem, addQueryOn, addWhere, addWhereIn, addWhereNot, anyShape, checkIfASimpleQuery, cloneQueryArrays, columnCheckToCode, columnCode, columnForeignKeysToCode, columnIndexesToCode, columnTypes, columnsByType, columnsShapeToCode, constraintPropsToCode, constraintToCode, countSelect, createDb, extendQuery, foreignKeyArgumentToCode, getClonedQueryData, getColumnTypes, getConstraintKind, getQueryAs, getShapeFromSelect, getTableData, handleResult, identityToCode, indexToCode, instantiateColumn, isQueryReturnsAll, isSelectingCount, joinSubQuery, logColors, logParamToLogObject, makeExpression, makeFnExpression, makeRegexToFindInSql, makeSQL, newTableData, parseRecord, parseResult, primaryKeyToCode, processSelectArg, pushLimitSQL, pushQueryArray, pushQueryOn, pushQueryOrOn, pushQueryValue, queryMethodByReturnType, queryTypeWithLimitOne, quote, quoteString, raw, referencesArgsToCode, resetTableData, resolveSubQueryCallback, saveSearchAlias, setParserForSelectedString, setQueryObjectValue, setQueryOperators, simplifyColumnDefault, templateLiteralToSQL, testTransaction, throwIfNoWhere, toSQL, toSQLCacheKey };
|
|
7146
|
+
export { Adapter, AdapterConfig, AdapterOptions, AddQueryDefaults, AddQuerySelect, AddQueryWith, AfterHook, AggregateMethods, AggregateOptions, AliasOrTable, ArrayColumn, ArrayData, ArrayOfColumnsObjects, AsMethods, BaseOperators, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BooleanNullable, BoxColumn, ByteaColumn, CharColumn, CidrColumn, CircleColumn, CitextColumn, Clear, ClearStatement, ColumnData, ColumnExpression, ColumnFromDbParams, ColumnInfo, ColumnInfoMethods, ColumnInfoQueryData, ColumnOperators, ColumnRefExpression, ColumnType, ColumnsObject, ColumnsShape, CommonQueryData, ComputedColumnsBase, CopyMethods, CopyOptions, CopyQueryData, Create, CreateColumn, CreateCtx, CreateData, CreateKind, CreateMethodsNames, CreateRelationDataOmittingFKeys, CreateRelationsData, CreateRelationsDataOmittingFKeys, CustomTypeColumn, DateBaseColumn, DateColumn, DateTimeBaseClass, DateTimeTzBaseClass, Db, DbOptions, DbResult, DbTableOptions, DecimalBaseColumn, DecimalColumn, DefaultColumnTypes, Delete, DeleteMethodsNames, DeleteQueryData, DomainColumn, DoublePrecisionColumn, DropMode, DynamicRawSQL, EnumColumn, ExpressionOutput, FnExpression, FnExpressionArgs, For, ForeignKey, ForeignKeyAction, ForeignKeyMatch, ForeignKeyOptions, From, FromArgs, FromResult, GetArg, GetQueryResult, GetStringArg, GroupArg, Having, HavingItem, HookAction, HookSelect, IdentityColumn, IndexColumnOptions, IndexOptions, InetColumn, InsertQueryData, IntegerBaseColumn, IntegerColumn, IntervalColumn, IsolationLevel, JSONColumn, JSONTextColumn, Join, JoinArgs, JoinCallback, JoinFirstArg, JoinItem, JoinLateralCallback, JoinLateralItem, JoinLateralResult, JoinOverrides, JoinResult, JoinedParsers, JoinedShapes, JsonItem, JsonMethods, JsonModifiers, LimitedTextBaseColumn, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MergeQuery, MergeQueryMethods, MoneyColumn, MoreThanOneRowError, NoPrimaryKeyOption, NotFoundError, NumberAsStringBaseColumn, NumberBaseColumn, NumberColumn, NumberColumnData, OnConflictItem, OnConflictMergeUpdate, OnConflictQueryBuilder, OnQueryBuilder, Operator, Operators, OrCreateArg, OrchidOrmError, OrchidOrmInternalError, OrderArg, OrderArgs, OrderItem, OrderTsQueryConfig, Over, PathColumn, PluckResultColumnType, PointColumn, PolygonColumn, Query, QueryAfterHook, QueryArraysResult, QueryBase, QueryBeforeHook, QueryData, QueryDefaultReturnData, QueryError, QueryErrorName, QueryGet, QueryHookSelect, QueryHooks, QueryLog, QueryLogObject, QueryLogOptions, QueryLogger, QueryMethods, QueryResult, QueryReturnType, QueryReturnsAll, QuerySourceItem, QueryTransform, QueryTransformFn, QueryUpsertOrCreate, QueryWithComputed, QueryWithTable, RawSQL, RawSqlMethods, RealColumn, RelationConfigBase, RelationConfigDataForCreate, RelationQuery, RelationQueryBase, RelationsBase, SearchArg, SearchMethods, SearchWeight, Select, SelectArg, SelectAs, SelectItem, SelectQueryData, SelectSubQueryResult, SelectableBase, SelectableFromShape, SelectableOfType, SelectableOrExpression, SelectableOrExpressionOfType, SerialColumn, SerialColumnData, SetQueryKind, SetQueryReturns, SetQueryReturnsAll, SetQueryReturnsColumn, SetQueryReturnsColumnInfo, SetQueryReturnsColumnOptional, SetQueryReturnsOne, SetQueryReturnsOneOptional, SetQueryReturnsPluck, SetQueryReturnsPluckColumn, SetQueryReturnsRowCount, SetQueryReturnsRows, SetQueryReturnsValue, SetQueryReturnsValueOptional, SetQueryReturnsVoid, SetQueryTableAlias, SetQueryWith, SimpleJoinItem, SingleColumnIndexOptions, SmallIntColumn, SmallSerialColumn, SortDir, StringColumn, TableData, TextBaseColumn, TextColumn, TextColumnData, Then, TimeColumn, TimeInterval, TimestampColumn, TimestampTZColumn, ToSQLCtx, ToSQLOptions, Transaction, TransactionAdapter, TransactionOptions, TransformMethods, TruncateQueryData, TsQueryColumn, TsVectorColumn, TypeParsers, UUIDColumn, UnhandledTypeError, Union, UnionArg, UnionItem, UnionKind, UnknownColumn, Update, UpdateCtx, UpdateData, UpdateQueryData, UpdateQueryDataItem, UpdateQueryDataObject, UpdatedAtDataInjector, UpsertArg, UpsertResult, UpsertThis, VarCharColumn, VirtualColumn, Where, WhereArg, WhereArgs, WhereInArg, WhereInColumn, WhereInItem, WhereInValues, WhereItem, WhereJsonPathEqualsItem, WhereOnItem, WhereOnJoinItem, WhereQueryBase, WhereQueryBuilder, WhereResult, WhereSearchItem, WhereSearchResult, WindowArg, WindowArgDeclaration, WindowDeclaration, WindowItem, With, WithDataBase, WithDataItem, WithItem, WithOptions, XMLColumn, addComputedColumns, addOr, addOrNot, addParserForRawExpression, addParserForSelectItem, addQueryOn, addWhere, addWhereIn, addWhereNot, anyShape, checkIfASimpleQuery, cloneQueryArrays, columnCheckToCode, columnCode, columnForeignKeysToCode, columnIndexesToCode, columnTypes, columnsByType, columnsShapeToCode, constraintPropsToCode, constraintToCode, countSelect, createDb, extendQuery, foreignKeyArgumentToCode, getClonedQueryData, getColumnTypes, getConstraintKind, getQueryAs, getShapeFromSelect, getTableData, handleResult, identityToCode, indexToCode, instantiateColumn, isQueryReturnsAll, isSelectingCount, joinSubQuery, logColors, logParamToLogObject, makeExpression, makeFnExpression, makeRegexToFindInSql, makeSQL, newTableData, parseRecord, parseResult, primaryKeyToCode, processSelectArg, pushLimitSQL, pushQueryArray, pushQueryOn, pushQueryOrOn, pushQueryValue, queryMethodByReturnType, queryTypeWithLimitOne, quote, quoteString, raw, referencesArgsToCode, resetTableData, resolveSubQueryCallback, saveSearchAlias, setParserForSelectedString, setQueryObjectValue, setQueryOperators, simplifyColumnDefault, templateLiteralToSQL, testTransaction, throwIfNoWhere, toSQL, toSQLCacheKey };
|
package/dist/index.js
CHANGED
|
@@ -9593,11 +9593,27 @@ class QueryMethods {
|
|
|
9593
9593
|
*
|
|
9594
9594
|
* ```ts
|
|
9595
9595
|
* // Select the category and sum of prices grouped by the category
|
|
9596
|
-
* const results =
|
|
9596
|
+
* const results = db.product
|
|
9597
|
+
* .select('category')
|
|
9597
9598
|
* .selectSum('price', { as: 'sumPrice' })
|
|
9598
9599
|
* .group('category');
|
|
9599
9600
|
* ```
|
|
9600
9601
|
*
|
|
9602
|
+
* Also, it's possible to group by a selected value:
|
|
9603
|
+
*
|
|
9604
|
+
* ```ts
|
|
9605
|
+
* const results = db.product
|
|
9606
|
+
* .select({
|
|
9607
|
+
* month: db.product.sql`extract(month from "createdAt")`.type((t) =>
|
|
9608
|
+
* // month is returned as string, parse it to int
|
|
9609
|
+
* t.string().parse(parseInt),
|
|
9610
|
+
* ),
|
|
9611
|
+
* })
|
|
9612
|
+
* .selectSum('price', { as: 'sumPrice' })
|
|
9613
|
+
* // group by month extracted from "createdAt"
|
|
9614
|
+
* .group('month');
|
|
9615
|
+
* ```
|
|
9616
|
+
*
|
|
9601
9617
|
* @param columns - column names or a raw SQL
|
|
9602
9618
|
*/
|
|
9603
9619
|
group(...columns) {
|