pqb 0.38.4 → 0.38.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
@@ -2890,7 +2890,7 @@ interface DecimalColumnData extends ColumnData {
2890
2890
  numericPrecision?: number;
2891
2891
  numericScale?: number;
2892
2892
  }
2893
- declare class DecimalColumn<Schema extends ColumnSchemaConfig> extends ColumnType<Schema, string, ReturnType<Schema['stringSchema']>, OperatorsNumber> {
2893
+ declare class DecimalColumn<Schema extends ColumnSchemaConfig> extends NumberAsStringBaseColumn<Schema> {
2894
2894
  data: DecimalColumnData;
2895
2895
  operators: OperatorsNumber;
2896
2896
  dataType: "numeric";
@@ -3604,6 +3604,7 @@ type GetArg<T extends QueryGetSelf> = GetStringArg<T> | Expression;
3604
3604
  type GetStringArg<T extends PickQueryMeta> = keyof T['meta']['selectable'] & string;
3605
3605
  type GetResult<T extends QueryGetSelf, Arg extends GetArg<T>> = Arg extends string ? SetQueryReturnsValueOrThrow<T, Arg> : Arg extends Expression ? SetQueryReturnsColumnOrThrow<T, Arg['result']['value']> : never;
3606
3606
  type GetResultOptional<T extends QueryGetSelf, Arg extends GetArg<T>> = Arg extends string ? SetQueryReturnsValueOptional<T, Arg> : Arg extends Expression ? SetQueryReturnsColumnOptional<T, Arg['result']['value']> : never;
3607
+ declare const _getSelectableColumn: (q: Query, arg: string) => QueryColumn | undefined;
3607
3608
  declare function _queryGet<T extends QueryGetSelf, Arg extends GetArg<T>>(self: T, arg: Arg): GetResult<T, Arg>;
3608
3609
  declare function _queryGetOptional<T extends QueryGetSelf, Arg extends GetArg<T>>(self: T, arg: Arg): GetResultOptional<T, Arg>;
3609
3610
 
@@ -3612,8 +3613,11 @@ type QueryReturnsAgg<T, C, Op> = SetQueryReturnsColumnOrThrow<T, QueryColumn<C,
3612
3613
  type CountReturn<T> = QueryReturnsAgg<T, number, OperatorsNumber> & {
3613
3614
  isCount: true;
3614
3615
  };
3615
- type NumberColumn = QueryColumn<number, OperatorsNumber>;
3616
+ type NumberColumnSelectable<T extends PickQueryMeta> = {
3617
+ [K in keyof T['meta']['selectable']]: T['meta']['selectable'][K]['column']['type'] extends number | null ? K : T['meta']['selectable'][K]['column'] extends NumberAsStringBaseColumn<ColumnSchemaConfig> ? K : never;
3618
+ }[keyof T['meta']['selectable']] | Expression<QueryColumn<number | null>>;
3616
3619
  type NumberNullable = QueryColumn<number | null, OperatorsNumber>;
3620
+ type NumericReturn<T extends PickQueryMeta, Arg> = Arg extends keyof T['meta']['selectable'] ? SetQueryReturnsColumnOrThrow<T, QueryColumn<T['meta']['selectable'][Arg]['column']['type'] | null, OperatorsNumber>> & OperatorsNumber : Arg extends Expression ? SetQueryReturnsColumnOrThrow<T, QueryColumn<Arg['result']['value']['type'] | null, OperatorsNumber>> & OperatorsNumber : never;
3617
3621
  type NullableNumberReturn<T> = SetQueryReturnsColumnOrThrow<T, NumberNullable> & OperatorsNumber;
3618
3622
  type BooleanQueryColumn = QueryColumn<boolean, OperatorsBoolean>;
3619
3623
  type BooleanNullable = QueryColumn<boolean | null, OperatorsBoolean>;
@@ -3701,7 +3705,7 @@ declare class AggregateMethods {
3701
3705
  * @param arg - numeric column or raw SQL
3702
3706
  * @param options - aggregation options
3703
3707
  */
3704
- min<T extends PickQueryMetaResultRelationsWindows>(this: T, arg: SelectableOrExpressionOfType<T, NumberColumn>, options?: AggregateOptions<T>): NullableNumberReturn<T>;
3708
+ min<T extends PickQueryMetaResultRelationsWindows, Arg extends NumberColumnSelectable<T>>(this: T, arg: Arg, options?: AggregateOptions<T>): NumericReturn<T, Arg>;
3705
3709
  /**
3706
3710
  * Gets the maximum value for the specified numeric column, returns number or `null` if there are no records.
3707
3711
  *
@@ -3723,7 +3727,7 @@ declare class AggregateMethods {
3723
3727
  * @param arg - numeric column or raw SQL
3724
3728
  * @param options - aggregation options
3725
3729
  */
3726
- max<T extends PickQueryMetaResultRelationsWindows>(this: T, arg: SelectableOrExpressionOfType<T, NumberColumn>, options?: AggregateOptions<T>): NullableNumberReturn<T>;
3730
+ max<T extends PickQueryMetaResultRelationsWindows, Arg extends NumberColumnSelectable<T>>(this: T, arg: Arg, options?: AggregateOptions<T>): NumericReturn<T, Arg>;
3727
3731
  /**
3728
3732
  * Retrieve the sum of the values of a given numeric column, returns number or `null` if there are no records.
3729
3733
  *
@@ -3744,7 +3748,7 @@ declare class AggregateMethods {
3744
3748
  * @param arg - numeric column or raw SQL
3745
3749
  * @param options - aggregation options
3746
3750
  */
3747
- sum<T extends PickQueryMetaResultRelationsWindows>(this: T, arg: SelectableOrExpressionOfType<T, NumberColumn>, options?: AggregateOptions<T>): NullableNumberReturn<T>;
3751
+ sum<T extends PickQueryMetaResultRelationsWindows, Arg extends NumberColumnSelectable<T>>(this: T, arg: Arg, options?: AggregateOptions<T>): NumericReturn<T, Arg>;
3748
3752
  /**
3749
3753
  * Retrieve the average value of a numeric column, it returns a number or `null` if there are no records.
3750
3754
  *
@@ -3762,7 +3766,7 @@ declare class AggregateMethods {
3762
3766
  * @param arg - numeric column or raw SQL
3763
3767
  * @param options - aggregation options
3764
3768
  */
3765
- avg<T extends PickQueryMetaResultRelationsWindows>(this: T, arg: SelectableOrExpressionOfType<T, NumberColumn>, options?: AggregateOptions<T>): NullableNumberReturn<T>;
3769
+ avg<T extends PickQueryMetaResultRelationsWindows, Arg extends NumberColumnSelectable<T>>(this: T, arg: Arg, options?: AggregateOptions<T>): NumericReturn<T, Arg>;
3766
3770
  /**
3767
3771
  * Bitwise `and` aggregation, returns `number` or `null` if there are no records.
3768
3772
  *
@@ -3783,7 +3787,7 @@ declare class AggregateMethods {
3783
3787
  * @param arg - numeric column or raw SQL
3784
3788
  * @param options - aggregation options
3785
3789
  */
3786
- bitAnd<T extends PickQueryMetaResultRelationsWindows>(this: T, arg: SelectableOrExpressionOfType<T, NumberColumn>, options?: AggregateOptions<T>): NullableNumberReturn<T>;
3790
+ bitAnd<T extends PickQueryMetaResultRelationsWindows, Arg extends NumberColumnSelectable<T>>(this: T, arg: Arg, options?: AggregateOptions<T>): NumericReturn<T, Arg>;
3787
3791
  /**
3788
3792
  * Bitwise `or` aggregation, returns `number` or `null` if there are no records.
3789
3793
  *
@@ -3801,7 +3805,7 @@ declare class AggregateMethods {
3801
3805
  * @param arg - numeric column or raw SQL
3802
3806
  * @param options - aggregation options
3803
3807
  */
3804
- bitOr<T extends PickQueryMetaResultRelationsWindows>(this: T, arg: SelectableOrExpressionOfType<T, NumberColumn>, options?: AggregateOptions<T>): NullableNumberReturn<T>;
3808
+ bitOr<T extends PickQueryMetaResultRelationsWindows, Arg extends NumberColumnSelectable<T>>(this: T, arg: Arg, options?: AggregateOptions<T>): NumericReturn<T, Arg>;
3805
3809
  /**
3806
3810
  * Aggregate booleans with `and` logic, it returns `boolean` or `null` if there are no records.
3807
3811
  *
@@ -5623,8 +5627,11 @@ type UpdateRelationData<T extends UpdateSelf, Rel extends RelationConfigBase> =
5623
5627
  type UpdateArg<T extends UpdateSelf> = T['meta']['hasWhere'] extends true ? UpdateData<T> : never;
5624
5628
  type UpdateRawArgs<T extends UpdateSelf> = T['meta']['hasWhere'] extends true ? SQLQueryArgs : never;
5625
5629
  type UpdateResult<T extends UpdateSelf> = T['meta']['hasSelect'] extends true ? SetQueryKind<T, 'update'> : SetQueryReturnsRowCount<T, 'update'>;
5626
- type ChangeCountArg<T extends PickQueryShape> = keyof T['shape'] | {
5627
- [K in keyof T['shape']]?: number;
5630
+ type NumericColumns<T extends PickQueryShape> = {
5631
+ [K in keyof T['shape']]: T['shape'][K]['type'] extends number | null ? K : T['shape'][K] extends NumberAsStringBaseColumn<ColumnSchemaConfig> ? K : never;
5632
+ }[keyof T['shape']];
5633
+ type ChangeCountArg<T extends PickQueryShape> = NumericColumns<T> | {
5634
+ [K in NumericColumns<T>]?: T['shape'][K]['type'] extends number | null ? number : string;
5628
5635
  };
5629
5636
  interface UpdateCtx {
5630
5637
  queries?: ((queryResult: QueryResult) => Promise<void>)[];
@@ -8046,4 +8053,4 @@ type CopyResult<T extends PickQueryMeta> = SetQueryKind<T, 'copy'>;
8046
8053
  */
8047
8054
  declare function copyTableData<T extends PickQueryMetaShape>(query: T, arg: CopyArg<T>): CopyResult<T>;
8048
8055
 
8049
- export { Adapter, AdapterConfig, AdapterOptions, AddQueryDefaults, AfterHook, AggregateMethods, AggregateOptions, AliasOrTable, ArrayColumn, ArrayColumnValue, ArrayData, AsMethods, AsQueryArg, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BooleanQueryColumn, BoxColumn, ByteaColumn, 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, GetArg, GetColumnInfo, GetQueryResult, GetResult, GetResultOptional, GetStringArg, GroupArgs, HandleResult, Having, HavingItem, HookAction, HookSelectArg, IdentityColumn, InetColumn, InsertQueryData, IntegerBaseColumn, IntegerColumn, IntervalColumn, IsolationLevel, JSONColumn, JSONTextColumn, Join, JoinArgToQuery, JoinArgs, JoinCallback, JoinFirstArg, JoinItem, JoinItemArgs, JoinLateralItem, JoinLateralResult, JoinOverrides, JoinQueryBuilder, JoinQueryMethod, JoinResult, JoinedParsers, JoinedShapes, JsonMethods, LimitedTextBaseColumn, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MapTableScopesOption, MergeQuery, MergeQueryMethods, MoneyColumn, MoreThanOneRowError, NoPrimaryKeyOption, NotFoundError, NumberAsStringBaseColumn, NumberBaseColumn, NumberColumnData, 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, 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, _initQueryBuilder, _queryAfterSaveCommit, _queryAll, _queryAs, _queryChangeCounter, _queryCreate, _queryCreateFrom, _queryCreateMany, _queryCreateManyFrom, _queryCreateManyRaw, _queryCreateRaw, _queryDefaults, _queryDelete, _queryExec, _queryFindBy, _queryFindByOptional, _queryGet, _queryGetOptional, _queryHookAfterCreate, _queryHookAfterCreateCommit, _queryHookAfterDelete, _queryHookAfterDeleteCommit, _queryHookAfterQuery, _queryHookAfterSave, _queryHookAfterUpdate, _queryHookAfterUpdateCommit, _queryHookBeforeCreate, _queryHookBeforeDelete, _queryHookBeforeQuery, _queryHookBeforeSave, _queryHookBeforeUpdate, _queryInsert, _queryInsertFrom, _queryInsertMany, _queryInsertManyFrom, _queryInsertManyRaw, _queryInsertRaw, _queryJoinOn, _queryJoinOnJsonPathEquals, _queryJoinOrOn, _queryOr, _queryOrNot, _queryRows, _querySelect, _queryTake, _queryTakeOptional, _queryUnion, _queryUpdate, _queryUpdateOrThrow, _queryUpdateRaw, _queryWhere, _queryWhereExists, _queryWhereIn, _queryWhereNot, _queryWhereNotOneOf, _queryWhereNotSql, _queryWhereOneOf, _queryWhereSql, addParserForRawExpression, addParserForSelectItem, addQueryOn, anyShape, applyComputedColumns, checkIfASimpleQuery, cloneQuery, cloneQueryBaseUnscoped, columnCheckToCode, columnCode, columnForeignKeysToCode, columnIndexesToCode, columnsShapeToCode, commitSql, constraintInnerToCode, constraintToCode, copyTableData, countSelect, createDb, defaultSchemaConfig, 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, primaryKeyInnerToCode, processComputedBatches, processComputedResult, processSelectArg, pushLimitSQL, pushQueryArray, pushQueryOn, pushQueryOnForOuter, pushQueryOrOn, pushQueryValue, pushTableDataCode, queryFrom, queryFromSql, queryJson, queryMethodByReturnType, queryTypeWithLimitOne, queryWrap, quote, quoteString, raw, referencesArgsToCode, resolveSubQueryCallback, rollbackSql, saveSearchAlias, setParserForSelectedString, setQueryObjectValue, setQueryOperators, simplifyColumnDefault, sqlFn, sqlQueryArgsToExpression, tableDataMethods, templateLiteralToSQL, testTransaction, throwIfNoWhere, toSQL, toSQLCacheKey };
8056
+ export { Adapter, AdapterConfig, AdapterOptions, AddQueryDefaults, AfterHook, 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, GetArg, GetColumnInfo, GetQueryResult, GetResult, GetResultOptional, GetStringArg, GroupArgs, HandleResult, Having, HavingItem, HookAction, HookSelectArg, IdentityColumn, InetColumn, InsertQueryData, IntegerBaseColumn, IntegerColumn, IntervalColumn, IsolationLevel, JSONColumn, JSONTextColumn, Join, JoinArgToQuery, JoinArgs, JoinCallback, JoinFirstArg, JoinItem, JoinItemArgs, JoinLateralItem, JoinLateralResult, JoinOverrides, JoinQueryBuilder, JoinQueryMethod, JoinResult, JoinedParsers, JoinedShapes, JsonMethods, LimitedTextBaseColumn, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MapTableScopesOption, MergeQuery, MergeQueryMethods, MoneyColumn, MoreThanOneRowError, NoPrimaryKeyOption, 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, 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, _getSelectableColumn, _initQueryBuilder, _queryAfterSaveCommit, _queryAll, _queryAs, _queryChangeCounter, _queryCreate, _queryCreateFrom, _queryCreateMany, _queryCreateManyFrom, _queryCreateManyRaw, _queryCreateRaw, _queryDefaults, _queryDelete, _queryExec, _queryFindBy, _queryFindByOptional, _queryGet, _queryGetOptional, _queryHookAfterCreate, _queryHookAfterCreateCommit, _queryHookAfterDelete, _queryHookAfterDeleteCommit, _queryHookAfterQuery, _queryHookAfterSave, _queryHookAfterUpdate, _queryHookAfterUpdateCommit, _queryHookBeforeCreate, _queryHookBeforeDelete, _queryHookBeforeQuery, _queryHookBeforeSave, _queryHookBeforeUpdate, _queryInsert, _queryInsertFrom, _queryInsertMany, _queryInsertManyFrom, _queryInsertManyRaw, _queryInsertRaw, _queryJoinOn, _queryJoinOnJsonPathEquals, _queryJoinOrOn, _queryOr, _queryOrNot, _queryRows, _querySelect, _queryTake, _queryTakeOptional, _queryUnion, _queryUpdate, _queryUpdateOrThrow, _queryUpdateRaw, _queryWhere, _queryWhereExists, _queryWhereIn, _queryWhereNot, _queryWhereNotOneOf, _queryWhereNotSql, _queryWhereOneOf, _queryWhereSql, addParserForRawExpression, addParserForSelectItem, addQueryOn, anyShape, applyComputedColumns, checkIfASimpleQuery, cloneQuery, cloneQueryBaseUnscoped, columnCheckToCode, columnCode, columnForeignKeysToCode, columnIndexesToCode, columnsShapeToCode, commitSql, constraintInnerToCode, constraintToCode, copyTableData, countSelect, createDb, defaultSchemaConfig, 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, primaryKeyInnerToCode, processComputedBatches, processComputedResult, processSelectArg, pushLimitSQL, pushQueryArray, pushQueryOn, pushQueryOnForOuter, pushQueryOrOn, pushQueryValue, pushTableDataCode, queryFrom, queryFromSql, queryJson, queryMethodByReturnType, queryTypeWithLimitOne, queryWrap, quote, quoteString, raw, referencesArgsToCode, resolveSubQueryCallback, rollbackSql, saveSearchAlias, setParserForSelectedString, setQueryObjectValue, setQueryOperators, simplifyColumnDefault, sqlFn, sqlQueryArgsToExpression, tableDataMethods, templateLiteralToSQL, testTransaction, throwIfNoWhere, toSQL, toSQLCacheKey };
package/dist/index.js CHANGED
@@ -1097,9 +1097,9 @@ class NumberAsStringBaseColumn extends ColumnType {
1097
1097
  this.operators = Operators.number;
1098
1098
  }
1099
1099
  }
1100
- class DecimalColumn extends ColumnType {
1100
+ class DecimalColumn extends NumberAsStringBaseColumn {
1101
1101
  constructor(schema, numericPrecision, numericScale) {
1102
- super(schema, schema.stringSchema());
1102
+ super(schema);
1103
1103
  this.operators = Operators.number;
1104
1104
  this.dataType = "numeric";
1105
1105
  this.data.numericPrecision = numericPrecision;
@@ -3278,18 +3278,7 @@ class Transaction {
3278
3278
  const result = await this.q.adapter.transaction(sql, callback);
3279
3279
  if (log)
3280
3280
  log.afterQuery(commitSql$1, logData);
3281
- const { afterCommit } = trx;
3282
- if (afterCommit) {
3283
- const promises = [];
3284
- for (let i = 0, len = afterCommit.length; i < len; i += 2) {
3285
- const q = afterCommit[i];
3286
- const result2 = afterCommit[i + 1];
3287
- for (const fn2 of afterCommit[i + 2]) {
3288
- promises.push(fn2(result2, q));
3289
- }
3290
- }
3291
- await Promise.all(promises);
3292
- }
3281
+ await runAfterCommit(trx.afterCommit);
3293
3282
  return result;
3294
3283
  } catch (err) {
3295
3284
  if (log)
@@ -3321,6 +3310,11 @@ class Transaction {
3321
3310
  await adapter.query(sql);
3322
3311
  if (log)
3323
3312
  log.afterQuery(sql, logData);
3313
+ if (transactionId === trx.testTransactionCount) {
3314
+ await runAfterCommit(
3315
+ trx.afterCommit
3316
+ );
3317
+ }
3324
3318
  return result;
3325
3319
  } finally {
3326
3320
  trx.transactionId = transactionId - 1;
@@ -3328,6 +3322,19 @@ class Transaction {
3328
3322
  }
3329
3323
  }
3330
3324
  }
3325
+ const runAfterCommit = async (afterCommit) => {
3326
+ if (afterCommit) {
3327
+ const promises = [];
3328
+ for (let i = 0, len = afterCommit.length; i < len; i += 3) {
3329
+ const result = afterCommit[i];
3330
+ const q = afterCommit[i + 1];
3331
+ for (const fn of afterCommit[i + 2]) {
3332
+ promises.push(fn(result, q));
3333
+ }
3334
+ }
3335
+ await Promise.all(promises);
3336
+ }
3337
+ };
3331
3338
 
3332
3339
  const applyBatchTransforms = (query, batches) => {
3333
3340
  if (query.transform) {
@@ -4564,25 +4571,29 @@ class SelectItemExpression extends orchidCore.Expression {
4564
4571
  }
4565
4572
  }
4566
4573
 
4567
- const _get = (query, returnType, arg) => {
4574
+ const _getSelectableColumn = (q, arg) => {
4568
4575
  var _a, _b;
4576
+ let type = q.q.shape[arg];
4577
+ if (!type) {
4578
+ const index = arg.indexOf(".");
4579
+ if (index !== -1) {
4580
+ const table = arg.slice(0, index);
4581
+ const column = arg.slice(index + 1);
4582
+ if (table === (q.q.as || q.table)) {
4583
+ type = q.shape[column];
4584
+ } else {
4585
+ type = (_b = (_a = q.q.joinedShapes) == null ? void 0 : _a[table]) == null ? void 0 : _b[column];
4586
+ }
4587
+ }
4588
+ }
4589
+ return type;
4590
+ };
4591
+ const _get = (query, returnType, arg) => {
4569
4592
  const q = query.q;
4570
4593
  q.returnType = returnType;
4571
4594
  let type;
4572
4595
  if (typeof arg === "string") {
4573
- type = q.shape[arg];
4574
- if (!type) {
4575
- const index = arg.indexOf(".");
4576
- if (index !== -1) {
4577
- const table = arg.slice(0, index);
4578
- const column = arg.slice(index + 1);
4579
- if (table === (q.as || query.table)) {
4580
- type = q.shape[column];
4581
- } else {
4582
- type = (_b = (_a = q.joinedShapes) == null ? void 0 : _a[table]) == null ? void 0 : _b[column];
4583
- }
4584
- }
4585
- }
4596
+ type = _getSelectableColumn(query, arg);
4586
4597
  q.getColumn = type;
4587
4598
  const selected = setParserForSelectedString(
4588
4599
  query,
@@ -6545,6 +6556,13 @@ const nullableInt = new IntegerColumn(defaultSchemaConfig);
6545
6556
  nullableInt.parseItem = nullableInt.parseFn = (input) => input === null ? null : parseInt(input);
6546
6557
  const nullableFloat = new RealColumn(defaultSchemaConfig);
6547
6558
  nullableFloat.parseItem = nullableFloat.parseFn = (input) => input === null ? null : parseFloat(input);
6559
+ const stringAsNumber = new NumberAsStringBaseColumn(
6560
+ defaultSchemaConfig
6561
+ );
6562
+ const numericResultColumn = (q, arg) => {
6563
+ const type = typeof arg === "string" ? _getSelectableColumn(q, arg) : arg.result.value;
6564
+ return type instanceof NumberBaseColumn ? nullableFloat : stringAsNumber;
6565
+ };
6548
6566
  class AggregateMethods {
6549
6567
  /**
6550
6568
  * Use `exists()` to check if there is at least one record-matching condition.
@@ -6615,7 +6633,7 @@ class AggregateMethods {
6615
6633
  min(arg, options) {
6616
6634
  return makeFnExpression(
6617
6635
  this,
6618
- nullableFloat,
6636
+ numericResultColumn(this, arg),
6619
6637
  "min",
6620
6638
  [arg],
6621
6639
  options
@@ -6645,7 +6663,7 @@ class AggregateMethods {
6645
6663
  max(arg, options) {
6646
6664
  return makeFnExpression(
6647
6665
  this,
6648
- nullableFloat,
6666
+ numericResultColumn(this, arg),
6649
6667
  "max",
6650
6668
  [arg],
6651
6669
  options
@@ -6674,7 +6692,7 @@ class AggregateMethods {
6674
6692
  sum(arg, options) {
6675
6693
  return makeFnExpression(
6676
6694
  this,
6677
- nullableFloat,
6695
+ numericResultColumn(this, arg),
6678
6696
  "sum",
6679
6697
  [arg],
6680
6698
  options
@@ -6700,7 +6718,7 @@ class AggregateMethods {
6700
6718
  avg(arg, options) {
6701
6719
  return makeFnExpression(
6702
6720
  this,
6703
- nullableFloat,
6721
+ numericResultColumn(this, arg),
6704
6722
  "avg",
6705
6723
  [arg],
6706
6724
  options
@@ -6729,7 +6747,7 @@ class AggregateMethods {
6729
6747
  bitAnd(arg, options) {
6730
6748
  return makeFnExpression(
6731
6749
  this,
6732
- nullableFloat,
6750
+ numericResultColumn(this, arg),
6733
6751
  "bit_and",
6734
6752
  [arg],
6735
6753
  options
@@ -6755,7 +6773,7 @@ class AggregateMethods {
6755
6773
  bitOr(arg, options) {
6756
6774
  return makeFnExpression(
6757
6775
  this,
6758
- nullableFloat,
6776
+ numericResultColumn(this, arg),
6759
6777
  "bit_or",
6760
6778
  [arg],
6761
6779
  options
@@ -12704,6 +12722,7 @@ const testTransaction = {
12704
12722
  adapter.query = t.query.bind(t);
12705
12723
  adapter.arrays = t.arrays.bind(t);
12706
12724
  adapter.transaction = t.transaction.bind(t);
12725
+ trx.testTransactionCount = trx.testTransactionCount ? trx.testTransactionCount + 1 : 1;
12707
12726
  }
12708
12727
  data.reject = rej;
12709
12728
  });
@@ -12712,6 +12731,10 @@ const testTransaction = {
12712
12731
  throw err;
12713
12732
  }
12714
12733
  }).finally(() => {
12734
+ const trx = db.internal.transactionStorage.getStore();
12735
+ if (trx == null ? void 0 : trx.testTransactionCount) {
12736
+ trx.testTransactionCount--;
12737
+ }
12715
12738
  db.internal.transactionStorage.getStore = getStore;
12716
12739
  });
12717
12740
  });
@@ -12891,6 +12914,7 @@ exports.VirtualColumn = VirtualColumn;
12891
12914
  exports.Where = Where;
12892
12915
  exports.WithMethods = WithMethods;
12893
12916
  exports.XMLColumn = XMLColumn;
12917
+ exports._getSelectableColumn = _getSelectableColumn;
12894
12918
  exports._initQueryBuilder = _initQueryBuilder;
12895
12919
  exports._queryAfterSaveCommit = _queryAfterSaveCommit;
12896
12920
  exports._queryAll = _queryAll;