kysely 0.9.0 → 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/dist/cjs/dialect/mysql/mysql-dialect.d.ts +9 -0
- package/dist/cjs/dialect/mysql/mysql-dialect.js +7 -0
- package/dist/cjs/dialect/mysql/mysql-driver.js +2 -2
- package/dist/cjs/dialect/postgres/postgres-dialect.d.ts +11 -1
- package/dist/cjs/dialect/postgres/postgres-dialect.js +10 -0
- package/dist/cjs/driver/runtime-driver.d.ts +3 -2
- package/dist/cjs/driver/runtime-driver.js +43 -4
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/kysely.d.ts +26 -9
- package/dist/cjs/kysely.js +16 -9
- package/dist/cjs/migration/migration.d.ts +32 -0
- package/dist/cjs/operation-node/create-schema-node.d.ts +1 -1
- package/dist/cjs/operation-node/create-schema-node.js +2 -2
- package/dist/cjs/operation-node/create-table-node.d.ts +1 -5
- package/dist/cjs/operation-node/create-table-node.js +1 -31
- package/dist/cjs/operation-node/join-node.d.ts +2 -1
- package/dist/cjs/operation-node/join-node.js +8 -6
- package/dist/cjs/operation-node/operation-node-source.d.ts +1 -1
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +2 -0
- package/dist/cjs/operation-node/operation-node-transformer.js +11 -1
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +61 -59
- package/dist/cjs/operation-node/operation-node-visitor.js +1 -316
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/query-node.d.ts +4 -3
- package/dist/cjs/operation-node/query-node.js +10 -2
- package/dist/cjs/operation-node/select-query-node.d.ts +5 -1
- package/dist/cjs/operation-node/select-query-node.js +18 -2
- package/dist/cjs/operation-node/union-node.d.ts +16 -0
- package/dist/cjs/operation-node/union-node.js +19 -0
- package/dist/cjs/parser/group-by-parser.d.ts +4 -0
- package/dist/cjs/parser/group-by-parser.js +9 -0
- package/dist/cjs/parser/insert-values-parser.d.ts +1 -1
- package/dist/cjs/parser/join-parser.d.ts +4 -4
- package/dist/cjs/parser/order-by-parser.d.ts +2 -4
- package/dist/cjs/parser/order-by-parser.js +6 -3
- package/dist/cjs/parser/reference-parser.d.ts +1 -1
- package/dist/cjs/parser/reference-parser.js +1 -1
- package/dist/cjs/parser/union-parser.d.ts +5 -0
- package/dist/cjs/parser/union-parser.js +13 -0
- package/dist/cjs/parser/value-parser.d.ts +1 -1
- package/dist/cjs/query-builder/join-builder.js +8 -8
- package/dist/cjs/query-builder/query-builder.d.ts +65 -1
- package/dist/cjs/query-builder/query-builder.js +103 -22
- package/dist/cjs/query-compiler/compiled-query.d.ts +1 -1
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +7 -2
- package/dist/cjs/query-compiler/default-query-compiler.js +21 -4
- package/dist/cjs/schema/create-schema-builder.js +1 -1
- package/dist/cjs/schema/create-table-builder.js +7 -4
- package/dist/cjs/util/log.d.ts +8 -0
- package/dist/cjs/util/log.js +21 -0
- package/dist/cjs/util/object-utils.d.ts +11 -11
- package/dist/cjs/util/object-utils.js +1 -1
- package/dist/cjs/util/random-string.js +6 -3
- package/dist/cjs/util/type-utils.d.ts +4 -4
- package/dist/esm/dialect/mysql/mysql-dialect.d.ts +9 -0
- package/dist/esm/dialect/mysql/mysql-dialect.js +7 -0
- package/dist/esm/dialect/mysql/mysql-driver.js +3 -3
- package/dist/esm/dialect/postgres/postgres-dialect.d.ts +11 -1
- package/dist/esm/dialect/postgres/postgres-dialect.js +10 -0
- package/dist/esm/driver/runtime-driver.d.ts +3 -2
- package/dist/esm/driver/runtime-driver.js +43 -4
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/kysely.d.ts +26 -9
- package/dist/esm/kysely.js +16 -9
- package/dist/esm/migration/migration.d.ts +32 -0
- package/dist/esm/operation-node/create-schema-node.d.ts +1 -1
- package/dist/esm/operation-node/create-schema-node.js +2 -2
- package/dist/esm/operation-node/create-table-node.d.ts +1 -5
- package/dist/esm/operation-node/create-table-node.js +1 -31
- package/dist/esm/operation-node/join-node.d.ts +2 -1
- package/dist/esm/operation-node/join-node.js +8 -6
- package/dist/esm/operation-node/operation-node-source.d.ts +1 -1
- package/dist/esm/operation-node/operation-node-transformer.d.ts +2 -0
- package/dist/esm/operation-node/operation-node-transformer.js +11 -1
- package/dist/esm/operation-node/operation-node-visitor.d.ts +61 -59
- package/dist/esm/operation-node/operation-node-visitor.js +1 -316
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- package/dist/esm/operation-node/query-node.d.ts +4 -3
- package/dist/esm/operation-node/query-node.js +10 -2
- package/dist/esm/operation-node/select-query-node.d.ts +5 -1
- package/dist/esm/operation-node/select-query-node.js +18 -2
- package/dist/esm/operation-node/union-node.d.ts +16 -0
- package/dist/esm/operation-node/union-node.js +16 -0
- package/dist/esm/parser/group-by-parser.d.ts +4 -0
- package/dist/esm/parser/group-by-parser.js +5 -0
- package/dist/esm/parser/insert-values-parser.d.ts +1 -1
- package/dist/esm/parser/join-parser.d.ts +4 -4
- package/dist/esm/parser/order-by-parser.d.ts +2 -4
- package/dist/esm/parser/order-by-parser.js +6 -2
- package/dist/esm/parser/reference-parser.d.ts +1 -1
- package/dist/esm/parser/reference-parser.js +2 -2
- package/dist/esm/parser/union-parser.d.ts +5 -0
- package/dist/esm/parser/union-parser.js +9 -0
- package/dist/esm/parser/value-parser.d.ts +1 -1
- package/dist/esm/query-builder/join-builder.js +8 -8
- package/dist/esm/query-builder/query-builder.d.ts +65 -1
- package/dist/esm/query-builder/query-builder.js +104 -23
- package/dist/esm/query-compiler/compiled-query.d.ts +1 -1
- package/dist/esm/query-compiler/default-query-compiler.d.ts +7 -2
- package/dist/esm/query-compiler/default-query-compiler.js +21 -4
- package/dist/esm/schema/create-schema-builder.js +1 -1
- package/dist/esm/schema/create-table-builder.js +7 -4
- package/dist/esm/util/log.d.ts +8 -0
- package/dist/esm/util/log.js +17 -0
- package/dist/esm/util/object-utils.d.ts +11 -11
- package/dist/esm/util/object-utils.js +1 -1
- package/dist/esm/util/random-string.js +6 -3
- package/dist/esm/util/type-utils.d.ts +4 -4
- package/package.json +1 -1
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.parseOrderBy = void 0;
|
|
4
|
+
const order_by_item_node_js_1 = require("../operation-node/order-by-item-node.js");
|
|
4
5
|
const raw_node_js_1 = require("../operation-node/raw-node.js");
|
|
5
6
|
const reference_parser_js_1 = require("./reference-parser.js");
|
|
7
|
+
function parseOrderBy(ctx, orderBy, direction) {
|
|
8
|
+
return order_by_item_node_js_1.OrderByItemNode.create(parseOrderByExpression(ctx, orderBy), parseOrderByDirectionExpression(direction));
|
|
9
|
+
}
|
|
10
|
+
exports.parseOrderBy = parseOrderBy;
|
|
6
11
|
function parseOrderByExpression(ctx, expr) {
|
|
7
12
|
return (0, reference_parser_js_1.parseReferenceExpression)(ctx, expr);
|
|
8
13
|
}
|
|
9
|
-
exports.parseOrderByExpression = parseOrderByExpression;
|
|
10
14
|
function parseOrderByDirectionExpression(expr) {
|
|
11
15
|
if (!expr) {
|
|
12
16
|
return undefined;
|
|
@@ -18,4 +22,3 @@ function parseOrderByDirectionExpression(expr) {
|
|
|
18
22
|
return expr.toOperationNode();
|
|
19
23
|
}
|
|
20
24
|
}
|
|
21
|
-
exports.parseOrderByDirectionExpression = parseOrderByDirectionExpression;
|
|
@@ -9,7 +9,7 @@ import { RawBuilder } from '../raw-builder/raw-builder.js';
|
|
|
9
9
|
import { QueryBuilder } from '../query-builder/query-builder.js';
|
|
10
10
|
import { ParseContext } from './parse-context.js';
|
|
11
11
|
export declare type ReferenceExpression<DB, TB extends keyof DB> = StringReference<DB, TB> | AnyQueryBuilder | QueryBuilderFactory<DB, TB> | AnyRawBuilder | RawBuilderFactory<DB, TB> | DynamicReferenceBuilder<any>;
|
|
12
|
-
export declare type ReferenceExpressionOrList<DB, TB extends keyof DB> = ReferenceExpression<DB, TB> | ReferenceExpression<DB, TB
|
|
12
|
+
export declare type ReferenceExpressionOrList<DB, TB extends keyof DB> = ReferenceExpression<DB, TB> | ReadonlyArray<ReferenceExpression<DB, TB>>;
|
|
13
13
|
export declare type StringReference<DB, TB extends keyof DB> = AnyColumn<DB, TB> | AnyColumnWithTable<DB, TB>;
|
|
14
14
|
export declare type ExtractTypeFromReferenceExpression<DB, TB extends keyof DB, RE> = RE extends string ? ExtractTypeFromStringReference<DB, TB, RE> : RE extends RawBuilder<infer O> ? O : RE extends (qb: any) => RawBuilder<infer O> ? O : RE extends QueryBuilder<any, any, infer O> ? ValueType<O> : RE extends (qb: any) => QueryBuilder<any, any, infer O> ? ValueType<O> : PrimitiveValue;
|
|
15
15
|
declare type ExtractTypeFromStringReference<DB, TB extends keyof DB, S extends string, R = RowType<DB, TB>> = S extends `${infer SC}.${infer T}.${infer C}` ? `${SC}.${T}` extends TB ? C extends keyof DB[`${SC}.${T}`] ? DB[`${SC}.${T}`][C] : never : never : S extends `${infer T}.${infer C}` ? T extends TB ? C extends keyof DB[T] ? DB[T][C] : never : never : S extends keyof R ? R[S] : PrimitiveValue;
|
|
@@ -9,7 +9,7 @@ const table_node_js_1 = require("../operation-node/table-node.js");
|
|
|
9
9
|
const object_utils_js_1 = require("../util/object-utils.js");
|
|
10
10
|
const query_node_js_1 = require("../operation-node/query-node.js");
|
|
11
11
|
function parseReferenceExpressionOrList(ctx, arg) {
|
|
12
|
-
if (
|
|
12
|
+
if ((0, object_utils_js_1.isReadonlyArray)(arg)) {
|
|
13
13
|
return arg.map((it) => parseReferenceExpression(ctx, it));
|
|
14
14
|
}
|
|
15
15
|
else {
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { UnionNode } from '../operation-node/union-node.js';
|
|
2
|
+
import { QueryBuilder } from '../query-builder/query-builder.js';
|
|
3
|
+
import { RawBuilder } from '../raw-builder/raw-builder.js';
|
|
4
|
+
export declare type UnionExpression<DB, O> = QueryBuilder<DB, any, O> | RawBuilder<O>;
|
|
5
|
+
export declare function parseUnion(union: UnionExpression<any, any>, all: boolean): UnionNode;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseUnion = void 0;
|
|
4
|
+
const query_node_js_1 = require("../operation-node/query-node.js");
|
|
5
|
+
const union_node_js_1 = require("../operation-node/union-node.js");
|
|
6
|
+
function parseUnion(union, all) {
|
|
7
|
+
const node = union.toOperationNode();
|
|
8
|
+
if (query_node_js_1.QueryNode.isMutating(node)) {
|
|
9
|
+
throw new Error("can't combine insert, update or delete queries using union");
|
|
10
|
+
}
|
|
11
|
+
return union_node_js_1.UnionNode.create(node, all);
|
|
12
|
+
}
|
|
13
|
+
exports.parseUnion = parseUnion;
|
|
@@ -3,6 +3,6 @@ import { AnyQueryBuilder, AnyRawBuilder, QueryBuilderFactory, RawBuilderFactory
|
|
|
3
3
|
import { ExtractTypeFromReferenceExpression } from './reference-parser.js';
|
|
4
4
|
import { ParseContext } from './parse-context.js';
|
|
5
5
|
export declare type ValueExpression<DB, TB extends keyof DB, RE> = ExtractTypeFromReferenceExpression<DB, TB, RE> | AnyQueryBuilder | QueryBuilderFactory<DB, TB> | AnyRawBuilder | RawBuilderFactory<DB, TB>;
|
|
6
|
-
export declare type ValueExpressionOrList<DB, TB extends keyof DB, RE> = ValueExpression<DB, TB, RE> | ValueExpression<DB, TB, RE
|
|
6
|
+
export declare type ValueExpressionOrList<DB, TB extends keyof DB, RE> = ValueExpression<DB, TB, RE> | ReadonlyArray<ValueExpression<DB, TB, RE>>;
|
|
7
7
|
export declare function parseValueExpressionOrList(ctx: ParseContext, arg: ValueExpressionOrList<any, any, any>): ValueExpressionNode;
|
|
8
8
|
export declare function parseValueExpression(ctx: ParseContext, arg: ValueExpression<any, any, any>): ValueExpressionNode;
|
|
@@ -13,13 +13,13 @@ class JoinBuilder {
|
|
|
13
13
|
on(...args) {
|
|
14
14
|
return new JoinBuilder({
|
|
15
15
|
...this.#props,
|
|
16
|
-
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode,
|
|
16
|
+
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, (0, filter_parser_js_1.parseOnFilter)(this.#props.parseContext, args)),
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
19
|
orOn(...args) {
|
|
20
20
|
return new JoinBuilder({
|
|
21
21
|
...this.#props,
|
|
22
|
-
joinNode: join_node_js_1.JoinNode.
|
|
22
|
+
joinNode: join_node_js_1.JoinNode.cloneWithOrOn(this.#props.joinNode, (0, filter_parser_js_1.parseOnFilter)(this.#props.parseContext, args)),
|
|
23
23
|
});
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
@@ -31,7 +31,7 @@ class JoinBuilder {
|
|
|
31
31
|
onRef(lhs, op, rhs) {
|
|
32
32
|
return new JoinBuilder({
|
|
33
33
|
...this.#props,
|
|
34
|
-
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode,
|
|
34
|
+
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, (0, filter_parser_js_1.parseReferenceFilter)(this.#props.parseContext, lhs, op, rhs)),
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
37
|
/**
|
|
@@ -43,7 +43,7 @@ class JoinBuilder {
|
|
|
43
43
|
orOnRef(lhs, op, rhs) {
|
|
44
44
|
return new JoinBuilder({
|
|
45
45
|
...this.#props,
|
|
46
|
-
joinNode: join_node_js_1.JoinNode.
|
|
46
|
+
joinNode: join_node_js_1.JoinNode.cloneWithOrOn(this.#props.joinNode, (0, filter_parser_js_1.parseReferenceFilter)(this.#props.parseContext, lhs, op, rhs)),
|
|
47
47
|
});
|
|
48
48
|
}
|
|
49
49
|
/**
|
|
@@ -55,7 +55,7 @@ class JoinBuilder {
|
|
|
55
55
|
onExists(arg) {
|
|
56
56
|
return new JoinBuilder({
|
|
57
57
|
...this.#props,
|
|
58
|
-
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode,
|
|
58
|
+
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, (0, filter_parser_js_1.parseExistFilter)(this.#props.parseContext, arg)),
|
|
59
59
|
});
|
|
60
60
|
}
|
|
61
61
|
/**
|
|
@@ -67,7 +67,7 @@ class JoinBuilder {
|
|
|
67
67
|
onNotExists(arg) {
|
|
68
68
|
return new JoinBuilder({
|
|
69
69
|
...this.#props,
|
|
70
|
-
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode,
|
|
70
|
+
joinNode: join_node_js_1.JoinNode.cloneWithOn(this.#props.joinNode, (0, filter_parser_js_1.parseNotExistFilter)(this.#props.parseContext, arg)),
|
|
71
71
|
});
|
|
72
72
|
}
|
|
73
73
|
/**
|
|
@@ -79,7 +79,7 @@ class JoinBuilder {
|
|
|
79
79
|
orOnExists(arg) {
|
|
80
80
|
return new JoinBuilder({
|
|
81
81
|
...this.#props,
|
|
82
|
-
joinNode: join_node_js_1.JoinNode.
|
|
82
|
+
joinNode: join_node_js_1.JoinNode.cloneWithOrOn(this.#props.joinNode, (0, filter_parser_js_1.parseExistFilter)(this.#props.parseContext, arg)),
|
|
83
83
|
});
|
|
84
84
|
}
|
|
85
85
|
/**
|
|
@@ -91,7 +91,7 @@ class JoinBuilder {
|
|
|
91
91
|
orOnNotExists(arg) {
|
|
92
92
|
return new JoinBuilder({
|
|
93
93
|
...this.#props,
|
|
94
|
-
joinNode: join_node_js_1.JoinNode.
|
|
94
|
+
joinNode: join_node_js_1.JoinNode.cloneWithOrOn(this.#props.joinNode, (0, filter_parser_js_1.parseNotExistFilter)(this.#props.parseContext, arg)),
|
|
95
95
|
});
|
|
96
96
|
}
|
|
97
97
|
toOperationNode() {
|
|
@@ -18,6 +18,7 @@ import { QueryExecutor } from '../query-executor/query-executor.js';
|
|
|
18
18
|
import { QueryId } from '../util/query-id.js';
|
|
19
19
|
import { OnConflictConstraintTarget } from '../parser/on-conflict-parser.js';
|
|
20
20
|
import { ParseContext } from '../parser/parse-context.js';
|
|
21
|
+
import { UnionExpression } from '../parser/union-parser.js';
|
|
21
22
|
/**
|
|
22
23
|
* The main query builder class.
|
|
23
24
|
*
|
|
@@ -998,7 +999,7 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
998
999
|
* ```
|
|
999
1000
|
*/
|
|
1000
1001
|
values(row: InsertObject<DB, TB>): QueryBuilder<DB, TB, O>;
|
|
1001
|
-
values(row: InsertObject<DB, TB
|
|
1002
|
+
values(row: ReadonlyArray<InsertObject<DB, TB>>): QueryBuilder<DB, TB, O>;
|
|
1002
1003
|
/**
|
|
1003
1004
|
* Ignores the insert if the column or constraint given as the first
|
|
1004
1005
|
* argument conflicts with the current rows in the database. The
|
|
@@ -1553,6 +1554,69 @@ export declare class QueryBuilder<DB, TB extends keyof DB, O = {}> implements Op
|
|
|
1553
1554
|
* ```
|
|
1554
1555
|
*/
|
|
1555
1556
|
offset(offset: number): QueryBuilder<DB, TB, O>;
|
|
1557
|
+
/**
|
|
1558
|
+
* Combines another select query or raw expression to this query using `union`.
|
|
1559
|
+
*
|
|
1560
|
+
* The output row type of the combined query must match `this` query.
|
|
1561
|
+
*
|
|
1562
|
+
* @xample
|
|
1563
|
+
* ```ts
|
|
1564
|
+
* db.selectFrom('person')
|
|
1565
|
+
* .select(['id', 'first_name as name'])
|
|
1566
|
+
* .union(db.selectFrom('pet').select(['id', 'name']))
|
|
1567
|
+
* .orderBy('name')
|
|
1568
|
+
* ```
|
|
1569
|
+
*/
|
|
1570
|
+
union(expression: UnionExpression<DB, O>): QueryBuilder<DB, TB, O>;
|
|
1571
|
+
/**
|
|
1572
|
+
* Combines another select query or raw expression to this query using `union all`.
|
|
1573
|
+
*
|
|
1574
|
+
* The output row type of the combined query must match `this` query.
|
|
1575
|
+
*
|
|
1576
|
+
* @xample
|
|
1577
|
+
* ```ts
|
|
1578
|
+
* db.selectFrom('person')
|
|
1579
|
+
* .select(['id', 'first_name as name'])
|
|
1580
|
+
* .unionAll(db.selectFrom('pet').select(['id', 'name']))
|
|
1581
|
+
* .orderBy('name')
|
|
1582
|
+
* ```
|
|
1583
|
+
*/
|
|
1584
|
+
unionAll(expression: UnionExpression<DB, O>): QueryBuilder<DB, TB, O>;
|
|
1585
|
+
/**
|
|
1586
|
+
* Simply calls the given method passing `this` as the only argument.
|
|
1587
|
+
*
|
|
1588
|
+
* This method can be useful when adding optional method calls:
|
|
1589
|
+
*
|
|
1590
|
+
* @example
|
|
1591
|
+
* ```ts
|
|
1592
|
+
* db.selectFrom('person')
|
|
1593
|
+
* .selectAll()
|
|
1594
|
+
* .call((qb) => {
|
|
1595
|
+
* if (something) {
|
|
1596
|
+
* return qb.where('something', '=', something)
|
|
1597
|
+
* } else {
|
|
1598
|
+
* return qb.where('somethingElse', '=', somethingElse)
|
|
1599
|
+
* }
|
|
1600
|
+
* })
|
|
1601
|
+
* .execute()
|
|
1602
|
+
* ```
|
|
1603
|
+
*
|
|
1604
|
+
* The next example uses a helper funtion `log` to log a query:
|
|
1605
|
+
*
|
|
1606
|
+
* @example
|
|
1607
|
+
* ```ts
|
|
1608
|
+
* function log<T extends AnyQueryBuilder>(qb: T): T {
|
|
1609
|
+
* console.log(qb.compile())
|
|
1610
|
+
* return qb
|
|
1611
|
+
* }
|
|
1612
|
+
*
|
|
1613
|
+
* db.selectFrom('person')
|
|
1614
|
+
* .selectAll()
|
|
1615
|
+
* .call(log)
|
|
1616
|
+
* .execute()
|
|
1617
|
+
* ```
|
|
1618
|
+
*/
|
|
1619
|
+
call<T>(func: (qb: this) => T): T;
|
|
1556
1620
|
/**
|
|
1557
1621
|
* Gives an alias for the query. This method is only useful for sub queries.
|
|
1558
1622
|
*
|
|
@@ -6,13 +6,10 @@ const join_parser_js_1 = require("../parser/join-parser.js");
|
|
|
6
6
|
const select_parser_js_1 = require("../parser/select-parser.js");
|
|
7
7
|
const filter_parser_js_1 = require("../parser/filter-parser.js");
|
|
8
8
|
const insert_values_parser_js_1 = require("../parser/insert-values-parser.js");
|
|
9
|
-
const reference_parser_js_1 = require("../parser/reference-parser.js");
|
|
10
|
-
const order_by_item_node_js_1 = require("../operation-node/order-by-item-node.js");
|
|
11
9
|
const select_query_node_js_1 = require("../operation-node/select-query-node.js");
|
|
12
10
|
const insert_query_node_js_1 = require("../operation-node/insert-query-node.js");
|
|
13
11
|
const query_node_js_1 = require("../operation-node/query-node.js");
|
|
14
12
|
const order_by_parser_js_1 = require("../parser/order-by-parser.js");
|
|
15
|
-
const group_by_item_node_js_1 = require("../operation-node/group-by-item-node.js");
|
|
16
13
|
const update_query_node_js_1 = require("../operation-node/update-query-node.js");
|
|
17
14
|
const update_set_parser_js_1 = require("../parser/update-set-parser.js");
|
|
18
15
|
const prevent_await_js_1 = require("../util/prevent-await.js");
|
|
@@ -22,6 +19,8 @@ const on_conflict_parser_js_1 = require("../parser/on-conflict-parser.js");
|
|
|
22
19
|
const object_utils_js_1 = require("../util/object-utils.js");
|
|
23
20
|
const delete_query_node_js_1 = require("../operation-node/delete-query-node.js");
|
|
24
21
|
const on_duplicate_key_node_js_1 = require("../operation-node/on-duplicate-key-node.js");
|
|
22
|
+
const group_by_parser_js_1 = require("../parser/group-by-parser.js");
|
|
23
|
+
const union_parser_js_1 = require("../parser/union-parser.js");
|
|
25
24
|
/**
|
|
26
25
|
* The main query builder class.
|
|
27
26
|
*
|
|
@@ -46,7 +45,7 @@ class QueryBuilder {
|
|
|
46
45
|
assertCanHaveWhereClause(this.#props.queryNode);
|
|
47
46
|
return new QueryBuilder({
|
|
48
47
|
...this.#props,
|
|
49
|
-
queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode,
|
|
48
|
+
queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode, (0, filter_parser_js_1.parseWhereFilter)(this.#props.parseContext, args)),
|
|
50
49
|
});
|
|
51
50
|
}
|
|
52
51
|
/**
|
|
@@ -104,14 +103,14 @@ class QueryBuilder {
|
|
|
104
103
|
assertCanHaveWhereClause(this.#props.queryNode);
|
|
105
104
|
return new QueryBuilder({
|
|
106
105
|
...this.#props,
|
|
107
|
-
queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode,
|
|
106
|
+
queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode, (0, filter_parser_js_1.parseReferenceFilter)(this.#props.parseContext, lhs, op, rhs)),
|
|
108
107
|
});
|
|
109
108
|
}
|
|
110
109
|
orWhere(...args) {
|
|
111
110
|
assertCanHaveWhereClause(this.#props.queryNode);
|
|
112
111
|
return new QueryBuilder({
|
|
113
112
|
...this.#props,
|
|
114
|
-
queryNode: query_node_js_1.QueryNode.
|
|
113
|
+
queryNode: query_node_js_1.QueryNode.cloneWithOrWhere(this.#props.queryNode, (0, filter_parser_js_1.parseWhereFilter)(this.#props.parseContext, args)),
|
|
115
114
|
});
|
|
116
115
|
}
|
|
117
116
|
/**
|
|
@@ -124,7 +123,7 @@ class QueryBuilder {
|
|
|
124
123
|
assertCanHaveWhereClause(this.#props.queryNode);
|
|
125
124
|
return new QueryBuilder({
|
|
126
125
|
...this.#props,
|
|
127
|
-
queryNode: query_node_js_1.QueryNode.
|
|
126
|
+
queryNode: query_node_js_1.QueryNode.cloneWithOrWhere(this.#props.queryNode, (0, filter_parser_js_1.parseReferenceFilter)(this.#props.parseContext, lhs, op, rhs)),
|
|
128
127
|
});
|
|
129
128
|
}
|
|
130
129
|
/**
|
|
@@ -190,7 +189,7 @@ class QueryBuilder {
|
|
|
190
189
|
assertCanHaveWhereClause(this.#props.queryNode);
|
|
191
190
|
return new QueryBuilder({
|
|
192
191
|
...this.#props,
|
|
193
|
-
queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode,
|
|
192
|
+
queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode, (0, filter_parser_js_1.parseExistFilter)(this.#props.parseContext, arg)),
|
|
194
193
|
});
|
|
195
194
|
}
|
|
196
195
|
/**
|
|
@@ -200,7 +199,7 @@ class QueryBuilder {
|
|
|
200
199
|
assertCanHaveWhereClause(this.#props.queryNode);
|
|
201
200
|
return new QueryBuilder({
|
|
202
201
|
...this.#props,
|
|
203
|
-
queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode,
|
|
202
|
+
queryNode: query_node_js_1.QueryNode.cloneWithWhere(this.#props.queryNode, (0, filter_parser_js_1.parseNotExistFilter)(this.#props.parseContext, arg)),
|
|
204
203
|
});
|
|
205
204
|
}
|
|
206
205
|
/**
|
|
@@ -210,7 +209,7 @@ class QueryBuilder {
|
|
|
210
209
|
assertCanHaveWhereClause(this.#props.queryNode);
|
|
211
210
|
return new QueryBuilder({
|
|
212
211
|
...this.#props,
|
|
213
|
-
queryNode: query_node_js_1.QueryNode.
|
|
212
|
+
queryNode: query_node_js_1.QueryNode.cloneWithOrWhere(this.#props.queryNode, (0, filter_parser_js_1.parseExistFilter)(this.#props.parseContext, arg)),
|
|
214
213
|
});
|
|
215
214
|
}
|
|
216
215
|
/**
|
|
@@ -220,14 +219,14 @@ class QueryBuilder {
|
|
|
220
219
|
assertCanHaveWhereClause(this.#props.queryNode);
|
|
221
220
|
return new QueryBuilder({
|
|
222
221
|
...this.#props,
|
|
223
|
-
queryNode: query_node_js_1.QueryNode.
|
|
222
|
+
queryNode: query_node_js_1.QueryNode.cloneWithOrWhere(this.#props.queryNode, (0, filter_parser_js_1.parseNotExistFilter)(this.#props.parseContext, arg)),
|
|
224
223
|
});
|
|
225
224
|
}
|
|
226
225
|
having(...args) {
|
|
227
226
|
assertCanHaveHavingClause(this.#props.queryNode);
|
|
228
227
|
return new QueryBuilder({
|
|
229
228
|
...this.#props,
|
|
230
|
-
queryNode: select_query_node_js_1.SelectQueryNode.cloneWithHaving(this.#props.queryNode,
|
|
229
|
+
queryNode: select_query_node_js_1.SelectQueryNode.cloneWithHaving(this.#props.queryNode, (0, filter_parser_js_1.parseHavingFilter)(this.#props.parseContext, args)),
|
|
231
230
|
});
|
|
232
231
|
}
|
|
233
232
|
/**
|
|
@@ -238,14 +237,14 @@ class QueryBuilder {
|
|
|
238
237
|
assertCanHaveHavingClause(this.#props.queryNode);
|
|
239
238
|
return new QueryBuilder({
|
|
240
239
|
...this.#props,
|
|
241
|
-
queryNode: select_query_node_js_1.SelectQueryNode.cloneWithHaving(this.#props.queryNode,
|
|
240
|
+
queryNode: select_query_node_js_1.SelectQueryNode.cloneWithHaving(this.#props.queryNode, (0, filter_parser_js_1.parseReferenceFilter)(this.#props.parseContext, lhs, op, rhs)),
|
|
242
241
|
});
|
|
243
242
|
}
|
|
244
243
|
orHaving(...args) {
|
|
245
244
|
assertCanHaveHavingClause(this.#props.queryNode);
|
|
246
245
|
return new QueryBuilder({
|
|
247
246
|
...this.#props,
|
|
248
|
-
queryNode: select_query_node_js_1.SelectQueryNode.
|
|
247
|
+
queryNode: select_query_node_js_1.SelectQueryNode.cloneWithOrHaving(this.#props.queryNode, (0, filter_parser_js_1.parseHavingFilter)(this.#props.parseContext, args)),
|
|
249
248
|
});
|
|
250
249
|
}
|
|
251
250
|
/**
|
|
@@ -256,7 +255,7 @@ class QueryBuilder {
|
|
|
256
255
|
assertCanHaveHavingClause(this.#props.queryNode);
|
|
257
256
|
return new QueryBuilder({
|
|
258
257
|
...this.#props,
|
|
259
|
-
queryNode: select_query_node_js_1.SelectQueryNode.
|
|
258
|
+
queryNode: select_query_node_js_1.SelectQueryNode.cloneWithOrHaving(this.#props.queryNode, (0, filter_parser_js_1.parseReferenceFilter)(this.#props.parseContext, lhs, op, rhs)),
|
|
260
259
|
});
|
|
261
260
|
}
|
|
262
261
|
/**
|
|
@@ -267,7 +266,7 @@ class QueryBuilder {
|
|
|
267
266
|
assertCanHaveHavingClause(this.#props.queryNode);
|
|
268
267
|
return new QueryBuilder({
|
|
269
268
|
...this.#props,
|
|
270
|
-
queryNode: select_query_node_js_1.SelectQueryNode.cloneWithHaving(this.#props.queryNode,
|
|
269
|
+
queryNode: select_query_node_js_1.SelectQueryNode.cloneWithHaving(this.#props.queryNode, (0, filter_parser_js_1.parseExistFilter)(this.#props.parseContext, arg)),
|
|
271
270
|
});
|
|
272
271
|
}
|
|
273
272
|
/**
|
|
@@ -278,7 +277,7 @@ class QueryBuilder {
|
|
|
278
277
|
assertCanHaveHavingClause(this.#props.queryNode);
|
|
279
278
|
return new QueryBuilder({
|
|
280
279
|
...this.#props,
|
|
281
|
-
queryNode: select_query_node_js_1.SelectQueryNode.cloneWithHaving(this.#props.queryNode,
|
|
280
|
+
queryNode: select_query_node_js_1.SelectQueryNode.cloneWithHaving(this.#props.queryNode, (0, filter_parser_js_1.parseNotExistFilter)(this.#props.parseContext, arg)),
|
|
282
281
|
});
|
|
283
282
|
}
|
|
284
283
|
/**
|
|
@@ -289,7 +288,7 @@ class QueryBuilder {
|
|
|
289
288
|
assertCanHaveHavingClause(this.#props.queryNode);
|
|
290
289
|
return new QueryBuilder({
|
|
291
290
|
...this.#props,
|
|
292
|
-
queryNode: select_query_node_js_1.SelectQueryNode.
|
|
291
|
+
queryNode: select_query_node_js_1.SelectQueryNode.cloneWithOrHaving(this.#props.queryNode, (0, filter_parser_js_1.parseExistFilter)(this.#props.parseContext, arg)),
|
|
293
292
|
});
|
|
294
293
|
}
|
|
295
294
|
/**
|
|
@@ -300,7 +299,7 @@ class QueryBuilder {
|
|
|
300
299
|
assertCanHaveHavingClause(this.#props.queryNode);
|
|
301
300
|
return new QueryBuilder({
|
|
302
301
|
...this.#props,
|
|
303
|
-
queryNode: select_query_node_js_1.SelectQueryNode.
|
|
302
|
+
queryNode: select_query_node_js_1.SelectQueryNode.cloneWithOrHaving(this.#props.queryNode, (0, filter_parser_js_1.parseNotExistFilter)(this.#props.parseContext, arg)),
|
|
304
303
|
});
|
|
305
304
|
}
|
|
306
305
|
select(selection) {
|
|
@@ -717,14 +716,14 @@ class QueryBuilder {
|
|
|
717
716
|
assertCanHaveOrderByClause(this.#props.queryNode);
|
|
718
717
|
return new QueryBuilder({
|
|
719
718
|
...this.#props,
|
|
720
|
-
queryNode: select_query_node_js_1.SelectQueryNode.cloneWithOrderByItem(this.#props.queryNode,
|
|
719
|
+
queryNode: select_query_node_js_1.SelectQueryNode.cloneWithOrderByItem(this.#props.queryNode, (0, order_by_parser_js_1.parseOrderBy)(this.#props.parseContext, orderBy, direction)),
|
|
721
720
|
});
|
|
722
721
|
}
|
|
723
722
|
groupBy(orderBy) {
|
|
724
723
|
assertCanHaveGroupByClause(this.#props.queryNode);
|
|
725
724
|
return new QueryBuilder({
|
|
726
725
|
...this.#props,
|
|
727
|
-
queryNode: select_query_node_js_1.SelectQueryNode.cloneWithGroupByItems(this.#props.queryNode, (0,
|
|
726
|
+
queryNode: select_query_node_js_1.SelectQueryNode.cloneWithGroupByItems(this.#props.queryNode, (0, group_by_parser_js_1.parseGroupBy)(this.#props.parseContext, orderBy)),
|
|
728
727
|
});
|
|
729
728
|
}
|
|
730
729
|
/**
|
|
@@ -779,6 +778,83 @@ class QueryBuilder {
|
|
|
779
778
|
queryNode: select_query_node_js_1.SelectQueryNode.cloneWithOffset(this.#props.queryNode, offset_node_js_1.OffsetNode.create(offset)),
|
|
780
779
|
});
|
|
781
780
|
}
|
|
781
|
+
/**
|
|
782
|
+
* Combines another select query or raw expression to this query using `union`.
|
|
783
|
+
*
|
|
784
|
+
* The output row type of the combined query must match `this` query.
|
|
785
|
+
*
|
|
786
|
+
* @xample
|
|
787
|
+
* ```ts
|
|
788
|
+
* db.selectFrom('person')
|
|
789
|
+
* .select(['id', 'first_name as name'])
|
|
790
|
+
* .union(db.selectFrom('pet').select(['id', 'name']))
|
|
791
|
+
* .orderBy('name')
|
|
792
|
+
* ```
|
|
793
|
+
*/
|
|
794
|
+
union(expression) {
|
|
795
|
+
assertCanHaveUnion(this.#props.queryNode);
|
|
796
|
+
return new QueryBuilder({
|
|
797
|
+
...this.#props,
|
|
798
|
+
queryNode: select_query_node_js_1.SelectQueryNode.cloneWithUnion(this.#props.queryNode, (0, union_parser_js_1.parseUnion)(expression, false)),
|
|
799
|
+
});
|
|
800
|
+
}
|
|
801
|
+
/**
|
|
802
|
+
* Combines another select query or raw expression to this query using `union all`.
|
|
803
|
+
*
|
|
804
|
+
* The output row type of the combined query must match `this` query.
|
|
805
|
+
*
|
|
806
|
+
* @xample
|
|
807
|
+
* ```ts
|
|
808
|
+
* db.selectFrom('person')
|
|
809
|
+
* .select(['id', 'first_name as name'])
|
|
810
|
+
* .unionAll(db.selectFrom('pet').select(['id', 'name']))
|
|
811
|
+
* .orderBy('name')
|
|
812
|
+
* ```
|
|
813
|
+
*/
|
|
814
|
+
unionAll(expression) {
|
|
815
|
+
assertCanHaveUnion(this.#props.queryNode);
|
|
816
|
+
return new QueryBuilder({
|
|
817
|
+
...this.#props,
|
|
818
|
+
queryNode: select_query_node_js_1.SelectQueryNode.cloneWithUnion(this.#props.queryNode, (0, union_parser_js_1.parseUnion)(expression, true)),
|
|
819
|
+
});
|
|
820
|
+
}
|
|
821
|
+
/**
|
|
822
|
+
* Simply calls the given method passing `this` as the only argument.
|
|
823
|
+
*
|
|
824
|
+
* This method can be useful when adding optional method calls:
|
|
825
|
+
*
|
|
826
|
+
* @example
|
|
827
|
+
* ```ts
|
|
828
|
+
* db.selectFrom('person')
|
|
829
|
+
* .selectAll()
|
|
830
|
+
* .call((qb) => {
|
|
831
|
+
* if (something) {
|
|
832
|
+
* return qb.where('something', '=', something)
|
|
833
|
+
* } else {
|
|
834
|
+
* return qb.where('somethingElse', '=', somethingElse)
|
|
835
|
+
* }
|
|
836
|
+
* })
|
|
837
|
+
* .execute()
|
|
838
|
+
* ```
|
|
839
|
+
*
|
|
840
|
+
* The next example uses a helper funtion `log` to log a query:
|
|
841
|
+
*
|
|
842
|
+
* @example
|
|
843
|
+
* ```ts
|
|
844
|
+
* function log<T extends AnyQueryBuilder>(qb: T): T {
|
|
845
|
+
* console.log(qb.compile())
|
|
846
|
+
* return qb
|
|
847
|
+
* }
|
|
848
|
+
*
|
|
849
|
+
* db.selectFrom('person')
|
|
850
|
+
* .selectAll()
|
|
851
|
+
* .call(log)
|
|
852
|
+
* .execute()
|
|
853
|
+
* ```
|
|
854
|
+
*/
|
|
855
|
+
call(func) {
|
|
856
|
+
return func(this);
|
|
857
|
+
}
|
|
782
858
|
/**
|
|
783
859
|
* Gives an alias for the query. This method is only useful for sub queries.
|
|
784
860
|
*
|
|
@@ -964,7 +1040,7 @@ function assertCanHaveUpdates(node) {
|
|
|
964
1040
|
}
|
|
965
1041
|
function assertCanHaveReturningClause(node) {
|
|
966
1042
|
if (!query_node_js_1.QueryNode.isMutating(node)) {
|
|
967
|
-
throw new Error('only
|
|
1043
|
+
throw new Error('only insert, delete and update queries can have a returning clause');
|
|
968
1044
|
}
|
|
969
1045
|
}
|
|
970
1046
|
function assertCanHaveOrderByClause(node) {
|
|
@@ -987,3 +1063,8 @@ function assertCanHaveOffset(node) {
|
|
|
987
1063
|
throw new Error('only a select query can have an offset');
|
|
988
1064
|
}
|
|
989
1065
|
}
|
|
1066
|
+
function assertCanHaveUnion(node) {
|
|
1067
|
+
if (!select_query_node_js_1.SelectQueryNode.is(node)) {
|
|
1068
|
+
throw new Error('only a select query can have an union');
|
|
1069
|
+
}
|
|
1070
|
+
}
|
|
@@ -60,6 +60,8 @@ import { ForeignKeyConstraintNode } from '../operation-node/foreign-key-constrai
|
|
|
60
60
|
import { ColumnDefinitionNode } from '../operation-node/column-definition-node.js';
|
|
61
61
|
import { ModifyColumnNode } from '../operation-node/modify-column-node.js';
|
|
62
62
|
import { OnDuplicateKeyNode } from '../operation-node/on-duplicate-key-node.js';
|
|
63
|
+
import { ColumnNode } from '../operation-node/column-node.js';
|
|
64
|
+
import { UnionNode } from '../operation-node/union-node.js';
|
|
63
65
|
export declare class DefaultQueryCompiler extends OperationNodeVisitor implements QueryCompiler {
|
|
64
66
|
#private;
|
|
65
67
|
protected get numParameters(): number;
|
|
@@ -67,6 +69,8 @@ export declare class DefaultQueryCompiler extends OperationNodeVisitor implement
|
|
|
67
69
|
protected getSql(): string;
|
|
68
70
|
protected visitSelectQuery(node: SelectQueryNode): void;
|
|
69
71
|
protected visitFrom(node: FromNode): void;
|
|
72
|
+
protected visitSelection(node: SelectionNode): void;
|
|
73
|
+
protected visitColumn(node: ColumnNode): void;
|
|
70
74
|
protected compileDistinctOn(selections: ReadonlyArray<SelectionNode>): void;
|
|
71
75
|
protected compileList(nodes: ReadonlyArray<OperationNode>, separator?: string): void;
|
|
72
76
|
protected visitWhere(node: WhereNode): void;
|
|
@@ -125,11 +129,12 @@ export declare class DefaultQueryCompiler extends OperationNodeVisitor implement
|
|
|
125
129
|
protected visitModifyColumn(node: ModifyColumnNode): void;
|
|
126
130
|
protected visitAddConstraint(node: AddConstraintNode): void;
|
|
127
131
|
protected visitDropConstraint(node: DropConstraintNode): void;
|
|
132
|
+
protected visitUnion(node: UnionNode): void;
|
|
128
133
|
protected append(str: string): void;
|
|
129
|
-
protected appendValue(
|
|
134
|
+
protected appendValue(parameter: unknown): void;
|
|
130
135
|
protected getLeftIdentifierWrapper(): string;
|
|
131
136
|
protected getRightIdentifierWrapper(): string;
|
|
132
137
|
protected getCurrentParameterPlaceholder(): string;
|
|
133
|
-
protected addParameter(parameter:
|
|
138
|
+
protected addParameter(parameter: unknown): void;
|
|
134
139
|
protected appendImmediateValue(value: PrimitiveValue): void;
|
|
135
140
|
}
|
|
@@ -17,7 +17,7 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
17
17
|
this.visitNode(node);
|
|
18
18
|
return (0, object_utils_js_1.freeze)({
|
|
19
19
|
sql: this.getSql(),
|
|
20
|
-
parameters: this.#parameters,
|
|
20
|
+
parameters: [...this.#parameters],
|
|
21
21
|
});
|
|
22
22
|
}
|
|
23
23
|
getSql() {
|
|
@@ -63,6 +63,10 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
63
63
|
this.append(' ');
|
|
64
64
|
this.visitNode(node.having);
|
|
65
65
|
}
|
|
66
|
+
if (node.union) {
|
|
67
|
+
this.append(' ');
|
|
68
|
+
this.compileList(node.union, ' ');
|
|
69
|
+
}
|
|
66
70
|
if (node.orderBy) {
|
|
67
71
|
this.append(' ');
|
|
68
72
|
this.visitNode(node.orderBy);
|
|
@@ -89,6 +93,12 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
89
93
|
this.append('from ');
|
|
90
94
|
this.compileList(node.froms);
|
|
91
95
|
}
|
|
96
|
+
visitSelection(node) {
|
|
97
|
+
this.visitNode(node.selection);
|
|
98
|
+
}
|
|
99
|
+
visitColumn(node) {
|
|
100
|
+
this.visitNode(node.column);
|
|
101
|
+
}
|
|
92
102
|
compileDistinctOn(selections) {
|
|
93
103
|
this.append('distinct on (');
|
|
94
104
|
this.compileList(selections);
|
|
@@ -630,11 +640,18 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
630
640
|
this.append('drop constraint ');
|
|
631
641
|
this.visitNode(node.constraintName);
|
|
632
642
|
}
|
|
643
|
+
visitUnion(node) {
|
|
644
|
+
this.append('union ');
|
|
645
|
+
if (node.all) {
|
|
646
|
+
this.append('all ');
|
|
647
|
+
}
|
|
648
|
+
this.visitNode(node.union);
|
|
649
|
+
}
|
|
633
650
|
append(str) {
|
|
634
651
|
this.#sql += str;
|
|
635
652
|
}
|
|
636
|
-
appendValue(
|
|
637
|
-
this.addParameter(
|
|
653
|
+
appendValue(parameter) {
|
|
654
|
+
this.addParameter(parameter);
|
|
638
655
|
this.append(this.getCurrentParameterPlaceholder());
|
|
639
656
|
}
|
|
640
657
|
getLeftIdentifierWrapper() {
|
|
@@ -676,7 +693,7 @@ const SELECT_MODIFIER_SQL = {
|
|
|
676
693
|
ForNoKeyUpdate: 'for no key update',
|
|
677
694
|
ForUpdate: 'for update',
|
|
678
695
|
ForShare: 'for share',
|
|
679
|
-
NoWait: '
|
|
696
|
+
NoWait: 'nowait',
|
|
680
697
|
SkipLocked: 'skip locked',
|
|
681
698
|
};
|
|
682
699
|
const JOIN_TYPE_SQL = {
|
|
@@ -12,7 +12,7 @@ class CreateSchemaBuilder {
|
|
|
12
12
|
ifNotExists() {
|
|
13
13
|
return new CreateSchemaBuilder({
|
|
14
14
|
...this.#props,
|
|
15
|
-
createSchemaNode: create_schema_node_js_1.CreateSchemaNode.
|
|
15
|
+
createSchemaNode: create_schema_node_js_1.CreateSchemaNode.cloneWith(this.#props.createSchemaNode, { modifier: 'IfNotExists' }),
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
18
|
toOperationNode() {
|