kysely 0.7.1 → 0.7.5
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/README.md +24 -19
- package/dist/cjs/dialect/dialect-adapter.d.ts +11 -9
- package/dist/cjs/dialect/mysql/mysql-dialect.d.ts +1 -1
- package/dist/cjs/dialect/mysql/mysql-driver.js +1 -0
- package/dist/cjs/dialect/mysql/mysql-introspector.d.ts +0 -1
- package/dist/cjs/dialect/mysql/mysql-introspector.js +2 -2
- package/dist/cjs/dialect/mysql/mysql-query-compiler.d.ts +0 -4
- package/dist/cjs/dialect/mysql/mysql-query-compiler.js +0 -18
- package/dist/cjs/dialect/postgres/postgres-introspector.d.ts +0 -1
- package/dist/cjs/dialect/postgres/postgres-introspector.js +2 -2
- package/dist/cjs/driver/database-connection.d.ts +2 -1
- package/dist/cjs/driver/driver.d.ts +1 -1
- package/dist/cjs/driver/single-connection-provider.d.ts +0 -1
- package/dist/cjs/driver/single-connection-provider.js +2 -2
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/kysely.d.ts +7 -6
- package/dist/cjs/kysely.js +8 -6
- package/dist/cjs/migration/migration.js +11 -10
- package/dist/cjs/operation-node/alter-column-node.d.ts +2 -2
- package/dist/cjs/operation-node/alter-column-node.js +2 -2
- package/dist/cjs/operation-node/alter-table-node.d.ts +2 -2
- package/dist/cjs/operation-node/alter-table-node.js +2 -2
- package/dist/cjs/operation-node/column-definition-node.d.ts +2 -2
- package/dist/cjs/operation-node/column-definition-node.js +2 -2
- package/dist/cjs/operation-node/create-index-node.d.ts +2 -2
- package/dist/cjs/operation-node/create-index-node.js +2 -2
- package/dist/cjs/operation-node/create-table-node.d.ts +2 -1
- package/dist/cjs/operation-node/create-table-node.js +1 -5
- package/dist/cjs/operation-node/drop-index-node.d.ts +3 -3
- package/dist/cjs/operation-node/drop-index-node.js +2 -2
- package/dist/cjs/operation-node/foreign-key-constraint-node.d.ts +12 -1
- package/dist/cjs/operation-node/foreign-key-constraint-node.js +6 -0
- package/dist/cjs/operation-node/insert-query-node.d.ts +5 -2
- package/dist/cjs/operation-node/insert-query-node.js +2 -9
- package/dist/cjs/operation-node/join-node.d.ts +1 -0
- package/dist/cjs/operation-node/join-node.js +8 -0
- package/dist/cjs/operation-node/on-conflict-node.d.ts +2 -2
- package/dist/cjs/operation-node/on-conflict-node.js +2 -2
- package/dist/cjs/operation-node/on-duplicate-key-node.d.ts +14 -0
- package/dist/cjs/operation-node/on-duplicate-key-node.js +18 -0
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +2 -0
- package/dist/cjs/operation-node/operation-node-transformer.js +12 -0
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +2 -0
- package/dist/cjs/operation-node/operation-node-visitor.js +4 -0
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/references-node.d.ts +5 -3
- package/dist/cjs/operation-node/references-node.js +6 -0
- package/dist/cjs/operation-node/table-node.js +2 -2
- package/dist/cjs/parser/data-type-parser.d.ts +5 -0
- package/dist/cjs/parser/data-type-parser.js +11 -0
- package/dist/cjs/parser/default-value-parser.d.ts +6 -0
- package/dist/cjs/parser/default-value-parser.js +11 -0
- package/dist/cjs/parser/filter-parser.d.ts +2 -2
- package/dist/cjs/parser/filter-parser.js +34 -36
- package/dist/cjs/parser/join-parser.d.ts +1 -1
- package/dist/cjs/parser/join-parser.js +9 -11
- package/dist/cjs/parser/parse-context.d.ts +34 -7
- package/dist/cjs/parser/parse-context.js +42 -34
- package/dist/cjs/parser/reference-parser.d.ts +2 -2
- package/dist/cjs/parser/reference-parser.js +16 -12
- package/dist/cjs/parser/select-parser.d.ts +1 -2
- package/dist/cjs/parser/select-parser.js +4 -5
- package/dist/cjs/parser/table-parser.js +11 -6
- package/dist/cjs/parser/update-set-parser.js +1 -1
- package/dist/cjs/parser/value-parser.js +1 -1
- package/dist/cjs/query-builder/{sub-query-builder.d.ts → expression-builder.d.ts} +7 -7
- package/dist/cjs/query-builder/{sub-query-builder.js → expression-builder.js} +6 -10
- package/dist/cjs/query-builder/join-builder.d.ts +2 -2
- package/dist/cjs/query-builder/join-builder.js +8 -12
- package/dist/cjs/query-builder/query-builder.d.ts +47 -8
- package/dist/cjs/query-builder/query-builder.js +163 -91
- package/dist/cjs/query-builder/type-utils.d.ts +5 -5
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +2 -1
- package/dist/cjs/query-compiler/default-query-compiler.js +26 -6
- package/dist/cjs/query-creator.d.ts +2 -2
- package/dist/cjs/query-creator.js +8 -12
- package/dist/cjs/schema/alter-table-builder.d.ts +31 -8
- package/dist/cjs/schema/alter-table-builder.js +80 -7
- package/dist/cjs/schema/column-definition-builder.d.ts +10 -4
- package/dist/cjs/schema/column-definition-builder.js +11 -6
- package/dist/cjs/schema/create-index-builder.d.ts +5 -5
- package/dist/cjs/schema/create-index-builder.js +19 -28
- package/dist/cjs/schema/create-schema-builder.d.ts +5 -5
- package/dist/cjs/schema/create-schema-builder.js +9 -13
- package/dist/cjs/schema/create-table-builder.d.ts +22 -10
- package/dist/cjs/schema/create-table-builder.js +41 -34
- package/dist/cjs/schema/drop-index-builder.d.ts +5 -5
- package/dist/cjs/schema/drop-index-builder.js +11 -16
- package/dist/cjs/schema/drop-schema-builder.d.ts +5 -5
- package/dist/cjs/schema/drop-schema-builder.js +9 -13
- package/dist/cjs/schema/drop-table-builder.d.ts +5 -5
- package/dist/cjs/schema/drop-table-builder.js +9 -13
- package/dist/cjs/schema/foreign-key-constraint-builder.d.ts +14 -0
- package/dist/cjs/schema/foreign-key-constraint-builder.js +26 -0
- package/dist/cjs/transformers/with-schema-transformer.d.ts +0 -5
- package/dist/cjs/transformers/with-schema-transformer.js +21 -21
- package/dist/esm/dialect/dialect-adapter.d.ts +11 -9
- package/dist/esm/dialect/mysql/mysql-dialect.d.ts +1 -1
- package/dist/esm/dialect/mysql/mysql-driver.js +1 -0
- package/dist/esm/dialect/mysql/mysql-introspector.d.ts +0 -1
- package/dist/esm/dialect/mysql/mysql-introspector.js +2 -2
- package/dist/esm/dialect/mysql/mysql-query-compiler.d.ts +0 -4
- package/dist/esm/dialect/mysql/mysql-query-compiler.js +0 -18
- package/dist/esm/dialect/postgres/postgres-introspector.d.ts +0 -1
- package/dist/esm/dialect/postgres/postgres-introspector.js +2 -2
- package/dist/esm/driver/database-connection.d.ts +2 -1
- package/dist/esm/driver/driver.d.ts +1 -1
- package/dist/esm/driver/single-connection-provider.d.ts +0 -1
- package/dist/esm/driver/single-connection-provider.js +2 -2
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/kysely.d.ts +7 -6
- package/dist/esm/kysely.js +8 -6
- package/dist/esm/migration/migration.js +12 -11
- package/dist/esm/operation-node/alter-column-node.d.ts +2 -2
- package/dist/esm/operation-node/alter-column-node.js +2 -2
- package/dist/esm/operation-node/alter-table-node.d.ts +2 -2
- package/dist/esm/operation-node/alter-table-node.js +2 -2
- package/dist/esm/operation-node/column-definition-node.d.ts +2 -2
- package/dist/esm/operation-node/column-definition-node.js +2 -2
- package/dist/esm/operation-node/create-index-node.d.ts +2 -2
- package/dist/esm/operation-node/create-index-node.js +2 -2
- package/dist/esm/operation-node/create-table-node.d.ts +2 -1
- package/dist/esm/operation-node/create-table-node.js +1 -5
- package/dist/esm/operation-node/drop-index-node.d.ts +3 -3
- package/dist/esm/operation-node/drop-index-node.js +2 -2
- package/dist/esm/operation-node/foreign-key-constraint-node.d.ts +12 -1
- package/dist/esm/operation-node/foreign-key-constraint-node.js +6 -0
- package/dist/esm/operation-node/insert-query-node.d.ts +5 -2
- package/dist/esm/operation-node/insert-query-node.js +2 -9
- package/dist/esm/operation-node/join-node.d.ts +1 -0
- package/dist/esm/operation-node/join-node.js +8 -0
- package/dist/esm/operation-node/on-conflict-node.d.ts +2 -2
- package/dist/esm/operation-node/on-conflict-node.js +2 -2
- package/dist/esm/operation-node/on-duplicate-key-node.d.ts +14 -0
- package/dist/esm/operation-node/on-duplicate-key-node.js +15 -0
- package/dist/esm/operation-node/operation-node-transformer.d.ts +2 -0
- package/dist/esm/operation-node/operation-node-transformer.js +12 -0
- package/dist/esm/operation-node/operation-node-visitor.d.ts +2 -0
- package/dist/esm/operation-node/operation-node-visitor.js +4 -0
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- package/dist/esm/operation-node/references-node.d.ts +5 -3
- package/dist/esm/operation-node/references-node.js +6 -0
- package/dist/esm/operation-node/table-node.js +2 -2
- package/dist/esm/parser/data-type-parser.d.ts +5 -0
- package/dist/esm/parser/data-type-parser.js +7 -0
- package/dist/esm/parser/default-value-parser.d.ts +6 -0
- package/dist/esm/parser/default-value-parser.js +7 -0
- package/dist/esm/parser/filter-parser.d.ts +2 -2
- package/dist/esm/parser/filter-parser.js +31 -33
- package/dist/esm/parser/join-parser.d.ts +1 -1
- package/dist/esm/parser/join-parser.js +7 -9
- package/dist/esm/parser/parse-context.d.ts +34 -7
- package/dist/esm/parser/parse-context.js +40 -32
- package/dist/esm/parser/reference-parser.d.ts +2 -2
- package/dist/esm/parser/reference-parser.js +16 -12
- package/dist/esm/parser/select-parser.d.ts +1 -2
- package/dist/esm/parser/select-parser.js +3 -3
- package/dist/esm/parser/table-parser.js +11 -6
- package/dist/esm/parser/update-set-parser.js +1 -1
- package/dist/esm/parser/value-parser.js +1 -1
- package/dist/esm/query-builder/{sub-query-builder.d.ts → expression-builder.d.ts} +7 -7
- package/dist/esm/query-builder/{sub-query-builder.js → expression-builder.js} +4 -8
- package/dist/esm/query-builder/join-builder.d.ts +2 -2
- package/dist/esm/query-builder/join-builder.js +9 -13
- package/dist/esm/query-builder/query-builder.d.ts +47 -8
- package/dist/esm/query-builder/query-builder.js +165 -93
- package/dist/esm/query-builder/type-utils.d.ts +5 -5
- package/dist/esm/query-compiler/default-query-compiler.d.ts +2 -1
- package/dist/esm/query-compiler/default-query-compiler.js +27 -7
- package/dist/esm/query-creator.d.ts +2 -2
- package/dist/esm/query-creator.js +8 -12
- package/dist/esm/schema/alter-table-builder.d.ts +31 -8
- package/dist/esm/schema/alter-table-builder.js +78 -6
- package/dist/esm/schema/column-definition-builder.d.ts +10 -4
- package/dist/esm/schema/column-definition-builder.js +12 -7
- package/dist/esm/schema/create-index-builder.d.ts +5 -5
- package/dist/esm/schema/create-index-builder.js +19 -28
- package/dist/esm/schema/create-schema-builder.d.ts +5 -5
- package/dist/esm/schema/create-schema-builder.js +9 -13
- package/dist/esm/schema/create-table-builder.d.ts +22 -10
- package/dist/esm/schema/create-table-builder.js +41 -34
- package/dist/esm/schema/drop-index-builder.d.ts +5 -5
- package/dist/esm/schema/drop-index-builder.js +11 -16
- package/dist/esm/schema/drop-schema-builder.d.ts +5 -5
- package/dist/esm/schema/drop-schema-builder.js +9 -13
- package/dist/esm/schema/drop-table-builder.d.ts +5 -5
- package/dist/esm/schema/drop-table-builder.js +9 -13
- package/dist/esm/schema/foreign-key-constraint-builder.d.ts +14 -0
- package/dist/esm/schema/foreign-key-constraint-builder.js +22 -0
- package/dist/esm/transformers/with-schema-transformer.d.ts +0 -5
- package/dist/esm/transformers/with-schema-transformer.js +21 -21
- package/package.json +1 -1
|
@@ -35,7 +35,7 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
35
35
|
this.append(' ');
|
|
36
36
|
}
|
|
37
37
|
this.append('select ');
|
|
38
|
-
if (node.distinctOnSelections
|
|
38
|
+
if (node.distinctOnSelections) {
|
|
39
39
|
this.compileDistinctOn(node.distinctOnSelections);
|
|
40
40
|
this.append(' ');
|
|
41
41
|
}
|
|
@@ -121,8 +121,11 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
121
121
|
this.visitNode(node.with);
|
|
122
122
|
this.append(' ');
|
|
123
123
|
}
|
|
124
|
-
this.append(
|
|
125
|
-
|
|
124
|
+
this.append('insert');
|
|
125
|
+
if (node.ignore) {
|
|
126
|
+
this.append(' ignore');
|
|
127
|
+
}
|
|
128
|
+
this.append(' into ');
|
|
126
129
|
this.visitNode(node.into);
|
|
127
130
|
if (node.columns) {
|
|
128
131
|
this.append(' (');
|
|
@@ -137,6 +140,10 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
137
140
|
this.append(' ');
|
|
138
141
|
this.visitNode(node.onConflict);
|
|
139
142
|
}
|
|
143
|
+
if (node.onDuplicateKey) {
|
|
144
|
+
this.append(' ');
|
|
145
|
+
this.visitNode(node.onDuplicateKey);
|
|
146
|
+
}
|
|
140
147
|
if (node.returning) {
|
|
141
148
|
this.append(' ');
|
|
142
149
|
this.visitNode(node.returning);
|
|
@@ -145,9 +152,6 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
145
152
|
this.append(')');
|
|
146
153
|
}
|
|
147
154
|
}
|
|
148
|
-
getInsertInto(node) {
|
|
149
|
-
return 'insert into';
|
|
150
|
-
}
|
|
151
155
|
visitDeleteQuery(node) {
|
|
152
156
|
const isSubQuery = this.nodeStack.find(query_node_js_1.QueryNode.is) !== node;
|
|
153
157
|
if (isSubQuery) {
|
|
@@ -333,6 +337,10 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
333
337
|
this.append(' on delete ');
|
|
334
338
|
this.append(node.onDelete);
|
|
335
339
|
}
|
|
340
|
+
if (node.onUpdate) {
|
|
341
|
+
this.append(' on update ');
|
|
342
|
+
this.append(node.onUpdate);
|
|
343
|
+
}
|
|
336
344
|
}
|
|
337
345
|
visitDropTable(node) {
|
|
338
346
|
this.append('drop table ');
|
|
@@ -423,6 +431,10 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
423
431
|
this.compileList(node.updates);
|
|
424
432
|
}
|
|
425
433
|
}
|
|
434
|
+
visitOnDuplicateKey(node) {
|
|
435
|
+
this.append('on duplicate key update ');
|
|
436
|
+
this.compileList(node.updates);
|
|
437
|
+
}
|
|
426
438
|
visitCreateIndex(node) {
|
|
427
439
|
this.append('create ');
|
|
428
440
|
if (node.unique) {
|
|
@@ -515,6 +527,14 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
515
527
|
this.compileList(node.columns);
|
|
516
528
|
this.append(') ');
|
|
517
529
|
this.visitNode(node.references);
|
|
530
|
+
if (node.onDelete) {
|
|
531
|
+
this.append(' on delete ');
|
|
532
|
+
this.append(node.onDelete);
|
|
533
|
+
}
|
|
534
|
+
if (node.onUpdate) {
|
|
535
|
+
this.append(' on update ');
|
|
536
|
+
this.append(node.onUpdate);
|
|
537
|
+
}
|
|
518
538
|
}
|
|
519
539
|
visitList(node) {
|
|
520
540
|
this.compileList(node.items);
|
|
@@ -5,7 +5,7 @@ import { QueryExecutor } from './query-executor/query-executor.js';
|
|
|
5
5
|
import { RawBuilder } from './raw-builder/raw-builder.js';
|
|
6
6
|
import { CommonTableExpression, QueryCreatorWithCommonTableExpression } from './parser/with-parser.js';
|
|
7
7
|
import { WithNode } from './operation-node/with-node.js';
|
|
8
|
-
import {
|
|
8
|
+
import { ParseContext } from './parser/parse-context.js';
|
|
9
9
|
export declare class QueryCreator<DB> {
|
|
10
10
|
#private;
|
|
11
11
|
constructor(props: QueryCreatorProps);
|
|
@@ -378,7 +378,7 @@ export declare class QueryCreator<DB> {
|
|
|
378
378
|
raw<T = unknown>(sql: string, params?: any[]): RawBuilder<T>;
|
|
379
379
|
}
|
|
380
380
|
export interface QueryCreatorProps {
|
|
381
|
-
readonly adapter: DialectAdapter;
|
|
382
381
|
readonly executor: QueryExecutor;
|
|
382
|
+
readonly parseContext: ParseContext;
|
|
383
383
|
readonly withNode?: WithNode;
|
|
384
384
|
}
|
|
@@ -13,7 +13,6 @@ const with_node_js_1 = require("./operation-node/with-node.js");
|
|
|
13
13
|
const query_id_js_1 = require("./util/query-id.js");
|
|
14
14
|
const with_schema_plugin_js_1 = require("./plugin/with-schema/with-schema-plugin.js");
|
|
15
15
|
const object_utils_js_1 = require("./util/object-utils.js");
|
|
16
|
-
const parse_context_js_1 = require("./parser/parse-context.js");
|
|
17
16
|
class QueryCreator {
|
|
18
17
|
#props;
|
|
19
18
|
constructor(props) {
|
|
@@ -23,8 +22,8 @@ class QueryCreator {
|
|
|
23
22
|
return new query_builder_js_1.QueryBuilder({
|
|
24
23
|
queryId: (0, query_id_js_1.createQueryId)(),
|
|
25
24
|
executor: this.#props.executor,
|
|
26
|
-
|
|
27
|
-
queryNode: select_query_node_js_1.SelectQueryNode.create((0, table_parser_js_1.parseTableExpressionOrList)(this.#parseContext, from), this.#props.withNode),
|
|
25
|
+
parseContext: this.#props.parseContext,
|
|
26
|
+
queryNode: select_query_node_js_1.SelectQueryNode.create((0, table_parser_js_1.parseTableExpressionOrList)(this.#props.parseContext, from), this.#props.withNode),
|
|
28
27
|
});
|
|
29
28
|
}
|
|
30
29
|
/**
|
|
@@ -72,7 +71,7 @@ class QueryCreator {
|
|
|
72
71
|
return new query_builder_js_1.QueryBuilder({
|
|
73
72
|
queryId: (0, query_id_js_1.createQueryId)(),
|
|
74
73
|
executor: this.#props.executor,
|
|
75
|
-
|
|
74
|
+
parseContext: this.#props.parseContext,
|
|
76
75
|
queryNode: insert_query_node_js_1.InsertQueryNode.create((0, table_parser_js_1.parseTable)(table), this.#props.withNode),
|
|
77
76
|
});
|
|
78
77
|
}
|
|
@@ -94,8 +93,8 @@ class QueryCreator {
|
|
|
94
93
|
return new query_builder_js_1.QueryBuilder({
|
|
95
94
|
queryId: (0, query_id_js_1.createQueryId)(),
|
|
96
95
|
executor: this.#props.executor,
|
|
97
|
-
|
|
98
|
-
queryNode: delete_query_node_js_1.DeleteQueryNode.create((0, table_parser_js_1.parseTableExpression)(this.#parseContext, table), this.#props.withNode),
|
|
96
|
+
parseContext: this.#props.parseContext,
|
|
97
|
+
queryNode: delete_query_node_js_1.DeleteQueryNode.create((0, table_parser_js_1.parseTableExpression)(this.#props.parseContext, table), this.#props.withNode),
|
|
99
98
|
});
|
|
100
99
|
}
|
|
101
100
|
/**
|
|
@@ -120,8 +119,8 @@ class QueryCreator {
|
|
|
120
119
|
return new query_builder_js_1.QueryBuilder({
|
|
121
120
|
queryId: (0, query_id_js_1.createQueryId)(),
|
|
122
121
|
executor: this.#props.executor,
|
|
123
|
-
|
|
124
|
-
queryNode: update_query_node_js_1.UpdateQueryNode.create((0, table_parser_js_1.parseTableExpression)(this.#parseContext, table), this.#props.withNode),
|
|
122
|
+
parseContext: this.#props.parseContext,
|
|
123
|
+
queryNode: update_query_node_js_1.UpdateQueryNode.create((0, table_parser_js_1.parseTableExpression)(this.#props.parseContext, table), this.#props.withNode),
|
|
125
124
|
});
|
|
126
125
|
}
|
|
127
126
|
/**
|
|
@@ -147,7 +146,7 @@ class QueryCreator {
|
|
|
147
146
|
* ```
|
|
148
147
|
*/
|
|
149
148
|
with(name, expression) {
|
|
150
|
-
const cte = (0, with_parser_js_1.parseCommonTableExpression)(this.#parseContext, name, expression);
|
|
149
|
+
const cte = (0, with_parser_js_1.parseCommonTableExpression)(this.#props.parseContext, name, expression);
|
|
151
150
|
return new QueryCreator({
|
|
152
151
|
...this.#props,
|
|
153
152
|
withNode: this.#props.withNode
|
|
@@ -325,8 +324,5 @@ class QueryCreator {
|
|
|
325
324
|
executor: this.#props.executor,
|
|
326
325
|
});
|
|
327
326
|
}
|
|
328
|
-
get #parseContext() {
|
|
329
|
-
return (0, parse_context_js_1.createParseContext)(this.#props.adapter);
|
|
330
|
-
}
|
|
331
327
|
}
|
|
332
328
|
exports.QueryCreator = QueryCreator;
|
|
@@ -2,15 +2,16 @@ import { AlterColumnNode } from '../operation-node/alter-column-node.js';
|
|
|
2
2
|
import { AlterTableNode } from '../operation-node/alter-table-node.js';
|
|
3
3
|
import { ColumnDataType } from '../operation-node/data-type-node.js';
|
|
4
4
|
import { OperationNodeSource } from '../operation-node/operation-node-source.js';
|
|
5
|
-
import {
|
|
5
|
+
import { OnModifyForeignAction } from '../operation-node/references-node.js';
|
|
6
6
|
import { CompiledQuery } from '../query-compiler/compiled-query.js';
|
|
7
|
-
import { RawBuilder } from '../raw-builder/raw-builder.js';
|
|
8
7
|
import { Compilable } from '../util/compilable.js';
|
|
9
8
|
import { PrimitiveValue } from '../util/object-utils.js';
|
|
10
9
|
import { ColumnDefinitionBuilder, ColumnDefinitionBuilderInterface } from './column-definition-builder.js';
|
|
11
10
|
import { AnyRawBuilder } from '../query-builder/type-utils.js';
|
|
12
11
|
import { QueryId } from '../util/query-id.js';
|
|
13
12
|
import { QueryExecutor } from '../query-executor/query-executor.js';
|
|
13
|
+
import { DataTypeExpression } from '../parser/data-type-parser.js';
|
|
14
|
+
import { ForeignKeyConstraintBuilder, ForeignKeyConstraintBuilderInterface } from './foreign-key-constraint-builder.js';
|
|
14
15
|
export declare class AlterTableBuilder {
|
|
15
16
|
#private;
|
|
16
17
|
constructor(props: AlterTableBuilderProps);
|
|
@@ -19,8 +20,16 @@ export declare class AlterTableBuilder {
|
|
|
19
20
|
alterColumn(column: string): AlterColumnBuilder;
|
|
20
21
|
dropColumn(column: string): AlterTableExecutor;
|
|
21
22
|
renameColumn(column: string, newColumn: string): AlterTableExecutor;
|
|
22
|
-
addColumn(columnName: string, dataType:
|
|
23
|
-
|
|
23
|
+
addColumn(columnName: string, dataType: DataTypeExpression): AlterTableAddColumnBuilder;
|
|
24
|
+
/**
|
|
25
|
+
* Creates an `alter table modify column` query. The `modify column` statement
|
|
26
|
+
* is only implemeted by MySQL and oracle AFAIK. On other databases you
|
|
27
|
+
* should use the `alterColumn` method.
|
|
28
|
+
*/
|
|
29
|
+
modifyColumn(columnName: string, dataType: DataTypeExpression): AlterTableModifyColumnBuilder;
|
|
30
|
+
addUniqueConstraint(constraintName: string, columns: string[]): AlterTableExecutor;
|
|
31
|
+
addCheckConstraint(constraintName: string, checkExpression: string): AlterTableExecutor;
|
|
32
|
+
addForeignKeyConstraint(constraintName: string, columns: string[], targetTable: string, targetColumns: string[]): AlterTableAddForeignKeyConstraintBuilder;
|
|
24
33
|
}
|
|
25
34
|
export interface AlterTableBuilderProps {
|
|
26
35
|
readonly queryId: QueryId;
|
|
@@ -48,13 +57,14 @@ export declare class AlterTableExecutor implements OperationNodeSource, Compilab
|
|
|
48
57
|
}
|
|
49
58
|
export interface AlterTableExecutorProps extends AlterTableBuilderProps {
|
|
50
59
|
}
|
|
51
|
-
export declare class AlterTableAddColumnBuilder implements ColumnDefinitionBuilderInterface<AlterTableAddColumnBuilder
|
|
60
|
+
export declare class AlterTableAddColumnBuilder implements ColumnDefinitionBuilderInterface<AlterTableAddColumnBuilder>, OperationNodeSource, Compilable {
|
|
52
61
|
#private;
|
|
53
62
|
constructor(props: AlterTableAddColumnBuilderProps);
|
|
54
63
|
increments(): AlterTableAddColumnBuilder;
|
|
55
64
|
primaryKey(): AlterTableAddColumnBuilder;
|
|
56
65
|
references(ref: string): AlterTableAddColumnBuilder;
|
|
57
|
-
onDelete(onDelete:
|
|
66
|
+
onDelete(onDelete: OnModifyForeignAction): AlterTableAddColumnBuilder;
|
|
67
|
+
onUpdate(onDelete: OnModifyForeignAction): AlterTableAddColumnBuilder;
|
|
58
68
|
unique(): AlterTableAddColumnBuilder;
|
|
59
69
|
notNull(): AlterTableAddColumnBuilder;
|
|
60
70
|
defaultTo(value: PrimitiveValue | AnyRawBuilder): AlterTableAddColumnBuilder;
|
|
@@ -66,13 +76,14 @@ export declare class AlterTableAddColumnBuilder implements ColumnDefinitionBuild
|
|
|
66
76
|
export interface AlterTableAddColumnBuilderProps extends AlterTableBuilderProps {
|
|
67
77
|
readonly columnBuilder: ColumnDefinitionBuilder;
|
|
68
78
|
}
|
|
69
|
-
export declare class AlterTableModifyColumnBuilder implements ColumnDefinitionBuilderInterface<AlterTableModifyColumnBuilder
|
|
79
|
+
export declare class AlterTableModifyColumnBuilder implements ColumnDefinitionBuilderInterface<AlterTableModifyColumnBuilder>, OperationNodeSource, Compilable {
|
|
70
80
|
#private;
|
|
71
81
|
constructor(props: AlterTableModifyColumnBuilderProps);
|
|
72
82
|
increments(): AlterTableModifyColumnBuilder;
|
|
73
83
|
primaryKey(): AlterTableModifyColumnBuilder;
|
|
74
84
|
references(ref: string): AlterTableModifyColumnBuilder;
|
|
75
|
-
onDelete(onDelete:
|
|
85
|
+
onDelete(onDelete: OnModifyForeignAction): AlterTableModifyColumnBuilder;
|
|
86
|
+
onUpdate(onUpdate: OnModifyForeignAction): AlterTableModifyColumnBuilder;
|
|
76
87
|
unique(): AlterTableModifyColumnBuilder;
|
|
77
88
|
notNull(): AlterTableModifyColumnBuilder;
|
|
78
89
|
defaultTo(value: PrimitiveValue | AnyRawBuilder): AlterTableModifyColumnBuilder;
|
|
@@ -84,3 +95,15 @@ export declare class AlterTableModifyColumnBuilder implements ColumnDefinitionBu
|
|
|
84
95
|
export interface AlterTableModifyColumnBuilderProps extends AlterTableBuilderProps {
|
|
85
96
|
readonly columnBuilder: ColumnDefinitionBuilder;
|
|
86
97
|
}
|
|
98
|
+
export declare class AlterTableAddForeignKeyConstraintBuilder implements ForeignKeyConstraintBuilderInterface<AlterTableAddForeignKeyConstraintBuilder>, OperationNodeSource, Compilable {
|
|
99
|
+
#private;
|
|
100
|
+
constructor(props: AlterTableAddForeignKeyConstraintBuilderProps);
|
|
101
|
+
onDelete(onDelete: OnModifyForeignAction): AlterTableAddForeignKeyConstraintBuilder;
|
|
102
|
+
onUpdate(onUpdate: OnModifyForeignAction): AlterTableAddForeignKeyConstraintBuilder;
|
|
103
|
+
toOperationNode(): AlterTableNode;
|
|
104
|
+
compile(): CompiledQuery;
|
|
105
|
+
execute(): Promise<void>;
|
|
106
|
+
}
|
|
107
|
+
export interface AlterTableAddForeignKeyConstraintBuilderProps extends AlterTableBuilderProps {
|
|
108
|
+
readonly constraintBuilder: ForeignKeyConstraintBuilder;
|
|
109
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AlterTableModifyColumnBuilder = exports.AlterTableAddColumnBuilder = exports.AlterTableExecutor = exports.AlterColumnBuilder = exports.AlterTableBuilder = void 0;
|
|
3
|
+
exports.AlterTableAddForeignKeyConstraintBuilder = exports.AlterTableModifyColumnBuilder = exports.AlterTableAddColumnBuilder = exports.AlterTableExecutor = exports.AlterColumnBuilder = exports.AlterTableBuilder = void 0;
|
|
4
4
|
const add_column_node_js_1 = require("../operation-node/add-column-node.js");
|
|
5
5
|
const alter_column_node_js_1 = require("../operation-node/alter-column-node.js");
|
|
6
6
|
const alter_table_node_js_1 = require("../operation-node/alter-table-node.js");
|
|
@@ -16,6 +16,13 @@ const object_utils_js_1 = require("../util/object-utils.js");
|
|
|
16
16
|
const prevent_await_js_1 = require("../util/prevent-await.js");
|
|
17
17
|
const column_definition_builder_js_1 = require("./column-definition-builder.js");
|
|
18
18
|
const modify_column_node_js_1 = require("../operation-node/modify-column-node.js");
|
|
19
|
+
const data_type_parser_js_1 = require("../parser/data-type-parser.js");
|
|
20
|
+
const foreign_key_constraint_builder_js_1 = require("./foreign-key-constraint-builder.js");
|
|
21
|
+
const add_constraint_node_js_1 = require("../operation-node/add-constraint-node.js");
|
|
22
|
+
const unique_constraint_node_js_1 = require("../operation-node/unique-constraint-node.js");
|
|
23
|
+
const check_constraint_node_js_1 = require("../operation-node/check-constraint-node.js");
|
|
24
|
+
const foreign_key_constraint_node_js_1 = require("../operation-node/foreign-key-constraint-node.js");
|
|
25
|
+
const column_node_js_1 = require("../operation-node/column-node.js");
|
|
19
26
|
class AlterTableBuilder {
|
|
20
27
|
#props;
|
|
21
28
|
constructor(props) {
|
|
@@ -62,17 +69,40 @@ class AlterTableBuilder {
|
|
|
62
69
|
addColumn(columnName, dataType) {
|
|
63
70
|
return new AlterTableAddColumnBuilder({
|
|
64
71
|
...this.#props,
|
|
65
|
-
columnBuilder: new column_definition_builder_js_1.ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.create(columnName, (0,
|
|
66
|
-
? dataType.toOperationNode()
|
|
67
|
-
: data_type_node_js_1.DataTypeNode.create(dataType))),
|
|
72
|
+
columnBuilder: new column_definition_builder_js_1.ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.create(columnName, (0, data_type_parser_js_1.parseDataTypeExpression)(dataType))),
|
|
68
73
|
});
|
|
69
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Creates an `alter table modify column` query. The `modify column` statement
|
|
77
|
+
* is only implemeted by MySQL and oracle AFAIK. On other databases you
|
|
78
|
+
* should use the `alterColumn` method.
|
|
79
|
+
*/
|
|
70
80
|
modifyColumn(columnName, dataType) {
|
|
71
81
|
return new AlterTableModifyColumnBuilder({
|
|
72
82
|
...this.#props,
|
|
73
|
-
columnBuilder: new column_definition_builder_js_1.ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.create(columnName, (0,
|
|
74
|
-
|
|
75
|
-
|
|
83
|
+
columnBuilder: new column_definition_builder_js_1.ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.create(columnName, (0, data_type_parser_js_1.parseDataTypeExpression)(dataType))),
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
addUniqueConstraint(constraintName, columns) {
|
|
87
|
+
return new AlterTableExecutor({
|
|
88
|
+
...this.#props,
|
|
89
|
+
alterTableNode: alter_table_node_js_1.AlterTableNode.cloneWith(this.#props.alterTableNode, {
|
|
90
|
+
addConstraint: add_constraint_node_js_1.AddConstraintNode.create(unique_constraint_node_js_1.UniqueConstraintNode.create(columns, constraintName)),
|
|
91
|
+
}),
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
addCheckConstraint(constraintName, checkExpression) {
|
|
95
|
+
return new AlterTableExecutor({
|
|
96
|
+
...this.#props,
|
|
97
|
+
alterTableNode: alter_table_node_js_1.AlterTableNode.cloneWith(this.#props.alterTableNode, {
|
|
98
|
+
addConstraint: add_constraint_node_js_1.AddConstraintNode.create(check_constraint_node_js_1.CheckConstraintNode.create(checkExpression, constraintName)),
|
|
99
|
+
}),
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
addForeignKeyConstraint(constraintName, columns, targetTable, targetColumns) {
|
|
103
|
+
return new AlterTableAddForeignKeyConstraintBuilder({
|
|
104
|
+
...this.#props,
|
|
105
|
+
constraintBuilder: new foreign_key_constraint_builder_js_1.ForeignKeyConstraintBuilder(foreign_key_constraint_node_js_1.ForeignKeyConstraintNode.create(columns.map(column_node_js_1.ColumnNode.create), table_node_js_1.TableNode.create(targetTable), targetColumns.map(column_node_js_1.ColumnNode.create), constraintName)),
|
|
76
106
|
});
|
|
77
107
|
}
|
|
78
108
|
}
|
|
@@ -181,6 +211,12 @@ class AlterTableAddColumnBuilder {
|
|
|
181
211
|
columnBuilder: this.#props.columnBuilder.onDelete(onDelete),
|
|
182
212
|
});
|
|
183
213
|
}
|
|
214
|
+
onUpdate(onDelete) {
|
|
215
|
+
return new AlterTableAddColumnBuilder({
|
|
216
|
+
...this.#props,
|
|
217
|
+
columnBuilder: this.#props.columnBuilder.onUpdate(onDelete),
|
|
218
|
+
});
|
|
219
|
+
}
|
|
184
220
|
unique() {
|
|
185
221
|
return new AlterTableAddColumnBuilder({
|
|
186
222
|
...this.#props,
|
|
@@ -247,6 +283,12 @@ class AlterTableModifyColumnBuilder {
|
|
|
247
283
|
columnBuilder: this.#props.columnBuilder.onDelete(onDelete),
|
|
248
284
|
});
|
|
249
285
|
}
|
|
286
|
+
onUpdate(onUpdate) {
|
|
287
|
+
return new AlterTableModifyColumnBuilder({
|
|
288
|
+
...this.#props,
|
|
289
|
+
columnBuilder: this.#props.columnBuilder.onUpdate(onUpdate),
|
|
290
|
+
});
|
|
291
|
+
}
|
|
250
292
|
unique() {
|
|
251
293
|
return new AlterTableModifyColumnBuilder({
|
|
252
294
|
...this.#props,
|
|
@@ -284,8 +326,39 @@ class AlterTableModifyColumnBuilder {
|
|
|
284
326
|
}
|
|
285
327
|
}
|
|
286
328
|
exports.AlterTableModifyColumnBuilder = AlterTableModifyColumnBuilder;
|
|
329
|
+
class AlterTableAddForeignKeyConstraintBuilder {
|
|
330
|
+
#props;
|
|
331
|
+
constructor(props) {
|
|
332
|
+
this.#props = (0, object_utils_js_1.freeze)(props);
|
|
333
|
+
}
|
|
334
|
+
onDelete(onDelete) {
|
|
335
|
+
return new AlterTableAddForeignKeyConstraintBuilder({
|
|
336
|
+
...this.#props,
|
|
337
|
+
constraintBuilder: this.#props.constraintBuilder.onDelete(onDelete),
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
onUpdate(onUpdate) {
|
|
341
|
+
return new AlterTableAddForeignKeyConstraintBuilder({
|
|
342
|
+
...this.#props,
|
|
343
|
+
constraintBuilder: this.#props.constraintBuilder.onUpdate(onUpdate),
|
|
344
|
+
});
|
|
345
|
+
}
|
|
346
|
+
toOperationNode() {
|
|
347
|
+
return this.#props.executor.transformQuery(alter_table_node_js_1.AlterTableNode.cloneWith(this.#props.alterTableNode, {
|
|
348
|
+
addConstraint: add_constraint_node_js_1.AddConstraintNode.create(this.#props.constraintBuilder.toOperationNode()),
|
|
349
|
+
}), this.#props.queryId);
|
|
350
|
+
}
|
|
351
|
+
compile() {
|
|
352
|
+
return this.#props.executor.compileQuery(this.toOperationNode(), this.#props.queryId);
|
|
353
|
+
}
|
|
354
|
+
async execute() {
|
|
355
|
+
await this.#props.executor.executeQuery(this.compile(), this.#props.queryId);
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
exports.AlterTableAddForeignKeyConstraintBuilder = AlterTableAddForeignKeyConstraintBuilder;
|
|
287
359
|
(0, prevent_await_js_1.preventAwait)(AlterTableBuilder, "don't await AlterTableBuilder instances");
|
|
288
360
|
(0, prevent_await_js_1.preventAwait)(AlterColumnBuilder, "don't await AlterColumnBuilder instances");
|
|
289
361
|
(0, prevent_await_js_1.preventAwait)(AlterTableExecutor, "don't await AlterTableExecutor instances directly. To execute the query you need to call `execute`");
|
|
290
362
|
(0, prevent_await_js_1.preventAwait)(AlterTableAddColumnBuilder, "don't await AlterTableAddColumnBuilder instances directly. To execute the query you need to call `execute`");
|
|
291
363
|
(0, prevent_await_js_1.preventAwait)(AlterTableModifyColumnBuilder, "don't await AlterTableModifyColumnBuilder instances directly. To execute the query you need to call `execute`");
|
|
364
|
+
(0, prevent_await_js_1.preventAwait)(AlterTableAddForeignKeyConstraintBuilder, "don't await AlterTableAddForeignKeyConstraintBuilder instances directly. To execute the query you need to call `execute`");
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { OperationNodeSource } from '../operation-node/operation-node-source.js';
|
|
2
|
-
import {
|
|
2
|
+
import { OnModifyForeignAction } from '../operation-node/references-node.js';
|
|
3
3
|
import { PrimitiveValue } from '../util/object-utils.js';
|
|
4
4
|
import { ColumnDefinitionNode } from '../operation-node/column-definition-node.js';
|
|
5
5
|
import { AnyRawBuilder } from '../query-builder/type-utils.js';
|
|
6
|
+
import { DefaultValueExpression } from '../parser/default-value-parser.js';
|
|
6
7
|
export interface ColumnDefinitionBuilderInterface<R> {
|
|
7
8
|
/**
|
|
8
9
|
* Makes the column automatically incrementing.
|
|
@@ -31,7 +32,11 @@ export interface ColumnDefinitionBuilderInterface<R> {
|
|
|
31
32
|
/**
|
|
32
33
|
* Adds an `on delete` constraint for the foreign key column.
|
|
33
34
|
*/
|
|
34
|
-
onDelete(onDelete:
|
|
35
|
+
onDelete(onDelete: OnModifyForeignAction): R;
|
|
36
|
+
/**
|
|
37
|
+
* Adds an `on update` constraint for the foreign key column.
|
|
38
|
+
*/
|
|
39
|
+
onUpdate(onUpdate: OnModifyForeignAction): R;
|
|
35
40
|
/**
|
|
36
41
|
* Adds a unique constraint for the column.
|
|
37
42
|
*/
|
|
@@ -71,10 +76,11 @@ export declare class ColumnDefinitionBuilder implements ColumnDefinitionBuilderI
|
|
|
71
76
|
increments(): ColumnDefinitionBuilder;
|
|
72
77
|
primaryKey(): ColumnDefinitionBuilder;
|
|
73
78
|
references(ref: string): ColumnDefinitionBuilder;
|
|
74
|
-
onDelete(onDelete:
|
|
79
|
+
onDelete(onDelete: OnModifyForeignAction): ColumnDefinitionBuilder;
|
|
80
|
+
onUpdate(onUpdate: OnModifyForeignAction): ColumnDefinitionBuilder;
|
|
75
81
|
unique(): ColumnDefinitionBuilder;
|
|
76
82
|
notNull(): ColumnDefinitionBuilder;
|
|
77
|
-
defaultTo(value:
|
|
83
|
+
defaultTo(value: DefaultValueExpression): ColumnDefinitionBuilder;
|
|
78
84
|
check(sql: string): ColumnDefinitionBuilder;
|
|
79
85
|
toOperationNode(): ColumnDefinitionNode;
|
|
80
86
|
}
|
|
@@ -2,14 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ColumnDefinitionBuilder = void 0;
|
|
4
4
|
const check_constraint_node_js_1 = require("../operation-node/check-constraint-node.js");
|
|
5
|
-
const operation_node_source_js_1 = require("../operation-node/operation-node-source.js");
|
|
6
5
|
const reference_node_js_1 = require("../operation-node/reference-node.js");
|
|
7
6
|
const references_node_js_1 = require("../operation-node/references-node.js");
|
|
8
7
|
const select_all_node_js_1 = require("../operation-node/select-all-node.js");
|
|
9
|
-
const value_node_js_1 = require("../operation-node/value-node.js");
|
|
10
8
|
const reference_parser_js_1 = require("../parser/reference-parser.js");
|
|
11
9
|
const prevent_await_js_1 = require("../util/prevent-await.js");
|
|
12
10
|
const column_definition_node_js_1 = require("../operation-node/column-definition-node.js");
|
|
11
|
+
const default_value_parser_js_1 = require("../parser/default-value-parser.js");
|
|
13
12
|
class ColumnDefinitionBuilder {
|
|
14
13
|
#node;
|
|
15
14
|
constructor(node) {
|
|
@@ -40,6 +39,14 @@ class ColumnDefinitionBuilder {
|
|
|
40
39
|
references: references_node_js_1.ReferencesNode.cloneWithOnDelete(this.#node.references, onDelete),
|
|
41
40
|
}));
|
|
42
41
|
}
|
|
42
|
+
onUpdate(onUpdate) {
|
|
43
|
+
if (!this.#node.references) {
|
|
44
|
+
throw new Error('on update constraint can only be added for foreign keys');
|
|
45
|
+
}
|
|
46
|
+
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
|
|
47
|
+
references: references_node_js_1.ReferencesNode.cloneWithOnUpdate(this.#node.references, onUpdate),
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
43
50
|
unique() {
|
|
44
51
|
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { isUnique: true }));
|
|
45
52
|
}
|
|
@@ -48,9 +55,7 @@ class ColumnDefinitionBuilder {
|
|
|
48
55
|
}
|
|
49
56
|
defaultTo(value) {
|
|
50
57
|
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
|
|
51
|
-
defaultTo: (0,
|
|
52
|
-
? value.toOperationNode()
|
|
53
|
-
: value_node_js_1.ValueNode.createImmediate(value),
|
|
58
|
+
defaultTo: (0, default_value_parser_js_1.parseDefaultValueExpression)(value),
|
|
54
59
|
}));
|
|
55
60
|
}
|
|
56
61
|
check(sql) {
|
|
@@ -63,4 +68,4 @@ class ColumnDefinitionBuilder {
|
|
|
63
68
|
}
|
|
64
69
|
}
|
|
65
70
|
exports.ColumnDefinitionBuilder = ColumnDefinitionBuilder;
|
|
66
|
-
(0, prevent_await_js_1.preventAwait)(ColumnDefinitionBuilder, "don't await
|
|
71
|
+
(0, prevent_await_js_1.preventAwait)(ColumnDefinitionBuilder, "don't await ColumnDefinitionBuilder instances directly.");
|
|
@@ -6,7 +6,7 @@ import { QueryExecutor } from '../query-executor/query-executor.js';
|
|
|
6
6
|
import { QueryId } from '../util/query-id.js';
|
|
7
7
|
export declare class CreateIndexBuilder implements OperationNodeSource, Compilable {
|
|
8
8
|
#private;
|
|
9
|
-
constructor(
|
|
9
|
+
constructor(props: CreateIndexBuilderProps);
|
|
10
10
|
/**
|
|
11
11
|
* Makes the index unique.
|
|
12
12
|
*/
|
|
@@ -49,8 +49,8 @@ export declare class CreateIndexBuilder implements OperationNodeSource, Compilab
|
|
|
49
49
|
compile(): CompiledQuery;
|
|
50
50
|
execute(): Promise<void>;
|
|
51
51
|
}
|
|
52
|
-
export interface
|
|
53
|
-
queryId: QueryId;
|
|
54
|
-
|
|
55
|
-
|
|
52
|
+
export interface CreateIndexBuilderProps {
|
|
53
|
+
readonly queryId: QueryId;
|
|
54
|
+
readonly executor: QueryExecutor;
|
|
55
|
+
readonly createIndexNode: CreateIndexNode;
|
|
56
56
|
}
|
|
@@ -7,23 +7,19 @@ const raw_node_js_1 = require("../operation-node/raw-node.js");
|
|
|
7
7
|
const reference_parser_js_1 = require("../parser/reference-parser.js");
|
|
8
8
|
const table_parser_js_1 = require("../parser/table-parser.js");
|
|
9
9
|
const prevent_await_js_1 = require("../util/prevent-await.js");
|
|
10
|
+
const object_utils_js_1 = require("../util/object-utils.js");
|
|
10
11
|
class CreateIndexBuilder {
|
|
11
|
-
#
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
constructor(args) {
|
|
15
|
-
this.#queryId = args.queryId;
|
|
16
|
-
this.#createIndexNode = args.createIndexNode;
|
|
17
|
-
this.#executor = args.executor;
|
|
12
|
+
#props;
|
|
13
|
+
constructor(props) {
|
|
14
|
+
this.#props = (0, object_utils_js_1.freeze)(props);
|
|
18
15
|
}
|
|
19
16
|
/**
|
|
20
17
|
* Makes the index unique.
|
|
21
18
|
*/
|
|
22
19
|
unique() {
|
|
23
20
|
return new CreateIndexBuilder({
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
createIndexNode: create_index_node_js_1.CreateIndexNode.cloneWith(this.#createIndexNode, {
|
|
21
|
+
...this.#props,
|
|
22
|
+
createIndexNode: create_index_node_js_1.CreateIndexNode.cloneWith(this.#props.createIndexNode, {
|
|
27
23
|
unique: true,
|
|
28
24
|
}),
|
|
29
25
|
});
|
|
@@ -33,9 +29,8 @@ class CreateIndexBuilder {
|
|
|
33
29
|
*/
|
|
34
30
|
on(table) {
|
|
35
31
|
return new CreateIndexBuilder({
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
createIndexNode: create_index_node_js_1.CreateIndexNode.cloneWith(this.#createIndexNode, {
|
|
32
|
+
...this.#props,
|
|
33
|
+
createIndexNode: create_index_node_js_1.CreateIndexNode.cloneWith(this.#props.createIndexNode, {
|
|
39
34
|
table: (0, table_parser_js_1.parseTable)(table),
|
|
40
35
|
}),
|
|
41
36
|
});
|
|
@@ -47,9 +42,8 @@ class CreateIndexBuilder {
|
|
|
47
42
|
*/
|
|
48
43
|
column(column) {
|
|
49
44
|
return new CreateIndexBuilder({
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
createIndexNode: create_index_node_js_1.CreateIndexNode.cloneWith(this.#createIndexNode, {
|
|
45
|
+
...this.#props,
|
|
46
|
+
createIndexNode: create_index_node_js_1.CreateIndexNode.cloneWith(this.#props.createIndexNode, {
|
|
53
47
|
expression: (0, reference_parser_js_1.parseColumnName)(column),
|
|
54
48
|
}),
|
|
55
49
|
});
|
|
@@ -61,9 +55,8 @@ class CreateIndexBuilder {
|
|
|
61
55
|
*/
|
|
62
56
|
columns(columns) {
|
|
63
57
|
return new CreateIndexBuilder({
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
createIndexNode: create_index_node_js_1.CreateIndexNode.cloneWith(this.#createIndexNode, {
|
|
58
|
+
...this.#props,
|
|
59
|
+
createIndexNode: create_index_node_js_1.CreateIndexNode.cloneWith(this.#props.createIndexNode, {
|
|
67
60
|
expression: list_node_js_1.ListNode.create(columns.map(reference_parser_js_1.parseColumnName)),
|
|
68
61
|
}),
|
|
69
62
|
});
|
|
@@ -82,30 +75,28 @@ class CreateIndexBuilder {
|
|
|
82
75
|
*/
|
|
83
76
|
expression(expression) {
|
|
84
77
|
return new CreateIndexBuilder({
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
createIndexNode: create_index_node_js_1.CreateIndexNode.cloneWith(this.#createIndexNode, {
|
|
78
|
+
...this.#props,
|
|
79
|
+
createIndexNode: create_index_node_js_1.CreateIndexNode.cloneWith(this.#props.createIndexNode, {
|
|
88
80
|
expression: raw_node_js_1.RawNode.createWithSql(expression),
|
|
89
81
|
}),
|
|
90
82
|
});
|
|
91
83
|
}
|
|
92
84
|
using(indexType) {
|
|
93
85
|
return new CreateIndexBuilder({
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
createIndexNode: create_index_node_js_1.CreateIndexNode.cloneWith(this.#createIndexNode, {
|
|
86
|
+
...this.#props,
|
|
87
|
+
createIndexNode: create_index_node_js_1.CreateIndexNode.cloneWith(this.#props.createIndexNode, {
|
|
97
88
|
using: raw_node_js_1.RawNode.createWithSql(indexType),
|
|
98
89
|
}),
|
|
99
90
|
});
|
|
100
91
|
}
|
|
101
92
|
toOperationNode() {
|
|
102
|
-
return this.#executor.transformQuery(this.#createIndexNode, this.#queryId);
|
|
93
|
+
return this.#props.executor.transformQuery(this.#props.createIndexNode, this.#props.queryId);
|
|
103
94
|
}
|
|
104
95
|
compile() {
|
|
105
|
-
return this.#executor.compileQuery(this.toOperationNode(), this.#queryId);
|
|
96
|
+
return this.#props.executor.compileQuery(this.toOperationNode(), this.#props.queryId);
|
|
106
97
|
}
|
|
107
98
|
async execute() {
|
|
108
|
-
await this.#executor.executeQuery(this.compile(), this.#queryId);
|
|
99
|
+
await this.#props.executor.executeQuery(this.compile(), this.#props.queryId);
|
|
109
100
|
}
|
|
110
101
|
}
|
|
111
102
|
exports.CreateIndexBuilder = CreateIndexBuilder;
|
|
@@ -6,14 +6,14 @@ import { QueryExecutor } from '../query-executor/query-executor.js';
|
|
|
6
6
|
import { QueryId } from '../util/query-id.js';
|
|
7
7
|
export declare class CreateSchemaBuilder implements OperationNodeSource, Compilable {
|
|
8
8
|
#private;
|
|
9
|
-
constructor(
|
|
9
|
+
constructor(props: CreateSchemaBuilderProps);
|
|
10
10
|
ifNotExists(): CreateSchemaBuilder;
|
|
11
11
|
toOperationNode(): CreateSchemaNode;
|
|
12
12
|
compile(): CompiledQuery;
|
|
13
13
|
execute(): Promise<void>;
|
|
14
14
|
}
|
|
15
|
-
export interface
|
|
16
|
-
queryId: QueryId;
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
export interface CreateSchemaBuilderProps {
|
|
16
|
+
readonly queryId: QueryId;
|
|
17
|
+
readonly executor: QueryExecutor;
|
|
18
|
+
readonly createSchemaNode: CreateSchemaNode;
|
|
19
19
|
}
|