pqb 0.9.2 → 0.9.3
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 +6 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +60 -48
- package/dist/index.js.map +1 -1
- package/dist/{index.esm.js → index.mjs} +61 -50
- package/dist/index.mjs.map +1 -0
- package/package.json +3 -3
- package/src/columnsOperators.ts +5 -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
|
@@ -505,44 +505,6 @@ class UnhandledTypeError extends PormInternalError {
|
|
|
505
505
|
}
|
|
506
506
|
}
|
|
507
507
|
|
|
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
508
|
const relationQueryKey = Symbol("relationQuery");
|
|
547
509
|
const isRequiredRelationKey = Symbol("isRequiredRelation");
|
|
548
510
|
|
|
@@ -673,7 +635,13 @@ const pushSubQuerySql = (query, as, values, list) => {
|
|
|
673
635
|
let subQuerySql = `(${makeSql(query, { values }).text})`;
|
|
674
636
|
const { coalesceValue } = query.query;
|
|
675
637
|
if (coalesceValue !== void 0) {
|
|
676
|
-
|
|
638
|
+
let value;
|
|
639
|
+
if (typeof coalesceValue === "object" && coalesceValue && isRaw(coalesceValue)) {
|
|
640
|
+
value = getRaw(coalesceValue, values);
|
|
641
|
+
} else {
|
|
642
|
+
values.push(coalesceValue);
|
|
643
|
+
value = `$${values.length}`;
|
|
644
|
+
}
|
|
677
645
|
subQuerySql = `COALESCE(${subQuerySql}, ${value})`;
|
|
678
646
|
}
|
|
679
647
|
list.push(`${subQuerySql} AS ${q(as)}`);
|
|
@@ -1042,13 +1010,54 @@ const pushColumnInfoSql = (ctx, table, query) => {
|
|
|
1042
1010
|
}
|
|
1043
1011
|
};
|
|
1044
1012
|
|
|
1013
|
+
const singleQuoteRegex = /'/g;
|
|
1014
|
+
const doubleQuoteRegex = /"/g;
|
|
1015
|
+
const quoteValue$1 = (value) => {
|
|
1016
|
+
const type = typeof value;
|
|
1017
|
+
if (type === "number")
|
|
1018
|
+
return String(value);
|
|
1019
|
+
else if (type === "string")
|
|
1020
|
+
return `"${value.replace(doubleQuoteRegex, '\\"').replace(singleQuoteRegex, "''")}"`;
|
|
1021
|
+
else if (type === "boolean")
|
|
1022
|
+
return value ? "true" : "false";
|
|
1023
|
+
else if (value instanceof Date)
|
|
1024
|
+
return `"${value.toISOString()}"`;
|
|
1025
|
+
else if (Array.isArray(value))
|
|
1026
|
+
return quoteArray(value);
|
|
1027
|
+
else if (value === null || value === void 0)
|
|
1028
|
+
return "NULL";
|
|
1029
|
+
else
|
|
1030
|
+
return `"${JSON.stringify(value).replace(doubleQuoteRegex, '\\"').replace(singleQuoteRegex, "''")}"`;
|
|
1031
|
+
};
|
|
1032
|
+
const quoteArray = (array) => `'{${array.map(quoteValue$1).join(",")}}'`;
|
|
1033
|
+
const quote = (value) => {
|
|
1034
|
+
const type = typeof value;
|
|
1035
|
+
if (type === "number")
|
|
1036
|
+
return `${value}`;
|
|
1037
|
+
else if (type === "string")
|
|
1038
|
+
return quoteString(value);
|
|
1039
|
+
else if (type === "boolean")
|
|
1040
|
+
return value ? "true" : "false";
|
|
1041
|
+
else if (value instanceof Date)
|
|
1042
|
+
return `'${value.toISOString()}'`;
|
|
1043
|
+
else if (Array.isArray(value))
|
|
1044
|
+
return quoteArray(value);
|
|
1045
|
+
else if (value === null || value === void 0)
|
|
1046
|
+
return "NULL";
|
|
1047
|
+
else
|
|
1048
|
+
return `'${JSON.stringify(value).replace(singleQuoteRegex, "''")}'`;
|
|
1049
|
+
};
|
|
1050
|
+
const quoteString = (value) => {
|
|
1051
|
+
return `'${value.replace(singleQuoteRegex, "''")}'`;
|
|
1052
|
+
};
|
|
1053
|
+
|
|
1045
1054
|
const pushCopySql = (ctx, table, query, quotedAs) => {
|
|
1046
1055
|
const { sql } = ctx;
|
|
1047
1056
|
const { copy } = query;
|
|
1048
1057
|
const columns = copy.columns ? `(${copy.columns.map(q).join(", ")})` : "";
|
|
1049
1058
|
const target = "from" in copy ? copy.from : copy.to;
|
|
1050
1059
|
sql.push(
|
|
1051
|
-
`COPY ${q(table.table)}${columns} ${"from" in copy ? "FROM" : "TO"} ${typeof target === "string" ?
|
|
1060
|
+
`COPY ${q(table.table)}${columns} ${"from" in copy ? "FROM" : "TO"} ${typeof target === "string" ? quoteString(target) : `PROGRAM ${quoteString(target.program)}`}`
|
|
1052
1061
|
);
|
|
1053
1062
|
if (Object.keys(copy).length > (copy.columns ? 2 : 1)) {
|
|
1054
1063
|
const options = [];
|
|
@@ -1057,15 +1066,15 @@ const pushCopySql = (ctx, table, query, quotedAs) => {
|
|
|
1057
1066
|
if (copy.freeze)
|
|
1058
1067
|
options.push(`FREEZE ${copy.freeze}`);
|
|
1059
1068
|
if (copy.delimiter)
|
|
1060
|
-
options.push(`DELIMITER ${
|
|
1069
|
+
options.push(`DELIMITER ${quoteString(copy.delimiter)}`);
|
|
1061
1070
|
if (copy.null)
|
|
1062
|
-
options.push(`NULL ${
|
|
1071
|
+
options.push(`NULL ${quoteString(copy.null)}`);
|
|
1063
1072
|
if (copy.header)
|
|
1064
1073
|
options.push(`HEADER ${copy.header}`);
|
|
1065
1074
|
if (copy.quote)
|
|
1066
|
-
options.push(`QUOTE ${
|
|
1075
|
+
options.push(`QUOTE ${quoteString(copy.quote)}`);
|
|
1067
1076
|
if (copy.escape)
|
|
1068
|
-
options.push(`ESCAPE ${
|
|
1077
|
+
options.push(`ESCAPE ${quoteString(copy.escape)}`);
|
|
1069
1078
|
if (copy.forceQuote)
|
|
1070
1079
|
options.push(
|
|
1071
1080
|
`FORCE_QUOTE ${copy.forceQuote === "*" ? "*" : `(${copy.forceQuote.map(q).join(", ")})`}`
|
|
@@ -1075,7 +1084,7 @@ const pushCopySql = (ctx, table, query, quotedAs) => {
|
|
|
1075
1084
|
if (copy.forceNull)
|
|
1076
1085
|
options.push(`FORCE_NULL (${copy.forceNull.map(q).join(", ")})`);
|
|
1077
1086
|
if (copy.encoding)
|
|
1078
|
-
options.push(`ENCODING ${
|
|
1087
|
+
options.push(`ENCODING ${quoteString(copy.encoding)}`);
|
|
1079
1088
|
sql.push(`WITH (${options.join(", ")})`);
|
|
1080
1089
|
}
|
|
1081
1090
|
pushWhereStatementSql(ctx, table, query, quotedAs);
|
|
@@ -1595,9 +1604,11 @@ const all = {
|
|
|
1595
1604
|
)}`
|
|
1596
1605
|
),
|
|
1597
1606
|
jsonPath: () => createOperator(
|
|
1598
|
-
(key, [path, op, value], values) => `jsonb_path_query_first(${key}, ${
|
|
1599
|
-
|
|
1600
|
-
|
|
1607
|
+
(key, [path, op, value], values) => `jsonb_path_query_first(${key}, '${path}') #>> '{}' ${op} ${quoteValue(
|
|
1608
|
+
value,
|
|
1609
|
+
values,
|
|
1610
|
+
true
|
|
1611
|
+
)}`
|
|
1601
1612
|
),
|
|
1602
1613
|
jsonSupersetOf: () => createOperator(
|
|
1603
1614
|
(key, value, values) => `${key} @> ${quoteValue(value, values, true)}`
|
|
@@ -6882,6 +6893,7 @@ exports.queryMethodByReturnType = queryMethodByReturnType;
|
|
|
6882
6893
|
exports.queryTypeWithLimitOne = queryTypeWithLimitOne;
|
|
6883
6894
|
exports.quote = quote;
|
|
6884
6895
|
exports.quoteObjectKey = quoteObjectKey;
|
|
6896
|
+
exports.quoteString = quoteString;
|
|
6885
6897
|
exports.raw = raw;
|
|
6886
6898
|
exports.record = record;
|
|
6887
6899
|
exports.relationQueryKey = relationQueryKey;
|