kysely 0.9.7 → 0.10.1
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 +15 -13
- package/dist/cjs/driver/runtime-driver.js +3 -4
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/operation-node/column-definition-node.d.ts +8 -6
- package/dist/cjs/operation-node/column-definition-node.js +4 -4
- package/dist/cjs/operation-node/create-schema-node.d.ts +1 -2
- package/dist/cjs/operation-node/create-table-node.d.ts +2 -3
- package/dist/cjs/operation-node/create-table-node.js +2 -2
- package/dist/cjs/operation-node/create-view-node.d.ts +22 -0
- package/dist/cjs/operation-node/create-view-node.js +25 -0
- package/dist/cjs/operation-node/default-value-node.d.ts +14 -0
- package/dist/cjs/operation-node/default-value-node.js +18 -0
- package/dist/cjs/operation-node/drop-index-node.d.ts +1 -2
- package/dist/cjs/operation-node/drop-schema-node.d.ts +2 -3
- package/dist/cjs/operation-node/drop-schema-node.js +3 -3
- package/dist/cjs/operation-node/drop-table-node.d.ts +2 -3
- package/dist/cjs/operation-node/drop-table-node.js +2 -2
- package/dist/cjs/operation-node/drop-view-node.d.ts +17 -0
- package/dist/cjs/operation-node/drop-view-node.js +25 -0
- package/dist/cjs/operation-node/generated-always-as-node.d.ts +16 -0
- package/dist/cjs/operation-node/generated-always-as-node.js +25 -0
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +8 -0
- package/dist/cjs/operation-node/operation-node-transformer.js +47 -11
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +8 -0
- package/dist/cjs/operation-node/operation-node-visitor.js +7 -2
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/operator-node.d.ts +1 -1
- package/dist/cjs/operation-node/operator-node.js +5 -0
- package/dist/cjs/operation-node/raw-node.d.ts +1 -1
- package/dist/cjs/operation-node/select-query-node.d.ts +1 -1
- package/dist/cjs/operation-node/select-query-node.js +1 -1
- package/dist/cjs/plugin/immediate-value.ts/immediate-value-plugin.d.ts +17 -0
- package/dist/cjs/plugin/immediate-value.ts/immediate-value-plugin.js +22 -0
- package/dist/cjs/plugin/immediate-value.ts/immediate-value-transformer.d.ts +13 -0
- package/dist/cjs/plugin/immediate-value.ts/immediate-value-transformer.js +21 -0
- package/dist/cjs/plugin/with-schema/with-schema-transformer.d.ts +4 -0
- package/dist/cjs/plugin/with-schema/with-schema-transformer.js +6 -0
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +8 -0
- package/dist/cjs/query-compiler/default-query-compiler.js +59 -11
- package/dist/cjs/query-compiler/query-compiler.d.ts +3 -1
- package/dist/cjs/raw-builder/raw-builder.d.ts +1 -1
- package/dist/cjs/schema/alter-table-builder.d.ts +6 -2
- package/dist/cjs/schema/alter-table-builder.js +28 -4
- package/dist/cjs/schema/column-definition-builder.d.ts +43 -2
- package/dist/cjs/schema/column-definition-builder.js +23 -6
- package/dist/cjs/schema/create-schema-builder.js +1 -1
- package/dist/cjs/schema/create-table-builder.d.ts +7 -8
- package/dist/cjs/schema/create-table-builder.js +8 -9
- package/dist/cjs/schema/create-view-builder.d.ts +24 -0
- package/dist/cjs/schema/create-view-builder.js +73 -0
- package/dist/cjs/schema/drop-index-builder.js +1 -1
- package/dist/cjs/schema/drop-schema-builder.js +3 -1
- package/dist/cjs/schema/drop-table-builder.js +3 -1
- package/dist/cjs/schema/drop-view-builder.d.ts +20 -0
- package/dist/cjs/schema/drop-view-builder.js +39 -0
- package/dist/cjs/schema/schema.d.ts +30 -3
- package/dist/cjs/schema/schema.js +44 -3
- package/dist/cjs/util/performance-now.d.ts +1 -0
- package/dist/cjs/util/performance-now.js +13 -0
- package/dist/esm/driver/runtime-driver.js +3 -4
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/operation-node/column-definition-node.d.ts +8 -6
- package/dist/esm/operation-node/column-definition-node.js +4 -4
- package/dist/esm/operation-node/create-schema-node.d.ts +1 -2
- package/dist/esm/operation-node/create-table-node.d.ts +2 -3
- package/dist/esm/operation-node/create-table-node.js +2 -2
- package/dist/esm/operation-node/create-view-node.d.ts +22 -0
- package/dist/esm/operation-node/create-view-node.js +22 -0
- package/dist/esm/operation-node/default-value-node.d.ts +14 -0
- package/dist/esm/operation-node/default-value-node.js +15 -0
- package/dist/esm/operation-node/drop-index-node.d.ts +1 -2
- package/dist/esm/operation-node/drop-schema-node.d.ts +2 -3
- package/dist/esm/operation-node/drop-schema-node.js +3 -3
- package/dist/esm/operation-node/drop-table-node.d.ts +2 -3
- package/dist/esm/operation-node/drop-table-node.js +2 -2
- package/dist/esm/operation-node/drop-view-node.d.ts +17 -0
- package/dist/esm/operation-node/drop-view-node.js +22 -0
- package/dist/esm/operation-node/generated-always-as-node.d.ts +16 -0
- package/dist/esm/operation-node/generated-always-as-node.js +22 -0
- package/dist/esm/operation-node/operation-node-transformer.d.ts +8 -0
- package/dist/esm/operation-node/operation-node-transformer.js +47 -11
- package/dist/esm/operation-node/operation-node-visitor.d.ts +8 -0
- package/dist/esm/operation-node/operation-node-visitor.js +7 -2
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- package/dist/esm/operation-node/operator-node.d.ts +1 -1
- package/dist/esm/operation-node/operator-node.js +5 -0
- package/dist/esm/operation-node/raw-node.d.ts +1 -1
- package/dist/esm/operation-node/select-query-node.d.ts +1 -1
- package/dist/esm/operation-node/select-query-node.js +1 -1
- package/dist/esm/plugin/immediate-value.ts/immediate-value-plugin.d.ts +17 -0
- package/dist/esm/plugin/immediate-value.ts/immediate-value-plugin.js +18 -0
- package/dist/esm/plugin/immediate-value.ts/immediate-value-transformer.d.ts +13 -0
- package/dist/esm/plugin/immediate-value.ts/immediate-value-transformer.js +17 -0
- package/dist/esm/plugin/with-schema/with-schema-transformer.d.ts +4 -0
- package/dist/esm/plugin/with-schema/with-schema-transformer.js +6 -0
- package/dist/esm/query-compiler/default-query-compiler.d.ts +8 -0
- package/dist/esm/query-compiler/default-query-compiler.js +59 -11
- package/dist/esm/query-compiler/query-compiler.d.ts +3 -1
- package/dist/esm/raw-builder/raw-builder.d.ts +1 -1
- package/dist/esm/schema/alter-table-builder.d.ts +6 -2
- package/dist/esm/schema/alter-table-builder.js +28 -4
- package/dist/esm/schema/column-definition-builder.d.ts +43 -2
- package/dist/esm/schema/column-definition-builder.js +23 -6
- package/dist/esm/schema/create-schema-builder.js +1 -1
- package/dist/esm/schema/create-table-builder.d.ts +7 -8
- package/dist/esm/schema/create-table-builder.js +8 -9
- package/dist/esm/schema/create-view-builder.d.ts +24 -0
- package/dist/esm/schema/create-view-builder.js +69 -0
- package/dist/esm/schema/drop-index-builder.js +1 -1
- package/dist/esm/schema/drop-schema-builder.js +3 -1
- package/dist/esm/schema/drop-table-builder.js +3 -1
- package/dist/esm/schema/drop-view-builder.d.ts +20 -0
- package/dist/esm/schema/drop-view-builder.js +35 -0
- package/dist/esm/schema/schema.d.ts +30 -3
- package/dist/esm/schema/schema.js +44 -3
- package/dist/esm/util/performance-now.d.ts +1 -0
- package/dist/esm/util/performance-now.js +9 -0
- package/package.json +3 -3
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.OperationNodeVisitor = void 0;
|
|
4
|
+
const object_utils_js_1 = require("../util/object-utils.js");
|
|
4
5
|
class OperationNodeVisitor {
|
|
5
6
|
nodeStack = [];
|
|
6
|
-
#visitors = {
|
|
7
|
+
#visitors = (0, object_utils_js_1.freeze)({
|
|
7
8
|
AliasNode: this.visitAlias.bind(this),
|
|
8
9
|
ColumnNode: this.visitColumn.bind(this),
|
|
9
10
|
IdentifierNode: this.visitIdentifier.bind(this),
|
|
@@ -63,7 +64,11 @@ class OperationNodeVisitor {
|
|
|
63
64
|
DropConstraintNode: this.visitDropConstraint.bind(this),
|
|
64
65
|
ForeignKeyConstraintNode: this.visitForeignKeyConstraint.bind(this),
|
|
65
66
|
UnionNode: this.visitUnion.bind(this),
|
|
66
|
-
|
|
67
|
+
CreateViewNode: this.visitCreateView.bind(this),
|
|
68
|
+
DropViewNode: this.visitDropView.bind(this),
|
|
69
|
+
GeneratedAlwaysAsNode: this.visitGeneratedAlwaysAs.bind(this),
|
|
70
|
+
DefaultValueNode: this.visitDefaultValue.bind(this),
|
|
71
|
+
});
|
|
67
72
|
visitNode = (node) => {
|
|
68
73
|
this.nodeStack.push(node);
|
|
69
74
|
this.#visitors[node.kind](node);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare type OperationNodeKind = 'IdentifierNode' | 'RawNode' | 'SelectQueryNode' | 'SelectionNode' | 'ReferenceNode' | 'ColumnNode' | 'TableNode' | 'AliasNode' | 'FromNode' | 'SelectAllNode' | 'FilterNode' | 'AndNode' | 'OrNode' | 'ParensNode' | 'ValueNode' | 'ValueListNode' | 'PrimitiveValueListNode' | 'JoinNode' | 'OperatorNode' | 'WhereNode' | 'InsertQueryNode' | 'DeleteQueryNode' | 'ReturningNode' | 'CreateTableNode' | 'ColumnDefinitionNode' | 'AddColumnNode' | 'DropTableNode' | 'DataTypeNode' | 'OrderByNode' | 'OrderByItemNode' | 'GroupByNode' | 'GroupByItemNode' | 'UpdateQueryNode' | 'ColumnUpdateNode' | 'LimitNode' | 'OffsetNode' | 'OnConflictNode' | 'OnDuplicateKeyNode' | 'CreateIndexNode' | 'DropIndexNode' | 'ListNode' | 'ReferencesNode' | 'PrimaryKeyConstraintNode' | 'UniqueConstraintNode' | 'CheckConstraintNode' | 'ForeignKeyConstraintNode' | 'WithNode' | 'CommonTableExpressionNode' | 'HavingNode' | 'CreateSchemaNode' | 'DropSchemaNode' | 'AlterTableNode' | 'ModifyColumnNode' | 'DropColumnNode' | 'RenameColumnNode' | 'AlterColumnNode' | 'AddConstraintNode' | 'DropConstraintNode' | 'UnionNode';
|
|
1
|
+
export declare type OperationNodeKind = 'IdentifierNode' | 'RawNode' | 'SelectQueryNode' | 'SelectionNode' | 'ReferenceNode' | 'ColumnNode' | 'TableNode' | 'AliasNode' | 'FromNode' | 'SelectAllNode' | 'FilterNode' | 'AndNode' | 'OrNode' | 'ParensNode' | 'ValueNode' | 'ValueListNode' | 'PrimitiveValueListNode' | 'JoinNode' | 'OperatorNode' | 'WhereNode' | 'InsertQueryNode' | 'DeleteQueryNode' | 'ReturningNode' | 'CreateTableNode' | 'ColumnDefinitionNode' | 'AddColumnNode' | 'DropTableNode' | 'DataTypeNode' | 'OrderByNode' | 'OrderByItemNode' | 'GroupByNode' | 'GroupByItemNode' | 'UpdateQueryNode' | 'ColumnUpdateNode' | 'LimitNode' | 'OffsetNode' | 'OnConflictNode' | 'OnDuplicateKeyNode' | 'CreateIndexNode' | 'DropIndexNode' | 'ListNode' | 'ReferencesNode' | 'PrimaryKeyConstraintNode' | 'UniqueConstraintNode' | 'CheckConstraintNode' | 'ForeignKeyConstraintNode' | 'WithNode' | 'CommonTableExpressionNode' | 'HavingNode' | 'CreateSchemaNode' | 'DropSchemaNode' | 'AlterTableNode' | 'ModifyColumnNode' | 'DropColumnNode' | 'RenameColumnNode' | 'AlterColumnNode' | 'AddConstraintNode' | 'DropConstraintNode' | 'UnionNode' | 'CreateViewNode' | 'DropViewNode' | 'GeneratedAlwaysAsNode' | 'DefaultValueNode';
|
|
2
2
|
export interface OperationNode {
|
|
3
3
|
readonly kind: OperationNodeKind;
|
|
4
4
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ArrayItemType } from '../util/type-utils.js';
|
|
2
2
|
import { OperationNode } from './operation-node.js';
|
|
3
|
-
export declare const OPERATORS: readonly ["=", "==", "!=", "<>", ">", ">=", "<", "<=", "in", "not in", "is", "is not", "like", "not like", "ilike", "not ilike", "@>", "<@", "?", "?", "?&", "!<", "!>", "<=>", "!~", "~", "~*", "!~*", "exists", "not exists", "&&"];
|
|
3
|
+
export declare const OPERATORS: readonly ["=", "==", "!=", "<>", ">", ">=", "<", "<=", "in", "not in", "is", "is not", "like", "not like", "ilike", "not ilike", "@>", "<@", "?", "?", "?&", "!<", "!>", "<=>", "!~", "~", "~*", "!~*", "exists", "not exists", "&&", "||", "@@", "@@@", "!!", "<->"];
|
|
4
4
|
export declare type Operator = ArrayItemType<typeof OPERATORS>;
|
|
5
5
|
export interface OperatorNode extends OperationNode {
|
|
6
6
|
readonly kind: 'OperatorNode';
|
|
@@ -9,6 +9,6 @@ export interface RawNode extends OperationNode {
|
|
|
9
9
|
*/
|
|
10
10
|
export declare const RawNode: Readonly<{
|
|
11
11
|
is(node: OperationNode): node is RawNode;
|
|
12
|
-
create(sqlFragments: string
|
|
12
|
+
create(sqlFragments: ReadonlyArray<string>, params: ReadonlyArray<OperationNode>): RawNode;
|
|
13
13
|
createWithSql(sql: string): RawNode;
|
|
14
14
|
}>;
|
|
@@ -19,7 +19,7 @@ export interface SelectQueryNode extends OperationNode {
|
|
|
19
19
|
readonly from: FromNode;
|
|
20
20
|
readonly selections?: ReadonlyArray<SelectionNode>;
|
|
21
21
|
readonly distinctOnSelections?: ReadonlyArray<SelectionNode>;
|
|
22
|
-
readonly
|
|
22
|
+
readonly distinct?: boolean;
|
|
23
23
|
readonly joins?: ReadonlyArray<JoinNode>;
|
|
24
24
|
readonly groupBy?: GroupByNode;
|
|
25
25
|
readonly orderBy?: OrderByNode;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { QueryResult } from '../../driver/database-connection.js';
|
|
2
|
+
import { UnknownRow } from '../../index.js';
|
|
3
|
+
import { RootOperationNode } from '../../query-compiler/query-compiler.js';
|
|
4
|
+
import { KyselyPlugin, PluginTransformQueryArgs, PluginTransformResultArgs } from '../kysely-plugin.js';
|
|
5
|
+
/**
|
|
6
|
+
* Transforms all ValueNodes to immediate.
|
|
7
|
+
*
|
|
8
|
+
* WARNING! This should never be part of the public API. Users should never use this.
|
|
9
|
+
* This is an internal helper.
|
|
10
|
+
*
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export declare class ImmediateValuePlugin implements KyselyPlugin {
|
|
14
|
+
#private;
|
|
15
|
+
transformQuery(args: PluginTransformQueryArgs): RootOperationNode;
|
|
16
|
+
transformResult(args: PluginTransformResultArgs): Promise<QueryResult<UnknownRow>>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ImmediateValuePlugin = void 0;
|
|
4
|
+
const immediate_value_transformer_js_1 = require("./immediate-value-transformer.js");
|
|
5
|
+
/**
|
|
6
|
+
* Transforms all ValueNodes to immediate.
|
|
7
|
+
*
|
|
8
|
+
* WARNING! This should never be part of the public API. Users should never use this.
|
|
9
|
+
* This is an internal helper.
|
|
10
|
+
*
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
class ImmediateValuePlugin {
|
|
14
|
+
#transformer = new immediate_value_transformer_js_1.ImmediateValueTransformer();
|
|
15
|
+
transformQuery(args) {
|
|
16
|
+
return this.#transformer.transformNode(args.node);
|
|
17
|
+
}
|
|
18
|
+
async transformResult(args) {
|
|
19
|
+
return args.result;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.ImmediateValuePlugin = ImmediateValuePlugin;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { OperationNodeTransformer } from '../../operation-node/operation-node-transformer.js';
|
|
2
|
+
import { ValueNode } from '../../operation-node/value-node.js';
|
|
3
|
+
/**
|
|
4
|
+
* Transforms all ValueNodes to immediate.
|
|
5
|
+
*
|
|
6
|
+
* WARNING! This should never be part of the public API. Users should never use this.
|
|
7
|
+
* This is an internal helper.
|
|
8
|
+
*
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
export declare class ImmediateValueTransformer extends OperationNodeTransformer {
|
|
12
|
+
transformValue(node: ValueNode): ValueNode;
|
|
13
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ImmediateValueTransformer = void 0;
|
|
4
|
+
const operation_node_transformer_js_1 = require("../../operation-node/operation-node-transformer.js");
|
|
5
|
+
/**
|
|
6
|
+
* Transforms all ValueNodes to immediate.
|
|
7
|
+
*
|
|
8
|
+
* WARNING! This should never be part of the public API. Users should never use this.
|
|
9
|
+
* This is an internal helper.
|
|
10
|
+
*
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
class ImmediateValueTransformer extends operation_node_transformer_js_1.OperationNodeTransformer {
|
|
14
|
+
transformValue(node) {
|
|
15
|
+
return {
|
|
16
|
+
...super.transformValue(node),
|
|
17
|
+
immediate: true,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.ImmediateValueTransformer = ImmediateValueTransformer;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { AlterTableNode } from '../../operation-node/alter-table-node.js';
|
|
2
2
|
import { CreateIndexNode } from '../../operation-node/create-index-node.js';
|
|
3
3
|
import { CreateTableNode } from '../../operation-node/create-table-node.js';
|
|
4
|
+
import { CreateViewNode } from '../../operation-node/create-view-node.js';
|
|
4
5
|
import { DeleteQueryNode } from '../../operation-node/delete-query-node.js';
|
|
5
6
|
import { DropIndexNode } from '../../operation-node/drop-index-node.js';
|
|
6
7
|
import { DropTableNode } from '../../operation-node/drop-table-node.js';
|
|
8
|
+
import { DropViewNode } from '../../operation-node/drop-view-node.js';
|
|
7
9
|
import { InsertQueryNode } from '../../operation-node/insert-query-node.js';
|
|
8
10
|
import { OperationNodeTransformer } from '../../operation-node/operation-node-transformer.js';
|
|
9
11
|
import { SelectQueryNode } from '../../operation-node/select-query-node.js';
|
|
@@ -20,6 +22,8 @@ export declare class WithSchemaTransformer extends OperationNodeTransformer {
|
|
|
20
22
|
protected transformDropTable(node: DropTableNode): DropTableNode;
|
|
21
23
|
protected transformCreateIndex(node: CreateIndexNode): CreateIndexNode;
|
|
22
24
|
protected transformDropIndex(node: DropIndexNode): DropIndexNode;
|
|
25
|
+
protected transformCreateView(node: CreateViewNode): CreateViewNode;
|
|
26
|
+
protected transformDropView(node: DropViewNode): DropViewNode;
|
|
23
27
|
protected transformAlterTable(node: AlterTableNode): AlterTableNode;
|
|
24
28
|
protected transformTable(node: TableNode): TableNode;
|
|
25
29
|
}
|
|
@@ -35,6 +35,12 @@ class WithSchemaTransformer extends operation_node_transformer_js_1.OperationNod
|
|
|
35
35
|
transformDropIndex(node) {
|
|
36
36
|
return this.#transformRoot(node, (node) => super.transformDropIndex(node));
|
|
37
37
|
}
|
|
38
|
+
transformCreateView(node) {
|
|
39
|
+
return this.#transformRoot(node, (node) => super.transformCreateView(node));
|
|
40
|
+
}
|
|
41
|
+
transformDropView(node) {
|
|
42
|
+
return this.#transformRoot(node, (node) => super.transformDropView(node));
|
|
43
|
+
}
|
|
38
44
|
transformAlterTable(node) {
|
|
39
45
|
return this.#transformRoot(node, (node) => super.transformAlterTable(node));
|
|
40
46
|
}
|
|
@@ -62,6 +62,10 @@ import { ModifyColumnNode } from '../operation-node/modify-column-node.js';
|
|
|
62
62
|
import { OnDuplicateKeyNode } from '../operation-node/on-duplicate-key-node.js';
|
|
63
63
|
import { ColumnNode } from '../operation-node/column-node.js';
|
|
64
64
|
import { UnionNode } from '../operation-node/union-node.js';
|
|
65
|
+
import { CreateViewNode } from '../operation-node/create-view-node.js';
|
|
66
|
+
import { DropViewNode } from '../operation-node/drop-view-node.js';
|
|
67
|
+
import { GeneratedAlwaysAsNode } from '../operation-node/generated-always-as-node.js';
|
|
68
|
+
import { DefaultValueNode } from '../operation-node/default-value-node.js';
|
|
65
69
|
export declare class DefaultQueryCompiler extends OperationNodeVisitor implements QueryCompiler {
|
|
66
70
|
#private;
|
|
67
71
|
protected get numParameters(): number;
|
|
@@ -130,6 +134,10 @@ export declare class DefaultQueryCompiler extends OperationNodeVisitor implement
|
|
|
130
134
|
protected visitAddConstraint(node: AddConstraintNode): void;
|
|
131
135
|
protected visitDropConstraint(node: DropConstraintNode): void;
|
|
132
136
|
protected visitUnion(node: UnionNode): void;
|
|
137
|
+
protected visitCreateView(node: CreateViewNode): void;
|
|
138
|
+
protected visitDropView(node: DropViewNode): void;
|
|
139
|
+
protected visitGeneratedAlwaysAs(node: GeneratedAlwaysAsNode): void;
|
|
140
|
+
protected visitDefaultValue(node: DefaultValueNode): void;
|
|
133
141
|
protected append(str: string): void;
|
|
134
142
|
protected appendValue(parameter: unknown): void;
|
|
135
143
|
protected getLeftIdentifierWrapper(): string;
|
|
@@ -38,7 +38,7 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
38
38
|
this.compileDistinctOn(node.distinctOnSelections);
|
|
39
39
|
this.append(' ');
|
|
40
40
|
}
|
|
41
|
-
if (node.
|
|
41
|
+
if (node.distinct) {
|
|
42
42
|
this.append('distinct');
|
|
43
43
|
this.append(' ');
|
|
44
44
|
}
|
|
@@ -290,7 +290,7 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
290
290
|
}
|
|
291
291
|
visitCreateTable(node) {
|
|
292
292
|
this.append('create table ');
|
|
293
|
-
if (node.
|
|
293
|
+
if (node.ifNotExists) {
|
|
294
294
|
this.append('if not exists ');
|
|
295
295
|
}
|
|
296
296
|
this.visitNode(node.table);
|
|
@@ -302,21 +302,25 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
302
302
|
this.visitNode(node.column);
|
|
303
303
|
this.append(' ');
|
|
304
304
|
this.visitNode(node.dataType);
|
|
305
|
+
if (node.generatedAlwaysAs) {
|
|
306
|
+
this.append(' ');
|
|
307
|
+
this.visitNode(node.generatedAlwaysAs);
|
|
308
|
+
}
|
|
305
309
|
if (node.defaultTo) {
|
|
306
|
-
this.append('
|
|
310
|
+
this.append(' ');
|
|
307
311
|
this.visitNode(node.defaultTo);
|
|
308
312
|
}
|
|
309
|
-
if (!node.
|
|
313
|
+
if (!node.nullable) {
|
|
310
314
|
this.append(' not null');
|
|
311
315
|
}
|
|
312
|
-
if (node.
|
|
316
|
+
if (node.autoIncrement) {
|
|
313
317
|
this.append(' ');
|
|
314
318
|
this.append(this.getAutoIncrement());
|
|
315
319
|
}
|
|
316
|
-
if (node.
|
|
320
|
+
if (node.unique) {
|
|
317
321
|
this.append(' unique');
|
|
318
322
|
}
|
|
319
|
-
if (node.
|
|
323
|
+
if (node.primaryKey) {
|
|
320
324
|
this.append(' primary key');
|
|
321
325
|
}
|
|
322
326
|
if (node.references) {
|
|
@@ -348,7 +352,7 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
348
352
|
}
|
|
349
353
|
visitDropTable(node) {
|
|
350
354
|
this.append('drop table ');
|
|
351
|
-
if (node.
|
|
355
|
+
if (node.ifExists) {
|
|
352
356
|
this.append('if exists ');
|
|
353
357
|
}
|
|
354
358
|
this.visitNode(node.table);
|
|
@@ -470,7 +474,7 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
470
474
|
}
|
|
471
475
|
visitDropIndex(node) {
|
|
472
476
|
this.append('drop index ');
|
|
473
|
-
if (node.
|
|
477
|
+
if (node.ifExists) {
|
|
474
478
|
this.append('if exists ');
|
|
475
479
|
}
|
|
476
480
|
this.visitNode(node.name);
|
|
@@ -481,14 +485,14 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
481
485
|
}
|
|
482
486
|
visitCreateSchema(node) {
|
|
483
487
|
this.append('create schema ');
|
|
484
|
-
if (node.
|
|
488
|
+
if (node.ifNotExists) {
|
|
485
489
|
this.append('if not exists ');
|
|
486
490
|
}
|
|
487
491
|
this.visitNode(node.schema);
|
|
488
492
|
}
|
|
489
493
|
visitDropSchema(node) {
|
|
490
494
|
this.append('drop schema ');
|
|
491
|
-
if (node.
|
|
495
|
+
if (node.ifExists) {
|
|
492
496
|
this.append('if exists ');
|
|
493
497
|
}
|
|
494
498
|
this.visitNode(node.schema);
|
|
@@ -647,6 +651,50 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
647
651
|
}
|
|
648
652
|
this.visitNode(node.union);
|
|
649
653
|
}
|
|
654
|
+
visitCreateView(node) {
|
|
655
|
+
this.append('create ');
|
|
656
|
+
if (node.orReplace) {
|
|
657
|
+
this.append('or replace ');
|
|
658
|
+
}
|
|
659
|
+
if (node.materialized) {
|
|
660
|
+
this.append('materialized ');
|
|
661
|
+
}
|
|
662
|
+
this.append('view ');
|
|
663
|
+
this.visitNode(node.name);
|
|
664
|
+
this.append(' ');
|
|
665
|
+
if (node.columns) {
|
|
666
|
+
this.append('(');
|
|
667
|
+
this.compileList(node.columns);
|
|
668
|
+
this.append(') ');
|
|
669
|
+
}
|
|
670
|
+
if (node.as) {
|
|
671
|
+
this.append('as ');
|
|
672
|
+
this.visitNode(node.as);
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
visitDropView(node) {
|
|
676
|
+
this.append('drop ');
|
|
677
|
+
if (node.materialized) {
|
|
678
|
+
this.append('materialized ');
|
|
679
|
+
}
|
|
680
|
+
this.append('view ');
|
|
681
|
+
if (node.ifExists) {
|
|
682
|
+
this.append('if exists ');
|
|
683
|
+
}
|
|
684
|
+
this.visitNode(node.name);
|
|
685
|
+
}
|
|
686
|
+
visitGeneratedAlwaysAs(node) {
|
|
687
|
+
this.append('generated always as (');
|
|
688
|
+
this.visitNode(node.expression);
|
|
689
|
+
this.append(')');
|
|
690
|
+
if (node.stored) {
|
|
691
|
+
this.append(' stored');
|
|
692
|
+
}
|
|
693
|
+
}
|
|
694
|
+
visitDefaultValue(node) {
|
|
695
|
+
this.append('default ');
|
|
696
|
+
this.visitNode(node.defaultValue);
|
|
697
|
+
}
|
|
650
698
|
append(str) {
|
|
651
699
|
this.#sql += str;
|
|
652
700
|
}
|
|
@@ -2,13 +2,15 @@ import { AlterTableNode } from '../operation-node/alter-table-node.js';
|
|
|
2
2
|
import { CreateIndexNode } from '../operation-node/create-index-node.js';
|
|
3
3
|
import { CreateSchemaNode } from '../operation-node/create-schema-node.js';
|
|
4
4
|
import { CreateTableNode } from '../operation-node/create-table-node.js';
|
|
5
|
+
import { CreateViewNode } from '../operation-node/create-view-node.js';
|
|
5
6
|
import { DropIndexNode } from '../operation-node/drop-index-node.js';
|
|
6
7
|
import { DropSchemaNode } from '../operation-node/drop-schema-node.js';
|
|
7
8
|
import { DropTableNode } from '../operation-node/drop-table-node.js';
|
|
9
|
+
import { DropViewNode } from '../operation-node/drop-view-node.js';
|
|
8
10
|
import { QueryNode } from '../operation-node/query-node.js';
|
|
9
11
|
import { RawNode } from '../operation-node/raw-node.js';
|
|
10
12
|
import { CompiledQuery } from './compiled-query.js';
|
|
11
|
-
export declare type RootOperationNode = QueryNode | CreateTableNode | CreateIndexNode |
|
|
13
|
+
export declare type RootOperationNode = QueryNode | CreateTableNode | CreateIndexNode | CreateSchemaNode | CreateViewNode | DropTableNode | DropIndexNode | DropSchemaNode | DropViewNode | AlterTableNode | RawNode;
|
|
12
14
|
/**
|
|
13
15
|
* a `QueryCompiler` compiles a query expressed as a tree of `OperationNodes` into SQL.
|
|
14
16
|
*/
|
|
@@ -63,7 +63,7 @@ export interface AlterTableExecutorProps extends AlterTableBuilderProps {
|
|
|
63
63
|
export declare class AlterTableAddColumnBuilder implements ColumnDefinitionBuilderInterface<AlterTableAddColumnBuilder>, OperationNodeSource, Compilable {
|
|
64
64
|
#private;
|
|
65
65
|
constructor(props: AlterTableAddColumnBuilderProps);
|
|
66
|
-
|
|
66
|
+
autoIncrement(): AlterTableAddColumnBuilder;
|
|
67
67
|
primaryKey(): AlterTableAddColumnBuilder;
|
|
68
68
|
references(ref: string): AlterTableAddColumnBuilder;
|
|
69
69
|
onDelete(onDelete: OnModifyForeignAction): AlterTableAddColumnBuilder;
|
|
@@ -72,6 +72,8 @@ export declare class AlterTableAddColumnBuilder implements ColumnDefinitionBuild
|
|
|
72
72
|
notNull(): AlterTableAddColumnBuilder;
|
|
73
73
|
defaultTo(value: PrimitiveValue | AnyRawBuilder): AlterTableAddColumnBuilder;
|
|
74
74
|
check(sql: string): AlterTableAddColumnBuilder;
|
|
75
|
+
generatedAlwaysAs(sql: string): AlterTableAddColumnBuilder;
|
|
76
|
+
stored(): AlterTableAddColumnBuilder;
|
|
75
77
|
toOperationNode(): AlterTableNode;
|
|
76
78
|
compile(): CompiledQuery;
|
|
77
79
|
execute(): Promise<void>;
|
|
@@ -82,7 +84,7 @@ export interface AlterTableAddColumnBuilderProps extends AlterTableBuilderProps
|
|
|
82
84
|
export declare class AlterTableModifyColumnBuilder implements ColumnDefinitionBuilderInterface<AlterTableModifyColumnBuilder>, OperationNodeSource, Compilable {
|
|
83
85
|
#private;
|
|
84
86
|
constructor(props: AlterTableModifyColumnBuilderProps);
|
|
85
|
-
|
|
87
|
+
autoIncrement(): AlterTableModifyColumnBuilder;
|
|
86
88
|
primaryKey(): AlterTableModifyColumnBuilder;
|
|
87
89
|
references(ref: string): AlterTableModifyColumnBuilder;
|
|
88
90
|
onDelete(onDelete: OnModifyForeignAction): AlterTableModifyColumnBuilder;
|
|
@@ -91,6 +93,8 @@ export declare class AlterTableModifyColumnBuilder implements ColumnDefinitionBu
|
|
|
91
93
|
notNull(): AlterTableModifyColumnBuilder;
|
|
92
94
|
defaultTo(value: PrimitiveValue | AnyRawBuilder): AlterTableModifyColumnBuilder;
|
|
93
95
|
check(sql: string): AlterTableModifyColumnBuilder;
|
|
96
|
+
generatedAlwaysAs(sql: string): AlterTableModifyColumnBuilder;
|
|
97
|
+
stored(): AlterTableModifyColumnBuilder;
|
|
94
98
|
toOperationNode(): AlterTableNode;
|
|
95
99
|
compile(): CompiledQuery;
|
|
96
100
|
execute(): Promise<void>;
|
|
@@ -190,10 +190,10 @@ class AlterTableAddColumnBuilder {
|
|
|
190
190
|
constructor(props) {
|
|
191
191
|
this.#props = (0, object_utils_js_1.freeze)(props);
|
|
192
192
|
}
|
|
193
|
-
|
|
193
|
+
autoIncrement() {
|
|
194
194
|
return new AlterTableAddColumnBuilder({
|
|
195
195
|
...this.#props,
|
|
196
|
-
columnBuilder: this.#props.columnBuilder.
|
|
196
|
+
columnBuilder: this.#props.columnBuilder.autoIncrement(),
|
|
197
197
|
});
|
|
198
198
|
}
|
|
199
199
|
primaryKey() {
|
|
@@ -244,6 +244,18 @@ class AlterTableAddColumnBuilder {
|
|
|
244
244
|
columnBuilder: this.#props.columnBuilder.check(sql),
|
|
245
245
|
});
|
|
246
246
|
}
|
|
247
|
+
generatedAlwaysAs(sql) {
|
|
248
|
+
return new AlterTableAddColumnBuilder({
|
|
249
|
+
...this.#props,
|
|
250
|
+
columnBuilder: this.#props.columnBuilder.generatedAlwaysAs(sql),
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
stored() {
|
|
254
|
+
return new AlterTableAddColumnBuilder({
|
|
255
|
+
...this.#props,
|
|
256
|
+
columnBuilder: this.#props.columnBuilder.stored(),
|
|
257
|
+
});
|
|
258
|
+
}
|
|
247
259
|
toOperationNode() {
|
|
248
260
|
return this.#props.executor.transformQuery(alter_table_node_js_1.AlterTableNode.cloneWith(this.#props.alterTableNode, {
|
|
249
261
|
addColumn: add_column_node_js_1.AddColumnNode.create(this.#props.columnBuilder.toOperationNode()),
|
|
@@ -262,10 +274,10 @@ class AlterTableModifyColumnBuilder {
|
|
|
262
274
|
constructor(props) {
|
|
263
275
|
this.#props = (0, object_utils_js_1.freeze)(props);
|
|
264
276
|
}
|
|
265
|
-
|
|
277
|
+
autoIncrement() {
|
|
266
278
|
return new AlterTableModifyColumnBuilder({
|
|
267
279
|
...this.#props,
|
|
268
|
-
columnBuilder: this.#props.columnBuilder.
|
|
280
|
+
columnBuilder: this.#props.columnBuilder.autoIncrement(),
|
|
269
281
|
});
|
|
270
282
|
}
|
|
271
283
|
primaryKey() {
|
|
@@ -316,6 +328,18 @@ class AlterTableModifyColumnBuilder {
|
|
|
316
328
|
columnBuilder: this.#props.columnBuilder.check(sql),
|
|
317
329
|
});
|
|
318
330
|
}
|
|
331
|
+
generatedAlwaysAs(sql) {
|
|
332
|
+
return new AlterTableModifyColumnBuilder({
|
|
333
|
+
...this.#props,
|
|
334
|
+
columnBuilder: this.#props.columnBuilder.generatedAlwaysAs(sql),
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
stored() {
|
|
338
|
+
return new AlterTableModifyColumnBuilder({
|
|
339
|
+
...this.#props,
|
|
340
|
+
columnBuilder: this.#props.columnBuilder.stored(),
|
|
341
|
+
});
|
|
342
|
+
}
|
|
319
343
|
toOperationNode() {
|
|
320
344
|
return this.#props.executor.transformQuery(alter_table_node_js_1.AlterTableNode.cloneWith(this.#props.alterTableNode, {
|
|
321
345
|
modifyColumn: modify_column_node_js_1.ModifyColumnNode.create(this.#props.columnBuilder.toOperationNode()),
|
|
@@ -12,7 +12,7 @@ export interface ColumnDefinitionBuilderInterface<R> {
|
|
|
12
12
|
* Some dialects like PostgreSQL don't support this. On PostgreSQL
|
|
13
13
|
* you can use the `serial` or `bigserial` data type instead.
|
|
14
14
|
*/
|
|
15
|
-
|
|
15
|
+
autoIncrement(): R;
|
|
16
16
|
/**
|
|
17
17
|
* Makes the column the primary key.
|
|
18
18
|
*
|
|
@@ -40,10 +40,19 @@ export interface ColumnDefinitionBuilderInterface<R> {
|
|
|
40
40
|
* column definition (like MySQL 5) you need to call the table level
|
|
41
41
|
* {@link TableBuilder.addForeignKeyConstraint} method instead.
|
|
42
42
|
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```ts
|
|
45
|
+
* col.references('person.id').onDelete('cascade')
|
|
46
|
+
* ```
|
|
43
47
|
*/
|
|
44
48
|
onDelete(onDelete: OnModifyForeignAction): R;
|
|
45
49
|
/**
|
|
46
50
|
* Adds an `on update` constraint for the foreign key column.
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```ts
|
|
54
|
+
* col.references('person.id').onUpdate('cascade')
|
|
55
|
+
* ```
|
|
47
56
|
*/
|
|
48
57
|
onUpdate(onUpdate: OnModifyForeignAction): R;
|
|
49
58
|
/**
|
|
@@ -78,11 +87,41 @@ export interface ColumnDefinitionBuilderInterface<R> {
|
|
|
78
87
|
* ```
|
|
79
88
|
*/
|
|
80
89
|
check(sql: string): R;
|
|
90
|
+
/**
|
|
91
|
+
* Makes the column a generated column using a `generated always as` statement.
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```ts
|
|
95
|
+
* db.schema
|
|
96
|
+
* .createTable('person')
|
|
97
|
+
* .addColumn('full_name', 'varchar(255)',
|
|
98
|
+
* (col) => col.generatedAlwaysAs("concat(first_name, ' ', last_name)")
|
|
99
|
+
* )
|
|
100
|
+
* .execute()
|
|
101
|
+
* ```
|
|
102
|
+
*/
|
|
103
|
+
generatedAlwaysAs(sql: string): R;
|
|
104
|
+
/**
|
|
105
|
+
* Makes a generated column stored instead of virtual. This method can only
|
|
106
|
+
* be used with {@link generatedAlwaysAs}
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```ts
|
|
110
|
+
* db.schema
|
|
111
|
+
* .createTable('person')
|
|
112
|
+
* .addColumn('full_name', 'varchar(255)', (col) => col
|
|
113
|
+
* .generatedAlwaysAs("concat(first_name, ' ', last_name)")
|
|
114
|
+
* .stored()
|
|
115
|
+
* )
|
|
116
|
+
* .execute()
|
|
117
|
+
* ```
|
|
118
|
+
*/
|
|
119
|
+
stored(): R;
|
|
81
120
|
}
|
|
82
121
|
export declare class ColumnDefinitionBuilder implements ColumnDefinitionBuilderInterface<ColumnDefinitionBuilder>, OperationNodeSource {
|
|
83
122
|
#private;
|
|
84
123
|
constructor(node: ColumnDefinitionNode);
|
|
85
|
-
|
|
124
|
+
autoIncrement(): ColumnDefinitionBuilder;
|
|
86
125
|
primaryKey(): ColumnDefinitionBuilder;
|
|
87
126
|
references(ref: string): ColumnDefinitionBuilder;
|
|
88
127
|
onDelete(onDelete: OnModifyForeignAction): ColumnDefinitionBuilder;
|
|
@@ -91,5 +130,7 @@ export declare class ColumnDefinitionBuilder implements ColumnDefinitionBuilderI
|
|
|
91
130
|
notNull(): ColumnDefinitionBuilder;
|
|
92
131
|
defaultTo(value: DefaultValueExpression): ColumnDefinitionBuilder;
|
|
93
132
|
check(sql: string): ColumnDefinitionBuilder;
|
|
133
|
+
generatedAlwaysAs(sql: string): ColumnDefinitionBuilder;
|
|
134
|
+
stored(): ColumnDefinitionBuilder;
|
|
94
135
|
toOperationNode(): ColumnDefinitionNode;
|
|
95
136
|
}
|
|
@@ -9,16 +9,18 @@ const reference_parser_js_1 = require("../parser/reference-parser.js");
|
|
|
9
9
|
const prevent_await_js_1 = require("../util/prevent-await.js");
|
|
10
10
|
const column_definition_node_js_1 = require("../operation-node/column-definition-node.js");
|
|
11
11
|
const default_value_parser_js_1 = require("../parser/default-value-parser.js");
|
|
12
|
+
const generated_always_as_node_js_1 = require("../operation-node/generated-always-as-node.js");
|
|
13
|
+
const default_value_node_js_1 = require("../operation-node/default-value-node.js");
|
|
12
14
|
class ColumnDefinitionBuilder {
|
|
13
15
|
#node;
|
|
14
16
|
constructor(node) {
|
|
15
17
|
this.#node = node;
|
|
16
18
|
}
|
|
17
|
-
|
|
18
|
-
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
|
|
19
|
+
autoIncrement() {
|
|
20
|
+
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { autoIncrement: true }));
|
|
19
21
|
}
|
|
20
22
|
primaryKey() {
|
|
21
|
-
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
|
|
23
|
+
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { primaryKey: true }));
|
|
22
24
|
}
|
|
23
25
|
references(ref) {
|
|
24
26
|
const references = (0, reference_parser_js_1.parseStringReference)(ref);
|
|
@@ -48,14 +50,14 @@ class ColumnDefinitionBuilder {
|
|
|
48
50
|
}));
|
|
49
51
|
}
|
|
50
52
|
unique() {
|
|
51
|
-
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
|
|
53
|
+
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { unique: true }));
|
|
52
54
|
}
|
|
53
55
|
notNull() {
|
|
54
|
-
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
|
|
56
|
+
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { nullable: false }));
|
|
55
57
|
}
|
|
56
58
|
defaultTo(value) {
|
|
57
59
|
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
|
|
58
|
-
defaultTo: (0, default_value_parser_js_1.parseDefaultValueExpression)(value),
|
|
60
|
+
defaultTo: default_value_node_js_1.DefaultValueNode.create((0, default_value_parser_js_1.parseDefaultValueExpression)(value)),
|
|
59
61
|
}));
|
|
60
62
|
}
|
|
61
63
|
check(sql) {
|
|
@@ -63,6 +65,21 @@ class ColumnDefinitionBuilder {
|
|
|
63
65
|
check: check_constraint_node_js_1.CheckConstraintNode.create(sql),
|
|
64
66
|
}));
|
|
65
67
|
}
|
|
68
|
+
generatedAlwaysAs(sql) {
|
|
69
|
+
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
|
|
70
|
+
generatedAlwaysAs: generated_always_as_node_js_1.GeneratedAlwaysAsNode.create(sql),
|
|
71
|
+
}));
|
|
72
|
+
}
|
|
73
|
+
stored() {
|
|
74
|
+
if (!this.#node.generatedAlwaysAs) {
|
|
75
|
+
throw new Error('stored() can only be called after generatedAlwaysAs');
|
|
76
|
+
}
|
|
77
|
+
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
|
|
78
|
+
generatedAlwaysAs: generated_always_as_node_js_1.GeneratedAlwaysAsNode.cloneWith(this.#node.generatedAlwaysAs, {
|
|
79
|
+
stored: true,
|
|
80
|
+
}),
|
|
81
|
+
}));
|
|
82
|
+
}
|
|
66
83
|
toOperationNode() {
|
|
67
84
|
return this.#node;
|
|
68
85
|
}
|
|
@@ -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.cloneWith(this.#props.createSchemaNode, {
|
|
15
|
+
createSchemaNode: create_schema_node_js_1.CreateSchemaNode.cloneWith(this.#props.createSchemaNode, { ifNotExists: true }),
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
18
|
toOperationNode() {
|