pqb 0.40.10 → 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 CHANGED
@@ -159,7 +159,7 @@ type QuerySourceItem = {
159
159
  } | {
160
160
  tsQuery: string | Expression;
161
161
  });
162
- type JoinItem = SimpleJoinItem | JoinLateralItem;
162
+ type JoinItem = SimpleJoinItem;
163
163
  type SimpleJoinItemNonSubQueryArgs = [{
164
164
  [K: string]: string | Expression;
165
165
  } | Expression | true] | [leftColumn: string | Expression, rightColumn: string | Expression] | [
@@ -3457,6 +3457,11 @@ declare class Db<Table extends string | undefined = undefined, Shape extends Que
3457
3457
  * @param args - SQL template literal, or an object { raw: string, values?: unknown[] }
3458
3458
  */
3459
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;
3460
3465
  }
3461
3466
  interface DbTableConstructor<ColumnTypes> {
3462
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>>;
@@ -7589,6 +7594,7 @@ interface QueryInternal<SinglePrimaryKey = any, UniqueColumns = any, UniqueColum
7589
7594
  tableData: TableData;
7590
7595
  nowSQL?: string;
7591
7596
  primaryKeys?: string[];
7597
+ columnNameToKeyMap?: Map<string, string>;
7592
7598
  }
7593
7599
  type SelectableFromShape<Shape extends QueryColumns, Table extends string | undefined> = {
7594
7600
  [K in keyof Shape]: {
@@ -7619,6 +7625,7 @@ interface Query extends QueryBase, QueryMethods<unknown> {
7619
7625
  windows: EmptyObject;
7620
7626
  relations: RelationsBase;
7621
7627
  error: new (message: string, length: number, name: QueryErrorName) => QueryError;
7628
+ columnNameToKey(name: string): string | undefined;
7622
7629
  }
7623
7630
  interface PickQueryWithData {
7624
7631
  withData: WithDataItems;
@@ -8365,6 +8372,7 @@ declare const setQueryObjectValue: <T extends {
8365
8372
  * @param method - 'update' or 'delete'
8366
8373
  */
8367
8374
  declare const throwIfNoWhere: (q: PickQueryQ, method: string) => void;
8375
+ declare const throwIfJoinLateral: (q: PickQueryQ, method: string) => void;
8368
8376
  declare const saveSearchAlias: (q: QueryBase, as: string, key: 'joinedShapes' | 'withShapes') => string;
8369
8377
  /**
8370
8378
  * Extend query prototype with new methods.
@@ -8498,4 +8506,4 @@ type CopyResult<T extends PickQueryMeta> = SetQueryKind<T, 'copy'>;
8498
8506
  */
8499
8507
  declare function copyTableData<T extends PickQueryMetaShape>(query: T, arg: CopyArg<T>): CopyResult<T>;
8500
8508
 
8501
- 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
- if ((_a = data.joinedShapes) == null ? void 0 : _a[table]) {
1781
- return select ? `row_to_json("${table}".*) "${as}"` : `"${table}".r "${as}"`;
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
- columns[column] = true;
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]) {
@@ -2652,16 +2681,16 @@ const _join = (query, require2, type, first, args) => {
2652
2681
  if (require2 && isQueryNone(first)) {
2653
2682
  return _queryNone(query);
2654
2683
  }
2655
- const q = first;
2656
- joinSubQuery = getIsJoinSubQuery(q);
2657
- joinKey = q.q.as || q.table;
2684
+ const q2 = first;
2685
+ joinSubQuery = getIsJoinSubQuery(q2);
2686
+ joinKey = q2.q.as || q2.table;
2658
2687
  if (joinKey) {
2659
- shape = getShapeFromSelect(q, joinSubQuery);
2660
- parsers = q.q.parsers;
2661
- batchParsers = q.q.batchParsers;
2662
- computeds = q.q.computeds;
2688
+ shape = getShapeFromSelect(q2, joinSubQuery && !!q2.q.select);
2689
+ parsers = q2.q.parsers;
2690
+ batchParsers = q2.q.batchParsers;
2691
+ computeds = q2.q.computeds;
2663
2692
  if (joinSubQuery) {
2664
- first = q.clone();
2693
+ first = q2.clone();
2665
2694
  first.shape = shape;
2666
2695
  }
2667
2696
  }
@@ -2744,10 +2773,14 @@ const _join = (query, require2, type, first, args) => {
2744
2773
  computeds
2745
2774
  );
2746
2775
  }
2747
- return pushQueryValue(query, "join", {
2776
+ const q = pushQueryValue(query, "join", {
2748
2777
  type,
2749
2778
  args: joinArgs
2750
2779
  });
2780
+ if (query.q.type === "delete") {
2781
+ throwIfJoinLateral(q, query.q.type);
2782
+ }
2783
+ return q;
2751
2784
  };
2752
2785
  const addAllShapesAndParsers = (query, joinKey, shape, parsers, batchParsers, computeds) => {
2753
2786
  var _a, _b;
@@ -3551,7 +3584,9 @@ const applyComputedColumns = (q, fn) => {
3551
3584
  if (item instanceof ComputedColumn) {
3552
3585
  q.q.computeds = __spreadProps$5(__spreadValues$e({}, q.q.computeds), { [key]: item });
3553
3586
  } else {
3554
- (q.shape[key] = item.result.value || UnknownColumn.instance).data.computed = item;
3587
+ const data = (q.shape[key] = item.result.value || UnknownColumn.instance).data;
3588
+ data.computed = item;
3589
+ data.explicitSelect = true;
3555
3590
  }
3556
3591
  }
3557
3592
  q.computeAtRuntime = q.computeBatchAtRuntime = void 0;
@@ -3966,6 +4001,16 @@ const then = async (q, adapter, trx, beforeHooks, afterHooks, afterCommitHooks,
3966
4001
  error.cause = localError;
3967
4002
  }
3968
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
+ }
3969
4014
  if (log && sql) {
3970
4015
  log.onError(error, sql, logData);
3971
4016
  }
@@ -5777,7 +5822,7 @@ const processValue = (ctx, table, QueryClass, key, value, quotedAs) => {
5777
5822
  };
5778
5823
 
5779
5824
  const pushDeleteSql = (ctx, table, query, quotedAs) => {
5780
- var _a, _b, _c, _d;
5825
+ var _a, _b, _c;
5781
5826
  const from = `"${table.table}"`;
5782
5827
  ctx.sql.push(`DELETE FROM ${from}`);
5783
5828
  if (from !== quotedAs) {
@@ -5789,27 +5834,16 @@ const pushDeleteSql = (ctx, table, query, quotedAs) => {
5789
5834
  const ons = [];
5790
5835
  const joinSet = query.join.length > 1 ? /* @__PURE__ */ new Set() : null;
5791
5836
  for (const item of query.join) {
5792
- if (Array.isArray(item)) {
5793
- const q = item[1];
5794
- const { aliasValue } = ctx;
5795
- ctx.aliasValue = true;
5796
- const as = item[2];
5797
- targets.push(
5798
- `LATERAL (${getSqlText(q.toSQL(ctx))}) "${((_b = query.joinOverrides) == null ? void 0 : _b[as]) || as}"`
5799
- );
5800
- ctx.aliasValue = aliasValue;
5801
- } else {
5802
- const join = processJoinItem(ctx, table, query, item.args, quotedAs);
5803
- const key = `${join.target}${join.on}`;
5804
- if (joinSet) {
5805
- if (joinSet.has(key))
5806
- continue;
5807
- joinSet.add(key);
5808
- }
5809
- targets.push(join.target);
5810
- if (join.on)
5811
- 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);
5812
5843
  }
5844
+ targets.push(join.target);
5845
+ if (join.on)
5846
+ ons.push(join.on);
5813
5847
  }
5814
5848
  if (targets.length) {
5815
5849
  ctx.sql.push(`USING ${targets.join(", ")}`);
@@ -5818,7 +5852,7 @@ const pushDeleteSql = (ctx, table, query, quotedAs) => {
5818
5852
  }
5819
5853
  pushWhereStatementSql(ctx, table, query, quotedAs);
5820
5854
  if (conditions) {
5821
- if (((_c = query.and) == null ? void 0 : _c.length) || ((_d = query.or) == null ? void 0 : _d.length) || query.scopes) {
5855
+ if (((_b = query.and) == null ? void 0 : _b.length) || ((_c = query.or) == null ? void 0 : _c.length) || query.scopes) {
5822
5856
  ctx.sql.push("AND", conditions);
5823
5857
  } else {
5824
5858
  ctx.sql.push("WHERE", conditions);
@@ -8198,6 +8232,7 @@ const _queryDelete = (query) => {
8198
8232
  q.returnType = "rowCount";
8199
8233
  }
8200
8234
  throwIfNoWhere(query, "delete");
8235
+ throwIfJoinLateral(query, "delete");
8201
8236
  q.type = "delete";
8202
8237
  return query;
8203
8238
  };
@@ -12786,16 +12821,18 @@ class Db {
12786
12821
  applyComputedColumns(this, options.computed);
12787
12822
  if (prepareSelectAll) {
12788
12823
  const list = [];
12824
+ const keys = {};
12789
12825
  for (const key in shape) {
12790
12826
  const column = shape[key];
12791
12827
  if (!column.data.explicitSelect) {
12792
12828
  list.push(
12793
12829
  column.data.name ? `"${column.data.name}" AS "${key}"` : `"${key}"`
12794
12830
  );
12831
+ keys[key] = column;
12795
12832
  }
12796
12833
  }
12797
12834
  this.q.selectAllColumns = list;
12798
- this.q.selectAllKeys = __spreadValues({}, shape);
12835
+ this.q.selectAllKeys = keys;
12799
12836
  }
12800
12837
  if (modifyQuery) {
12801
12838
  for (const cb of modifyQuery) {
@@ -12888,6 +12925,23 @@ class Db {
12888
12925
  queryArrays(...args) {
12889
12926
  return performQuery(this, args, "arrays");
12890
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
+ }
12891
12945
  }
12892
12946
  const performQuery = async (q, args, method) => {
12893
12947
  var _a;
@@ -13394,6 +13448,7 @@ exports.sqlQueryArgsToExpression = sqlQueryArgsToExpression;
13394
13448
  exports.tableDataMethods = tableDataMethods;
13395
13449
  exports.templateLiteralToSQL = templateLiteralToSQL;
13396
13450
  exports.testTransaction = testTransaction;
13451
+ exports.throwIfJoinLateral = throwIfJoinLateral;
13397
13452
  exports.throwIfNoWhere = throwIfNoWhere;
13398
13453
  exports.toSQL = toSQL;
13399
13454
  exports.toSQLCacheKey = toSQLCacheKey;