pqb 0.42.5 → 0.42.7

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.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { ExpressionTypeMethod, Expression, RawSQLBase, emptyObject, isTemplateLiteralArgs, ColumnTypeBase, setColumnData, pushColumnData, quoteObjectKey, toArray, singleQuote, addCode, singleQuoteArray, objectHasValues, toSnakeCase, columnDefaultArgumentToCode, columnErrorMessagesToCode, getValueKey, emptyArray, addValue, isExpression, joinTruthy, stringDataToCode, getDefaultLanguage, dateDataToCode, returnArg as returnArg$1, noop, pushOrNewArrayToObject, arrayDataToCode, numberDataToCode, logColors, applyTransforms, callWithThis, setParserToQuery, isRawSQL, pushOrNewArray, setDefaultNowFn, setDefaultLanguage, setCurrentColumnName, makeTimestampsHelpers, setAdapterConnectRetry, isObjectEmpty, ValExpression, applyMixins, snakeCaseKey } from 'orchid-core';
1
+ import { ExpressionTypeMethod, Expression, RawSQLBase, emptyObject, isTemplateLiteralArgs, ColumnTypeBase, setColumnData, pushColumnData, templateLiteralToSQL as templateLiteralToSQL$1, quoteObjectKey, toArray, singleQuote, addCode, singleQuoteArray, objectHasValues, toSnakeCase, columnDefaultArgumentToCode, columnErrorMessagesToCode, getValueKey, emptyArray, addValue, isExpression, joinTruthy, stringDataToCode, getDefaultLanguage, dateDataToCode, returnArg as returnArg$1, noop, pushOrNewArrayToObject, arrayDataToCode, numberDataToCode, logColors, applyTransforms, callWithThis, setParserToQuery, isRawSQL, pushOrNewArray, setDefaultNowFn, setDefaultLanguage, setCurrentColumnName, makeTimestampsHelpers, setAdapterConnectRetry, isObjectEmpty, ValExpression, applyMixins, snakeCaseKey } from 'orchid-core';
2
2
  import pg from 'pg';
3
3
  import { inspect } from 'node:util';
4
4
  import { AsyncLocalStorage } from 'node:async_hooks';
@@ -362,7 +362,21 @@ class ColumnType extends ColumnTypeBase {
362
362
  */
363
363
  generated(...args) {
364
364
  const sql = raw(...args);
365
- return setColumnData(this, "generated", (...args2) => sql.toSQL(...args2));
365
+ return setColumnData(this, "generated", {
366
+ toSQL(ctx, quoted) {
367
+ return sql.toSQL(ctx, quoted);
368
+ },
369
+ toCode() {
370
+ let sql2 = ".generated";
371
+ if (Array.isArray(args[0])) {
372
+ sql2 += templateLiteralToSQL$1(args);
373
+ } else {
374
+ const { raw: raw2, values } = args[0];
375
+ sql2 += `({ raw: '${raw2.replace(/'/g, "\\'")}'${values ? `, values: ${JSON.stringify(values)}` : ""} })`;
376
+ }
377
+ return sql2;
378
+ }
379
+ });
366
380
  }
367
381
  }
368
382
 
@@ -726,6 +740,9 @@ const columnCode = (type, ctx, key, code) => {
726
740
  } else {
727
741
  code[0].unshift(prepend);
728
742
  }
743
+ if (data.generated) {
744
+ addCode(code, data.generated.toCode());
745
+ }
729
746
  if (data.primaryKey) {
730
747
  addCode(
731
748
  code,
@@ -1320,32 +1337,59 @@ class TsVectorColumn extends ColumnType {
1320
1337
  * @param args
1321
1338
  */
1322
1339
  generated(...args) {
1323
- return setColumnData(this, "generated", (ctx, quotedAs) => {
1340
+ const arg = args[0];
1341
+ if (typeof arg === "object" && "raw" in arg) {
1342
+ return super.generated(...args);
1343
+ }
1344
+ const toSQL = (ctx) => {
1324
1345
  const first = args[0];
1325
- if (typeof first === "string" || !("raw" in first)) {
1326
- const target = typeof first === "string" ? args[1] : first;
1327
- const language = typeof first === "string" ? first : this.defaultLanguage;
1328
- const { snakeCase } = ctx;
1329
- let sql;
1330
- if (Array.isArray(target)) {
1331
- const columns = target.length === 1 ? `"${snakeCase ? toSnakeCase(target[0]) : target[0]}"` : target.map(
1332
- (column) => `coalesce("${snakeCase ? toSnakeCase(column) : column}", '')`
1333
- ).join(` || ' ' || `);
1334
- sql = `to_tsvector('${language}', ${columns})`;
1346
+ const target = typeof first === "string" ? args[1] : first;
1347
+ const language = typeof first === "string" ? first : this.defaultLanguage;
1348
+ const { snakeCase } = ctx;
1349
+ let sql;
1350
+ if (Array.isArray(target)) {
1351
+ const columns = target.length === 1 ? `"${snakeCase ? toSnakeCase(target[0]) : target[0]}"` : target.map(
1352
+ (column) => `coalesce("${snakeCase ? toSnakeCase(column) : column}", '')`
1353
+ ).join(` || ' ' || `);
1354
+ sql = `to_tsvector('${language}', ${columns})`;
1355
+ } else {
1356
+ for (const key in target) {
1357
+ sql = (sql ? sql + " || " : "(") + `setweight(to_tsvector('${language}', coalesce("${snakeCase ? toSnakeCase(key) : key}", '')), '${target[key]}')`;
1358
+ }
1359
+ if (sql) {
1360
+ sql += ")";
1335
1361
  } else {
1336
- for (const key in target) {
1337
- sql = (sql ? sql + " || " : "(") + `setweight(to_tsvector('${language}', coalesce("${snakeCase ? toSnakeCase(key) : key}", '')), '${target[key]}')`;
1338
- }
1339
- if (sql) {
1340
- sql += ")";
1341
- } else {
1342
- throw new Error("Empty target in the text search generated column");
1343
- }
1362
+ throw new Error("Empty target in the text search generated column");
1344
1363
  }
1345
- return sql;
1364
+ }
1365
+ return sql;
1366
+ };
1367
+ const toCode = () => {
1368
+ let code = ".generated(";
1369
+ const first = args[0];
1370
+ let target;
1371
+ if (typeof first === "string") {
1372
+ code += `'${first}', `;
1373
+ target = args[1];
1346
1374
  } else {
1347
- return raw(...args).toSQL(ctx, quotedAs);
1375
+ target = args[0];
1348
1376
  }
1377
+ if (Array.isArray(target)) {
1378
+ code += `[${target.map((x) => `'${x}'`).join(", ")}]`;
1379
+ } else {
1380
+ const pairs = [];
1381
+ for (const key in target) {
1382
+ pairs.push(
1383
+ `${quoteObjectKey(key)}: '${target[key]}'`
1384
+ );
1385
+ }
1386
+ code += `{ ${pairs.join(", ")} }`;
1387
+ }
1388
+ return code + ")";
1389
+ };
1390
+ return setColumnData(this, "generated", {
1391
+ toSQL,
1392
+ toCode
1349
1393
  });
1350
1394
  }
1351
1395
  }
@@ -3287,6 +3331,10 @@ const _queryRows = (q) => {
3287
3331
  q.q.returnType = "rows";
3288
3332
  return q;
3289
3333
  };
3334
+ const getFullColumnTable = (q, column, index, as) => {
3335
+ const table = column.slice(0, index);
3336
+ return as && table !== as && q.q.aliases?.[table] === as ? as : table;
3337
+ };
3290
3338
 
3291
3339
  const _join = (query, require, type, first, args) => {
3292
3340
  var _a;
@@ -5054,43 +5102,43 @@ const setParserForSelectedString = (q, arg, as, columnAs) => {
5054
5102
  var _a, _b;
5055
5103
  const index = arg.indexOf(".");
5056
5104
  if (index !== -1) {
5057
- const table = arg.slice(0, index);
5105
+ const table = getFullColumnTable(q, arg, index, as);
5058
5106
  const column = arg.slice(index + 1);
5059
5107
  if (column === "*") {
5060
5108
  addParsersForSelectJoined(q, table, columnAs);
5061
5109
  return table === as ? column : arg;
5062
- } else if (table === as) {
5110
+ }
5111
+ if (table === as) {
5063
5112
  if (columnAs) {
5064
- const parser = q.q.parsers?.[column];
5065
- if (parser) q.q.parsers[columnAs] = parser;
5113
+ const parser2 = q.q.parsers?.[column];
5114
+ if (parser2) q.q.parsers[columnAs] = parser2;
5066
5115
  }
5067
5116
  return handleComputed(q, q.q.computeds, column);
5068
- } else {
5069
- const parser = q.q.joinedParsers?.[table]?.[column];
5070
- if (parser) setParserToQuery(q.q, columnAs || column, parser);
5071
- const batchParsers = q.q.joinedBatchParsers?.[table];
5072
- if (batchParsers) {
5073
- for (const bp of batchParsers) {
5074
- if (bp.path[0] === column) {
5075
- ((_a = q.q).batchParsers ?? (_a.batchParsers = [])).push(bp);
5076
- }
5117
+ }
5118
+ const parser = q.q.joinedParsers?.[table]?.[column];
5119
+ if (parser) setParserToQuery(q.q, columnAs || column, parser);
5120
+ const batchParsers = q.q.joinedBatchParsers?.[table];
5121
+ if (batchParsers) {
5122
+ for (const bp of batchParsers) {
5123
+ if (bp.path[0] === column) {
5124
+ ((_a = q.q).batchParsers ?? (_a.batchParsers = [])).push(bp);
5077
5125
  }
5078
5126
  }
5079
- const computeds = q.q.joinedComputeds?.[table];
5080
- if (computeds?.[column]) {
5081
- const computed = computeds[column];
5082
- const map = (_b = q.q).hookSelect ?? (_b.hookSelect = /* @__PURE__ */ new Map());
5083
- for (const column2 of computed.deps) {
5084
- map.set(column2, { select: `${table}.${column2}` });
5085
- }
5086
- q.q.selectedComputeds = {
5087
- ...q.q.selectedComputeds,
5088
- [column]: computed
5089
- };
5090
- return;
5127
+ }
5128
+ const computeds = q.q.joinedComputeds?.[table];
5129
+ if (computeds?.[column]) {
5130
+ const computed = computeds[column];
5131
+ const map = (_b = q.q).hookSelect ?? (_b.hookSelect = /* @__PURE__ */ new Map());
5132
+ for (const column2 of computed.deps) {
5133
+ map.set(column2, { select: `${table}.${column2}` });
5091
5134
  }
5092
- return arg;
5135
+ q.q.selectedComputeds = {
5136
+ ...q.q.selectedComputeds,
5137
+ [column]: computed
5138
+ };
5139
+ return;
5093
5140
  }
5141
+ return arg;
5094
5142
  } else {
5095
5143
  if (columnAs) {
5096
5144
  const parser = q.q.parsers?.[arg];
@@ -5166,9 +5214,10 @@ const getShapeFromSelect = (q, isSubQuery) => {
5166
5214
  const addColumnToShapeFromSelect = (q, arg, shape, query, result, isSubQuery, key) => {
5167
5215
  const index = arg.indexOf(".");
5168
5216
  if (index !== -1) {
5169
- const table = arg.slice(0, index);
5217
+ const as = q.q.as || q.table;
5218
+ const table = getFullColumnTable(q, arg, index, as);
5170
5219
  const column = arg.slice(index + 1);
5171
- if (table === (q.q.as || q.table)) {
5220
+ if (table === as) {
5172
5221
  result[key || column] = shape[column];
5173
5222
  } else {
5174
5223
  const it = query.joinedShapes?.[table]?.[column];
@@ -5262,9 +5311,10 @@ const _getSelectableColumn = (q, arg) => {
5262
5311
  if (!type) {
5263
5312
  const index = arg.indexOf(".");
5264
5313
  if (index !== -1) {
5265
- const table = arg.slice(0, index);
5314
+ const as = q.q.as || q.table;
5315
+ const table = getFullColumnTable(q, arg, index, as);
5266
5316
  const column = arg.slice(index + 1);
5267
- if (table === (q.q.as || q.table)) {
5317
+ if (table === as) {
5268
5318
  type = q.shape[column];
5269
5319
  } else {
5270
5320
  type = q.q.joinedShapes?.[table]?.[column];
@@ -11183,9 +11233,10 @@ class ExpressionMethods {
11183
11233
  let column;
11184
11234
  const index = arg.indexOf(".");
11185
11235
  if (index !== -1) {
11186
- const table = arg.slice(0, index);
11236
+ const as = q.q.as || q.table;
11237
+ const table = getFullColumnTable(q, arg, index, as);
11187
11238
  const col = arg.slice(index + 1);
11188
- if (table === (q.q.as || q.table)) {
11239
+ if (table === as) {
11189
11240
  column = shape[col];
11190
11241
  } else {
11191
11242
  column = q.q.joinedShapes[table][col];
@@ -11867,9 +11918,12 @@ class QueryMethods {
11867
11918
  * @param fn - helper function
11868
11919
  */
11869
11920
  makeHelper(fn) {
11921
+ const as = this.q.as || this.table;
11870
11922
  return (query, ...args) => {
11871
11923
  const q = _clone(query);
11872
- q.q.as = void 0;
11924
+ if (q.q.as) {
11925
+ setQueryObjectValue(q, "aliases", as, q.q.as);
11926
+ }
11873
11927
  return fn(q, ...args);
11874
11928
  };
11875
11929
  }
@@ -12486,5 +12540,5 @@ function copyTableData(query, arg) {
12486
12540
  return q;
12487
12541
  }
12488
12542
 
12489
- export { Adapter, AfterCommitError, AggregateMethods, ArrayColumn, AsMethods, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BoxColumn, ByteaColumn, CidrColumn, CircleColumn, CitextColumn, Clear, ColumnRefExpression, ColumnType, ComputedColumn, Create, CustomTypeColumn, DateBaseColumn, DateColumn, DateTimeBaseClass, DateTimeTzBaseClass, Db, DecimalColumn, Delete, DomainColumn, DoublePrecisionColumn, DynamicRawSQL, EnumColumn, ExpressionMethods, FnExpression, For, FromMethods, Having, InetColumn, IntegerBaseColumn, IntegerColumn, IntervalColumn, JSONColumn, JSONTextColumn, Join, JsonMethods, LimitedTextBaseColumn, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MergeQueryMethods, MoneyColumn, MoreThanOneRowError, NotFoundError, NumberAsStringBaseColumn, NumberBaseColumn, OnConflictQueryBuilder, OnMethods, Operators, OrExpression, OrchidOrmError, OrchidOrmInternalError, PathColumn, PointColumn, PolygonColumn, PostgisGeographyPointColumn, QueryError, QueryGet, QueryHooks, QueryLog, QueryMethods, QueryUpsertOrCreate, RawSQL, RealColumn, RefExpression, SearchMethods, Select, SerialColumn, SmallIntColumn, SmallSerialColumn, SqlMethod, StringColumn, TextBaseColumn, TextColumn, Then, TimeColumn, TimestampColumn, TimestampTZColumn, Transaction, TransactionAdapter, TransformMethods, TsQueryColumn, TsVectorColumn, UUIDColumn, UnhandledTypeError, Union, UnknownColumn, Update, VarCharColumn, VirtualColumn, Where, WithMethods, XMLColumn, _afterCommitError, _clone, _getSelectableColumn, _initQueryBuilder, _queryAfterSaveCommit, _queryAll, _queryAs, _queryChangeCounter, _queryCreate, _queryCreateFrom, _queryCreateMany, _queryCreateManyFrom, _queryCreateManyRaw, _queryCreateRaw, _queryDefaults, _queryDelete, _queryExec, _queryFindBy, _queryFindByOptional, _queryGet, _queryGetOptional, _queryHookAfterCreate, _queryHookAfterCreateCommit, _queryHookAfterDelete, _queryHookAfterDeleteCommit, _queryHookAfterQuery, _queryHookAfterSave, _queryHookAfterUpdate, _queryHookAfterUpdateCommit, _queryHookBeforeCreate, _queryHookBeforeDelete, _queryHookBeforeQuery, _queryHookBeforeSave, _queryHookBeforeUpdate, _queryInsert, _queryInsertFrom, _queryInsertMany, _queryInsertManyFrom, _queryInsertManyRaw, _queryInsertRaw, _queryJoinOn, _queryJoinOnJsonPathEquals, _queryJoinOrOn, _queryOr, _queryOrNot, _queryResolveAlias, _queryRows, _querySelect, _queryTake, _queryTakeOptional, _queryUnion, _queryUpdate, _queryUpdateOrThrow, _queryUpdateRaw, _queryWhere, _queryWhereExists, _queryWhereIn, _queryWhereNot, _queryWhereNotOneOf, _queryWhereNotSql, _queryWhereOneOf, _queryWhereSql, addColumnParserToQuery, addParserForRawExpression, addParserForSelectItem, addQueryOn, anyShape, applyComputedColumns, checkIfASimpleQuery, cloneQuery, cloneQueryBaseUnscoped, columnCheckToCode, columnCode, columnForeignKeysToCode, columnIndexesToCode, columnsShapeToCode, commitSql$1 as commitSql, constraintInnerToCode, constraintToCode, copyTableData, countSelect, createDb, defaultSchemaConfig, escapeForLog, escapeForMigration, escapeString, extendQuery, filterResult, foreignKeyArgumentToCode, getClonedQueryData, getColumnInfo, getColumnTypes, getPrimaryKeys, getQueryAs, getShapeFromSelect, getSqlText, handleResult, identityToCode, indexInnerToCode, indexToCode, instantiateColumn, isDefaultTimeStamp, isQueryReturnsAll, isSelectingCount, joinSubQuery, logParamToLogObject, makeColumnTypes, makeColumnsByType, makeFnExpression, makeRegexToFindInSql, makeSQL, parseRecord, parseTableData, parseTableDataInput, postgisTypmodToSql, primaryKeyInnerToCode, processComputedBatches, processComputedResult, processSelectArg, pushLimitSQL, pushQueryArray, pushQueryOn, pushQueryOnForOuter, pushQueryOrOn, pushQueryValue, pushTableDataCode, queryFrom, queryFromSql, queryJson, queryMethodByReturnType, queryTypeWithLimitOne, queryWrap, raw, referencesArgsToCode, resolveSubQueryCallback, rollbackSql$1 as rollbackSql, saveSearchAlias, setColumnDefaultParse, setColumnEncode, setColumnParse, setColumnParseNull, setParserForSelectedString, setQueryObjectValue, setQueryOperators, simplifyColumnDefault, sqlFn, sqlQueryArgsToExpression, tableDataMethods, templateLiteralToSQL, testTransaction, throwIfJoinLateral, throwIfNoWhere, toSQL, toSQLCacheKey };
12543
+ export { Adapter, AfterCommitError, AggregateMethods, ArrayColumn, AsMethods, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BoxColumn, ByteaColumn, CidrColumn, CircleColumn, CitextColumn, Clear, ColumnRefExpression, ColumnType, ComputedColumn, Create, CustomTypeColumn, DateBaseColumn, DateColumn, DateTimeBaseClass, DateTimeTzBaseClass, Db, DecimalColumn, Delete, DomainColumn, DoublePrecisionColumn, DynamicRawSQL, EnumColumn, ExpressionMethods, FnExpression, For, FromMethods, Having, InetColumn, IntegerBaseColumn, IntegerColumn, IntervalColumn, JSONColumn, JSONTextColumn, Join, JsonMethods, LimitedTextBaseColumn, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MergeQueryMethods, MoneyColumn, MoreThanOneRowError, NotFoundError, NumberAsStringBaseColumn, NumberBaseColumn, OnConflictQueryBuilder, OnMethods, Operators, OrExpression, OrchidOrmError, OrchidOrmInternalError, PathColumn, PointColumn, PolygonColumn, PostgisGeographyPointColumn, QueryError, QueryGet, QueryHooks, QueryLog, QueryMethods, QueryUpsertOrCreate, RawSQL, RealColumn, RefExpression, SearchMethods, Select, SerialColumn, SmallIntColumn, SmallSerialColumn, SqlMethod, StringColumn, TextBaseColumn, TextColumn, Then, TimeColumn, TimestampColumn, TimestampTZColumn, Transaction, TransactionAdapter, TransformMethods, TsQueryColumn, TsVectorColumn, UUIDColumn, UnhandledTypeError, Union, UnknownColumn, Update, VarCharColumn, VirtualColumn, Where, WithMethods, XMLColumn, _afterCommitError, _clone, _getSelectableColumn, _initQueryBuilder, _queryAfterSaveCommit, _queryAll, _queryAs, _queryChangeCounter, _queryCreate, _queryCreateFrom, _queryCreateMany, _queryCreateManyFrom, _queryCreateManyRaw, _queryCreateRaw, _queryDefaults, _queryDelete, _queryExec, _queryFindBy, _queryFindByOptional, _queryGet, _queryGetOptional, _queryHookAfterCreate, _queryHookAfterCreateCommit, _queryHookAfterDelete, _queryHookAfterDeleteCommit, _queryHookAfterQuery, _queryHookAfterSave, _queryHookAfterUpdate, _queryHookAfterUpdateCommit, _queryHookBeforeCreate, _queryHookBeforeDelete, _queryHookBeforeQuery, _queryHookBeforeSave, _queryHookBeforeUpdate, _queryInsert, _queryInsertFrom, _queryInsertMany, _queryInsertManyFrom, _queryInsertManyRaw, _queryInsertRaw, _queryJoinOn, _queryJoinOnJsonPathEquals, _queryJoinOrOn, _queryOr, _queryOrNot, _queryResolveAlias, _queryRows, _querySelect, _queryTake, _queryTakeOptional, _queryUnion, _queryUpdate, _queryUpdateOrThrow, _queryUpdateRaw, _queryWhere, _queryWhereExists, _queryWhereIn, _queryWhereNot, _queryWhereNotOneOf, _queryWhereNotSql, _queryWhereOneOf, _queryWhereSql, addColumnParserToQuery, addParserForRawExpression, addParserForSelectItem, addQueryOn, anyShape, applyComputedColumns, checkIfASimpleQuery, cloneQuery, cloneQueryBaseUnscoped, columnCheckToCode, columnCode, columnForeignKeysToCode, columnIndexesToCode, columnsShapeToCode, commitSql$1 as commitSql, constraintInnerToCode, constraintToCode, copyTableData, countSelect, createDb, defaultSchemaConfig, escapeForLog, escapeForMigration, escapeString, extendQuery, filterResult, foreignKeyArgumentToCode, getClonedQueryData, getColumnInfo, getColumnTypes, getFullColumnTable, getPrimaryKeys, getQueryAs, getShapeFromSelect, getSqlText, handleResult, identityToCode, indexInnerToCode, indexToCode, instantiateColumn, isDefaultTimeStamp, isQueryReturnsAll, isSelectingCount, joinSubQuery, logParamToLogObject, makeColumnTypes, makeColumnsByType, makeFnExpression, makeRegexToFindInSql, makeSQL, parseRecord, parseTableData, parseTableDataInput, postgisTypmodToSql, primaryKeyInnerToCode, processComputedBatches, processComputedResult, processSelectArg, pushLimitSQL, pushQueryArray, pushQueryOn, pushQueryOnForOuter, pushQueryOrOn, pushQueryValue, pushTableDataCode, queryFrom, queryFromSql, queryJson, queryMethodByReturnType, queryTypeWithLimitOne, queryWrap, raw, referencesArgsToCode, resolveSubQueryCallback, rollbackSql$1 as rollbackSql, saveSearchAlias, setColumnDefaultParse, setColumnEncode, setColumnParse, setColumnParseNull, setParserForSelectedString, setQueryObjectValue, setQueryOperators, simplifyColumnDefault, sqlFn, sqlQueryArgsToExpression, tableDataMethods, templateLiteralToSQL, testTransaction, throwIfJoinLateral, throwIfNoWhere, toSQL, toSQLCacheKey };
12490
12544
  //# sourceMappingURL=index.mjs.map