pqb 0.67.4 → 0.67.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.mjs CHANGED
@@ -8010,12 +8010,12 @@ var FnExpression = class extends Expression {
8010
8010
  if (options.distinct && !options.withinGroup) sql.push("DISTINCT ");
8011
8011
  const q = this.q;
8012
8012
  sql.push(this.args.map((arg) => {
8013
- if (typeof arg === "string") return arg === "*" ? "*" : columnToSql(ctx, q, q.shape, arg, quotedAs);
8013
+ if (typeof arg === "string") return arg === "*" ? "*" : fnArgToSql(ctx, q, arg, quotedAs);
8014
8014
  else if (arg instanceof Expression) return arg.toSQL(ctx, quotedAs);
8015
8015
  else if ("pairs" in arg) {
8016
8016
  const args = [];
8017
8017
  const { pairs } = arg;
8018
- for (const key in pairs) args.push(`${addValue(values, key)}::text, ${rawOrColumnToSql(ctx, q, pairs[key], quotedAs)}`);
8018
+ for (const key in pairs) args.push(`${addValue(values, key)}::text, ${fnArgToSql(ctx, q, pairs[key], quotedAs)}`);
8019
8019
  return args.join(", ");
8020
8020
  } else return addValue(values, arg.value);
8021
8021
  }).join(", "));
@@ -8039,6 +8039,13 @@ var FnExpression = class extends Expression {
8039
8039
  return sql.join("");
8040
8040
  }
8041
8041
  };
8042
+ const fnArgToSql = (ctx, data, arg, quotedAs) => {
8043
+ if (typeof arg === "string") {
8044
+ if (arg.endsWith(".*") || data.valuesJoinedAs?.[arg]) return columnToSql(ctx, data, data.shape, arg, quotedAs);
8045
+ return selectedColumnToSql(ctx, data, data.shape, arg, quotedAs);
8046
+ }
8047
+ return arg.toSQL(ctx, quotedAs);
8048
+ };
8042
8049
  function makeFnExpression(self, type, fn, args, options) {
8043
8050
  const q = extendQuery(self, type.operators);
8044
8051
  q.baseQuery.type = ExpressionTypeMethod.prototype.type;
@@ -9835,6 +9842,34 @@ const getSqlText = (sql) => {
9835
9842
  if ("text" in sql) return sql.text;
9836
9843
  throw new Error(`Batch SQL is not supported in this query`);
9837
9844
  };
9845
+ const queryToSql = (query) => {
9846
+ const sql = query.toSQL();
9847
+ if ("batch" in sql) throw new OrchidOrmInternalError(query, "Batch SQL is not supported in query definitions");
9848
+ return sql;
9849
+ };
9850
+ const rawSqlToSql = (sql) => {
9851
+ if (typeof sql === "string") return { text: sql };
9852
+ const values = [];
9853
+ return {
9854
+ text: sql.toSQL({ values }),
9855
+ values
9856
+ };
9857
+ };
9858
+ const sqlToRawSql = (sql) => {
9859
+ const { values } = sql;
9860
+ if (!values?.length) return raw({ raw: sql.text });
9861
+ const rawValues = {};
9862
+ for (let i = 0; i < values.length; i++) rawValues[`queryValue${i + 1}`] = values[i];
9863
+ return raw({ raw: replaceSqlPlaceholders(sql.text, values.length) }).values(rawValues);
9864
+ };
9865
+ const replaceSqlPlaceholders = (sql, valuesCount) => {
9866
+ const parts = sql.split("'");
9867
+ for (let i = 0; i < parts.length; i += 2) parts[i] = parts[i].replace(/\$(\d+)/g, (match, index) => {
9868
+ const number = Number(index);
9869
+ return number > 0 && number <= valuesCount ? `$queryValue${number}` : match;
9870
+ });
9871
+ return parts.join("'");
9872
+ };
9838
9873
  var QuerySql = class {
9839
9874
  sql(...args) {
9840
9875
  const sql = raw(...args);
@@ -12543,6 +12578,25 @@ function getSupportedDefaultPrivileges(version) {
12543
12578
  supportedPrivilegesCache.set(version, result);
12544
12579
  return result;
12545
12580
  }
12581
+ const makeRefreshMaterializedViewSql = (query, options) => {
12582
+ if (options?.concurrently && options.withData === false) throw new Error("Cannot refresh a materialized view concurrently with WITH NO DATA");
12583
+ const sql = ["REFRESH MATERIALIZED VIEW"];
12584
+ if (options?.concurrently) sql.push("CONCURRENTLY");
12585
+ sql.push(quoteTableWithSchema(query));
12586
+ if (options?.withData === true) sql.push("WITH DATA");
12587
+ else if (options?.withData === false) sql.push("WITH NO DATA");
12588
+ return {
12589
+ text: sql.join(" "),
12590
+ values: []
12591
+ };
12592
+ };
12593
+ /**
12594
+ * Refresh a materialized view.
12595
+ */
12596
+ const refreshMaterializedView = async (query, options) => {
12597
+ const sql = makeRefreshMaterializedViewSql(query, options);
12598
+ await (query.internal.asyncStorage.getStore()?.transactionAdapter || query.q.adapter).query(sql.text, sql.values);
12599
+ };
12546
12600
  var QueryJsonMethods = class {
12547
12601
  /**
12548
12602
  * Wraps the query in a way to select a single JSON string.
@@ -13801,7 +13855,7 @@ const performQuery = async (q, args, method) => {
13801
13855
  }
13802
13856
  };
13803
13857
  var Db = class extends QueryMethods {
13804
- constructor(adapterNotInTransaction, qb, table = void 0, shape, columnTypes, asyncStorage, options, tableData = {}) {
13858
+ constructor(adapterNotInTransaction, qb, table = void 0, shape, columnTypes, asyncStorage, options, tableData = {}, viewData) {
13805
13859
  super();
13806
13860
  this.adapterNotInTransaction = adapterNotInTransaction;
13807
13861
  this.qb = qb;
@@ -13867,7 +13921,10 @@ var Db = class extends QueryMethods {
13867
13921
  noPrimaryKey: options.noPrimaryKey === "ignore",
13868
13922
  comment: options.comment,
13869
13923
  readOnly: options.readOnly,
13924
+ materialized: options.materialized,
13925
+ generatorIgnored: options.generatorIgnore,
13870
13926
  nowSQL: options.nowSQL,
13927
+ viewData,
13871
13928
  tableData,
13872
13929
  selectAllCount
13873
13930
  };
@@ -14398,6 +14455,6 @@ const testTransaction = {
14398
14455
  if (db.internal[trxForTest]?.length === 0) return db.q.adapter.close();
14399
14456
  }
14400
14457
  };
14401
- export { AdapterClass, ArrayColumn, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BoxColumn, ByteaColumn, CidrColumn, CircleColumn, CitextColumn, Column, CustomTypeColumn, DateBaseColumn, DateColumn, DateTimeBaseClass, DateTimeTzBaseClass, Db, DecimalColumn, DomainColumn, DoublePrecisionColumn, DynamicRawSQL, EnumColumn, Expression, InetColumn, IntegerBaseColumn, IntegerColumn, IntervalColumn, JSONColumn, JSONTextColumn, LimitedTextBaseColumn, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MoneyColumn, NotFoundError, NumberAsStringBaseColumn, NumberBaseColumn, Operators, OrchidOrmInternalError, PathColumn, PointColumn, PolygonColumn, PostgisGeographyPointColumn, QueryError, QueryHookUtils, QueryHooks, RawSql, RealColumn, SerialColumn, SmallIntColumn, SmallSerialColumn, StringColumn, TextBaseColumn, TextColumn, TimeColumn, TimestampColumn, TimestampTZColumn, TransactionAdapterClass, TsQueryColumn, TsVectorColumn, UUIDColumn, UnknownColumn, VarCharColumn, VirtualColumn, XMLColumn, _appendQuery, _appendQueryOnUpsertCreate, _clone, _createDbSqlMethod, _hookSelectColumns, _initQueryBuilder, _orCreate, _prependWith, _queryCreate, _queryCreateMany, _queryCreateManyFrom, _queryDefaults, _queryDelete, _queryFindBy, _queryFindByOptional, _queryHookAfterCreate, _queryHookAfterUpdate, _queryInsert, _queryInsertMany, _queryJoinOn, _queryRows, _querySelect, _queryTake, _queryTakeOptional, _queryUpdate, _queryUpdateOrThrow, _queryUpsert, _queryWhere, _queryWhereExists, _queryWhereIn, addCode, addTopCte, addTopCteSql, applyMixins, assignDbDataToColumn, backtickQuote, cloneQueryBaseUnscoped, codeToString, colors, columnsShapeToCode, constraintInnerToCode, consumeColumnName, copyTableData, createDbWithAdapter, deepCompare, defaultSchemaConfig, emptyArray, emptyObject, escapeForMigration, escapeString, excludeInnerToCode, exhaustive, getCallerFilePath, getClonedQueryData, getColumnBaseType, getColumnInfo, getColumnTypes, getDateAsDateFn, getDateAsNumberFn, getDriverErrorCode, getFreeAlias, getFreeSetAlias, getImportPath, getPrimaryKeys, getQueryAs, getQuerySchema, getShapeFromSelect, getSqlText, getStackTrace, getSupportedDefaultPrivileges, indexInnerToCode, internalSchemaConfig, isExpression, isQueryReturnsAll, isRawSQL, logColors, logParamToLogObject, makeColumnNullable, makeColumnTypes, makeColumnsByType, makeConnectRetryConfig, noop, objectHasValues, omit, parseTableData, parseTableDataInput, pathToLog, pick, pluralize, prepareSubQueryForSql, primaryKeyInnerToCode, pushQueryOnForOuter, pushQueryValueImmutable, pushTableDataCode, quoteIdentifier, quoteObjectKey, quoteTableWithSchema, raw, rawSqlToCode, referencesArgsToCode, returnArg, setColumnData, setColumnEncode, setColumnParse, setColumnParseNull, setCurrentColumnName, setDataValue, setDefaultLanguage, setFreeAlias, setQueryObjectValueImmutable, singleQuote, tableDataMethods, testTransaction, toArray, toCamelCase, toPascalCase, toSnakeCase, wrapAdapterFnWithConnectRetry };
14458
+ export { AdapterClass, ArrayColumn, BigIntColumn, BigSerialColumn, BitColumn, BitVaryingColumn, BooleanColumn, BoxColumn, ByteaColumn, CidrColumn, CircleColumn, CitextColumn, Column, CustomTypeColumn, DateBaseColumn, DateColumn, DateTimeBaseClass, DateTimeTzBaseClass, Db, DecimalColumn, DomainColumn, DoublePrecisionColumn, DynamicRawSQL, EnumColumn, Expression, InetColumn, IntegerBaseColumn, IntegerColumn, IntervalColumn, JSONColumn, JSONTextColumn, LimitedTextBaseColumn, LineColumn, LsegColumn, MacAddr8Column, MacAddrColumn, MoneyColumn, NotFoundError, NumberAsStringBaseColumn, NumberBaseColumn, Operators, OrchidOrmInternalError, PathColumn, PointColumn, PolygonColumn, PostgisGeographyPointColumn, QueryError, QueryHookUtils, QueryHooks, RawSql, RealColumn, SerialColumn, SmallIntColumn, SmallSerialColumn, StringColumn, TextBaseColumn, TextColumn, TimeColumn, TimestampColumn, TimestampTZColumn, TransactionAdapterClass, TsQueryColumn, TsVectorColumn, UUIDColumn, UnknownColumn, VarCharColumn, VirtualColumn, XMLColumn, _appendQuery, _appendQueryOnUpsertCreate, _clone, _createDbSqlMethod, _hookSelectColumns, _initQueryBuilder, _orCreate, _prependWith, _queryCreate, _queryCreateMany, _queryCreateManyFrom, _queryDefaults, _queryDelete, _queryFindBy, _queryFindByOptional, _queryHookAfterCreate, _queryHookAfterUpdate, _queryInsert, _queryInsertMany, _queryJoinOn, _queryRows, _querySelect, _queryTake, _queryTakeOptional, _queryUpdate, _queryUpdateOrThrow, _queryUpsert, _queryWhere, _queryWhereExists, _queryWhereIn, addCode, addTopCte, addTopCteSql, applyMixins, assignDbDataToColumn, backtickQuote, cloneQueryBaseUnscoped, codeToString, colors, columnsShapeToCode, constraintInnerToCode, consumeColumnName, copyTableData, createDbWithAdapter, deepCompare, defaultSchemaConfig, emptyArray, emptyObject, escapeForMigration, escapeString, excludeInnerToCode, exhaustive, getCallerFilePath, getClonedQueryData, getColumnBaseType, getColumnInfo, getColumnTypes, getDateAsDateFn, getDateAsNumberFn, getDriverErrorCode, getFreeAlias, getFreeSetAlias, getImportPath, getPrimaryKeys, getQueryAs, getQuerySchema, getShapeFromSelect, getSqlText, getStackTrace, getSupportedDefaultPrivileges, indexInnerToCode, internalSchemaConfig, isExpression, isQueryReturnsAll, isRawSQL, logColors, logParamToLogObject, makeColumnNullable, makeColumnTypes, makeColumnsByType, makeConnectRetryConfig, noop, objectHasValues, omit, parseTableData, parseTableDataInput, pathToLog, pick, pluralize, prepareSubQueryForSql, primaryKeyInnerToCode, pushQueryOnForOuter, pushQueryValueImmutable, pushTableDataCode, queryToSql, quoteIdentifier, quoteObjectKey, quoteTableWithSchema, raw, rawSqlToCode, rawSqlToSql, referencesArgsToCode, refreshMaterializedView, returnArg, setColumnData, setColumnEncode, setColumnParse, setColumnParseNull, setCurrentColumnName, setDataValue, setDefaultLanguage, setFreeAlias, setQueryObjectValueImmutable, singleQuote, sqlToRawSql, tableDataMethods, testTransaction, toArray, toCamelCase, toPascalCase, toSnakeCase, wrapAdapterFnWithConnectRetry };
14402
14459
 
14403
14460
  //# sourceMappingURL=index.mjs.map