pqb 0.9.16 → 0.9.17

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.
@@ -0,0 +1,71 @@
1
+
2
+ > pqb@0.9.16 check /home/romeo/dev/my/orchid-orm/packages/qb/pqb
3
+ > jest
4
+
5
+ PASS src/columns/columnType.test.ts
6
+ PASS src/columns/string.test.ts
7
+ PASS src/columns/timestamps.test.ts
8
+ PASS src/columns/operators.test.ts
9
+ PASS src/queryMethods/get.test.ts
10
+ PASS src/errors.test.ts
11
+ PASS src/queryMethods/delete.test.ts
12
+ PASS src/columns/dateTime.test.ts
13
+ PASS src/queryMethods/queryMethods.test.ts
14
+ PASS src/queryMethods/callbacks.test.ts
15
+ PASS src/queryMethods/aggregate.test.ts
16
+ PASS src/queryMethods/join.test.ts
17
+ PASS src/queryMethods/json.test.ts
18
+ PASS src/queryMethods/select.test.ts
19
+ PASS src/queryMethods/create.test.ts
20
+ PASS src/queryMethods/then.test.ts
21
+ PASS src/queryMethods/with.test.ts
22
+ PASS src/queryMethods/log.test.ts
23
+ PASS src/queryMethods/where.test.ts
24
+ PASS src/queryMethods/update.test.ts
25
+ PASS src/db.test.ts
26
+ PASS src/queryMethods/from.test.ts
27
+ PASS src/queryMethods/window.test.ts
28
+ PASS src/queryMethods/upsertOrCreate.test.ts
29
+ PASS src/queryMethods/raw.test.ts
30
+ PASS src/columns/array.test.ts
31
+ PASS src/queryMethods/merge.test.ts
32
+ PASS src/queryMethods/for.test.ts
33
+ PASS src/queryMethods/copy.test.ts
34
+ PASS src/queryMethods/columnInfo.test.ts
35
+ PASS src/utils.test.ts
36
+ PASS src/columns/enum.test.ts
37
+ PASS src/queryMethods/having.test.ts
38
+ PASS src/columns/boolean.test.ts
39
+ PASS src/queryMethods/clear.test.ts
40
+ PASS src/adapter.test.ts
41
+ PASS src/queryMethods/union.test.ts
42
+ PASS src/columns/number.test.ts
43
+ PASS src/columns/json/scalarTypes.test.ts
44
+ PASS src/queryMethods/transaction.test.ts
45
+ PASS src/columns/json/typeBase.test.ts
46
+ PASS src/columns/json/nativeEnum.test.ts
47
+ PASS src/columns/json/nullish.test.ts
48
+ PASS src/columns/json/tuple.test.ts
49
+ PASS src/columns/json/record.test.ts
50
+ PASS src/columns/json/lazy.test.ts
51
+ PASS src/columns/json/optional.test.ts
52
+ PASS src/columns/json.test.ts
53
+ PASS src/columns/code.test.ts
54
+ PASS src/columns/json/array.test.ts
55
+ PASS src/columns/json/union.test.ts
56
+ PASS src/columns/json/nullable.test.ts
57
+ PASS src/columns/json/object.test.ts
58
+ PASS src/columns/json/enum.test.ts
59
+ PASS src/columns/json/set.test.ts
60
+ PASS src/columns/json/intersection.test.ts
61
+ PASS src/columns/json/discriminatedUnion.test.ts
62
+ PASS src/columns/json/instanceOf.test.ts
63
+ PASS src/columns/json/map.test.ts
64
+ PASS src/quote.test.ts
65
+ PASS src/columns/json/literal.test.ts
66
+
67
+ Test Suites: 61 passed, 61 total
68
+ Tests: 1007 passed, 1007 total
69
+ Snapshots: 0 total
70
+ Time: 10.428 s
71
+ Ran all test suites.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # pqb
2
2
 
3
+ ## 0.9.17
4
+
5
+ ### Patch Changes
6
+
7
+ - Fix sub query columns parsing
8
+
3
9
  ## 0.9.16
4
10
 
5
11
  ### Patch Changes
package/dist/index.d.ts CHANGED
@@ -1597,6 +1597,7 @@ declare type DefaultSelectColumns<S extends ColumnsShape> = {
1597
1597
  declare type QueryReturnType = 'all' | 'one' | 'oneOrThrow' | 'rows' | 'pluck' | 'value' | 'valueOrThrow' | 'rowCount' | 'void';
1598
1598
  declare const queryTypeWithLimitOne: Record<QueryReturnType, true | undefined>;
1599
1599
  declare const isQueryReturnsAll: (q: Query) => boolean;
1600
+ declare const isQueryReturnsMultipleRows: (q: Query) => true | undefined;
1600
1601
  declare type JoinedTablesBase = Record<string, Pick<Query, 'result' | 'tableAlias' | 'table'>>;
1601
1602
  declare type QueryReturnsAll<T extends QueryReturnType> = (QueryReturnType extends T ? 'all' : T) extends 'all' ? true : false;
1602
1603
  declare type QueryThen<ReturnType extends QueryReturnType, Result extends ColumnsShape> = QueryReturnsAll<ReturnType> extends true ? ThenResult<ColumnShapeOutput<Result>[]> : ReturnType extends 'one' ? ThenResult<ColumnShapeOutput<Result> | undefined> : ReturnType extends 'oneOrThrow' ? ThenResult<ColumnShapeOutput<Result>> : ReturnType extends 'value' ? Result extends {
@@ -4471,4 +4472,4 @@ declare const setQueryObjectValue: <T extends {
4471
4472
  query: QueryData;
4472
4473
  }>(q: T, object: string, key: string, value: unknown) => T;
4473
4474
 
4474
- export { Adapter, AdapterOptions, AddQueryJoinedTable, AddQuerySelect, AddQueryWith, AfterCallback, Aggregate, Aggregate1ArgumentTypes, AggregateArg, AggregateItem, AggregateItemArg, AggregateItemOptions, AggregateOptions, AliasOrTable, AnyColumnType, AnyColumnTypeCreator, ArrayCardinality, ArrayColumn, ArrayData, ArrayOfColumnsObjects, AssertArray, BaseNumberData, BaseOperators, BaseRelation, BaseStringData, BeforeCallback, BelongsToRelation, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BooleanExpression, BoxColumn, ByteaColumn, CharColumn, CidrColumn, CircleColumn, Clear, ClearStatement, CoalesceString, Code, ColumnChain, ColumnData, ColumnFromDbParams, ColumnInfo, ColumnInfoMethods, ColumnInfoQueryData, ColumnInput, ColumnNameOfTable, ColumnOperators, ColumnOutput, ColumnParser, ColumnShapeInput, ColumnShapeOutput, ColumnType, ColumnTypes, ColumnTypesBase, ColumnsObject, ColumnsParsers, ColumnsShape, CommonQueryData, CopyOptions, CopyQueryData, Create, CreateCtx, CreateData, CreateMethodsNames, DateBaseColumn, DateColumn, DateColumnData, DateTimeBaseClass, DateTimeWithTimeZoneBaseClass, Db, DbOptions, DbResult, DbTableOptions, DecimalBaseColumn, DecimalColumn, DeepPartial, DefaultColumnTypes, DefaultSelectColumns, Delete, DeleteMethodsNames, DeleteQueryData, DoublePrecisionColumn, DropMode, EMPTY_OBJECT, EmptyObject, EnumColumn, EnumLike, Except, Expression, ExpressionOfType, ExpressionOutput, FilterTuple, For, ForeignKey, ForeignKeyOptions, ForeignKeyTable, ForeignKeyTableWithColumns, From, GetArg, HasAndBelongsToManyRelation, HasManyRelation, HasOneRelation, Having, HavingArg, HavingItem, IndexColumnOptions, IndexOptions, InetColumn, InsertQueryData, IntegerBaseColumn, IntegerColumn, IntervalColumn, IsEqual, JSONAny, JSONArray, JSONBigInt, JSONBoolean, JSONColumn, JSONDate, JSONDiscriminatedObject, JSONDiscriminatedUnion, JSONEnum, JSONInstanceOf, JSONIntersection, JSONLazy, JSONLiteral, JSONMap, JSONNaN, JSONNativeEnum, JSONNever, JSONNotNullable, JSONNotNullish, JSONNull, JSONNullable, JSONNullish, JSONNumber, JSONObject, JSONObjectShape, JSONOptional, JSONRecord, JSONRecordKeyType, JSONRequired, JSONSet, JSONString, JSONTextColumn, JSONTuple, JSONTupleItems, JSONType, JSONTypeAny, JSONTypeData, JSONTypes, JSONUndefined, JSONUnion, JSONUnknown, JSONVoid, Join, JoinArgs, JoinCallback, JoinCallbackArg, JoinItem, JoinedTablesBase, Json, JsonItem, LimitedTextBaseColumn, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MaybeArray, Merge, MergeQuery, MergeQueryMethods, MoneyColumn, MoreThanOneRowError, NoPrimaryKeyOption, NotFoundError, NullableColumn, NumberAsStringBaseColumn, NumberBaseColumn, NumberColumn, NumberColumnData, NumberExpression, OnConflictItem, OnConflictMergeUpdate, OnConflictQueryBuilder, OnQueryBuilder, Operator, Operators, OrderArg, OrderItem, OutputTypeOfTuple, OutputTypeOfTupleWithRest, OwnTypeProps, PathColumn, PluckResultColumnType, PointColumn, PolygonColumn, PormError, PormInternalError, Primitive, Query, QueryArraysResult, QueryBase, QueryCallbacks, QueryData, QueryError, QueryErrorName, QueryGet, QueryInput, QueryLog, QueryLogObject, QueryLogOptions, QueryLogger, QueryMethods, QueryResult, QueryResultRow, QueryReturnType, QueryReturnsAll, QuerySelectAll, QueryThen, QueryUpsertOrCreate, QueryWithTable, RawExpression, RawMethods, RealColumn, Relation, RelationQuery, RelationQueryBase, RelationQueryData, RelationsBase, Select, SelectAgg, SelectArg, SelectFunctionItem, SelectItem, SelectQueryData, Selectable, SelectableBase, SerialColumn, SetOptional, SetQueryJoinedTables, SetQueryReturns, SetQueryReturnsAll, SetQueryReturnsColumnInfo, SetQueryReturnsOne, SetQueryReturnsOneOptional, SetQueryReturnsPluck, SetQueryReturnsRowCount, SetQueryReturnsRows, SetQueryReturnsValue, SetQueryReturnsValueOptional, SetQueryReturnsVoid, SetQueryTableAlias, SetQueryWindows, SetQueryWith, SimpleSpread, SingleColumnIndexOptions, SinglePrimaryKey, SmallIntColumn, SmallSerialColumn, SomeIsTrue, SortDir, Spread, Sql, StringColumn, StringExpression, StringKey, TableData, TextBaseColumn, TextColumn, TextColumnData, Then, ThenResult, TimeColumn, TimeInterval, TimeWithTimeZoneColumn, TimestampColumn, TimestampWithTimeZoneColumn, ToSqlCtx, ToSqlOptions, Transaction, TransactionAdapter, TruncateQueryData, TsQueryColumn, TsVectorColumn, TypeParsers, UUIDColumn, UnhandledTypeError, Union, UnionArg, UnionItem, UnionKind, UnknownKeysParam, Update, UpdateCtx, UpdateData, UpdateQueryData, UpdateQueryDataItem, UpdateQueryDataObject, UpdatedAtDataInjector, UpsertData, UpsertResult, UpsertThis, ValidationContext, VarCharColumn, VirtualColumn, Where, WhereArg, WhereInArg, WhereInColumn, WhereInItem, WhereInValues, WhereItem, WhereJsonPathEqualsItem, WhereOnItem, WhereOnJoinItem, WhereQueryBuilder, WhereResult, WindowArg, WindowArgDeclaration, WindowDeclaration, WindowFunctionOptions, WindowItem, With, WithDataBase, WithDataItem, WithItem, WithOptions, XMLColumn, addCode, addOr, addOrNot, addParserForRawExpression, addParserForSelectItem, addParserToQuery, addQueryOn, addQueryOrOn, addQuestionMarks, addWhere, addWhereIn, addWhereNot, aggregate1FunctionNames, anyShape, applyMixins, array, arrayToEnum, baseObjectOutputType, checkIfASimpleQuery, cloneQueryArrays, codeToString, columnChainToCode, columnCode, columnDefaultArgumentToCode, columnForeignKeysToCode, columnIndexesToCode, columnTypes, utils as columnUtils, columnsByType, columnsShapeToCode, constructType, createDb, createOperator, defaultsKey, discriminatedUnion, emptyObject, enumType, flatten, foreignKeyArgsToCode, foreignKeyArgumentToCode, foreignKeyToCode, getClonedQueryData, getColumnTypes, getQueryAs, getQueryParsers, getRaw, getRawSql, getTableData, getValidEnumValues, getValueKey, handleResult, identity, indexToCode, instanceOf, instantiateColumn, intersection, isObjectEmpty, isQueryReturnsAll, isRaw, isRequiredRelationKey, joinTruthy, jsonTypes, lazy, literal, logColors, logParamToLogObject, makeRegexToFindInSql, makeSql, map, nativeEnum, newTableData, noop, notNullable, notNullish, nullable, nullish, object, optional, parseRecord, parseResult, primaryKeyToCode, processSelectArg, pushOrNewArray, pushOrNewArrayToObject, pushQueryArray, pushQueryOn, pushQueryOrOn, pushQueryValue, queryMethodByReturnType, queryTypeWithLimitOne, quote, quoteObjectKey, quoteString, raw, record, relationQueryKey, required, resetTableData, scalarTypes, set, setQueryObjectValue, singleQuote, singleQuoteArray, toArray, toCode, toSql, toSqlCacheKey, tuple, union };
4475
+ export { Adapter, AdapterOptions, AddQueryJoinedTable, AddQuerySelect, AddQueryWith, AfterCallback, Aggregate, Aggregate1ArgumentTypes, AggregateArg, AggregateItem, AggregateItemArg, AggregateItemOptions, AggregateOptions, AliasOrTable, AnyColumnType, AnyColumnTypeCreator, ArrayCardinality, ArrayColumn, ArrayData, ArrayOfColumnsObjects, AssertArray, BaseNumberData, BaseOperators, BaseRelation, BaseStringData, BeforeCallback, BelongsToRelation, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BooleanExpression, BoxColumn, ByteaColumn, CharColumn, CidrColumn, CircleColumn, Clear, ClearStatement, CoalesceString, Code, ColumnChain, ColumnData, ColumnFromDbParams, ColumnInfo, ColumnInfoMethods, ColumnInfoQueryData, ColumnInput, ColumnNameOfTable, ColumnOperators, ColumnOutput, ColumnParser, ColumnShapeInput, ColumnShapeOutput, ColumnType, ColumnTypes, ColumnTypesBase, ColumnsObject, ColumnsParsers, ColumnsShape, CommonQueryData, CopyOptions, CopyQueryData, Create, CreateCtx, CreateData, CreateMethodsNames, DateBaseColumn, DateColumn, DateColumnData, DateTimeBaseClass, DateTimeWithTimeZoneBaseClass, Db, DbOptions, DbResult, DbTableOptions, DecimalBaseColumn, DecimalColumn, DeepPartial, DefaultColumnTypes, DefaultSelectColumns, Delete, DeleteMethodsNames, DeleteQueryData, DoublePrecisionColumn, DropMode, EMPTY_OBJECT, EmptyObject, EnumColumn, EnumLike, Except, Expression, ExpressionOfType, ExpressionOutput, FilterTuple, For, ForeignKey, ForeignKeyOptions, ForeignKeyTable, ForeignKeyTableWithColumns, From, GetArg, HasAndBelongsToManyRelation, HasManyRelation, HasOneRelation, Having, HavingArg, HavingItem, IndexColumnOptions, IndexOptions, InetColumn, InsertQueryData, IntegerBaseColumn, IntegerColumn, IntervalColumn, IsEqual, JSONAny, JSONArray, JSONBigInt, JSONBoolean, JSONColumn, JSONDate, JSONDiscriminatedObject, JSONDiscriminatedUnion, JSONEnum, JSONInstanceOf, JSONIntersection, JSONLazy, JSONLiteral, JSONMap, JSONNaN, JSONNativeEnum, JSONNever, JSONNotNullable, JSONNotNullish, JSONNull, JSONNullable, JSONNullish, JSONNumber, JSONObject, JSONObjectShape, JSONOptional, JSONRecord, JSONRecordKeyType, JSONRequired, JSONSet, JSONString, JSONTextColumn, JSONTuple, JSONTupleItems, JSONType, JSONTypeAny, JSONTypeData, JSONTypes, JSONUndefined, JSONUnion, JSONUnknown, JSONVoid, Join, JoinArgs, JoinCallback, JoinCallbackArg, JoinItem, JoinedTablesBase, Json, JsonItem, LimitedTextBaseColumn, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MaybeArray, Merge, MergeQuery, MergeQueryMethods, MoneyColumn, MoreThanOneRowError, NoPrimaryKeyOption, NotFoundError, NullableColumn, NumberAsStringBaseColumn, NumberBaseColumn, NumberColumn, NumberColumnData, NumberExpression, OnConflictItem, OnConflictMergeUpdate, OnConflictQueryBuilder, OnQueryBuilder, Operator, Operators, OrderArg, OrderItem, OutputTypeOfTuple, OutputTypeOfTupleWithRest, OwnTypeProps, PathColumn, PluckResultColumnType, PointColumn, PolygonColumn, PormError, PormInternalError, Primitive, Query, QueryArraysResult, QueryBase, QueryCallbacks, QueryData, QueryError, QueryErrorName, QueryGet, QueryInput, QueryLog, QueryLogObject, QueryLogOptions, QueryLogger, QueryMethods, QueryResult, QueryResultRow, QueryReturnType, QueryReturnsAll, QuerySelectAll, QueryThen, QueryUpsertOrCreate, QueryWithTable, RawExpression, RawMethods, RealColumn, Relation, RelationQuery, RelationQueryBase, RelationQueryData, RelationsBase, Select, SelectAgg, SelectArg, SelectFunctionItem, SelectItem, SelectQueryData, Selectable, SelectableBase, SerialColumn, SetOptional, SetQueryJoinedTables, SetQueryReturns, SetQueryReturnsAll, SetQueryReturnsColumnInfo, SetQueryReturnsOne, SetQueryReturnsOneOptional, SetQueryReturnsPluck, SetQueryReturnsRowCount, SetQueryReturnsRows, SetQueryReturnsValue, SetQueryReturnsValueOptional, SetQueryReturnsVoid, SetQueryTableAlias, SetQueryWindows, SetQueryWith, SimpleSpread, SingleColumnIndexOptions, SinglePrimaryKey, SmallIntColumn, SmallSerialColumn, SomeIsTrue, SortDir, Spread, Sql, StringColumn, StringExpression, StringKey, TableData, TextBaseColumn, TextColumn, TextColumnData, Then, ThenResult, TimeColumn, TimeInterval, TimeWithTimeZoneColumn, TimestampColumn, TimestampWithTimeZoneColumn, ToSqlCtx, ToSqlOptions, Transaction, TransactionAdapter, TruncateQueryData, TsQueryColumn, TsVectorColumn, TypeParsers, UUIDColumn, UnhandledTypeError, Union, UnionArg, UnionItem, UnionKind, UnknownKeysParam, Update, UpdateCtx, UpdateData, UpdateQueryData, UpdateQueryDataItem, UpdateQueryDataObject, UpdatedAtDataInjector, UpsertData, UpsertResult, UpsertThis, ValidationContext, VarCharColumn, VirtualColumn, Where, WhereArg, WhereInArg, WhereInColumn, WhereInItem, WhereInValues, WhereItem, WhereJsonPathEqualsItem, WhereOnItem, WhereOnJoinItem, WhereQueryBuilder, WhereResult, WindowArg, WindowArgDeclaration, WindowDeclaration, WindowFunctionOptions, WindowItem, With, WithDataBase, WithDataItem, WithItem, WithOptions, XMLColumn, addCode, addOr, addOrNot, addParserForRawExpression, addParserForSelectItem, addParserToQuery, addQueryOn, addQueryOrOn, addQuestionMarks, addWhere, addWhereIn, addWhereNot, aggregate1FunctionNames, anyShape, applyMixins, array, arrayToEnum, baseObjectOutputType, checkIfASimpleQuery, cloneQueryArrays, codeToString, columnChainToCode, columnCode, columnDefaultArgumentToCode, columnForeignKeysToCode, columnIndexesToCode, columnTypes, utils as columnUtils, columnsByType, columnsShapeToCode, constructType, createDb, createOperator, defaultsKey, discriminatedUnion, emptyObject, enumType, flatten, foreignKeyArgsToCode, foreignKeyArgumentToCode, foreignKeyToCode, getClonedQueryData, getColumnTypes, getQueryAs, getQueryParsers, getRaw, getRawSql, getTableData, getValidEnumValues, getValueKey, handleResult, identity, indexToCode, instanceOf, instantiateColumn, intersection, isObjectEmpty, isQueryReturnsAll, isQueryReturnsMultipleRows, isRaw, isRequiredRelationKey, joinTruthy, jsonTypes, lazy, literal, logColors, logParamToLogObject, makeRegexToFindInSql, makeSql, map, nativeEnum, newTableData, noop, notNullable, notNullish, nullable, nullish, object, optional, parseRecord, parseResult, primaryKeyToCode, processSelectArg, pushOrNewArray, pushOrNewArrayToObject, pushQueryArray, pushQueryOn, pushQueryOrOn, pushQueryValue, queryMethodByReturnType, queryTypeWithLimitOne, quote, quoteObjectKey, quoteString, raw, record, relationQueryKey, required, resetTableData, scalarTypes, set, setQueryObjectValue, singleQuote, singleQuoteArray, toArray, toCode, toSql, toSqlCacheKey, tuple, union };
package/dist/index.js CHANGED
@@ -14,6 +14,12 @@ const queryTypeWithLimitOne = {
14
14
  oneOrThrow: true
15
15
  };
16
16
  const isQueryReturnsAll = (q) => !q.query.returnType || q.query.returnType === "all";
17
+ const queryTypeReturningMultipleRows = {
18
+ all: true,
19
+ rows: true,
20
+ pluck: true
21
+ };
22
+ const isQueryReturnsMultipleRows = (q) => queryTypeReturningMultipleRows[q.query.returnType];
17
23
 
18
24
  const q = (sql) => `"${sql}"`;
19
25
  const qc = (column, quotedAs) => quotedAs ? `${quotedAs}.${q(column)}` : column;
@@ -621,9 +627,9 @@ const pushSubQuerySql = (query, as, values, list) => {
621
627
  if (!select || !first) {
622
628
  throw new PormInternalError(`Nothing was selected for pluck`);
623
629
  }
624
- select.length = 0;
625
- select[0] = { selectAs: { c: first } };
626
- query = query._wrap(query.__table.clone());
630
+ const cloned = query.clone();
631
+ cloned.query.select = [{ selectAs: { c: first } }];
632
+ query = cloned._wrap(cloned.__table.clone());
627
633
  query._getOptional(raw(`COALESCE(json_agg("c"), '[]')`));
628
634
  break;
629
635
  }
@@ -4512,6 +4518,10 @@ const addParserForRawExpression = (q, key, raw) => {
4512
4518
  if (parser)
4513
4519
  addParserToQuery(q.query, key, parser);
4514
4520
  };
4521
+ const subQueryResult = {
4522
+ rowCount: -1,
4523
+ rows: []
4524
+ };
4515
4525
  const addParserForSelectItem = (q, as, key, arg) => {
4516
4526
  var _a, _b, _c, _d;
4517
4527
  if (typeof arg === "object") {
@@ -4523,15 +4533,10 @@ const addParserForSelectItem = (q, as, key, arg) => {
4523
4533
  q.isSubQuery = false;
4524
4534
  const parsers = getQueryParsers(rel);
4525
4535
  if (parsers) {
4526
- if (queryTypeWithLimitOne[rel.query.returnType]) {
4527
- addParserToQuery(q.query, key, (item) => parseRecord(parsers, item));
4528
- } else {
4529
- addParserToQuery(
4530
- q.query,
4531
- key,
4532
- (items) => items.map((item) => parseRecord(parsers, item))
4533
- );
4534
- }
4536
+ addParserToQuery(q.query, key, (item) => {
4537
+ subQueryResult.rows = isQueryReturnsMultipleRows(rel) ? item : [item];
4538
+ return parseResult(rel, rel.query.returnType || "all", subQueryResult);
4539
+ });
4535
4540
  }
4536
4541
  return rel;
4537
4542
  } else {
@@ -6892,6 +6897,7 @@ exports.instantiateColumn = instantiateColumn;
6892
6897
  exports.intersection = intersection;
6893
6898
  exports.isObjectEmpty = isObjectEmpty;
6894
6899
  exports.isQueryReturnsAll = isQueryReturnsAll;
6900
+ exports.isQueryReturnsMultipleRows = isQueryReturnsMultipleRows;
6895
6901
  exports.isRaw = isRaw;
6896
6902
  exports.isRequiredRelationKey = isRequiredRelationKey;
6897
6903
  exports.joinTruthy = joinTruthy;