pqb 0.41.4 → 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));
@@ -3741,7 +3741,6 @@ const queryMethodByReturnType = {
3741
3741
  oneOrThrow: "query",
3742
3742
  value: "arrays",
3743
3743
  valueOrThrow: "arrays",
3744
- rowCount: "arrays",
3745
3744
  void: "arrays"
3746
3745
  };
3747
3746
  class Then {
@@ -4132,6 +4131,12 @@ const handleResult = (q, returnType, result, isSubQuery) => {
4132
4131
  return ((_a = rows[0]) == null ? void 0 : _a[0]) !== void 0 ? parseValue(rows[0][0], parsers) : q.q.notFoundDefault;
4133
4132
  }
4134
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
+ }
4135
4140
  const { rows } = result;
4136
4141
  const promise = parseBatch(q, result);
4137
4142
  if (promise) {
@@ -4146,12 +4151,6 @@ const handleResult = (q, returnType, result, isSubQuery) => {
4146
4151
  throw new NotFoundError(q);
4147
4152
  return parseValue(rows[0][0], parsers);
4148
4153
  }
4149
- case "rowCount": {
4150
- if (q.q.throwOnNotFound && result.rowCount === 0) {
4151
- throw new NotFoundError(q);
4152
- }
4153
- return result.rowCount;
4154
- }
4155
4154
  case "void": {
4156
4155
  return;
4157
4156
  }
@@ -4228,14 +4227,14 @@ const filterResult = (q, returnType, queryResult, result, tempColumns, hasAfterH
4228
4227
  return (_a = result[0]) == null ? void 0 : _a[getFirstResultKey(q, queryResult)];
4229
4228
  }
4230
4229
  if (returnType === "valueOrThrow") {
4230
+ if (q.q.returning) {
4231
+ return queryResult.rowCount;
4232
+ }
4231
4233
  const row = result[0];
4232
4234
  if (!row)
4233
4235
  throw new NotFoundError(q);
4234
4236
  return row[getFirstResultKey(q, queryResult)];
4235
4237
  }
4236
- if (returnType === "rowCount") {
4237
- return queryResult.rowCount;
4238
- }
4239
4238
  if (returnType === "pluck") {
4240
4239
  const key = getFirstResultKey(q, queryResult);
4241
4240
  return result.map((row) => row[key]);
@@ -4730,6 +4729,15 @@ const maybeUnNameColumn = (column, isSubQuery) => {
4730
4729
  };
4731
4730
  function _querySelect(q, args) {
4732
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
+ }
4733
4741
  const len = args.length;
4734
4742
  if (!len) {
4735
4743
  (_b = (_a = q.q).select) != null ? _b : _a.select = [];
@@ -4770,6 +4778,10 @@ class Select {
4770
4778
  selectAll() {
4771
4779
  const q = this.clone();
4772
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
+ }
4773
4785
  return q;
4774
4786
  }
4775
4787
  }
@@ -4809,6 +4821,8 @@ const _getSelectableColumn = (q, arg) => {
4809
4821
  };
4810
4822
  const _get = (query, returnType, arg) => {
4811
4823
  const q = query.q;
4824
+ if (q.returning)
4825
+ q.returning = void 0;
4812
4826
  q.returnType = returnType;
4813
4827
  let type;
4814
4828
  if (typeof arg === "string") {
@@ -5204,7 +5218,7 @@ const pushSubQuerySql = (ctx, query, as, list, quotedAs) => {
5204
5218
  return;
5205
5219
  case "value":
5206
5220
  case "valueOrThrow":
5207
- 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) {
5208
5222
  sql = "0";
5209
5223
  } else {
5210
5224
  return;
@@ -5215,9 +5229,6 @@ const pushSubQuerySql = (ctx, query, as, list, quotedAs) => {
5215
5229
  case "rows":
5216
5230
  sql = `'[]'::json`;
5217
5231
  break;
5218
- case "rowCount":
5219
- sql = "0";
5220
- break;
5221
5232
  default:
5222
5233
  throw new UnhandledTypeError(query, returnType);
5223
5234
  }
@@ -5234,11 +5245,14 @@ const pushSubQuerySql = (ctx, query, as, list, quotedAs) => {
5234
5245
  case "all":
5235
5246
  case "pluck":
5236
5247
  case "value":
5237
- case "valueOrThrow":
5238
5248
  case "rows":
5239
5249
  sql = `"${query.q.joinedForSelect}".r`;
5240
5250
  break;
5241
- case "rowCount":
5251
+ case "valueOrThrow":
5252
+ if (query.q.returning)
5253
+ return;
5254
+ sql = `"${query.q.joinedForSelect}".r`;
5255
+ break;
5242
5256
  case "void":
5243
5257
  return;
5244
5258
  default:
@@ -5274,12 +5288,11 @@ const pushSubQuerySql = (ctx, query, as, list, quotedAs) => {
5274
5288
  }
5275
5289
  case "value":
5276
5290
  case "valueOrThrow":
5277
- if ((_c = query.q.computeds) == null ? void 0 : _c[as]) {
5291
+ if (!query.q.returning && ((_c = query.q.computeds) == null ? void 0 : _c[as])) {
5278
5292
  query = queryJson(query);
5279
5293
  }
5280
5294
  break;
5281
5295
  case "rows":
5282
- case "rowCount":
5283
5296
  case "void":
5284
5297
  break;
5285
5298
  default:
@@ -6112,7 +6125,7 @@ const makeSQL = (table, options) => {
6112
6125
  };
6113
6126
  function pushLimitSQL(sql, values, q) {
6114
6127
  if (!q.returnsOne) {
6115
- if (queryTypeWithLimitOne[q.returnType]) {
6128
+ if (queryTypeWithLimitOne[q.returnType] && !q.returning) {
6116
6129
  sql.push(`LIMIT 1`);
6117
6130
  } else if (q.limit) {
6118
6131
  sql.push(`LIMIT ${orchidCore.addValue(values, q.limit)}`);
@@ -7535,6 +7548,7 @@ const createSelect = (q) => {
7535
7548
  q.q.select = void 0;
7536
7549
  } else if (!q.q.select) {
7537
7550
  q.q.select = ["*"];
7551
+ q.q.returning = true;
7538
7552
  }
7539
7553
  };
7540
7554
  const processCreateItem = (q, item, rowIndex, ctx, encoders) => {
@@ -7607,7 +7621,11 @@ const insert = (self, {
7607
7621
  columns,
7608
7622
  values
7609
7623
  }, kind, many) => {
7624
+ var _a;
7610
7625
  const { q } = self;
7626
+ if (!((_a = q.select) == null ? void 0 : _a.length)) {
7627
+ q.returning = true;
7628
+ }
7611
7629
  delete q.and;
7612
7630
  delete q.or;
7613
7631
  delete q.scopes;
@@ -7618,8 +7636,11 @@ const insert = (self, {
7618
7636
  q.kind = kind;
7619
7637
  const { select, returnType } = q;
7620
7638
  if (!select) {
7621
- if (returnType !== "void")
7622
- q.returnType = "rowCount";
7639
+ if (returnType !== "void") {
7640
+ q.returnType = "valueOrThrow";
7641
+ if (many)
7642
+ q.returningMany = true;
7643
+ }
7623
7644
  } else if (many) {
7624
7645
  if (returnType === "one" || returnType === "oneOrThrow") {
7625
7646
  q.returnType = "all";
@@ -8279,7 +8300,9 @@ const _queryDelete = (query) => {
8279
8300
  if (q.returnType === "oneOrThrow" || q.returnType === "valueOrThrow") {
8280
8301
  q.throwOnNotFound = true;
8281
8302
  }
8282
- q.returnType = "rowCount";
8303
+ q.returningMany = !q.returnType || q.returnType === "all";
8304
+ q.returnType = "valueOrThrow";
8305
+ q.returning = true;
8283
8306
  }
8284
8307
  throwIfNoWhere(query, "delete");
8285
8308
  throwIfJoinLateral(query, "delete");
@@ -10640,7 +10663,9 @@ const _queryChangeCounter = (self, op, data) => {
10640
10663
  if (q.returnType === "oneOrThrow" || q.returnType === "valueOrThrow") {
10641
10664
  q.throwOnNotFound = true;
10642
10665
  }
10643
- q.returnType = "rowCount";
10666
+ q.returningMany = !q.returnType || q.returnType === "all";
10667
+ q.returnType = "valueOrThrow";
10668
+ q.returning = true;
10644
10669
  }
10645
10670
  let map;
10646
10671
  if (typeof data === "object") {
@@ -10658,7 +10683,9 @@ const update = (self) => {
10658
10683
  const q = self.q;
10659
10684
  q.type = "update";
10660
10685
  if (!q.select) {
10661
- q.returnType = "rowCount";
10686
+ q.returningMany = !q.returnType || q.returnType === "all";
10687
+ q.returnType = "valueOrThrow";
10688
+ q.returning = true;
10662
10689
  }
10663
10690
  throwIfNoWhere(self, "update");
10664
10691
  return self;