pqb 0.11.5 → 0.11.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
@@ -288,6 +288,7 @@ declare class TransactionAdapter implements Adapter {
288
288
  }
289
289
 
290
290
  type JoinedShapes = Record<string, ColumnsShapeBase>;
291
+ type JoinedParsers = Record<string, ColumnsParsers>;
291
292
  type CommonQueryData = {
292
293
  adapter: Adapter;
293
294
  shape: ColumnsShapeBase;
@@ -300,7 +301,7 @@ type CommonQueryData = {
300
301
  with?: WithItem[];
301
302
  withShapes?: Record<string, ColumnsShape>;
302
303
  joinedShapes?: JoinedShapes;
303
- joinedParsers?: Record<string, ColumnsParsers>;
304
+ joinedParsers?: JoinedParsers;
304
305
  schema?: string;
305
306
  select?: SelectItem[];
306
307
  as?: string;
@@ -648,24 +649,34 @@ type JoinWithArgs<T extends QueryBase, W extends keyof T['withData']> = [
648
649
  op: string,
649
650
  rightColumn: Selectable<T> | RawExpression
650
651
  ];
651
- type JoinResult<T extends Query, Require extends boolean, Arg extends JoinFirstArg<T>, J extends Pick<Query, 'result' | 'table' | 'meta'> = Arg extends Query ? Arg : T['relations'] extends Record<string, Relation> ? Arg extends keyof T['relations'] ? T['relations'][Arg]['table'] : Arg extends keyof T['withData'] ? T['withData'][Arg] extends WithDataItem ? {
652
+ type JoinResult<T extends Query, RequireJoined extends boolean, RequireMain extends boolean, Arg extends JoinFirstArg<T>, J extends Pick<Query, 'result' | 'table' | 'meta'> = Arg extends Query ? Arg : T['relations'] extends Record<string, Relation> ? Arg extends keyof T['relations'] ? T['relations'][Arg]['table'] : Arg extends keyof T['withData'] ? T['withData'][Arg] extends WithDataItem ? {
652
653
  table: T['withData'][Arg]['table'];
653
654
  result: T['withData'][Arg]['shape'];
654
655
  meta: EmptyObject;
655
- } : never : never : never, Result extends ColumnsShape = Require extends true ? J['result'] : {
656
+ } : never : never : never, Result extends ColumnsShape = RequireJoined extends true ? J['result'] : {
656
657
  [K in keyof J['result']]: NullableColumn<J['result'][K]>;
657
- }, As extends string = AliasOrTable<J>> = {
658
- [K in keyof T]: K extends 'selectable' ? T['selectable'] & {
659
- [K in keyof Result as `${As}.${StringKey<K>}`]: {
660
- as: K;
661
- column: Result[K];
662
- };
663
- } & {
664
- [K in As]: {
665
- as: K;
666
- column: Require extends true ? ColumnsObject<J['result']> : NullableColumn<ColumnsObject<J['result']>>;
658
+ }, As extends string = AliasOrTable<J>, Selectable extends SelectableBase = {
659
+ [K in keyof Result as `${As}.${StringKey<K>}`]: {
660
+ as: K;
661
+ column: Result[K];
662
+ };
663
+ } & {
664
+ [K in As]: {
665
+ as: K;
666
+ column: RequireJoined extends true ? ColumnsObject<J['result']> : NullableColumn<ColumnsObject<J['result']>>;
667
+ };
668
+ }> = RequireMain extends true ? {
669
+ [K in keyof T]: K extends 'selectable' ? T['selectable'] & Selectable : T[K];
670
+ } : OptionalMain<T, Selectable>;
671
+ type OptionalMain<T extends Query, Selectable extends SelectableBase, Result extends ColumnsShape = {
672
+ [K in keyof T['result']]: NullableColumn<T['result'][K]>;
673
+ }> = {
674
+ [K in keyof T]: K extends 'selectable' ? {
675
+ [K in keyof T['selectable']]: {
676
+ as: T['selectable'][K]['as'];
677
+ column: NullableColumn<T['selectable'][K]['column']>;
667
678
  };
668
- } : T[K];
679
+ } & Selectable : K extends 'result' ? Result : K extends 'then' ? QueryThen<T['returnType'], Result> : T[K];
669
680
  };
670
681
  type JoinCallback<T extends QueryBase, Arg extends JoinFirstArg<T>> = (q: OnQueryBuilder<T, Arg extends keyof T['withData'] ? T['withData'][Arg] extends WithDataItem ? {
671
682
  query: QueryData;
@@ -685,22 +696,22 @@ type JoinCallback<T extends QueryBase, Arg extends JoinFirstArg<T>> = (q: OnQuer
685
696
  internal: QueryInternal;
686
697
  } : never : Arg extends Query ? Arg : T['relations'] extends Record<string, Relation> ? Arg extends keyof T['relations'] ? T['relations'][Arg]['table'] : never : never>) => OnQueryBuilder;
687
698
  declare class Join {
688
- join<T extends Query, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): JoinResult<T, true, Arg>;
689
- join<T extends Query, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinResult<T, true, Arg>;
690
- _join<T extends Query, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): JoinResult<T, true, Arg>;
691
- _join<T extends Query, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinResult<T, true, Arg>;
692
- leftJoin<T extends Query, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): JoinResult<T, false, Arg>;
693
- leftJoin<T extends Query, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinResult<T, false, Arg>;
694
- _leftJoin<T extends Query, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): JoinResult<T, false, Arg>;
695
- _leftJoin<T extends Query, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinResult<T, false, Arg>;
696
- rightJoin<T extends Query, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): JoinResult<T, true, Arg>;
697
- rightJoin<T extends Query, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinResult<T, true, Arg>;
698
- _rightJoin<T extends Query, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): JoinResult<T, true, Arg>;
699
- _rightJoin<T extends Query, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinResult<T, true, Arg>;
700
- fullJoin<T extends Query, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): JoinResult<T, false, Arg>;
701
- fullJoin<T extends Query, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinResult<T, false, Arg>;
702
- _fullJoin<T extends Query, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): JoinResult<T, false, Arg>;
703
- _fullJoin<T extends Query, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinResult<T, false, Arg>;
699
+ join<T extends Query, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): JoinResult<T, true, true, Arg>;
700
+ join<T extends Query, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinResult<T, true, true, Arg>;
701
+ _join<T extends Query, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): JoinResult<T, true, true, Arg>;
702
+ _join<T extends Query, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinResult<T, true, true, Arg>;
703
+ leftJoin<T extends Query, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): JoinResult<T, false, true, Arg>;
704
+ leftJoin<T extends Query, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinResult<T, false, true, Arg>;
705
+ _leftJoin<T extends Query, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): JoinResult<T, false, true, Arg>;
706
+ _leftJoin<T extends Query, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinResult<T, false, true, Arg>;
707
+ rightJoin<T extends Query, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): JoinResult<T, true, false, Arg>;
708
+ rightJoin<T extends Query, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinResult<T, true, false, Arg>;
709
+ _rightJoin<T extends Query, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): JoinResult<T, true, false, Arg>;
710
+ _rightJoin<T extends Query, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinResult<T, true, false, Arg>;
711
+ fullJoin<T extends Query, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): JoinResult<T, false, false, Arg>;
712
+ fullJoin<T extends Query, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinResult<T, false, false, Arg>;
713
+ _fullJoin<T extends Query, Arg extends JoinFirstArg<T>, Args extends JoinArgs<T, Arg>>(this: T, arg: Arg, ...args: Args): JoinResult<T, false, false, Arg>;
714
+ _fullJoin<T extends Query, Arg extends JoinFirstArg<T>>(this: T, arg: Arg, cb: JoinCallback<T, Arg>): JoinResult<T, false, false, Arg>;
704
715
  }
705
716
  type OnArgs<Q extends {
706
717
  selectable: SelectableBase;
@@ -3631,4 +3642,4 @@ declare const setQueryObjectValue: <T extends {
3631
3642
  query: QueryData;
3632
3643
  }>(q: T, object: string, key: string, value: unknown) => T;
3633
3644
 
3634
- export { Adapter, AdapterConfig, AdapterOptions, AddQuerySelect, AddQueryWith, AfterCallback, Aggregate, Aggregate1ArgumentTypes, AggregateArg, AggregateItem, AggregateItemArg, AggregateItemOptions, AggregateOptions, AliasOrTable, ArrayColumn, ArrayData, ArrayOfColumnsObjects, BaseRelation, BeforeCallback, BelongsToRelation, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BooleanExpression, BoxColumn, ByteaColumn, CharColumn, CidrColumn, CircleColumn, CitextColumn, Clear, ClearStatement, ColumnData, ColumnFromDbParams, ColumnInfo, ColumnInfoMethods, ColumnInfoQueryData, ColumnNameOfTable, ColumnOperators, ColumnParser, ColumnType, ColumnTypes, ColumnsObject, ColumnsParsers, ColumnsShape, CommonQueryData, CopyOptions, CopyQueryData, Create, CreateCtx, CreateData, CreateMethodsNames, CustomTypeColumn, DateBaseColumn, DateColumn, DateTimeBaseClass, DateTimeTzBaseClass, Db, DbOptions, DbResult, DbTableOptions, DecimalBaseColumn, DecimalColumn, DefaultColumnTypes, Delete, DeleteMethodsNames, DeleteQueryData, DomainColumn, DoublePrecisionColumn, DropMode, EnumColumn, Expression, ExpressionOfType, ExpressionOutput, For, ForeignKey, ForeignKeyAction, ForeignKeyMatch, ForeignKeyOptions, ForeignKeyTable, From, FromArgs, FromResult, GetArg, HasAndBelongsToManyRelation, HasManyRelation, HasOneRelation, Having, HavingArg, HavingItem, IndexColumnOptions, IndexOptions, InetColumn, InsertQueryData, IntegerBaseColumn, IntegerColumn, IntervalColumn, IsolationLevel, JSONColumn, JSONTextColumn, JSONTypes, Join, JoinArgs, JoinCallback, JoinFirstArg, JoinItem, JoinResult, JoinedShapes, Json, JsonItem, LimitedTextBaseColumn, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MergeQuery, MergeQueryMethods, MoneyColumn, MoreThanOneRowError, NoPrimaryKeyOption, NotFoundError, NumberAsStringBaseColumn, NumberBaseColumn, NumberColumn, NumberColumnData, NumberExpression, OnConflictItem, OnConflictMergeUpdate, OnConflictQueryBuilder, OnQueryBuilder, Operators, OrchidOrmError, OrchidOrmInternalError, OrderArg, OrderItem, PathColumn, PluckResultColumnType, PointColumn, PolygonColumn, Query, QueryArraysResult, QueryBase, QueryCallbacks, QueryData, QueryError, QueryErrorName, QueryGet, QueryLog, QueryLogObject, QueryLogOptions, QueryLogger, QueryMethods, QueryResult, QueryReturnType, QueryReturnsAll, QueryThen, QueryUpsertOrCreate, QueryWithTable, RawMethods, RealColumn, Relation, RelationQuery, RelationQueryBase, RelationQueryData, RelationsBase, Select, SelectAgg, SelectArg, SelectFunctionItem, SelectItem, SelectQueryData, Selectable, SelectableBase, SelectableFromShape, SerialColumn, SerialColumnData, SetQueryReturns, SetQueryReturnsAll, SetQueryReturnsColumnInfo, SetQueryReturnsOne, SetQueryReturnsOneOptional, SetQueryReturnsPluck, SetQueryReturnsRowCount, SetQueryReturnsRows, SetQueryReturnsValue, SetQueryReturnsValueOptional, SetQueryReturnsVoid, SetQueryTableAlias, SetQueryWindows, SetQueryWith, SingleColumnIndexOptions, SmallIntColumn, SmallSerialColumn, SortDir, StringColumn, StringExpression, TableData, TextBaseColumn, TextColumn, TextColumnData, Then, TimeColumn, TimeInterval, TimestampColumn, TimestampTzColumn, ToSqlCtx, ToSqlOptions, Transaction, TransactionAdapter, TransactionOptions, TruncateQueryData, TsQueryColumn, TsVectorColumn, TypeParsers, UUIDColumn, UnhandledTypeError, Union, UnionArg, UnionItem, UnionKind, UnknownColumn, Update, UpdateCtx, UpdateData, UpdateQueryData, UpdateQueryDataItem, UpdateQueryDataObject, UpdatedAtDataInjector, UpsertData, UpsertResult, UpsertThis, 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, addOr, addOrNot, addParserForRawExpression, addParserForSelectItem, addParserToQuery, addQueryOn, addQueryOrOn, addWhere, addWhereIn, addWhereNot, aggregate1FunctionNames, anyShape, checkIfASimpleQuery, cloneQueryArrays, columnCheckToCode, columnCode, columnForeignKeysToCode, columnIndexesToCode, columnTypes, utils as columnUtils, columnsByType, columnsShapeToCode, constraintPropsToCode, constraintToCode, createDb, defaultsKey, foreignKeyArgumentToCode, getClonedQueryData, getColumnTypes, getConstraintKind, getQueryAs, getRaw, getShapeFromSelect, getTableData, getValueKey, handleResult, identityToCode, indexToCode, instantiateColumn, isQueryReturnsAll, isRequiredRelationKey, jsonTypes, logColors, logParamToLogObject, makeRegexToFindInSql, makeSql, newTableData, parseRecord, parseResult, primaryKeyToCode, processSelectArg, pushQueryArray, pushQueryOn, pushQueryOrOn, pushQueryValue, queryMethodByReturnType, queryTypeWithLimitOne, quote, quoteString, referencesArgsToCode, relationQueryKey, resetTableData, setQueryObjectValue, simplifyColumnDefault, toSql, toSqlCacheKey };
3645
+ export { Adapter, AdapterConfig, AdapterOptions, AddQuerySelect, AddQueryWith, AfterCallback, Aggregate, Aggregate1ArgumentTypes, AggregateArg, AggregateItem, AggregateItemArg, AggregateItemOptions, AggregateOptions, AliasOrTable, ArrayColumn, ArrayData, ArrayOfColumnsObjects, BaseRelation, BeforeCallback, BelongsToRelation, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BooleanExpression, BoxColumn, ByteaColumn, CharColumn, CidrColumn, CircleColumn, CitextColumn, Clear, ClearStatement, ColumnData, ColumnFromDbParams, ColumnInfo, ColumnInfoMethods, ColumnInfoQueryData, ColumnNameOfTable, ColumnOperators, ColumnParser, ColumnType, ColumnTypes, ColumnsObject, ColumnsParsers, ColumnsShape, CommonQueryData, CopyOptions, CopyQueryData, Create, CreateCtx, CreateData, CreateMethodsNames, CustomTypeColumn, DateBaseColumn, DateColumn, DateTimeBaseClass, DateTimeTzBaseClass, Db, DbOptions, DbResult, DbTableOptions, DecimalBaseColumn, DecimalColumn, DefaultColumnTypes, Delete, DeleteMethodsNames, DeleteQueryData, DomainColumn, DoublePrecisionColumn, DropMode, EnumColumn, Expression, ExpressionOfType, ExpressionOutput, For, ForeignKey, ForeignKeyAction, ForeignKeyMatch, ForeignKeyOptions, ForeignKeyTable, From, FromArgs, FromResult, GetArg, HasAndBelongsToManyRelation, HasManyRelation, HasOneRelation, Having, HavingArg, HavingItem, IndexColumnOptions, IndexOptions, InetColumn, InsertQueryData, IntegerBaseColumn, IntegerColumn, IntervalColumn, IsolationLevel, JSONColumn, JSONTextColumn, JSONTypes, Join, JoinArgs, JoinCallback, JoinFirstArg, JoinItem, JoinResult, JoinedParsers, JoinedShapes, Json, JsonItem, LimitedTextBaseColumn, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MergeQuery, MergeQueryMethods, MoneyColumn, MoreThanOneRowError, NoPrimaryKeyOption, NotFoundError, NumberAsStringBaseColumn, NumberBaseColumn, NumberColumn, NumberColumnData, NumberExpression, OnConflictItem, OnConflictMergeUpdate, OnConflictQueryBuilder, OnQueryBuilder, Operators, OrchidOrmError, OrchidOrmInternalError, OrderArg, OrderItem, PathColumn, PluckResultColumnType, PointColumn, PolygonColumn, Query, QueryArraysResult, QueryBase, QueryCallbacks, QueryData, QueryError, QueryErrorName, QueryGet, QueryLog, QueryLogObject, QueryLogOptions, QueryLogger, QueryMethods, QueryResult, QueryReturnType, QueryReturnsAll, QueryThen, QueryUpsertOrCreate, QueryWithTable, RawMethods, RealColumn, Relation, RelationQuery, RelationQueryBase, RelationQueryData, RelationsBase, Select, SelectAgg, SelectArg, SelectFunctionItem, SelectItem, SelectQueryData, Selectable, SelectableBase, SelectableFromShape, SerialColumn, SerialColumnData, SetQueryReturns, SetQueryReturnsAll, SetQueryReturnsColumnInfo, SetQueryReturnsOne, SetQueryReturnsOneOptional, SetQueryReturnsPluck, SetQueryReturnsRowCount, SetQueryReturnsRows, SetQueryReturnsValue, SetQueryReturnsValueOptional, SetQueryReturnsVoid, SetQueryTableAlias, SetQueryWindows, SetQueryWith, SingleColumnIndexOptions, SmallIntColumn, SmallSerialColumn, SortDir, StringColumn, StringExpression, TableData, TextBaseColumn, TextColumn, TextColumnData, Then, TimeColumn, TimeInterval, TimestampColumn, TimestampTzColumn, ToSqlCtx, ToSqlOptions, Transaction, TransactionAdapter, TransactionOptions, TruncateQueryData, TsQueryColumn, TsVectorColumn, TypeParsers, UUIDColumn, UnhandledTypeError, Union, UnionArg, UnionItem, UnionKind, UnknownColumn, Update, UpdateCtx, UpdateData, UpdateQueryData, UpdateQueryDataItem, UpdateQueryDataObject, UpdatedAtDataInjector, UpsertData, UpsertResult, UpsertThis, 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, addOr, addOrNot, addParserForRawExpression, addParserForSelectItem, addParserToQuery, addQueryOn, addQueryOrOn, addWhere, addWhereIn, addWhereNot, aggregate1FunctionNames, anyShape, checkIfASimpleQuery, cloneQueryArrays, columnCheckToCode, columnCode, columnForeignKeysToCode, columnIndexesToCode, columnTypes, utils as columnUtils, columnsByType, columnsShapeToCode, constraintPropsToCode, constraintToCode, createDb, defaultsKey, foreignKeyArgumentToCode, getClonedQueryData, getColumnTypes, getConstraintKind, getQueryAs, getRaw, getShapeFromSelect, getTableData, getValueKey, handleResult, identityToCode, indexToCode, instantiateColumn, isQueryReturnsAll, isRequiredRelationKey, jsonTypes, logColors, logParamToLogObject, makeRegexToFindInSql, makeSql, newTableData, parseRecord, parseResult, primaryKeyToCode, processSelectArg, pushQueryArray, pushQueryOn, pushQueryOrOn, pushQueryValue, queryMethodByReturnType, queryTypeWithLimitOne, quote, quoteString, referencesArgsToCode, relationQueryKey, resetTableData, setQueryObjectValue, simplifyColumnDefault, toSql, toSqlCacheKey };
package/dist/index.js CHANGED
@@ -161,7 +161,7 @@ const getJoinedColumnName = (data, shape, table, key, isOwnColumn) => {
161
161
  return (_c = (isOwnColumn ? shape[key] : void 0) || ((_b = (_a = data.joinedShapes) == null ? void 0 : _a[table]) == null ? void 0 : _b[key])) == null ? void 0 : _c.data.name;
162
162
  };
163
163
  const revealColumnToSql = (data, shape, column, quotedAs) => {
164
- var _a;
164
+ var _a, _b;
165
165
  const index = column.indexOf(".");
166
166
  if (index !== -1) {
167
167
  const table = column.slice(0, index);
@@ -170,10 +170,12 @@ const revealColumnToSql = (data, shape, column, quotedAs) => {
170
170
  return `${quoted}.${q(
171
171
  getJoinedColumnName(data, shape, table, key, quoted === quotedAs) || key
172
172
  )}`;
173
+ } else if ((_a = data.joinedShapes) == null ? void 0 : _a[column]) {
174
+ return `row_to_json("${column}".*)`;
173
175
  } else if (quotedAs && shape[column]) {
174
176
  return `${quotedAs}.${q(shape[column].data.name || column)}`;
175
177
  } else {
176
- return q(((_a = shape[column]) == null ? void 0 : _a.data.name) || column);
178
+ return q(((_b = shape[column]) == null ? void 0 : _b.data.name) || column);
177
179
  }
178
180
  };
179
181
  const revealColumnToSqlWithAs = (data, column, quotedAs) => {
@@ -3722,8 +3724,21 @@ const subQueryResult = {
3722
3724
  rowCount: -1,
3723
3725
  rows: []
3724
3726
  };
3727
+ const addParsersForSelectJoined = (q, arg, as = arg) => {
3728
+ const parsers = q.query.joinedParsers[arg];
3729
+ if (parsers) {
3730
+ addParserToQuery(q.query, as, (item) => {
3731
+ subQueryResult.rows = [item];
3732
+ const type = q.query.returnType;
3733
+ q.query.returnType = "one";
3734
+ const res = q.query.handleResult(q, subQueryResult, true);
3735
+ q.query.returnType = type;
3736
+ return res;
3737
+ });
3738
+ }
3739
+ };
3725
3740
  const addParserForSelectItem = (q, as, key, arg) => {
3726
- var _a, _b, _c, _d;
3741
+ var _a, _b, _c, _d, _e;
3727
3742
  if (typeof arg === "object") {
3728
3743
  addParserForRawExpression(q, key, arg);
3729
3744
  return arg;
@@ -3745,23 +3760,27 @@ const addParserForSelectItem = (q, as, key, arg) => {
3745
3760
  }
3746
3761
  return rel;
3747
3762
  } else {
3748
- const index = arg.indexOf(".");
3749
- if (index !== -1) {
3750
- const table = arg.slice(0, index);
3751
- const column = arg.slice(index + 1);
3752
- if (table === as) {
3753
- const parser = (_a = q.query.parsers) == null ? void 0 : _a[column];
3754
- if (parser)
3755
- addParserToQuery(q.query, key, parser);
3763
+ if ((_a = q.query.joinedShapes) == null ? void 0 : _a[arg]) {
3764
+ addParsersForSelectJoined(q, arg, key);
3765
+ } else {
3766
+ const index = arg.indexOf(".");
3767
+ if (index !== -1) {
3768
+ const table = arg.slice(0, index);
3769
+ const column = arg.slice(index + 1);
3770
+ if (table === as) {
3771
+ const parser = (_b = q.query.parsers) == null ? void 0 : _b[column];
3772
+ if (parser)
3773
+ addParserToQuery(q.query, key, parser);
3774
+ } else {
3775
+ const parser = (_d = (_c = q.query.joinedParsers) == null ? void 0 : _c[table]) == null ? void 0 : _d[column];
3776
+ if (parser)
3777
+ addParserToQuery(q.query, key, parser);
3778
+ }
3756
3779
  } else {
3757
- const parser = (_c = (_b = q.query.joinedParsers) == null ? void 0 : _b[table]) == null ? void 0 : _c[column];
3780
+ const parser = (_e = q.query.parsers) == null ? void 0 : _e[arg];
3758
3781
  if (parser)
3759
3782
  addParserToQuery(q.query, key, parser);
3760
3783
  }
3761
- } else {
3762
- const parser = (_d = q.query.parsers) == null ? void 0 : _d[arg];
3763
- if (parser)
3764
- addParserToQuery(q.query, key, parser);
3765
3784
  }
3766
3785
  return arg;
3767
3786
  }
@@ -3773,20 +3792,10 @@ const addParserToQuery = (query, key, parser) => {
3773
3792
  query.parsers = { [key]: parser };
3774
3793
  };
3775
3794
  const processSelectArg = (q, as, arg, columnAs) => {
3776
- var _a, _b;
3795
+ var _a;
3777
3796
  if (typeof arg === "string") {
3778
3797
  if ((_a = q.query.joinedShapes) == null ? void 0 : _a[arg]) {
3779
- const parsers = (_b = q.query.joinedParsers) == null ? void 0 : _b[arg];
3780
- if (parsers) {
3781
- addParserToQuery(q.query, arg, (item) => {
3782
- subQueryResult.rows = [item];
3783
- const type = q.query.returnType;
3784
- q.query.returnType = "one";
3785
- const res = q.query.handleResult(q, subQueryResult, true);
3786
- q.query.returnType = type;
3787
- return res;
3788
- });
3789
- }
3798
+ addParsersForSelectJoined(q, arg);
3790
3799
  return arg;
3791
3800
  } else if (q.relations[arg]) {
3792
3801
  const rel = q.relations[arg];