pqb 0.41.3 → 0.41.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { PoolConfig, Pool, PoolClient } from 'pg';
2
2
  import * as orchid_core from 'orchid-core';
3
- import { QueryResultRow, AdapterConfigBase, AdapterBase, QueryInput, SingleSqlItem, Sql, RecordUnknown, RecordKeyTrue, EmptyObject, QueryBaseCommon, QueryColumns, QueryMetaBase, QueryReturnType, QueryThen, Expression, MaybeArray, TemplateLiteralArgs, QueryColumn, MaybePromise, FnUnknownToUnknown, RecordString, ColumnsShapeBase, ColumnsParsers, PickQueryTable, BatchParsers, HookSelect, QueryLogObject, QueryLogger, QueryDataTransform, ExpressionChain, PickQueryShape, ColumnSchemaConfig, RawSQLBase, RawSQLValues, ExpressionTypeMethod, DynamicSQLArg, ExpressionData, StaticSQLArgs, SQLQueryArgs, PickQueryTableMetaResult, EmptyTuple, PickQueryMeta, PickQueryMetaResultReturnType, QueryColumnToNullable, SelectableBase, PickQueryMetaShape, PickQueryTableMetaResultShape, PickQueryMetaResultWindows, PickOutputTypeAndOperators, PickQueryResult, ValExpression, PickOutputType, DateColumnData, ColumnToCodeCtx, Code, TimeInterval, ColumnTypeSchemaArg, ColumnDataBase, ArrayMethodsData, ForeignKeyTable, ColumnNameOfTable, BaseNumberData, PickColumnBaseData, ColumnWithDefault, StringTypeData, PrimaryKeyColumn, ColumnTypeBase, ParseColumn, ParseNullColumn, EncodeColumn, QueryColumnsInit, QueryLogOptions, DefaultSelectColumns, DbBase, QueryCatch, TransactionState, QueryColumnOfDataType, PickQueryUniqueProperties, PickQueryMetaResult, IsQuery, PickQueryTableMetaResultInputType, getValueKey, PickQueryResultUniqueColumns, QueryInternalBase, PickQueryReturnType, PickType, ColumnShapeOutput, OperatorsNullable, PickQueryMetaReturnType, UniqueColumn, TimestampHelpers, Codes, ColumnDataCheckBase } from 'orchid-core';
3
+ import { QueryResultRow, AdapterConfigBase, AdapterBase, QueryInput, SingleSqlItem, Sql, RecordUnknown, RecordKeyTrue, EmptyObject, QueryBaseCommon, QueryColumns, QueryMetaBase, QueryReturnType, QueryThen, Expression, MaybeArray, TemplateLiteralArgs, QueryColumn, MaybePromise, FnUnknownToUnknown, RecordString, ColumnsShapeBase, ColumnsParsers, PickQueryTable, BatchParsers, HookSelect, QueryLogObject, QueryLogger, QueryDataTransform, ExpressionChain, PickQueryShape, ColumnSchemaConfig, RawSQLBase, RawSQLValues, ExpressionTypeMethod, DynamicSQLArg, ExpressionData, StaticSQLArgs, SQLQueryArgs, PickQueryTableMetaResult, EmptyTuple, PickQueryMeta, PickQueryMetaResultReturnType, QueryColumnToNullable, SelectableBase, PickQueryMetaShape, PickQueryTableMetaResultShape, PickQueryMetaResultWindows, PickOutputTypeAndOperators, PickQueryResult, ValExpression, PickOutputType, DateColumnData, ColumnToCodeCtx, Code, TimeInterval, ColumnTypeSchemaArg, ColumnDataBase, ArrayMethodsData, ForeignKeyTable, ColumnNameOfTable, BaseNumberData, PickColumnBaseData, ColumnWithDefault, StringTypeData, PrimaryKeyColumn, ColumnTypeBase, ParseColumn, ParseNullColumn, EncodeColumn, QueryColumnsInit, QueryLogOptions, DefaultSelectColumns, DbBase, QueryCatch, TransactionState, QueryColumnOfDataType, PickQueryUniqueProperties, PickQueryMetaResult, IsQuery, PickQueryTableMetaResultInputType, getValueKey, PickQueryReturnType, PickQueryResultUniqueColumns, QueryInternalBase, PickType, ColumnShapeOutput, OperatorsNullable, PickQueryMetaReturnType, UniqueColumn, TimestampHelpers, Codes, ColumnDataCheckBase } from 'orchid-core';
4
4
  import { inspect } from 'node:util';
5
5
  import { AsyncLocalStorage } from 'node:async_hooks';
6
6
 
@@ -364,6 +364,8 @@ interface CommonQueryData {
364
364
  patchResult?(q: Query, queryResult: QueryResult): Promise<void>;
365
365
  handleResult: HandleResult;
366
366
  returnType: QueryReturnType;
367
+ returning?: boolean;
368
+ returningMany?: boolean;
367
369
  wrapInTransaction?: boolean;
368
370
  throwOnNotFound?: boolean;
369
371
  with?: WithItem[];
@@ -3221,7 +3223,7 @@ interface DefaultSchemaConfig extends ColumnSchemaConfig<ColumnType> {
3221
3223
  declare const defaultSchemaConfig: DefaultSchemaConfig;
3222
3224
 
3223
3225
  type SoftDeleteOption<Shape extends QueryColumns> = true | keyof Shape;
3224
- interface QueryWithSoftDelete extends PickQueryResult {
3226
+ interface QueryWithSoftDelete extends PickQueryMetaResultReturnType {
3225
3227
  meta: QueryMetaBase<{
3226
3228
  nonDeleted: true;
3227
3229
  }>;
@@ -4153,8 +4155,8 @@ type CreateManyResult<T extends CreateSelf, BT> = T extends {
4153
4155
  type CreateManyRawOrFromResult<T extends CreateSelf> = T extends {
4154
4156
  isCount: true;
4155
4157
  } ? SetQueryKind<T, 'create'> : T['returnType'] extends 'one' | 'oneOrThrow' ? SetQueryReturnsAllKind<T, 'create'> : T['returnType'] extends 'value' | 'valueOrThrow' ? SetQueryReturnsPluckColumnKind<T, 'create'> : SetQueryKind<T, 'create'>;
4156
- type InsertManyResult<T extends CreateSelf, BT> = T['meta']['hasSelect'] extends true ? T['returnType'] extends 'one' | 'oneOrThrow' ? SetQueryReturnsAllKindResult<T, 'create', NarrowCreateResult<T, BT>> : T['returnType'] extends 'value' | 'valueOrThrow' ? SetQueryReturnsPluckColumnKindResult<T, 'create', NarrowCreateResult<T, BT>> : SetQueryKindResult<T, 'create', NarrowCreateResult<T, BT>> : SetQueryReturnsRowCount<T, 'create'>;
4157
- type InsertManyRawOrFromResult<T extends CreateSelf> = T['meta']['hasSelect'] extends true ? T['returnType'] extends 'one' | 'oneOrThrow' ? SetQueryReturnsAllKind<T, 'create'> : T['returnType'] extends 'value' | 'valueOrThrow' ? SetQueryReturnsPluckColumnKind<T, 'create'> : SetQueryKind<T, 'create'> : SetQueryReturnsRowCount<T, 'create'>;
4158
+ type InsertManyResult<T extends CreateSelf, BT> = T['meta']['hasSelect'] extends true ? T['returnType'] extends 'one' | 'oneOrThrow' ? SetQueryReturnsAllKindResult<T, 'create', NarrowCreateResult<T, BT>> : T['returnType'] extends 'value' | 'valueOrThrow' ? SetQueryReturnsPluckColumnKindResult<T, 'create', NarrowCreateResult<T, BT>> : SetQueryKindResult<T, 'create', NarrowCreateResult<T, BT>> : SetQueryReturnsRowCountMany<T, 'create'>;
4159
+ type InsertManyRawOrFromResult<T extends CreateSelf> = T['meta']['hasSelect'] extends true ? T['returnType'] extends 'one' | 'oneOrThrow' ? SetQueryReturnsAllKind<T, 'create'> : T['returnType'] extends 'value' | 'valueOrThrow' ? SetQueryReturnsPluckColumnKind<T, 'create'> : SetQueryKind<T, 'create'> : SetQueryReturnsRowCountMany<T, 'create'>;
4158
4160
  /**
4159
4161
  * When creating a record with a *belongs to* nested record,
4160
4162
  * un-nullify foreign key columns of the result.
@@ -4688,8 +4690,8 @@ declare class OnConflictQueryBuilder<T extends CreateSelf, Arg extends OnConflic
4688
4690
 
4689
4691
  type DeleteMethodsNames = 'delete';
4690
4692
  type DeleteArgs<T extends PickQueryMetaResult> = T['meta']['hasWhere'] extends true ? EmptyTuple : [never];
4691
- type DeleteResult<T extends PickQueryMetaResult> = T['meta']['hasSelect'] extends true ? SetQueryKind<T, 'delete'> : SetQueryReturnsRowCount<T, 'delete'>;
4692
- declare const _queryDelete: <T extends PickQueryMetaResult>(query: T) => DeleteResult<T>;
4693
+ type DeleteResult<T extends PickQueryMetaResultReturnType> = T['meta']['hasSelect'] extends true ? SetQueryKind<T, 'delete'> : T['returnType'] extends undefined | 'all' ? SetQueryReturnsRowCountMany<T, 'delete'> : SetQueryReturnsRowCount<T, 'delete'>;
4694
+ declare const _queryDelete: <T extends PickQueryMetaResultReturnType>(query: T) => DeleteResult<T>;
4693
4695
  declare class Delete {
4694
4696
  /**
4695
4697
  * This method deletes one or more rows, based on other conditions specified in the query.
@@ -4750,7 +4752,7 @@ declare class Delete {
4750
4752
  * .from('b');
4751
4753
  * ```
4752
4754
  */
4753
- delete<T extends PickQueryMetaResult>(this: T, ..._args: DeleteArgs<T>): DeleteResult<T>;
4755
+ delete<T extends PickQueryMetaResultReturnType>(this: T, ..._args: DeleteArgs<T>): DeleteResult<T>;
4754
4756
  }
4755
4757
 
4756
4758
  type ForQueryBuilder<Q> = Q & {
@@ -5371,25 +5373,26 @@ type SelectAsFnReturnType = {
5371
5373
  interface SelectAsCheckReturnTypes {
5372
5374
  [K: string]: PropertyKey | Expression | ((q: never) => SelectAsFnReturnType);
5373
5375
  }
5376
+ type SelectReturnType<T extends PickQueryReturnType> = T['returnType'] extends 'valueOrThrow' ? 'oneOrThrow' : T extends 'value' ? 'one' : T['returnType'] extends 'pluck' ? 'all' : T['returnType'];
5374
5377
  type SelectResult<T extends SelectSelf, Columns extends PropertyKey[]> = {
5375
5378
  [K in keyof T]: K extends 'result' ? ('*' extends Columns[number] ? {
5376
5379
  [K in Columns[number] | T['meta']['defaultSelect'] as K extends '*' ? never : T['meta']['selectable'][K]['as']]: T['meta']['selectable'][K]['column'];
5377
5380
  } : {
5378
5381
  [K in Columns[number] as T['meta']['selectable'][K]['as']]: T['meta']['selectable'][K]['column'];
5379
- }) & (T['meta']['hasSelect'] extends true ? Omit<T['result'], Columns[number]> : unknown) : K extends 'then' ? QueryThen<GetQueryResult<T, ('*' extends Columns[number] ? {
5382
+ }) & (T['meta']['hasSelect'] extends (T['returnType'] extends 'value' | 'valueOrThrow' ? never : true) ? Omit<T['result'], Columns[number]> : unknown) : K extends 'returnType' ? SelectReturnType<T> : K extends 'then' ? QueryThen<QueryResultByReturnType<SelectReturnType<T>, ('*' extends Columns[number] ? {
5380
5383
  [K in Exclude<Columns[number], '*'> | T['meta']['defaultSelect'] as T['meta']['selectable'][K]['as']]: T['meta']['selectable'][K]['column'];
5381
5384
  } : {
5382
5385
  [K in Columns[number] as T['meta']['selectable'][K]['as']]: T['meta']['selectable'][K]['column'];
5383
- }) & (T['meta']['hasSelect'] extends true ? Omit<T['result'], Columns[number]> : unknown)>> : T[K];
5386
+ }) & (T['meta']['hasSelect'] extends (T['returnType'] extends 'value' | 'valueOrThrow' ? never : true) ? Omit<T['result'], Columns[number]> : unknown)>> : T[K];
5384
5387
  } & QueryMetaHasSelect;
5385
5388
  type SelectResultObj<T extends SelectSelf, Obj> = Obj extends SelectAsCheckReturnTypes ? {
5386
5389
  [K in keyof T]: K extends 'meta' ? T['meta'] & {
5387
5390
  hasSelect: true;
5388
5391
  selectable: SelectAsSelectable<Obj>;
5389
5392
  } : K extends 'result' ? {
5390
- [K in T['meta']['hasSelect'] extends true ? keyof Obj | keyof T['result'] : keyof Obj]: K extends keyof Obj ? SelectAsValueResult<T, Obj[K]> : K extends keyof T['result'] ? T['result'][K] : never;
5391
- } : K extends 'then' ? QueryThen<GetQueryResult<T, {
5392
- [K in T['meta']['hasSelect'] extends true ? keyof Obj | keyof T['result'] : keyof Obj]: K extends keyof Obj ? SelectAsValueResult<T, Obj[K]> : K extends keyof T['result'] ? T['result'][K] : never;
5393
+ [K in T['meta']['hasSelect'] extends (T['returnType'] extends 'value' | 'valueOrThrow' ? never : true) ? keyof Obj | keyof T['result'] : keyof Obj]: K extends keyof Obj ? SelectAsValueResult<T, Obj[K]> : K extends keyof T['result'] ? T['result'][K] : never;
5394
+ } : K extends 'returnType' ? SelectReturnType<T> : K extends 'then' ? QueryThen<QueryResultByReturnType<SelectReturnType<T>, {
5395
+ [K in T['meta']['hasSelect'] extends (T['returnType'] extends 'value' | 'valueOrThrow' ? never : true) ? keyof Obj | keyof T['result'] : keyof Obj]: K extends keyof Obj ? SelectAsValueResult<T, Obj[K]> : K extends keyof T['result'] ? T['result'][K] : never;
5393
5396
  }>> : T[K];
5394
5397
  } : `Invalid return type of ${{
5395
5398
  [K in keyof Obj]: Obj[K] extends (...args: any[]) => any ? ReturnType<Obj[K]> extends SelectAsFnReturnType ? never : K : never;
@@ -5401,9 +5404,9 @@ type SelectResultColumnsAndObj<T extends SelectSelf, Columns extends PropertyKey
5401
5404
  } : K extends 'result' ? // Combine previously selected items, all columns if * was provided,
5402
5405
  {
5403
5406
  [K in ('*' extends Columns[number] ? Exclude<Columns[number], '*'> | T['meta']['defaultSelect'] : Columns[number]) | keyof Obj as K extends Columns[number] ? T['meta']['selectable'][K]['as'] : K]: K extends keyof Obj ? SelectAsValueResult<T, Obj[K]> : T['meta']['selectable'][K]['column'];
5404
- } & (T['meta']['hasSelect'] extends true ? Omit<T['result'], Columns[number]> : unknown) : K extends 'then' ? QueryThen<GetQueryResult<T, {
5407
+ } & (T['meta']['hasSelect'] extends (T['returnType'] extends 'value' | 'valueOrThrow' ? never : true) ? Omit<T['result'], Columns[number]> : unknown) : K extends 'returnType' ? SelectReturnType<T> : K extends 'then' ? QueryThen<QueryResultByReturnType<SelectReturnType<T>, {
5405
5408
  [K in ('*' extends Columns[number] ? Exclude<Columns[number], '*'> | T['meta']['defaultSelect'] : Columns[number]) | keyof Obj as K extends Columns[number] ? T['meta']['selectable'][K]['as'] : K]: K extends keyof Obj ? SelectAsValueResult<T, Obj[K]> : T['meta']['selectable'][K]['column'];
5406
- } & (T['meta']['hasSelect'] extends true ? Omit<T['result'], Columns[number]> : unknown)>> : T[K];
5409
+ } & (T['meta']['hasSelect'] extends (T['returnType'] extends 'value' | 'valueOrThrow' ? never : true) ? Omit<T['result'], Columns[number]> : unknown)>> : T[K];
5407
5410
  };
5408
5411
  type SelectAsSelectable<Arg> = {
5409
5412
  [K in keyof Arg]: Arg[K] extends (q: never) => {
@@ -6039,7 +6042,7 @@ type UpdateColumn<T extends UpdateSelf, Key extends keyof T['inputType']> = T['i
6039
6042
  type UpdateRelationData<T extends UpdateSelf, Rel extends RelationConfigBase> = T['returnType'] extends undefined | 'all' ? Rel['dataForUpdate'] : Rel['dataForUpdateOne'];
6040
6043
  type UpdateArg<T extends UpdateSelf> = T['meta']['hasWhere'] extends true ? UpdateData<T> : never;
6041
6044
  type UpdateRawArgs<T extends UpdateSelf> = T['meta']['hasWhere'] extends true ? SQLQueryArgs : never;
6042
- type UpdateResult<T extends UpdateSelf> = T['meta']['hasSelect'] extends true ? SetQueryKind<T, 'update'> : SetQueryReturnsRowCount<T, 'update'>;
6045
+ type UpdateResult<T extends UpdateSelf> = T['meta']['hasSelect'] extends true ? SetQueryKind<T, 'update'> : T['returnType'] extends undefined | 'all' ? SetQueryReturnsRowCountMany<T, 'update'> : SetQueryReturnsRowCount<T, 'update'>;
6043
6046
  type NumericColumns<T extends PickQueryShape> = {
6044
6047
  [K in keyof T['shape']]: Exclude<T['shape'][K]['queryType'], string> extends number | bigint | null ? K : never;
6045
6048
  }[keyof T['shape']];
@@ -7692,7 +7695,8 @@ interface QueryWithTable extends Query {
7692
7695
  }
7693
7696
  declare const queryTypeWithLimitOne: RecordKeyTrue;
7694
7697
  declare const isQueryReturnsAll: (q: Query) => boolean;
7695
- type GetQueryResult<T extends PickQueryReturnType, Result extends QueryColumns> = T['returnType'] extends undefined | 'all' ? ColumnShapeOutput<Result>[] : T['returnType'] extends 'one' ? ColumnShapeOutput<Result> | undefined : T['returnType'] extends 'oneOrThrow' ? ColumnShapeOutput<Result> : T['returnType'] extends 'value' ? Result['value']['outputType'] | undefined : T['returnType'] extends 'valueOrThrow' ? Result['value']['outputType'] : T['returnType'] extends 'rows' ? ColumnShapeOutput<Result>[keyof Result][][] : T['returnType'] extends 'pluck' ? Result['pluck']['outputType'][] : T['returnType'] extends 'rowCount' ? number : void;
7698
+ type GetQueryResult<T extends PickQueryReturnType, Result extends QueryColumns> = T['returnType'] extends undefined | 'all' ? ColumnShapeOutput<Result>[] : T['returnType'] extends 'one' ? ColumnShapeOutput<Result> | undefined : T['returnType'] extends 'oneOrThrow' ? ColumnShapeOutput<Result> : T['returnType'] extends 'value' ? Result['value']['outputType'] | undefined : T['returnType'] extends 'valueOrThrow' ? Result['value']['outputType'] : T['returnType'] extends 'rows' ? ColumnShapeOutput<Result>[keyof Result][][] : T['returnType'] extends 'pluck' ? Result['pluck']['outputType'][] : void;
7699
+ type QueryResultByReturnType<ReturnType extends QueryReturnType, Result extends QueryColumns> = ReturnType extends undefined | 'all' ? ColumnShapeOutput<Result>[] : ReturnType extends 'one' ? ColumnShapeOutput<Result> | undefined : ReturnType extends 'oneOrThrow' ? ColumnShapeOutput<Result> : ReturnType extends 'value' ? Result['value']['outputType'] | undefined : ReturnType extends 'valueOrThrow' ? Result['value']['outputType'] : ReturnType extends 'rows' ? ColumnShapeOutput<Result>[keyof Result][][] : ReturnType extends 'pluck' ? Result['pluck']['outputType'][] : void;
7696
7700
  interface QueryMetaHasSelect {
7697
7701
  meta: {
7698
7702
  hasSelect: true;
@@ -7781,7 +7785,16 @@ type SetQueryReturnsColumnKindResult<T extends PickQueryMetaResult, Kind extends
7781
7785
  type SetQueryReturnsRowCount<T extends PickQueryMetaResult, Kind extends string> = {
7782
7786
  [K in keyof T]: K extends 'meta' ? {
7783
7787
  [K in keyof T['meta']]: K extends 'kind' ? Kind : T['meta'][K];
7784
- } : K extends 'returnType' ? 'rowCount' : K extends 'then' ? QueryThen<number> : T[K];
7788
+ } : K extends 'returnType' ? 'valueOrThrow' : K extends 'result' ? {
7789
+ value: QueryColumn<number>;
7790
+ } : K extends 'then' ? QueryThen<number> : T[K];
7791
+ };
7792
+ type SetQueryReturnsRowCountMany<T extends PickQueryMetaResult, Kind extends string> = {
7793
+ [K in keyof T]: K extends 'meta' ? {
7794
+ [K in keyof T['meta']]: K extends 'kind' ? Kind : T['meta'][K];
7795
+ } : K extends 'returnType' ? 'pluck' : K extends 'result' ? {
7796
+ pluck: QueryColumn<number>;
7797
+ } : K extends 'then' ? QueryThen<number> : T[K];
7785
7798
  };
7786
7799
  type SetQueryReturnsVoid<T> = {
7787
7800
  [K in keyof T]: K extends 'returnType' ? 'void' : K extends 'then' ? QueryThen<void> : T[K];
@@ -8495,4 +8508,4 @@ type CopyResult<T extends PickQueryMeta> = SetQueryKind<T, 'copy'>;
8495
8508
  */
8496
8509
  declare function copyTableData<T extends PickQueryMetaShape>(query: T, arg: CopyArg<T>): CopyResult<T>;
8497
8510
 
8498
- export { Adapter, AdapterConfig, AdapterOptions, AddQueryDefaults, AfterCommitError, AfterCommitErrorFulfilledResult, AfterCommitErrorRejectedResult, AfterCommitErrorResult, AfterHook, AggregateArgTypes, AggregateMethods, AggregateOptions, AliasOrTable, ArrayColumn, ArrayColumnValue, ArrayData, AsMethods, AsQueryArg, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BooleanQueryColumn, BoxColumn, ByteaColumn, ChangeCountArg, CidrColumn, CircleColumn, CitextColumn, Clear, ClearStatement, ColumnData, ColumnFromDbParams, ColumnInfoQueryData, ColumnRefExpression, ColumnType, ColumnsByType, ColumnsShape, ColumnsShapeToNullableObject, ColumnsShapeToObject, ColumnsShapeToObjectArray, ColumnsShapeToPluck, CommonQueryData, ComputedColumn, ComputedColumns, ComputedColumnsFromOptions, ComputedMethods, ComputedOptionsFactory, CopyOptions, CopyQueryData, Create, CreateBelongsToData, CreateColumn, CreateCtx, CreateData, CreateKind, CreateMethodsNames, CreateRelationsData, CreateRelationsDataOmittingFKeys, CreateResult, CreateSelf, CustomTypeColumn, DateBaseColumn, DateColumn, DateColumnInput, DateTimeBaseClass, DateTimeTzBaseClass, Db, DbDomainArg, DbDomainArgRecord, DbExtension, DbOptions, DbResult, DbSharedOptions, DbTableConstructor, DbTableOptionScopes, DbTableOptions, DecimalColumn, DecimalColumnData, DefaultColumnTypes, DefaultSchemaConfig, Delete, DeleteArgs, DeleteMethodsNames, DeleteQueryData, DeleteResult, DomainColumn, DoublePrecisionColumn, DynamicRawSQL, EnumColumn, ExpressionMethods, ExpressionOutput, FnExpression, FnExpressionArgs, FnExpressionArgsPairs, FnExpressionArgsValue, For, FromArg, FromMethods, FromQuerySelf, FromResult, GeneratorIgnore, GetArg, GetColumnInfo, GetQueryResult, GetResult, GetResultOptional, GetStringArg, GroupArgs, HandleResult, Having, HavingItem, HookAction, HookSelectArg, IdentityColumn, InetColumn, InsertQueryData, IntegerBaseColumn, IntegerColumn, IntervalColumn, IsolationLevel, JSONColumn, JSONTextColumn, Join, JoinArgToQuery, JoinArgs, JoinCallback, JoinFirstArg, JoinItem, JoinItemArgs, JoinLateralItem, JoinLateralResult, JoinQueryBuilder, JoinQueryMethod, JoinResult, JoinedParsers, JoinedShapes, JsonMethods, LimitedTextBaseColumn, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MapTableScopesOption, MergeQuery, MergeQueryMethods, MoneyColumn, MoreThanOneRowError, NoPrimaryKeyOption, NonUniqDataItem, NotFoundError, NumberAsStringBaseColumn, NumberBaseColumn, NumberColumnData, NumericColumns, OnConflictMerge, OnConflictQueryBuilder, OnConflictSet, OnConflictTarget, OnMethods, Operator, Operators, OperatorsAny, OperatorsArray, OperatorsBoolean, OperatorsDate, OperatorsJson, OperatorsNumber, OperatorsText, OperatorsTime, OrCreateArg, OrExpression, OrchidOrmError, OrchidOrmInternalError, OrderArg, OrderArgSelf, OrderArgs, OrderItem, OrderTsQueryConfig, Over, PathColumn, PickColumnData, PickQueryBaseQuery, PickQueryColumnTypes, PickQueryDataShapeAndJoinedShapes, PickQueryInternal, PickQueryMetaRelations, PickQueryMetaResultRelations, PickQueryMetaResultRelationsWindows, PickQueryMetaResultRelationsWindowsColumnTypes, PickQueryMetaResultRelationsWithDataReturnType, PickQueryMetaResultRelationsWithDataReturnTypeShape, PickQueryMetaResultReturnTypeWithDataWindows, PickQueryMetaResultReturnTypeWithDataWindowsTable, PickQueryMetaShapeRelationsWithData, PickQueryMetaTable, PickQueryMetaTableShape, PickQueryMetaTableShapeReturnTypeWithData, PickQueryMetaWithData, PickQueryMetaWithDataColumnTypes, PickQueryQ, PickQueryQAndBaseQuery, PickQueryQAndInternal, PickQueryRelations, PickQueryRelationsWithData, PickQueryResultColumnTypes, PickQueryShapeResultSinglePrimaryKey, PickQueryShapeSinglePrimaryKey, PickQuerySinglePrimaryKey, PickQueryWindows, PickQueryWithData, PickQueryWithDataColumnTypes, PointColumn, PolygonColumn, PostgisGeographyPointColumn, PostgisPoint, Query, QueryAfterHook, QueryArraysResult, QueryBase, QueryBaseThen, QueryBatchResult, QueryBeforeHook, QueryComputedArg, QueryData, QueryDataFromItem, QueryDataJoinTo, QueryDefaultReturnData, QueryError, QueryErrorName, QueryGet, QueryGetSelf, QueryHelperResult, QueryHooks, QueryInternal, QueryLog, QueryMetaHasSelect, QueryMetaHasWhere, QueryMethods, QueryOrExpression, QueryOrExpressionBooleanOrNullResult, QueryResult, QueryScopeData, QueryScopes, QuerySourceItem, QueryUpsertOrCreate, QueryWithTable, RawSQL, RealColumn, RecordOfColumnsShapeBase, RefExpression, RelationConfigBase, RelationConfigDataForCreate, RelationJoinQuery, RelationQuery, RelationQueryBase, RelationsBase, RuntimeComputedQueryColumn, SearchArg, SearchMethods, SearchWeight, SearchWeightRecord, Select, SelectArg, SelectArgs, SelectAs, SelectAsValue, SelectItem, SelectQueryData, SelectSubQueryResult, SelectableFromShape, SelectableOfType, SelectableOrExpression, SelectableOrExpressionOfType, SelectableOrExpressions, SerialColumn, SerialColumnData, SetQueryKind, SetQueryKindResult, SetQueryReturnsAll, SetQueryReturnsAllKind, SetQueryReturnsAllKindResult, SetQueryReturnsColumnInfo, SetQueryReturnsColumnKind, SetQueryReturnsColumnKindResult, SetQueryReturnsColumnOptional, SetQueryReturnsColumnOrThrow, SetQueryReturnsOne, SetQueryReturnsOneKind, SetQueryReturnsOneKindResult, SetQueryReturnsOneOptional, SetQueryReturnsPluck, SetQueryReturnsPluckColumn, SetQueryReturnsPluckColumnKind, SetQueryReturnsPluckColumnKindResult, SetQueryReturnsRowCount, SetQueryReturnsRows, SetQueryReturnsValueOptional, SetQueryReturnsValueOrThrow, SetQueryReturnsVoid, SetQueryReturnsVoidKind, SetQueryTableAlias, ShapeColumnPrimaryKeys, ShapeUniqueColumns, SimpleJoinItem, SimpleJoinItemNonSubQueryArgs, SmallIntColumn, SmallSerialColumn, SortDir, SqlFn, SqlMethod, StringColumn$1 as StringColumn, TableData, TableDataFn, TableDataInput, TableDataItem, TableDataItemsUniqueColumnTuples, TableDataItemsUniqueColumns, TableDataItemsUniqueConstraints, TableDataMethods, TextBaseColumn, TextColumn, TextColumnData, Then, TimeColumn, TimestampColumn, TimestampTZColumn, ToSQLCtx, ToSQLOptions, ToSQLQuery, Transaction, TransactionAdapter, TransactionOptions, TransformMethods, TruncateQueryData, TsQueryColumn, TsVectorColumn, TypeParsers, UUIDColumn, UnhandledTypeError, Union, UnionArgs, UnionItem, UnionKind, UnionSet, UniqueConstraints, UniqueQueryTypeOrExpression, UniqueTableDataItem, UnknownColumn, Update, UpdateArg, UpdateCtx, UpdateCtxCollect, UpdateData, UpdateQueryData, UpdateQueryDataItem, UpdateQueryDataObject, UpdateSelf, UpdatedAtDataInjector, UpsertResult, UpsertThis, VarCharColumn, VirtualColumn, Where, WhereArg, WhereArgs, WhereInArg, WhereInColumn, WhereInItem, WhereInValues, WhereItem, WhereJsonPathEqualsItem, WhereNotArgs, WhereOnItem, WhereOnJoinItem, WhereQueryBuilder, WhereResult, WhereSearchItem, WhereSearchResult, WindowArg, WindowArgDeclaration, WindowDeclaration, WindowItem, WithArgsOptions, WithConfigs, WithDataItem, WithDataItems, WithItem, WithMethods, WithOptions, WithQueryBuilder, WithRecursiveOptions, WithResult, WithSqlResult, WrapQueryArg, XMLColumn, _afterCommitError, _getSelectableColumn, _initQueryBuilder, _queryAfterSaveCommit, _queryAll, _queryAs, _queryChangeCounter, _queryCreate, _queryCreateFrom, _queryCreateMany, _queryCreateManyFrom, _queryCreateManyRaw, _queryCreateRaw, _queryDefaults, _queryDelete, _queryExec, _queryFindBy, _queryFindByOptional, _queryGet, _queryGetOptional, _queryHookAfterCreate, _queryHookAfterCreateCommit, _queryHookAfterDelete, _queryHookAfterDeleteCommit, _queryHookAfterQuery, _queryHookAfterSave, _queryHookAfterUpdate, _queryHookAfterUpdateCommit, _queryHookBeforeCreate, _queryHookBeforeDelete, _queryHookBeforeQuery, _queryHookBeforeSave, _queryHookBeforeUpdate, _queryInsert, _queryInsertFrom, _queryInsertMany, _queryInsertManyFrom, _queryInsertManyRaw, _queryInsertRaw, _queryJoinOn, _queryJoinOnJsonPathEquals, _queryJoinOrOn, _queryOr, _queryOrNot, _queryResolveAlias, _queryRows, _querySelect, _queryTake, _queryTakeOptional, _queryUnion, _queryUpdate, _queryUpdateOrThrow, _queryUpdateRaw, _queryWhere, _queryWhereExists, _queryWhereIn, _queryWhereNot, _queryWhereNotOneOf, _queryWhereNotSql, _queryWhereOneOf, _queryWhereSql, addColumnParserToQuery, addParserForRawExpression, addParserForSelectItem, addQueryOn, anyShape, applyComputedColumns, checkIfASimpleQuery, cloneQuery, cloneQueryBaseUnscoped, columnCheckToCode, columnCode, columnForeignKeysToCode, columnIndexesToCode, columnsShapeToCode, commitSql, constraintInnerToCode, constraintToCode, copyTableData, countSelect, createDb, defaultSchemaConfig, escapeForLog, escapeForMigration, escapeString, extendQuery, filterResult, foreignKeyArgumentToCode, getClonedQueryData, getColumnInfo, getColumnTypes, getPrimaryKeys, getQueryAs, getShapeFromSelect, getSqlText, handleResult, identityToCode, indexInnerToCode, indexToCode, instantiateColumn, isDefaultTimeStamp, isQueryReturnsAll, isSelectingCount, joinSubQuery, logParamToLogObject, makeColumnTypes, makeColumnsByType, makeFnExpression, makeRegexToFindInSql, makeSQL, parseRecord, parseTableData, parseTableDataInput, postgisTypmodToSql, primaryKeyInnerToCode, processComputedBatches, processComputedResult, processSelectArg, pushLimitSQL, pushQueryArray, pushQueryOn, pushQueryOnForOuter, pushQueryOrOn, pushQueryValue, pushTableDataCode, queryFrom, queryFromSql, queryJson, queryMethodByReturnType, queryTypeWithLimitOne, queryWrap, raw, referencesArgsToCode, resolveSubQueryCallback, rollbackSql, saveSearchAlias, setColumnDefaultParse, setColumnEncode, setColumnParse, setColumnParseNull, setParserForSelectedString, setQueryObjectValue, setQueryOperators, simplifyColumnDefault, sqlFn, sqlQueryArgsToExpression, tableDataMethods, templateLiteralToSQL, testTransaction, throwIfJoinLateral, throwIfNoWhere, toSQL, toSQLCacheKey };
8511
+ export { Adapter, AdapterConfig, AdapterOptions, AddQueryDefaults, AfterCommitError, AfterCommitErrorFulfilledResult, AfterCommitErrorRejectedResult, AfterCommitErrorResult, AfterHook, AggregateArgTypes, AggregateMethods, AggregateOptions, AliasOrTable, ArrayColumn, ArrayColumnValue, ArrayData, AsMethods, AsQueryArg, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BooleanQueryColumn, BoxColumn, ByteaColumn, ChangeCountArg, CidrColumn, CircleColumn, CitextColumn, Clear, ClearStatement, ColumnData, ColumnFromDbParams, ColumnInfoQueryData, ColumnRefExpression, ColumnType, ColumnsByType, ColumnsShape, ColumnsShapeToNullableObject, ColumnsShapeToObject, ColumnsShapeToObjectArray, ColumnsShapeToPluck, CommonQueryData, ComputedColumn, ComputedColumns, ComputedColumnsFromOptions, ComputedMethods, ComputedOptionsFactory, CopyOptions, CopyQueryData, Create, CreateBelongsToData, CreateColumn, CreateCtx, CreateData, CreateKind, CreateMethodsNames, CreateRelationsData, CreateRelationsDataOmittingFKeys, CreateResult, CreateSelf, CustomTypeColumn, DateBaseColumn, DateColumn, DateColumnInput, DateTimeBaseClass, DateTimeTzBaseClass, Db, DbDomainArg, DbDomainArgRecord, DbExtension, DbOptions, DbResult, DbSharedOptions, DbTableConstructor, DbTableOptionScopes, DbTableOptions, DecimalColumn, DecimalColumnData, DefaultColumnTypes, DefaultSchemaConfig, Delete, DeleteArgs, DeleteMethodsNames, DeleteQueryData, DeleteResult, DomainColumn, DoublePrecisionColumn, DynamicRawSQL, EnumColumn, ExpressionMethods, ExpressionOutput, FnExpression, FnExpressionArgs, FnExpressionArgsPairs, FnExpressionArgsValue, For, FromArg, FromMethods, FromQuerySelf, FromResult, GeneratorIgnore, GetArg, GetColumnInfo, GetQueryResult, GetResult, GetResultOptional, GetStringArg, GroupArgs, HandleResult, Having, HavingItem, HookAction, HookSelectArg, IdentityColumn, InetColumn, InsertQueryData, IntegerBaseColumn, IntegerColumn, IntervalColumn, IsolationLevel, JSONColumn, JSONTextColumn, Join, JoinArgToQuery, JoinArgs, JoinCallback, JoinFirstArg, JoinItem, JoinItemArgs, JoinLateralItem, JoinLateralResult, JoinQueryBuilder, JoinQueryMethod, JoinResult, JoinedParsers, JoinedShapes, JsonMethods, LimitedTextBaseColumn, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MapTableScopesOption, MergeQuery, MergeQueryMethods, MoneyColumn, MoreThanOneRowError, NoPrimaryKeyOption, NonUniqDataItem, NotFoundError, NumberAsStringBaseColumn, NumberBaseColumn, NumberColumnData, NumericColumns, OnConflictMerge, OnConflictQueryBuilder, OnConflictSet, OnConflictTarget, OnMethods, Operator, Operators, OperatorsAny, OperatorsArray, OperatorsBoolean, OperatorsDate, OperatorsJson, OperatorsNumber, OperatorsText, OperatorsTime, OrCreateArg, OrExpression, OrchidOrmError, OrchidOrmInternalError, OrderArg, OrderArgSelf, OrderArgs, OrderItem, OrderTsQueryConfig, Over, PathColumn, PickColumnData, PickQueryBaseQuery, PickQueryColumnTypes, PickQueryDataShapeAndJoinedShapes, PickQueryInternal, PickQueryMetaRelations, PickQueryMetaResultRelations, PickQueryMetaResultRelationsWindows, PickQueryMetaResultRelationsWindowsColumnTypes, PickQueryMetaResultRelationsWithDataReturnType, PickQueryMetaResultRelationsWithDataReturnTypeShape, PickQueryMetaResultReturnTypeWithDataWindows, PickQueryMetaResultReturnTypeWithDataWindowsTable, PickQueryMetaShapeRelationsWithData, PickQueryMetaTable, PickQueryMetaTableShape, PickQueryMetaTableShapeReturnTypeWithData, PickQueryMetaWithData, PickQueryMetaWithDataColumnTypes, PickQueryQ, PickQueryQAndBaseQuery, PickQueryQAndInternal, PickQueryRelations, PickQueryRelationsWithData, PickQueryResultColumnTypes, PickQueryShapeResultSinglePrimaryKey, PickQueryShapeSinglePrimaryKey, PickQuerySinglePrimaryKey, PickQueryWindows, PickQueryWithData, PickQueryWithDataColumnTypes, PointColumn, PolygonColumn, PostgisGeographyPointColumn, PostgisPoint, Query, QueryAfterHook, QueryArraysResult, QueryBase, QueryBaseThen, QueryBatchResult, QueryBeforeHook, QueryComputedArg, QueryData, QueryDataFromItem, QueryDataJoinTo, QueryDefaultReturnData, QueryError, QueryErrorName, QueryGet, QueryGetSelf, QueryHelperResult, QueryHooks, QueryInternal, QueryLog, QueryMetaHasSelect, QueryMetaHasWhere, QueryMethods, QueryOrExpression, QueryOrExpressionBooleanOrNullResult, QueryResult, QueryResultByReturnType, 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, SetQueryReturnsRowCountMany, SetQueryReturnsRows, SetQueryReturnsValueOptional, SetQueryReturnsValueOrThrow, SetQueryReturnsVoid, SetQueryReturnsVoidKind, SetQueryTableAlias, ShapeColumnPrimaryKeys, ShapeUniqueColumns, SimpleJoinItem, SimpleJoinItemNonSubQueryArgs, SmallIntColumn, SmallSerialColumn, SortDir, SqlFn, SqlMethod, StringColumn$1 as StringColumn, TableData, TableDataFn, TableDataInput, TableDataItem, TableDataItemsUniqueColumnTuples, TableDataItemsUniqueColumns, TableDataItemsUniqueConstraints, TableDataMethods, TextBaseColumn, TextColumn, TextColumnData, Then, TimeColumn, TimestampColumn, TimestampTZColumn, ToSQLCtx, ToSQLOptions, ToSQLQuery, Transaction, TransactionAdapter, TransactionOptions, TransformMethods, TruncateQueryData, TsQueryColumn, TsVectorColumn, TypeParsers, UUIDColumn, UnhandledTypeError, Union, UnionArgs, UnionItem, UnionKind, UnionSet, UniqueConstraints, UniqueQueryTypeOrExpression, UniqueTableDataItem, UnknownColumn, Update, UpdateArg, UpdateCtx, UpdateCtxCollect, UpdateData, UpdateQueryData, UpdateQueryDataItem, UpdateQueryDataObject, UpdateSelf, UpdatedAtDataInjector, UpsertResult, UpsertThis, VarCharColumn, VirtualColumn, Where, WhereArg, WhereArgs, WhereInArg, WhereInColumn, WhereInItem, WhereInValues, WhereItem, WhereJsonPathEqualsItem, WhereNotArgs, WhereOnItem, WhereOnJoinItem, WhereQueryBuilder, WhereResult, WhereSearchItem, WhereSearchResult, WindowArg, WindowArgDeclaration, WindowDeclaration, WindowItem, WithArgsOptions, WithConfigs, WithDataItem, WithDataItems, WithItem, WithMethods, WithOptions, WithQueryBuilder, WithRecursiveOptions, WithResult, WithSqlResult, WrapQueryArg, XMLColumn, _afterCommitError, _getSelectableColumn, _initQueryBuilder, _queryAfterSaveCommit, _queryAll, _queryAs, _queryChangeCounter, _queryCreate, _queryCreateFrom, _queryCreateMany, _queryCreateManyFrom, _queryCreateManyRaw, _queryCreateRaw, _queryDefaults, _queryDelete, _queryExec, _queryFindBy, _queryFindByOptional, _queryGet, _queryGetOptional, _queryHookAfterCreate, _queryHookAfterCreateCommit, _queryHookAfterDelete, _queryHookAfterDeleteCommit, _queryHookAfterQuery, _queryHookAfterSave, _queryHookAfterUpdate, _queryHookAfterUpdateCommit, _queryHookBeforeCreate, _queryHookBeforeDelete, _queryHookBeforeQuery, _queryHookBeforeSave, _queryHookBeforeUpdate, _queryInsert, _queryInsertFrom, _queryInsertMany, _queryInsertManyFrom, _queryInsertManyRaw, _queryInsertRaw, _queryJoinOn, _queryJoinOnJsonPathEquals, _queryJoinOrOn, _queryOr, _queryOrNot, _queryResolveAlias, _queryRows, _querySelect, _queryTake, _queryTakeOptional, _queryUnion, _queryUpdate, _queryUpdateOrThrow, _queryUpdateRaw, _queryWhere, _queryWhereExists, _queryWhereIn, _queryWhereNot, _queryWhereNotOneOf, _queryWhereNotSql, _queryWhereOneOf, _queryWhereSql, addColumnParserToQuery, addParserForRawExpression, addParserForSelectItem, addQueryOn, anyShape, applyComputedColumns, checkIfASimpleQuery, cloneQuery, cloneQueryBaseUnscoped, columnCheckToCode, columnCode, columnForeignKeysToCode, columnIndexesToCode, columnsShapeToCode, commitSql, constraintInnerToCode, constraintToCode, copyTableData, countSelect, createDb, defaultSchemaConfig, escapeForLog, escapeForMigration, escapeString, extendQuery, filterResult, foreignKeyArgumentToCode, getClonedQueryData, getColumnInfo, getColumnTypes, getPrimaryKeys, getQueryAs, getShapeFromSelect, getSqlText, handleResult, identityToCode, indexInnerToCode, indexToCode, instantiateColumn, isDefaultTimeStamp, isQueryReturnsAll, isSelectingCount, joinSubQuery, logParamToLogObject, makeColumnTypes, makeColumnsByType, makeFnExpression, makeRegexToFindInSql, makeSQL, parseRecord, parseTableData, parseTableDataInput, postgisTypmodToSql, primaryKeyInnerToCode, processComputedBatches, processComputedResult, processSelectArg, pushLimitSQL, pushQueryArray, pushQueryOn, pushQueryOnForOuter, pushQueryOrOn, pushQueryValue, pushTableDataCode, queryFrom, queryFromSql, queryJson, queryMethodByReturnType, queryTypeWithLimitOne, queryWrap, raw, referencesArgsToCode, resolveSubQueryCallback, rollbackSql, saveSearchAlias, setColumnDefaultParse, setColumnEncode, setColumnParse, setColumnParseNull, setParserForSelectedString, setQueryObjectValue, setQueryOperators, simplifyColumnDefault, sqlFn, sqlQueryArgsToExpression, tableDataMethods, templateLiteralToSQL, testTransaction, throwIfJoinLateral, throwIfNoWhere, toSQL, toSQLCacheKey };
package/dist/index.js CHANGED
@@ -2662,7 +2662,7 @@ const noneMethods = {
2662
2662
  resolve == null ? void 0 : resolve([]);
2663
2663
  else if (type === "one" || type === "value" || type === "void")
2664
2664
  resolve == null ? void 0 : resolve();
2665
- else if (type === "rowCount")
2665
+ else if (type === "valueOrThrow" && this.q.returning)
2666
2666
  resolve == null ? void 0 : resolve(0);
2667
2667
  else
2668
2668
  reject == null ? void 0 : reject(new NotFoundError(this));
@@ -3406,20 +3406,18 @@ class Transaction {
3406
3406
  sql.text = `BEGIN${options.level ? ` ISOLATION LEVEL ${options.level}` : ""}${options.readOnly !== void 0 ? ` READ ${options.readOnly ? "ONLY" : "WRITE"}` : ""}${options.deferrable !== void 0 ? ` ${options.deferrable ? "" : "NOT "}DEFERRABLE` : ""}`;
3407
3407
  if (log)
3408
3408
  logData = log.beforeQuery(sql);
3409
- try {
3410
- const result = await this.q.adapter.transaction(sql, callback);
3411
- if (log)
3412
- log.afterQuery(commitSql$1, logData);
3413
- await runAfterCommit(
3414
- trx.afterCommit,
3415
- result
3416
- );
3417
- return result;
3418
- } catch (err) {
3409
+ const result = await this.q.adapter.transaction(sql, callback).catch((err) => {
3419
3410
  if (log)
3420
3411
  log.afterQuery(rollbackSql$1, logData);
3421
3412
  throw err;
3422
- }
3413
+ });
3414
+ if (log)
3415
+ log.afterQuery(commitSql$1, logData);
3416
+ await runAfterCommit(
3417
+ trx.afterCommit,
3418
+ result
3419
+ );
3420
+ return result;
3423
3421
  } else {
3424
3422
  try {
3425
3423
  sql.text = `SAVEPOINT "${transactionId}"`;
@@ -3743,7 +3741,6 @@ const queryMethodByReturnType = {
3743
3741
  oneOrThrow: "query",
3744
3742
  value: "arrays",
3745
3743
  valueOrThrow: "arrays",
3746
- rowCount: "arrays",
3747
3744
  void: "arrays"
3748
3745
  };
3749
3746
  class Then {
@@ -4134,6 +4131,12 @@ const handleResult = (q, returnType, result, isSubQuery) => {
4134
4131
  return ((_a = rows[0]) == null ? void 0 : _a[0]) !== void 0 ? parseValue(rows[0][0], parsers) : q.q.notFoundDefault;
4135
4132
  }
4136
4133
  case "valueOrThrow": {
4134
+ if (q.q.returning) {
4135
+ if (q.q.throwOnNotFound && result.rowCount === 0) {
4136
+ throw new NotFoundError(q);
4137
+ }
4138
+ return result.rowCount;
4139
+ }
4137
4140
  const { rows } = result;
4138
4141
  const promise = parseBatch(q, result);
4139
4142
  if (promise) {
@@ -4148,12 +4151,6 @@ const handleResult = (q, returnType, result, isSubQuery) => {
4148
4151
  throw new NotFoundError(q);
4149
4152
  return parseValue(rows[0][0], parsers);
4150
4153
  }
4151
- case "rowCount": {
4152
- if (q.q.throwOnNotFound && result.rowCount === 0) {
4153
- throw new NotFoundError(q);
4154
- }
4155
- return result.rowCount;
4156
- }
4157
4154
  case "void": {
4158
4155
  return;
4159
4156
  }
@@ -4230,14 +4227,14 @@ const filterResult = (q, returnType, queryResult, result, tempColumns, hasAfterH
4230
4227
  return (_a = result[0]) == null ? void 0 : _a[getFirstResultKey(q, queryResult)];
4231
4228
  }
4232
4229
  if (returnType === "valueOrThrow") {
4230
+ if (q.q.returning) {
4231
+ return queryResult.rowCount;
4232
+ }
4233
4233
  const row = result[0];
4234
4234
  if (!row)
4235
4235
  throw new NotFoundError(q);
4236
4236
  return row[getFirstResultKey(q, queryResult)];
4237
4237
  }
4238
- if (returnType === "rowCount") {
4239
- return queryResult.rowCount;
4240
- }
4241
4238
  if (returnType === "pluck") {
4242
4239
  const key = getFirstResultKey(q, queryResult);
4243
4240
  return result.map((row) => row[key]);
@@ -4732,6 +4729,15 @@ const maybeUnNameColumn = (column, isSubQuery) => {
4732
4729
  };
4733
4730
  function _querySelect(q, args) {
4734
4731
  var _a, _b;
4732
+ if (q.q.returning) {
4733
+ q.q.select = q.q.returning = void 0;
4734
+ }
4735
+ const { returnType } = q.q;
4736
+ if (returnType === "valueOrThrow") {
4737
+ q.q.returnType = q.q.returningMany ? "all" : "oneOrThrow";
4738
+ } else if (returnType === "value") {
4739
+ q.q.returnType = q.q.returningMany ? "all" : "one";
4740
+ }
4735
4741
  const len = args.length;
4736
4742
  if (!len) {
4737
4743
  (_b = (_a = q.q).select) != null ? _b : _a.select = [];
@@ -4772,6 +4778,10 @@ class Select {
4772
4778
  selectAll() {
4773
4779
  const q = this.clone();
4774
4780
  q.q.select = ["*"];
4781
+ if (q.q.returning) {
4782
+ q.q.returnType = q.q.returningMany ? "all" : "oneOrThrow";
4783
+ q.q.returning = void 0;
4784
+ }
4775
4785
  return q;
4776
4786
  }
4777
4787
  }
@@ -4811,6 +4821,8 @@ const _getSelectableColumn = (q, arg) => {
4811
4821
  };
4812
4822
  const _get = (query, returnType, arg) => {
4813
4823
  const q = query.q;
4824
+ if (q.returning)
4825
+ q.returning = void 0;
4814
4826
  q.returnType = returnType;
4815
4827
  let type;
4816
4828
  if (typeof arg === "string") {
@@ -5206,7 +5218,7 @@ const pushSubQuerySql = (ctx, query, as, list, quotedAs) => {
5206
5218
  return;
5207
5219
  case "value":
5208
5220
  case "valueOrThrow":
5209
- if (((_a = query.q.expr) == null ? void 0 : _a.result.value) instanceof IntegerBaseColumn) {
5221
+ if (query.q.returning || ((_a = query.q.expr) == null ? void 0 : _a.result.value) instanceof IntegerBaseColumn) {
5210
5222
  sql = "0";
5211
5223
  } else {
5212
5224
  return;
@@ -5217,9 +5229,6 @@ const pushSubQuerySql = (ctx, query, as, list, quotedAs) => {
5217
5229
  case "rows":
5218
5230
  sql = `'[]'::json`;
5219
5231
  break;
5220
- case "rowCount":
5221
- sql = "0";
5222
- break;
5223
5232
  default:
5224
5233
  throw new UnhandledTypeError(query, returnType);
5225
5234
  }
@@ -5236,11 +5245,14 @@ const pushSubQuerySql = (ctx, query, as, list, quotedAs) => {
5236
5245
  case "all":
5237
5246
  case "pluck":
5238
5247
  case "value":
5239
- case "valueOrThrow":
5240
5248
  case "rows":
5241
5249
  sql = `"${query.q.joinedForSelect}".r`;
5242
5250
  break;
5243
- case "rowCount":
5251
+ case "valueOrThrow":
5252
+ if (query.q.returning)
5253
+ return;
5254
+ sql = `"${query.q.joinedForSelect}".r`;
5255
+ break;
5244
5256
  case "void":
5245
5257
  return;
5246
5258
  default:
@@ -5276,12 +5288,11 @@ const pushSubQuerySql = (ctx, query, as, list, quotedAs) => {
5276
5288
  }
5277
5289
  case "value":
5278
5290
  case "valueOrThrow":
5279
- if ((_c = query.q.computeds) == null ? void 0 : _c[as]) {
5291
+ if (!query.q.returning && ((_c = query.q.computeds) == null ? void 0 : _c[as])) {
5280
5292
  query = queryJson(query);
5281
5293
  }
5282
5294
  break;
5283
5295
  case "rows":
5284
- case "rowCount":
5285
5296
  case "void":
5286
5297
  break;
5287
5298
  default:
@@ -6114,7 +6125,7 @@ const makeSQL = (table, options) => {
6114
6125
  };
6115
6126
  function pushLimitSQL(sql, values, q) {
6116
6127
  if (!q.returnsOne) {
6117
- if (queryTypeWithLimitOne[q.returnType]) {
6128
+ if (queryTypeWithLimitOne[q.returnType] && !q.returning) {
6118
6129
  sql.push(`LIMIT 1`);
6119
6130
  } else if (q.limit) {
6120
6131
  sql.push(`LIMIT ${orchidCore.addValue(values, q.limit)}`);
@@ -7537,6 +7548,7 @@ const createSelect = (q) => {
7537
7548
  q.q.select = void 0;
7538
7549
  } else if (!q.q.select) {
7539
7550
  q.q.select = ["*"];
7551
+ q.q.returning = true;
7540
7552
  }
7541
7553
  };
7542
7554
  const processCreateItem = (q, item, rowIndex, ctx, encoders) => {
@@ -7609,7 +7621,11 @@ const insert = (self, {
7609
7621
  columns,
7610
7622
  values
7611
7623
  }, kind, many) => {
7624
+ var _a;
7612
7625
  const { q } = self;
7626
+ if (!((_a = q.select) == null ? void 0 : _a.length)) {
7627
+ q.returning = true;
7628
+ }
7613
7629
  delete q.and;
7614
7630
  delete q.or;
7615
7631
  delete q.scopes;
@@ -7620,8 +7636,11 @@ const insert = (self, {
7620
7636
  q.kind = kind;
7621
7637
  const { select, returnType } = q;
7622
7638
  if (!select) {
7623
- if (returnType !== "void")
7624
- q.returnType = "rowCount";
7639
+ if (returnType !== "void") {
7640
+ q.returnType = "valueOrThrow";
7641
+ if (many)
7642
+ q.returningMany = true;
7643
+ }
7625
7644
  } else if (many) {
7626
7645
  if (returnType === "one" || returnType === "oneOrThrow") {
7627
7646
  q.returnType = "all";
@@ -8281,7 +8300,9 @@ const _queryDelete = (query) => {
8281
8300
  if (q.returnType === "oneOrThrow" || q.returnType === "valueOrThrow") {
8282
8301
  q.throwOnNotFound = true;
8283
8302
  }
8284
- q.returnType = "rowCount";
8303
+ q.returningMany = !q.returnType || q.returnType === "all";
8304
+ q.returnType = "valueOrThrow";
8305
+ q.returning = true;
8285
8306
  }
8286
8307
  throwIfNoWhere(query, "delete");
8287
8308
  throwIfJoinLateral(query, "delete");
@@ -10642,7 +10663,9 @@ const _queryChangeCounter = (self, op, data) => {
10642
10663
  if (q.returnType === "oneOrThrow" || q.returnType === "valueOrThrow") {
10643
10664
  q.throwOnNotFound = true;
10644
10665
  }
10645
- q.returnType = "rowCount";
10666
+ q.returningMany = !q.returnType || q.returnType === "all";
10667
+ q.returnType = "valueOrThrow";
10668
+ q.returning = true;
10646
10669
  }
10647
10670
  let map;
10648
10671
  if (typeof data === "object") {
@@ -10660,7 +10683,9 @@ const update = (self) => {
10660
10683
  const q = self.q;
10661
10684
  q.type = "update";
10662
10685
  if (!q.select) {
10663
- q.returnType = "rowCount";
10686
+ q.returningMany = !q.returnType || q.returnType === "all";
10687
+ q.returnType = "valueOrThrow";
10688
+ q.returning = true;
10664
10689
  }
10665
10690
  throwIfNoWhere(self, "update");
10666
10691
  return self;