pqb 0.40.9 → 0.40.11
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 +37 -14
- package/dist/index.js +110 -41
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +110 -42
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -159,7 +159,7 @@ type QuerySourceItem = {
|
|
|
159
159
|
} | {
|
|
160
160
|
tsQuery: string | Expression;
|
|
161
161
|
});
|
|
162
|
-
type JoinItem = SimpleJoinItem
|
|
162
|
+
type JoinItem = SimpleJoinItem;
|
|
163
163
|
type SimpleJoinItemNonSubQueryArgs = [{
|
|
164
164
|
[K: string]: string | Expression;
|
|
165
165
|
} | Expression | true] | [leftColumn: string | Expression, rightColumn: string | Expression] | [
|
|
@@ -1885,6 +1885,13 @@ interface QueryMetaHasWhere {
|
|
|
1885
1885
|
hasWhere: true;
|
|
1886
1886
|
};
|
|
1887
1887
|
}
|
|
1888
|
+
interface QueryFnReturningSelect {
|
|
1889
|
+
(q: never): {
|
|
1890
|
+
meta: {
|
|
1891
|
+
hasSelect: true;
|
|
1892
|
+
};
|
|
1893
|
+
};
|
|
1894
|
+
}
|
|
1888
1895
|
/**
|
|
1889
1896
|
* Mutative {@link Where.prototype.where}
|
|
1890
1897
|
*/
|
|
@@ -2485,6 +2492,10 @@ declare class Where {
|
|
|
2485
2492
|
* // find by a relation name if it's defined
|
|
2486
2493
|
* db.user.whereExists('account');
|
|
2487
2494
|
*
|
|
2495
|
+
* // find users who have an account with positive balance
|
|
2496
|
+
* // `accounts` is a relation name
|
|
2497
|
+
* db.user.whereExists((q) => q.accounts.where({ balance: { gt: 0 } }));
|
|
2498
|
+
*
|
|
2488
2499
|
* // find using a table and a join conditions
|
|
2489
2500
|
* db.user.whereExists(db.account, 'account.id', 'user.id');
|
|
2490
2501
|
*
|
|
@@ -2492,7 +2503,11 @@ declare class Where {
|
|
|
2492
2503
|
* db.user.whereExists(db.account, (q) => q.on('account.id', '=', 'user.id'));
|
|
2493
2504
|
* ```
|
|
2494
2505
|
*/
|
|
2495
|
-
whereExists<T extends PickQueryMetaShapeRelationsWithData, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, ...args:
|
|
2506
|
+
whereExists<T extends PickQueryMetaShapeRelationsWithData, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): Arg extends QueryFnReturningSelect ? {
|
|
2507
|
+
error: 'Cannot select in whereExists';
|
|
2508
|
+
} : Args[0] extends QueryFnReturningSelect ? {
|
|
2509
|
+
error: 'Cannot select in whereExists';
|
|
2510
|
+
} : WhereResult<T>;
|
|
2496
2511
|
/**
|
|
2497
2512
|
* Acts as `whereExists`, but prepends the condition with `OR`:
|
|
2498
2513
|
*
|
|
@@ -3349,6 +3364,16 @@ type DbTableOptionScopes<Table extends string | undefined, Shape extends QueryCo
|
|
|
3349
3364
|
type QueryDefaultReturnData<Shape extends QueryColumnsInit> = {
|
|
3350
3365
|
[K in DefaultSelectColumns<Shape>]: Shape[K]['outputType'];
|
|
3351
3366
|
}[];
|
|
3367
|
+
interface TableMeta<Table extends string | undefined, Shape extends QueryColumnsInit, ShapeWithComputed extends QueryColumnsInit, Scopes extends RecordUnknown | undefined> extends QueryMetaBase<{
|
|
3368
|
+
[K in keyof Scopes]: true;
|
|
3369
|
+
}> {
|
|
3370
|
+
kind: 'select';
|
|
3371
|
+
defaults: {
|
|
3372
|
+
[K in keyof Shape as unknown extends Shape[K]['data']['default'] ? never : K]: true;
|
|
3373
|
+
};
|
|
3374
|
+
selectable: SelectableFromShape<ShapeWithComputed, Table>;
|
|
3375
|
+
defaultSelect: DefaultSelectColumns<Shape>;
|
|
3376
|
+
}
|
|
3352
3377
|
declare const anyShape: QueryColumnsInit;
|
|
3353
3378
|
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 {
|
|
3354
3379
|
result: Pick<Shape, DefaultSelectColumns<Shape>>;
|
|
@@ -3359,17 +3384,7 @@ interface Db<Table extends string | undefined = undefined, Shape extends QueryCo
|
|
|
3359
3384
|
relations: EmptyObject;
|
|
3360
3385
|
withData: EmptyObject;
|
|
3361
3386
|
error: new (message: string, length: number, name: QueryErrorName) => QueryError<this>;
|
|
3362
|
-
meta:
|
|
3363
|
-
kind: 'select';
|
|
3364
|
-
defaults: {
|
|
3365
|
-
[K in keyof Shape as unknown extends Shape[K]['data']['default'] ? never : K]: true;
|
|
3366
|
-
};
|
|
3367
|
-
scopes: {
|
|
3368
|
-
[K in keyof Scopes]: true;
|
|
3369
|
-
};
|
|
3370
|
-
selectable: SelectableFromShape<ShapeWithComputed, Table>;
|
|
3371
|
-
defaultSelect: DefaultSelectColumns<Shape>;
|
|
3372
|
-
};
|
|
3387
|
+
meta: TableMeta<Table, Shape, ShapeWithComputed, Scopes>;
|
|
3373
3388
|
internal: QueryInternal<{
|
|
3374
3389
|
[K in keyof PrimaryKeys]: (keyof PrimaryKeys extends K ? never : keyof PrimaryKeys) extends never ? PrimaryKeys[K] : never;
|
|
3375
3390
|
}[keyof PrimaryKeys], PrimaryKeys | UniqueColumns, {
|
|
@@ -3442,6 +3457,11 @@ declare class Db<Table extends string | undefined = undefined, Shape extends Que
|
|
|
3442
3457
|
* @param args - SQL template literal, or an object { raw: string, values?: unknown[] }
|
|
3443
3458
|
*/
|
|
3444
3459
|
queryArrays<R extends any[] = any[]>(...args: SQLQueryArgs): Promise<QueryArraysResult<R>>;
|
|
3460
|
+
/**
|
|
3461
|
+
* In snake case mode, or when columns have custom names,
|
|
3462
|
+
* use this method to exchange a db column name to its runtime key.
|
|
3463
|
+
*/
|
|
3464
|
+
columnNameToKey(name: string): string | undefined;
|
|
3445
3465
|
}
|
|
3446
3466
|
interface DbTableConstructor<ColumnTypes> {
|
|
3447
3467
|
<Table extends string, Shape extends QueryColumnsInit, Data extends MaybeArray<TableDataItem>, Options extends DbTableOptions<ColumnTypes, Table, Shape>>(table: Table, shape?: ((t: ColumnTypes) => Shape) | Shape, tableData?: TableDataFn<Shape, Data>, options?: Options): Db<Table, Shape, keyof ShapeColumnPrimaryKeys<Shape> extends never ? never : ShapeColumnPrimaryKeys<Shape>, ShapeUniqueColumns<Shape> | TableDataItemsUniqueColumns<Shape, Data>, TableDataItemsUniqueColumnTuples<Shape, Data>, UniqueConstraints<Shape> | TableDataItemsUniqueConstraints<Data>, ColumnTypes, Shape & ComputedColumnsFromOptions<Options['computed']>, MapTableScopesOption<Options>>;
|
|
@@ -7574,6 +7594,7 @@ interface QueryInternal<SinglePrimaryKey = any, UniqueColumns = any, UniqueColum
|
|
|
7574
7594
|
tableData: TableData;
|
|
7575
7595
|
nowSQL?: string;
|
|
7576
7596
|
primaryKeys?: string[];
|
|
7597
|
+
columnNameToKeyMap?: Map<string, string>;
|
|
7577
7598
|
}
|
|
7578
7599
|
type SelectableFromShape<Shape extends QueryColumns, Table extends string | undefined> = {
|
|
7579
7600
|
[K in keyof Shape]: {
|
|
@@ -7604,6 +7625,7 @@ interface Query extends QueryBase, QueryMethods<unknown> {
|
|
|
7604
7625
|
windows: EmptyObject;
|
|
7605
7626
|
relations: RelationsBase;
|
|
7606
7627
|
error: new (message: string, length: number, name: QueryErrorName) => QueryError;
|
|
7628
|
+
columnNameToKey(name: string): string | undefined;
|
|
7607
7629
|
}
|
|
7608
7630
|
interface PickQueryWithData {
|
|
7609
7631
|
withData: WithDataItems;
|
|
@@ -8350,6 +8372,7 @@ declare const setQueryObjectValue: <T extends {
|
|
|
8350
8372
|
* @param method - 'update' or 'delete'
|
|
8351
8373
|
*/
|
|
8352
8374
|
declare const throwIfNoWhere: (q: PickQueryQ, method: string) => void;
|
|
8375
|
+
declare const throwIfJoinLateral: (q: PickQueryQ, method: string) => void;
|
|
8353
8376
|
declare const saveSearchAlias: (q: QueryBase, as: string, key: 'joinedShapes' | 'withShapes') => string;
|
|
8354
8377
|
/**
|
|
8355
8378
|
* Extend query prototype with new methods.
|
|
@@ -8483,4 +8506,4 @@ type CopyResult<T extends PickQueryMeta> = SetQueryKind<T, 'copy'>;
|
|
|
8483
8506
|
*/
|
|
8484
8507
|
declare function copyTableData<T extends PickQueryMetaShape>(query: T, arg: CopyArg<T>): CopyResult<T>;
|
|
8485
8508
|
|
|
8486
|
-
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, JoinOverrides, 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, _queryRows, _querySelect, _queryTake, _queryTakeOptional, _queryUnion, _queryUpdate, _queryUpdateOrThrow, _queryUpdateRaw, _queryWhere, _queryWhereExists, _queryWhereIn, _queryWhereNot, _queryWhereNotOneOf, _queryWhereNotSql, _queryWhereOneOf, _queryWhereSql, 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, setParserForSelectedString, setQueryObjectValue, setQueryOperators, simplifyColumnDefault, sqlFn, sqlQueryArgsToExpression, tableDataMethods, templateLiteralToSQL, testTransaction, 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, JoinOverrides, 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, _queryRows, _querySelect, _queryTake, _queryTakeOptional, _queryUnion, _queryUpdate, _queryUpdateOrThrow, _queryUpdateRaw, _queryWhere, _queryWhereExists, _queryWhereIn, _queryWhereNot, _queryWhereNotOneOf, _queryWhereNotSql, _queryWhereOneOf, _queryWhereSql, 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, setParserForSelectedString, setQueryObjectValue, setQueryOperators, simplifyColumnDefault, sqlFn, sqlQueryArgsToExpression, tableDataMethods, templateLiteralToSQL, testTransaction, throwIfJoinLateral, throwIfNoWhere, toSQL, toSQLCacheKey };
|
package/dist/index.js
CHANGED
|
@@ -1777,8 +1777,24 @@ const columnToSqlWithAs = (ctx, data, column, as, quotedAs, select) => {
|
|
|
1777
1777
|
const tableColumnToSqlWithAs = (ctx, data, column, table, key, as, quotedAs, select) => {
|
|
1778
1778
|
var _a, _b, _c;
|
|
1779
1779
|
if (key === "*") {
|
|
1780
|
-
|
|
1781
|
-
|
|
1780
|
+
const shape = (_a = data.joinedShapes) == null ? void 0 : _a[table];
|
|
1781
|
+
if (shape) {
|
|
1782
|
+
if (select) {
|
|
1783
|
+
let isSimple = true;
|
|
1784
|
+
const list = [];
|
|
1785
|
+
for (const key2 in shape) {
|
|
1786
|
+
const column2 = shape[key2];
|
|
1787
|
+
if (column2.data.explicitSelect || column2 instanceof VirtualColumn) {
|
|
1788
|
+
continue;
|
|
1789
|
+
}
|
|
1790
|
+
if (column2.data.name) {
|
|
1791
|
+
isSimple = false;
|
|
1792
|
+
}
|
|
1793
|
+
list.push(`'${key2}'`, `"${table}"."${column2.data.name || key2}"`);
|
|
1794
|
+
}
|
|
1795
|
+
return (isSimple ? `row_to_json("${table}".*)` : "json_build_object(" + list.join(", ") + ")") + ` "${as}"`;
|
|
1796
|
+
}
|
|
1797
|
+
return `"${table}".r "${as}"`;
|
|
1782
1798
|
}
|
|
1783
1799
|
return column;
|
|
1784
1800
|
}
|
|
@@ -1898,8 +1914,10 @@ class QueryError extends OrchidOrmInternalError {
|
|
|
1898
1914
|
const list = (_a = this.detail.match(/\((.*)\)=/)) == null ? void 0 : _a[1];
|
|
1899
1915
|
if (list) {
|
|
1900
1916
|
list.split(", ").forEach((item) => {
|
|
1917
|
+
var _a2;
|
|
1901
1918
|
const column = item.startsWith('"') ? item.slice(1, -1) : item;
|
|
1902
|
-
|
|
1919
|
+
const key = (_a2 = this.query.columnNameToKey(column)) != null ? _a2 : column;
|
|
1920
|
+
columns[key] = true;
|
|
1903
1921
|
});
|
|
1904
1922
|
}
|
|
1905
1923
|
}
|
|
@@ -1949,6 +1967,17 @@ const throwIfNoWhere = (q, method) => {
|
|
|
1949
1967
|
);
|
|
1950
1968
|
}
|
|
1951
1969
|
};
|
|
1970
|
+
const throwIfJoinLateral = (q, method) => {
|
|
1971
|
+
var _a;
|
|
1972
|
+
if ((_a = q.q.join) == null ? void 0 : _a.some(
|
|
1973
|
+
(x) => Array.isArray(x) || "s" in x.args && x.args.s
|
|
1974
|
+
)) {
|
|
1975
|
+
throw new OrchidOrmInternalError(
|
|
1976
|
+
q,
|
|
1977
|
+
`Cannot join a complex query in ${method}`
|
|
1978
|
+
);
|
|
1979
|
+
}
|
|
1980
|
+
};
|
|
1952
1981
|
const saveSearchAlias = (q, as, key) => {
|
|
1953
1982
|
const shapes = q.q[key];
|
|
1954
1983
|
if (shapes == null ? void 0 : shapes[as]) {
|
|
@@ -2578,6 +2607,13 @@ const processJoinArgs = (joinTo, first, args, joinSubQuery, whereExists) => {
|
|
|
2578
2607
|
s: joinSubQuery
|
|
2579
2608
|
};
|
|
2580
2609
|
};
|
|
2610
|
+
const preprocessJoinArg = (q, arg) => {
|
|
2611
|
+
if (typeof arg !== "function")
|
|
2612
|
+
return arg;
|
|
2613
|
+
arg = arg(q.relations);
|
|
2614
|
+
arg.joinQueryAfterCallback = arg.joinQuery;
|
|
2615
|
+
return arg;
|
|
2616
|
+
};
|
|
2581
2617
|
const makeJoinQueryBuilder = (joinedQuery, joinedShapes, joinTo) => {
|
|
2582
2618
|
const q = joinedQuery.baseQuery.clone();
|
|
2583
2619
|
q.baseQuery = q;
|
|
@@ -2640,24 +2676,21 @@ const _join = (query, require2, type, first, args) => {
|
|
|
2640
2676
|
let batchParsers;
|
|
2641
2677
|
let computeds;
|
|
2642
2678
|
let joinSubQuery = false;
|
|
2643
|
-
|
|
2644
|
-
first = first(query.relations);
|
|
2645
|
-
first.joinQueryAfterCallback = first.joinQuery;
|
|
2646
|
-
}
|
|
2679
|
+
first = preprocessJoinArg(query, first);
|
|
2647
2680
|
if (typeof first === "object") {
|
|
2648
2681
|
if (require2 && isQueryNone(first)) {
|
|
2649
2682
|
return _queryNone(query);
|
|
2650
2683
|
}
|
|
2651
|
-
const
|
|
2652
|
-
joinSubQuery = getIsJoinSubQuery(
|
|
2653
|
-
joinKey =
|
|
2684
|
+
const q2 = first;
|
|
2685
|
+
joinSubQuery = getIsJoinSubQuery(q2);
|
|
2686
|
+
joinKey = q2.q.as || q2.table;
|
|
2654
2687
|
if (joinKey) {
|
|
2655
|
-
shape = getShapeFromSelect(
|
|
2656
|
-
parsers =
|
|
2657
|
-
batchParsers =
|
|
2658
|
-
computeds =
|
|
2688
|
+
shape = getShapeFromSelect(q2, joinSubQuery && !!q2.q.select);
|
|
2689
|
+
parsers = q2.q.parsers;
|
|
2690
|
+
batchParsers = q2.q.batchParsers;
|
|
2691
|
+
computeds = q2.q.computeds;
|
|
2659
2692
|
if (joinSubQuery) {
|
|
2660
|
-
first =
|
|
2693
|
+
first = q2.clone();
|
|
2661
2694
|
first.shape = shape;
|
|
2662
2695
|
}
|
|
2663
2696
|
}
|
|
@@ -2740,10 +2773,14 @@ const _join = (query, require2, type, first, args) => {
|
|
|
2740
2773
|
computeds
|
|
2741
2774
|
);
|
|
2742
2775
|
}
|
|
2743
|
-
|
|
2776
|
+
const q = pushQueryValue(query, "join", {
|
|
2744
2777
|
type,
|
|
2745
2778
|
args: joinArgs
|
|
2746
2779
|
});
|
|
2780
|
+
if (query.q.type === "delete") {
|
|
2781
|
+
throwIfJoinLateral(q, query.q.type);
|
|
2782
|
+
}
|
|
2783
|
+
return q;
|
|
2747
2784
|
};
|
|
2748
2785
|
const addAllShapesAndParsers = (query, joinKey, shape, parsers, batchParsers, computeds) => {
|
|
2749
2786
|
var _a, _b;
|
|
@@ -3547,7 +3584,9 @@ const applyComputedColumns = (q, fn) => {
|
|
|
3547
3584
|
if (item instanceof ComputedColumn) {
|
|
3548
3585
|
q.q.computeds = __spreadProps$5(__spreadValues$e({}, q.q.computeds), { [key]: item });
|
|
3549
3586
|
} else {
|
|
3550
|
-
(q.shape[key] = item.result.value || UnknownColumn.instance).data
|
|
3587
|
+
const data = (q.shape[key] = item.result.value || UnknownColumn.instance).data;
|
|
3588
|
+
data.computed = item;
|
|
3589
|
+
data.explicitSelect = true;
|
|
3551
3590
|
}
|
|
3552
3591
|
}
|
|
3553
3592
|
q.computeAtRuntime = q.computeBatchAtRuntime = void 0;
|
|
@@ -3962,6 +4001,16 @@ const then = async (q, adapter, trx, beforeHooks, afterHooks, afterCommitHooks,
|
|
|
3962
4001
|
error.cause = localError;
|
|
3963
4002
|
}
|
|
3964
4003
|
}
|
|
4004
|
+
const stack = localError.stack;
|
|
4005
|
+
if (stack) {
|
|
4006
|
+
const from = stack.indexOf("\n");
|
|
4007
|
+
if (from !== -1) {
|
|
4008
|
+
const to = stack.indexOf("\n", from + 1);
|
|
4009
|
+
if (to !== -1) {
|
|
4010
|
+
localError.stack = stack.slice(0, from) + stack.slice(to);
|
|
4011
|
+
}
|
|
4012
|
+
}
|
|
4013
|
+
}
|
|
3965
4014
|
if (log && sql) {
|
|
3966
4015
|
log.onError(error, sql, logData);
|
|
3967
4016
|
}
|
|
@@ -5773,7 +5822,7 @@ const processValue = (ctx, table, QueryClass, key, value, quotedAs) => {
|
|
|
5773
5822
|
};
|
|
5774
5823
|
|
|
5775
5824
|
const pushDeleteSql = (ctx, table, query, quotedAs) => {
|
|
5776
|
-
var _a, _b, _c
|
|
5825
|
+
var _a, _b, _c;
|
|
5777
5826
|
const from = `"${table.table}"`;
|
|
5778
5827
|
ctx.sql.push(`DELETE FROM ${from}`);
|
|
5779
5828
|
if (from !== quotedAs) {
|
|
@@ -5785,27 +5834,16 @@ const pushDeleteSql = (ctx, table, query, quotedAs) => {
|
|
|
5785
5834
|
const ons = [];
|
|
5786
5835
|
const joinSet = query.join.length > 1 ? /* @__PURE__ */ new Set() : null;
|
|
5787
5836
|
for (const item of query.join) {
|
|
5788
|
-
|
|
5789
|
-
|
|
5790
|
-
|
|
5791
|
-
|
|
5792
|
-
|
|
5793
|
-
|
|
5794
|
-
`LATERAL (${getSqlText(q.toSQL(ctx))}) "${((_b = query.joinOverrides) == null ? void 0 : _b[as]) || as}"`
|
|
5795
|
-
);
|
|
5796
|
-
ctx.aliasValue = aliasValue;
|
|
5797
|
-
} else {
|
|
5798
|
-
const join = processJoinItem(ctx, table, query, item.args, quotedAs);
|
|
5799
|
-
const key = `${join.target}${join.on}`;
|
|
5800
|
-
if (joinSet) {
|
|
5801
|
-
if (joinSet.has(key))
|
|
5802
|
-
continue;
|
|
5803
|
-
joinSet.add(key);
|
|
5804
|
-
}
|
|
5805
|
-
targets.push(join.target);
|
|
5806
|
-
if (join.on)
|
|
5807
|
-
ons.push(join.on);
|
|
5837
|
+
const join = processJoinItem(ctx, table, query, item.args, quotedAs);
|
|
5838
|
+
const key = `${join.target}${join.on}`;
|
|
5839
|
+
if (joinSet) {
|
|
5840
|
+
if (joinSet.has(key))
|
|
5841
|
+
continue;
|
|
5842
|
+
joinSet.add(key);
|
|
5808
5843
|
}
|
|
5844
|
+
targets.push(join.target);
|
|
5845
|
+
if (join.on)
|
|
5846
|
+
ons.push(join.on);
|
|
5809
5847
|
}
|
|
5810
5848
|
if (targets.length) {
|
|
5811
5849
|
ctx.sql.push(`USING ${targets.join(", ")}`);
|
|
@@ -5814,7 +5852,7 @@ const pushDeleteSql = (ctx, table, query, quotedAs) => {
|
|
|
5814
5852
|
}
|
|
5815
5853
|
pushWhereStatementSql(ctx, table, query, quotedAs);
|
|
5816
5854
|
if (conditions) {
|
|
5817
|
-
if (((
|
|
5855
|
+
if (((_b = query.and) == null ? void 0 : _b.length) || ((_c = query.or) == null ? void 0 : _c.length) || query.scopes) {
|
|
5818
5856
|
ctx.sql.push("AND", conditions);
|
|
5819
5857
|
} else {
|
|
5820
5858
|
ctx.sql.push("WHERE", conditions);
|
|
@@ -8194,6 +8232,7 @@ const _queryDelete = (query) => {
|
|
|
8194
8232
|
q.returnType = "rowCount";
|
|
8195
8233
|
}
|
|
8196
8234
|
throwIfNoWhere(query, "delete");
|
|
8235
|
+
throwIfJoinLateral(query, "delete");
|
|
8197
8236
|
q.type = "delete";
|
|
8198
8237
|
return query;
|
|
8199
8238
|
};
|
|
@@ -9814,7 +9853,13 @@ const _queryWhereIn = (q, and, arg, values, not) => {
|
|
|
9814
9853
|
return q;
|
|
9815
9854
|
};
|
|
9816
9855
|
const existsArgs = (self, q, args) => {
|
|
9817
|
-
const joinArgs = processJoinArgs(
|
|
9856
|
+
const joinArgs = processJoinArgs(
|
|
9857
|
+
self,
|
|
9858
|
+
preprocessJoinArg(self, q),
|
|
9859
|
+
args,
|
|
9860
|
+
false,
|
|
9861
|
+
true
|
|
9862
|
+
);
|
|
9818
9863
|
return [
|
|
9819
9864
|
{
|
|
9820
9865
|
EXISTS: joinArgs
|
|
@@ -10457,6 +10502,10 @@ class Where {
|
|
|
10457
10502
|
* // find by a relation name if it's defined
|
|
10458
10503
|
* db.user.whereExists('account');
|
|
10459
10504
|
*
|
|
10505
|
+
* // find users who have an account with positive balance
|
|
10506
|
+
* // `accounts` is a relation name
|
|
10507
|
+
* db.user.whereExists((q) => q.accounts.where({ balance: { gt: 0 } }));
|
|
10508
|
+
*
|
|
10460
10509
|
* // find using a table and a join conditions
|
|
10461
10510
|
* db.user.whereExists(db.account, 'account.id', 'user.id');
|
|
10462
10511
|
*
|
|
@@ -12772,16 +12821,18 @@ class Db {
|
|
|
12772
12821
|
applyComputedColumns(this, options.computed);
|
|
12773
12822
|
if (prepareSelectAll) {
|
|
12774
12823
|
const list = [];
|
|
12824
|
+
const keys = {};
|
|
12775
12825
|
for (const key in shape) {
|
|
12776
12826
|
const column = shape[key];
|
|
12777
12827
|
if (!column.data.explicitSelect) {
|
|
12778
12828
|
list.push(
|
|
12779
12829
|
column.data.name ? `"${column.data.name}" AS "${key}"` : `"${key}"`
|
|
12780
12830
|
);
|
|
12831
|
+
keys[key] = column;
|
|
12781
12832
|
}
|
|
12782
12833
|
}
|
|
12783
12834
|
this.q.selectAllColumns = list;
|
|
12784
|
-
this.q.selectAllKeys =
|
|
12835
|
+
this.q.selectAllKeys = keys;
|
|
12785
12836
|
}
|
|
12786
12837
|
if (modifyQuery) {
|
|
12787
12838
|
for (const cb of modifyQuery) {
|
|
@@ -12874,6 +12925,23 @@ class Db {
|
|
|
12874
12925
|
queryArrays(...args) {
|
|
12875
12926
|
return performQuery(this, args, "arrays");
|
|
12876
12927
|
}
|
|
12928
|
+
/**
|
|
12929
|
+
* In snake case mode, or when columns have custom names,
|
|
12930
|
+
* use this method to exchange a db column name to its runtime key.
|
|
12931
|
+
*/
|
|
12932
|
+
columnNameToKey(name) {
|
|
12933
|
+
var _a;
|
|
12934
|
+
let map = this.internal.columnNameToKeyMap;
|
|
12935
|
+
if (!map) {
|
|
12936
|
+
this.internal.columnNameToKeyMap = map = /* @__PURE__ */ new Map();
|
|
12937
|
+
const { shape } = this;
|
|
12938
|
+
for (const key in this.shape) {
|
|
12939
|
+
const column = shape[key];
|
|
12940
|
+
map.set((_a = column.data.name) != null ? _a : key, key);
|
|
12941
|
+
}
|
|
12942
|
+
}
|
|
12943
|
+
return map.get(name);
|
|
12944
|
+
}
|
|
12877
12945
|
}
|
|
12878
12946
|
const performQuery = async (q, args, method) => {
|
|
12879
12947
|
var _a;
|
|
@@ -13380,6 +13448,7 @@ exports.sqlQueryArgsToExpression = sqlQueryArgsToExpression;
|
|
|
13380
13448
|
exports.tableDataMethods = tableDataMethods;
|
|
13381
13449
|
exports.templateLiteralToSQL = templateLiteralToSQL;
|
|
13382
13450
|
exports.testTransaction = testTransaction;
|
|
13451
|
+
exports.throwIfJoinLateral = throwIfJoinLateral;
|
|
13383
13452
|
exports.throwIfNoWhere = throwIfNoWhere;
|
|
13384
13453
|
exports.toSQL = toSQL;
|
|
13385
13454
|
exports.toSQLCacheKey = toSQLCacheKey;
|