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.
- package/.turbo/turbo-check.log +71 -0
- package/CHANGELOG.md +6 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +18 -12
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +18 -13
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/query.ts +8 -0
- package/src/queryMethods/select.test.ts +52 -24
- package/src/queryMethods/select.ts +16 -9
- package/src/sql/select.ts +3 -3
|
@@ -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
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
|
-
|
|
625
|
-
select
|
|
626
|
-
query =
|
|
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
|
-
|
|
4527
|
-
|
|
4528
|
-
|
|
4529
|
-
|
|
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;
|