pqb 0.9.2 → 0.9.4
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/CHANGELOG.md +12 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +77 -60
- package/dist/index.js.map +1 -1
- package/dist/{index.esm.js → index.mjs} +67 -55
- package/dist/index.mjs.map +1 -0
- package/package.json +3 -3
- package/src/adapter.ts +4 -3
- package/src/columnsOperators.ts +5 -4
- package/src/queryMethods/queryMethods.ts +2 -2
- package/src/queryMethods/then.ts +3 -3
- package/src/queryMethods/transaction.test.ts +4 -4
- package/src/quote.test.ts +35 -0
- package/src/quote.ts +6 -3
- package/src/sql/copy.ts +9 -8
- package/src/sql/select.ts +11 -5
- package/dist/index.esm.js.map +0 -1
package/CHANGELOG.md
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -4455,6 +4455,7 @@ declare const columnsByType: Record<string, new (...args: never[]) => ColumnType
|
|
|
4455
4455
|
|
|
4456
4456
|
declare type Value = any;
|
|
4457
4457
|
declare const quote: (value: Value) => string;
|
|
4458
|
+
declare const quoteString: (value: string) => string;
|
|
4458
4459
|
|
|
4459
4460
|
declare const pushQueryArray: <T extends {
|
|
4460
4461
|
query: QueryData;
|
|
@@ -4466,4 +4467,4 @@ declare const setQueryObjectValue: <T extends {
|
|
|
4466
4467
|
query: QueryData;
|
|
4467
4468
|
}>(q: T, object: string, key: string, value: unknown) => T;
|
|
4468
4469
|
|
|
4469
|
-
export { Adapter, AdapterOptions, AddQueryJoinedTable, AddQuerySelect, AddQueryWith, AfterCallback, Aggregate, Aggregate1ArgumentTypes, AggregateArg, AggregateItem, AggregateItemArg, AggregateItemOptions, AggregateOptions, AliasOrTable, AnyColumnType, AnyColumnTypeCreator, ArrayCardinality, ArrayColumn, ArrayData, ArrayOfColumnsObjects, AssertArray, BaseNumberData, 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, DbTableOptions, DecimalBaseColumn, DecimalColumn, DeepPartial, 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, QueryUpsert, 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, foreignKeyArgumentToCode, foreignKeyToCode, getClonedQueryData, getColumnTypes, getQueryAs, getQueryParsers, getRaw, getRawSql, getTableData, getValidEnumValues, getValueKey, handleResult, identity, indexToCode, instanceOf, instantiateColumn, intersection, 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, raw, record, relationQueryKey, required, resetTableData, scalarTypes, set, setQueryObjectValue, singleQuote, singleQuoteArray, toArray, toCode, toSql, toSqlCacheKey, tuple, union };
|
|
4470
|
+
export { Adapter, AdapterOptions, AddQueryJoinedTable, AddQuerySelect, AddQueryWith, AfterCallback, Aggregate, Aggregate1ArgumentTypes, AggregateArg, AggregateItem, AggregateItemArg, AggregateItemOptions, AggregateOptions, AliasOrTable, AnyColumnType, AnyColumnTypeCreator, ArrayCardinality, ArrayColumn, ArrayData, ArrayOfColumnsObjects, AssertArray, BaseNumberData, 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, DbTableOptions, DecimalBaseColumn, DecimalColumn, DeepPartial, 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, QueryUpsert, 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, foreignKeyArgumentToCode, foreignKeyToCode, getClonedQueryData, getColumnTypes, getQueryAs, getQueryParsers, getRaw, getRawSql, getTableData, getValidEnumValues, getValueKey, handleResult, identity, indexToCode, instanceOf, instantiateColumn, intersection, 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 };
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var pg = require('pg');
|
|
6
6
|
|
|
7
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
|
+
|
|
9
|
+
var pg__default = /*#__PURE__*/_interopDefaultLegacy(pg);
|
|
10
|
+
|
|
7
11
|
const defaultsKey = Symbol("defaults");
|
|
8
12
|
const queryTypeWithLimitOne = {
|
|
9
13
|
one: true,
|
|
@@ -505,44 +509,6 @@ class UnhandledTypeError extends PormInternalError {
|
|
|
505
509
|
}
|
|
506
510
|
}
|
|
507
511
|
|
|
508
|
-
const singleQuoteRegex = /'/g;
|
|
509
|
-
const doubleQuoteRegex = /"/g;
|
|
510
|
-
const quoteValue$1 = (value) => {
|
|
511
|
-
const type = typeof value;
|
|
512
|
-
if (type === "number")
|
|
513
|
-
return String(value);
|
|
514
|
-
else if (type === "string")
|
|
515
|
-
return `"${value.replace(doubleQuoteRegex, '\\"').replace(singleQuoteRegex, "''")}"`;
|
|
516
|
-
else if (type === "boolean")
|
|
517
|
-
return value ? "true" : "false";
|
|
518
|
-
else if (value instanceof Date)
|
|
519
|
-
return `"${value.toISOString()}"`;
|
|
520
|
-
else if (Array.isArray(value))
|
|
521
|
-
return quoteArray(value);
|
|
522
|
-
else if (type === null || type === void 0)
|
|
523
|
-
return "NULL";
|
|
524
|
-
else
|
|
525
|
-
return `"${JSON.stringify(value).replace(doubleQuoteRegex, '\\"').replace(singleQuoteRegex, "''")}"`;
|
|
526
|
-
};
|
|
527
|
-
const quoteArray = (array) => `'{${array.map(quoteValue$1).join(",")}}'`;
|
|
528
|
-
const quote = (value) => {
|
|
529
|
-
const type = typeof value;
|
|
530
|
-
if (type === "number")
|
|
531
|
-
return `${value}`;
|
|
532
|
-
else if (type === "string")
|
|
533
|
-
return `'${value.replace(singleQuoteRegex, "''")}'`;
|
|
534
|
-
else if (type === "boolean")
|
|
535
|
-
return value ? "true" : "false";
|
|
536
|
-
else if (value instanceof Date)
|
|
537
|
-
return `'${value.toISOString()}'`;
|
|
538
|
-
else if (Array.isArray(value))
|
|
539
|
-
return quoteArray(value);
|
|
540
|
-
else if (value === null || value === void 0)
|
|
541
|
-
return "NULL";
|
|
542
|
-
else
|
|
543
|
-
return `'${JSON.stringify(value).replace(singleQuoteRegex, "''")}'`;
|
|
544
|
-
};
|
|
545
|
-
|
|
546
512
|
const relationQueryKey = Symbol("relationQuery");
|
|
547
513
|
const isRequiredRelationKey = Symbol("isRequiredRelation");
|
|
548
514
|
|
|
@@ -673,7 +639,13 @@ const pushSubQuerySql = (query, as, values, list) => {
|
|
|
673
639
|
let subQuerySql = `(${makeSql(query, { values }).text})`;
|
|
674
640
|
const { coalesceValue } = query.query;
|
|
675
641
|
if (coalesceValue !== void 0) {
|
|
676
|
-
|
|
642
|
+
let value;
|
|
643
|
+
if (typeof coalesceValue === "object" && coalesceValue && isRaw(coalesceValue)) {
|
|
644
|
+
value = getRaw(coalesceValue, values);
|
|
645
|
+
} else {
|
|
646
|
+
values.push(coalesceValue);
|
|
647
|
+
value = `$${values.length}`;
|
|
648
|
+
}
|
|
677
649
|
subQuerySql = `COALESCE(${subQuerySql}, ${value})`;
|
|
678
650
|
}
|
|
679
651
|
list.push(`${subQuerySql} AS ${q(as)}`);
|
|
@@ -1042,13 +1014,54 @@ const pushColumnInfoSql = (ctx, table, query) => {
|
|
|
1042
1014
|
}
|
|
1043
1015
|
};
|
|
1044
1016
|
|
|
1017
|
+
const singleQuoteRegex = /'/g;
|
|
1018
|
+
const doubleQuoteRegex = /"/g;
|
|
1019
|
+
const quoteValue$1 = (value) => {
|
|
1020
|
+
const type = typeof value;
|
|
1021
|
+
if (type === "number")
|
|
1022
|
+
return String(value);
|
|
1023
|
+
else if (type === "string")
|
|
1024
|
+
return `"${value.replace(doubleQuoteRegex, '\\"').replace(singleQuoteRegex, "''")}"`;
|
|
1025
|
+
else if (type === "boolean")
|
|
1026
|
+
return value ? "true" : "false";
|
|
1027
|
+
else if (value instanceof Date)
|
|
1028
|
+
return `"${value.toISOString()}"`;
|
|
1029
|
+
else if (Array.isArray(value))
|
|
1030
|
+
return quoteArray(value);
|
|
1031
|
+
else if (value === null || value === void 0)
|
|
1032
|
+
return "NULL";
|
|
1033
|
+
else
|
|
1034
|
+
return `"${JSON.stringify(value).replace(doubleQuoteRegex, '\\"').replace(singleQuoteRegex, "''")}"`;
|
|
1035
|
+
};
|
|
1036
|
+
const quoteArray = (array) => `'{${array.map(quoteValue$1).join(",")}}'`;
|
|
1037
|
+
const quote = (value) => {
|
|
1038
|
+
const type = typeof value;
|
|
1039
|
+
if (type === "number")
|
|
1040
|
+
return `${value}`;
|
|
1041
|
+
else if (type === "string")
|
|
1042
|
+
return quoteString(value);
|
|
1043
|
+
else if (type === "boolean")
|
|
1044
|
+
return value ? "true" : "false";
|
|
1045
|
+
else if (value instanceof Date)
|
|
1046
|
+
return `'${value.toISOString()}'`;
|
|
1047
|
+
else if (Array.isArray(value))
|
|
1048
|
+
return quoteArray(value);
|
|
1049
|
+
else if (value === null || value === void 0)
|
|
1050
|
+
return "NULL";
|
|
1051
|
+
else
|
|
1052
|
+
return `'${JSON.stringify(value).replace(singleQuoteRegex, "''")}'`;
|
|
1053
|
+
};
|
|
1054
|
+
const quoteString = (value) => {
|
|
1055
|
+
return `'${value.replace(singleQuoteRegex, "''")}'`;
|
|
1056
|
+
};
|
|
1057
|
+
|
|
1045
1058
|
const pushCopySql = (ctx, table, query, quotedAs) => {
|
|
1046
1059
|
const { sql } = ctx;
|
|
1047
1060
|
const { copy } = query;
|
|
1048
1061
|
const columns = copy.columns ? `(${copy.columns.map(q).join(", ")})` : "";
|
|
1049
1062
|
const target = "from" in copy ? copy.from : copy.to;
|
|
1050
1063
|
sql.push(
|
|
1051
|
-
`COPY ${q(table.table)}${columns} ${"from" in copy ? "FROM" : "TO"} ${typeof target === "string" ?
|
|
1064
|
+
`COPY ${q(table.table)}${columns} ${"from" in copy ? "FROM" : "TO"} ${typeof target === "string" ? quoteString(target) : `PROGRAM ${quoteString(target.program)}`}`
|
|
1052
1065
|
);
|
|
1053
1066
|
if (Object.keys(copy).length > (copy.columns ? 2 : 1)) {
|
|
1054
1067
|
const options = [];
|
|
@@ -1057,15 +1070,15 @@ const pushCopySql = (ctx, table, query, quotedAs) => {
|
|
|
1057
1070
|
if (copy.freeze)
|
|
1058
1071
|
options.push(`FREEZE ${copy.freeze}`);
|
|
1059
1072
|
if (copy.delimiter)
|
|
1060
|
-
options.push(`DELIMITER ${
|
|
1073
|
+
options.push(`DELIMITER ${quoteString(copy.delimiter)}`);
|
|
1061
1074
|
if (copy.null)
|
|
1062
|
-
options.push(`NULL ${
|
|
1075
|
+
options.push(`NULL ${quoteString(copy.null)}`);
|
|
1063
1076
|
if (copy.header)
|
|
1064
1077
|
options.push(`HEADER ${copy.header}`);
|
|
1065
1078
|
if (copy.quote)
|
|
1066
|
-
options.push(`QUOTE ${
|
|
1079
|
+
options.push(`QUOTE ${quoteString(copy.quote)}`);
|
|
1067
1080
|
if (copy.escape)
|
|
1068
|
-
options.push(`ESCAPE ${
|
|
1081
|
+
options.push(`ESCAPE ${quoteString(copy.escape)}`);
|
|
1069
1082
|
if (copy.forceQuote)
|
|
1070
1083
|
options.push(
|
|
1071
1084
|
`FORCE_QUOTE ${copy.forceQuote === "*" ? "*" : `(${copy.forceQuote.map(q).join(", ")})`}`
|
|
@@ -1075,7 +1088,7 @@ const pushCopySql = (ctx, table, query, quotedAs) => {
|
|
|
1075
1088
|
if (copy.forceNull)
|
|
1076
1089
|
options.push(`FORCE_NULL (${copy.forceNull.map(q).join(", ")})`);
|
|
1077
1090
|
if (copy.encoding)
|
|
1078
|
-
options.push(`ENCODING ${
|
|
1091
|
+
options.push(`ENCODING ${quoteString(copy.encoding)}`);
|
|
1079
1092
|
sql.push(`WITH (${options.join(", ")})`);
|
|
1080
1093
|
}
|
|
1081
1094
|
pushWhereStatementSql(ctx, table, query, quotedAs);
|
|
@@ -1595,9 +1608,11 @@ const all = {
|
|
|
1595
1608
|
)}`
|
|
1596
1609
|
),
|
|
1597
1610
|
jsonPath: () => createOperator(
|
|
1598
|
-
(key, [path, op, value], values) => `jsonb_path_query_first(${key}, ${
|
|
1599
|
-
|
|
1600
|
-
|
|
1611
|
+
(key, [path, op, value], values) => `jsonb_path_query_first(${key}, '${path}') #>> '{}' ${op} ${quoteValue(
|
|
1612
|
+
value,
|
|
1613
|
+
values,
|
|
1614
|
+
true
|
|
1615
|
+
)}`
|
|
1601
1616
|
),
|
|
1602
1617
|
jsonSupersetOf: () => createOperator(
|
|
1603
1618
|
(key, value, values) => `${key} @> ${quoteValue(value, values, true)}`
|
|
@@ -4128,17 +4143,18 @@ var __objRest$1 = (source, exclude) => {
|
|
|
4128
4143
|
}
|
|
4129
4144
|
return target;
|
|
4130
4145
|
};
|
|
4146
|
+
const { types } = pg__default["default"];
|
|
4131
4147
|
const defaultTypeParsers = {};
|
|
4132
|
-
for (const key in
|
|
4133
|
-
const id =
|
|
4134
|
-
defaultTypeParsers[id] =
|
|
4148
|
+
for (const key in types.builtins) {
|
|
4149
|
+
const id = types.builtins[key];
|
|
4150
|
+
defaultTypeParsers[id] = types.getTypeParser(id);
|
|
4135
4151
|
}
|
|
4136
4152
|
[
|
|
4137
|
-
|
|
4138
|
-
|
|
4139
|
-
|
|
4140
|
-
|
|
4141
|
-
|
|
4153
|
+
types.builtins.DATE,
|
|
4154
|
+
types.builtins.TIMESTAMP,
|
|
4155
|
+
types.builtins.TIMESTAMPTZ,
|
|
4156
|
+
types.builtins.TIME,
|
|
4157
|
+
types.builtins.CIRCLE
|
|
4142
4158
|
].forEach((id) => {
|
|
4143
4159
|
delete defaultTypeParsers[id];
|
|
4144
4160
|
});
|
|
@@ -4155,7 +4171,7 @@ class Adapter {
|
|
|
4155
4171
|
}
|
|
4156
4172
|
}
|
|
4157
4173
|
this.config = config;
|
|
4158
|
-
this.pool = new
|
|
4174
|
+
this.pool = new pg__default["default"].Pool(config);
|
|
4159
4175
|
}
|
|
4160
4176
|
async query(query, types2) {
|
|
4161
4177
|
return performQuery(this.pool, query, types2);
|
|
@@ -4179,7 +4195,7 @@ class Adapter {
|
|
|
4179
4195
|
}
|
|
4180
4196
|
close() {
|
|
4181
4197
|
const { pool } = this;
|
|
4182
|
-
this.pool = new
|
|
4198
|
+
this.pool = new pg__default["default"].Pool(this.config);
|
|
4183
4199
|
return pool.end();
|
|
4184
4200
|
}
|
|
4185
4201
|
}
|
|
@@ -4346,7 +4362,7 @@ const then = async (q, resolve, reject) => {
|
|
|
4346
4362
|
resolve == null ? void 0 : resolve(result);
|
|
4347
4363
|
} catch (err) {
|
|
4348
4364
|
let error;
|
|
4349
|
-
if (err instanceof
|
|
4365
|
+
if (err instanceof pg__default["default"].DatabaseError) {
|
|
4350
4366
|
error = new q.error();
|
|
4351
4367
|
assignError(error, err);
|
|
4352
4368
|
} else {
|
|
@@ -6505,7 +6521,7 @@ class QueryMethods {
|
|
|
6505
6521
|
_exists() {
|
|
6506
6522
|
const q = this._getOptional(this.raw("true"));
|
|
6507
6523
|
q.query.notFoundDefault = false;
|
|
6508
|
-
q.query.coalesceValue = false;
|
|
6524
|
+
q.query.coalesceValue = raw("false");
|
|
6509
6525
|
return q;
|
|
6510
6526
|
}
|
|
6511
6527
|
truncate(options) {
|
|
@@ -6882,6 +6898,7 @@ exports.queryMethodByReturnType = queryMethodByReturnType;
|
|
|
6882
6898
|
exports.queryTypeWithLimitOne = queryTypeWithLimitOne;
|
|
6883
6899
|
exports.quote = quote;
|
|
6884
6900
|
exports.quoteObjectKey = quoteObjectKey;
|
|
6901
|
+
exports.quoteString = quoteString;
|
|
6885
6902
|
exports.raw = raw;
|
|
6886
6903
|
exports.record = record;
|
|
6887
6904
|
exports.relationQueryKey = relationQueryKey;
|