kysely 0.13.0 → 0.14.0
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/{introspection → dialect}/database-introspector.d.ts +0 -0
- package/dist/cjs/{introspection → dialect}/database-introspector.js +0 -0
- package/dist/cjs/dialect/dialect.d.ts +1 -1
- package/dist/cjs/dialect/mysql/mysql-dialect.d.ts +1 -1
- package/dist/cjs/dialect/mysql/mysql-introspector.d.ts +1 -1
- package/dist/cjs/dialect/postgres/postgres-dialect.d.ts +1 -1
- package/dist/cjs/dialect/postgres/postgres-introspector.d.ts +1 -1
- package/dist/cjs/dialect/sqlite/sqlite-dialect.d.ts +1 -1
- package/dist/cjs/dialect/sqlite/sqlite-introspector.d.ts +1 -1
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/kysely.d.ts +1 -1
- package/dist/cjs/operation-node/check-constraint-node.d.ts +1 -1
- package/dist/cjs/operation-node/check-constraint-node.js +2 -3
- package/dist/cjs/operation-node/column-definition-node.d.ts +2 -2
- package/dist/cjs/operation-node/data-type-node.d.ts +1 -1
- package/dist/cjs/operation-node/generated-node.d.ts +20 -0
- package/dist/cjs/operation-node/generated-node.js +31 -0
- package/dist/cjs/operation-node/on-conflict-node.d.ts +13 -2
- package/dist/cjs/operation-node/on-conflict-node.js +39 -1
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +2 -2
- package/dist/cjs/operation-node/operation-node-transformer.js +11 -5
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +2 -2
- package/dist/cjs/operation-node/operation-node-visitor.js +1 -1
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- package/dist/cjs/query-builder/insert-query-builder.d.ts +76 -75
- package/dist/cjs/query-builder/insert-query-builder.js +150 -15
- package/dist/cjs/query-builder/on-conflict-builder.d.ts +684 -0
- package/dist/cjs/query-builder/on-conflict-builder.js +323 -0
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +2 -2
- package/dist/cjs/query-compiler/default-query-compiler.js +33 -7
- package/dist/cjs/schema/alter-table-builder.d.ts +29 -9
- package/dist/cjs/schema/alter-table-builder.js +33 -9
- package/dist/cjs/schema/column-definition-builder.d.ts +28 -8
- package/dist/cjs/schema/column-definition-builder.js +17 -7
- package/dist/cjs/schema/create-index-builder.d.ts +3 -2
- package/dist/cjs/schema/create-index-builder.js +2 -2
- package/dist/cjs/schema/create-table-builder.d.ts +3 -2
- package/dist/cjs/schema/create-table-builder.js +2 -2
- package/dist/esm/{introspection → dialect}/database-introspector.d.ts +0 -0
- package/dist/esm/{introspection → dialect}/database-introspector.js +0 -0
- package/dist/esm/dialect/dialect.d.ts +1 -1
- package/dist/esm/dialect/mysql/mysql-dialect.d.ts +1 -1
- package/dist/esm/dialect/mysql/mysql-introspector.d.ts +1 -1
- package/dist/esm/dialect/postgres/postgres-dialect.d.ts +1 -1
- package/dist/esm/dialect/postgres/postgres-introspector.d.ts +1 -1
- package/dist/esm/dialect/sqlite/sqlite-dialect.d.ts +1 -1
- package/dist/esm/dialect/sqlite/sqlite-introspector.d.ts +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +2 -2
- package/dist/esm/kysely.d.ts +1 -1
- package/dist/esm/operation-node/check-constraint-node.d.ts +1 -1
- package/dist/esm/operation-node/check-constraint-node.js +2 -3
- package/dist/esm/operation-node/column-definition-node.d.ts +2 -2
- package/dist/esm/operation-node/data-type-node.d.ts +1 -1
- package/dist/esm/operation-node/generated-node.d.ts +20 -0
- package/dist/esm/operation-node/generated-node.js +28 -0
- package/dist/esm/operation-node/on-conflict-node.d.ts +13 -2
- package/dist/esm/operation-node/on-conflict-node.js +39 -1
- package/dist/esm/operation-node/operation-node-transformer.d.ts +2 -2
- package/dist/esm/operation-node/operation-node-transformer.js +11 -5
- package/dist/esm/operation-node/operation-node-visitor.d.ts +2 -2
- package/dist/esm/operation-node/operation-node-visitor.js +1 -1
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- package/dist/esm/query-builder/insert-query-builder.d.ts +76 -75
- package/dist/esm/query-builder/insert-query-builder.js +150 -15
- package/dist/esm/query-builder/on-conflict-builder.d.ts +684 -0
- package/dist/esm/query-builder/on-conflict-builder.js +317 -0
- package/dist/esm/query-compiler/default-query-compiler.d.ts +2 -2
- package/dist/esm/query-compiler/default-query-compiler.js +33 -7
- package/dist/esm/schema/alter-table-builder.d.ts +29 -9
- package/dist/esm/schema/alter-table-builder.js +33 -9
- package/dist/esm/schema/column-definition-builder.d.ts +28 -8
- package/dist/esm/schema/column-definition-builder.js +17 -7
- package/dist/esm/schema/create-index-builder.d.ts +3 -2
- package/dist/esm/schema/create-index-builder.js +2 -2
- package/dist/esm/schema/create-table-builder.d.ts +3 -2
- package/dist/esm/schema/create-table-builder.js +2 -2
- package/package.json +1 -1
- package/dist/cjs/operation-node/generated-always-as-node.d.ts +0 -16
- package/dist/cjs/operation-node/generated-always-as-node.js +0 -25
- package/dist/cjs/parser/on-conflict-parser.d.ts +0 -10
- package/dist/cjs/parser/on-conflict-parser.js +0 -35
- package/dist/esm/operation-node/generated-always-as-node.d.ts +0 -16
- package/dist/esm/operation-node/generated-always-as-node.js +0 -22
- package/dist/esm/parser/on-conflict-parser.d.ts +0 -10
- package/dist/esm/parser/on-conflict-parser.js +0 -30
|
@@ -9,7 +9,7 @@ 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
|
|
12
|
+
const generated_node_js_1 = require("../operation-node/generated-node.js");
|
|
13
13
|
const default_value_node_js_1 = require("../operation-node/default-value-node.js");
|
|
14
14
|
class ColumnDefinitionBuilder {
|
|
15
15
|
#node;
|
|
@@ -63,22 +63,32 @@ class ColumnDefinitionBuilder {
|
|
|
63
63
|
defaultTo: default_value_node_js_1.DefaultValueNode.create((0, default_value_parser_js_1.parseDefaultValueExpression)(value)),
|
|
64
64
|
}));
|
|
65
65
|
}
|
|
66
|
-
check(
|
|
66
|
+
check(expression) {
|
|
67
67
|
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
|
|
68
|
-
check: check_constraint_node_js_1.CheckConstraintNode.create(
|
|
68
|
+
check: check_constraint_node_js_1.CheckConstraintNode.create(expression.toOperationNode()),
|
|
69
69
|
}));
|
|
70
70
|
}
|
|
71
|
-
generatedAlwaysAs(
|
|
71
|
+
generatedAlwaysAs(expression) {
|
|
72
72
|
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
|
|
73
|
-
|
|
73
|
+
generated: generated_node_js_1.GeneratedNode.createWithExpression(expression.toOperationNode()),
|
|
74
|
+
}));
|
|
75
|
+
}
|
|
76
|
+
generatedAlwaysAsIdentity() {
|
|
77
|
+
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
|
|
78
|
+
generated: generated_node_js_1.GeneratedNode.create({ identity: true, always: true }),
|
|
79
|
+
}));
|
|
80
|
+
}
|
|
81
|
+
generatedByDefaultAsIdentity() {
|
|
82
|
+
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
|
|
83
|
+
generated: generated_node_js_1.GeneratedNode.create({ identity: true, byDefault: true }),
|
|
74
84
|
}));
|
|
75
85
|
}
|
|
76
86
|
stored() {
|
|
77
|
-
if (!this.#node.
|
|
87
|
+
if (!this.#node.generated) {
|
|
78
88
|
throw new Error('stored() can only be called after generatedAlwaysAs');
|
|
79
89
|
}
|
|
80
90
|
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
|
|
81
|
-
|
|
91
|
+
generated: generated_node_js_1.GeneratedNode.cloneWith(this.#node.generated, {
|
|
82
92
|
stored: true,
|
|
83
93
|
}),
|
|
84
94
|
}));
|
|
@@ -4,6 +4,7 @@ import { CompiledQuery } from '../query-compiler/compiled-query.js';
|
|
|
4
4
|
import { Compilable } from '../util/compilable.js';
|
|
5
5
|
import { QueryExecutor } from '../query-executor/query-executor.js';
|
|
6
6
|
import { QueryId } from '../util/query-id.js';
|
|
7
|
+
import { AnyRawBuilder } from '../util/type-utils.js';
|
|
7
8
|
export declare class CreateIndexBuilder implements OperationNodeSource, Compilable {
|
|
8
9
|
#private;
|
|
9
10
|
constructor(props: CreateIndexBuilderProps);
|
|
@@ -36,11 +37,11 @@ export declare class CreateIndexBuilder implements OperationNodeSource, Compilab
|
|
|
36
37
|
* await db.schema
|
|
37
38
|
* .createIndex('person_first_name_index')
|
|
38
39
|
* .on('person')
|
|
39
|
-
* .expression('first_name COLLATE "fi_FI"')
|
|
40
|
+
* .expression(db.raw('first_name COLLATE "fi_FI"'))
|
|
40
41
|
* .execute()
|
|
41
42
|
* ```
|
|
42
43
|
*/
|
|
43
|
-
expression(expression:
|
|
44
|
+
expression(expression: AnyRawBuilder): CreateIndexBuilder;
|
|
44
45
|
/**
|
|
45
46
|
* Specifies the index type.
|
|
46
47
|
*/
|
|
@@ -70,7 +70,7 @@ class CreateIndexBuilder {
|
|
|
70
70
|
* await db.schema
|
|
71
71
|
* .createIndex('person_first_name_index')
|
|
72
72
|
* .on('person')
|
|
73
|
-
* .expression('first_name COLLATE "fi_FI"')
|
|
73
|
+
* .expression(db.raw('first_name COLLATE "fi_FI"'))
|
|
74
74
|
* .execute()
|
|
75
75
|
* ```
|
|
76
76
|
*/
|
|
@@ -78,7 +78,7 @@ class CreateIndexBuilder {
|
|
|
78
78
|
return new CreateIndexBuilder({
|
|
79
79
|
...this.#props,
|
|
80
80
|
createIndexNode: create_index_node_js_1.CreateIndexNode.cloneWith(this.#props.createIndexNode, {
|
|
81
|
-
expression:
|
|
81
|
+
expression: expression.toOperationNode(),
|
|
82
82
|
}),
|
|
83
83
|
});
|
|
84
84
|
}
|
|
@@ -7,6 +7,7 @@ import { ColumnDefinitionBuilder } from './column-definition-builder.js';
|
|
|
7
7
|
import { QueryId } from '../util/query-id.js';
|
|
8
8
|
import { ForeignKeyConstraintBuilder } from './foreign-key-constraint-builder.js';
|
|
9
9
|
import { DataTypeExpression } from '../parser/data-type-parser.js';
|
|
10
|
+
import { AnyRawBuilder } from '../util/type-utils.js';
|
|
10
11
|
/**
|
|
11
12
|
* This builder can be used to create a `create table` query.
|
|
12
13
|
*/
|
|
@@ -110,10 +111,10 @@ export declare class CreateTableBuilder<TB extends string, C extends string = ne
|
|
|
110
111
|
* ### Examples
|
|
111
112
|
*
|
|
112
113
|
* ```ts
|
|
113
|
-
* addCheckConstraint('check_legs', 'number_of_legs < 5')
|
|
114
|
+
* addCheckConstraint('check_legs', db.raw('number_of_legs < 5'))
|
|
114
115
|
* ```
|
|
115
116
|
*/
|
|
116
|
-
addCheckConstraint(constraintName: string, checkExpression:
|
|
117
|
+
addCheckConstraint(constraintName: string, checkExpression: AnyRawBuilder): CreateTableBuilder<TB, C>;
|
|
117
118
|
/**
|
|
118
119
|
* Adds a foreign key constraint.
|
|
119
120
|
*
|
|
@@ -156,13 +156,13 @@ class CreateTableBuilder {
|
|
|
156
156
|
* ### Examples
|
|
157
157
|
*
|
|
158
158
|
* ```ts
|
|
159
|
-
* addCheckConstraint('check_legs', 'number_of_legs < 5')
|
|
159
|
+
* addCheckConstraint('check_legs', db.raw('number_of_legs < 5'))
|
|
160
160
|
* ```
|
|
161
161
|
*/
|
|
162
162
|
addCheckConstraint(constraintName, checkExpression) {
|
|
163
163
|
return new CreateTableBuilder({
|
|
164
164
|
...this.#props,
|
|
165
|
-
createTableNode: create_table_node_js_1.CreateTableNode.cloneWithConstraint(this.#props.createTableNode, check_constraint_node_js_1.CheckConstraintNode.create(checkExpression, constraintName)),
|
|
165
|
+
createTableNode: create_table_node_js_1.CreateTableNode.cloneWithConstraint(this.#props.createTableNode, check_constraint_node_js_1.CheckConstraintNode.create(checkExpression.toOperationNode(), constraintName)),
|
|
166
166
|
});
|
|
167
167
|
}
|
|
168
168
|
/**
|
|
File without changes
|
|
File without changes
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Driver } from '../driver/driver.js';
|
|
2
2
|
import { Kysely } from '../kysely.js';
|
|
3
3
|
import { QueryCompiler } from '../query-compiler/query-compiler.js';
|
|
4
|
-
import { DatabaseIntrospector } from '
|
|
4
|
+
import { DatabaseIntrospector } from './database-introspector.js';
|
|
5
5
|
import { DialectAdapter } from './dialect-adapter.js';
|
|
6
6
|
/**
|
|
7
7
|
* A Dialect is the glue between Kysely and the underlying database engine.
|
|
@@ -2,7 +2,7 @@ import { Driver } from '../../driver/driver.js';
|
|
|
2
2
|
import { Kysely } from '../../kysely.js';
|
|
3
3
|
import { QueryCompiler } from '../../query-compiler/query-compiler.js';
|
|
4
4
|
import { Dialect } from '../dialect.js';
|
|
5
|
-
import { DatabaseIntrospector } from '
|
|
5
|
+
import { DatabaseIntrospector } from '../database-introspector.js';
|
|
6
6
|
import { DialectAdapter } from '../dialect-adapter.js';
|
|
7
7
|
import { DatabaseConnection } from '../../driver/database-connection.js';
|
|
8
8
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DatabaseIntrospector, DatabaseMetadata, DatabaseMetadataOptions } from '
|
|
1
|
+
import { DatabaseIntrospector, DatabaseMetadata, DatabaseMetadataOptions } from '../database-introspector.js';
|
|
2
2
|
import { Kysely } from '../../kysely.js';
|
|
3
3
|
export declare class MysqlIntrospector implements DatabaseIntrospector {
|
|
4
4
|
#private;
|
|
@@ -5,7 +5,7 @@ import { Driver } from '../../driver/driver.js';
|
|
|
5
5
|
import { Kysely } from '../../kysely.js';
|
|
6
6
|
import { QueryCompiler } from '../../query-compiler/query-compiler.js';
|
|
7
7
|
import { Dialect } from '../dialect.js';
|
|
8
|
-
import { DatabaseIntrospector } from '
|
|
8
|
+
import { DatabaseIntrospector } from '../database-introspector.js';
|
|
9
9
|
import { DialectAdapter } from '../dialect-adapter.js';
|
|
10
10
|
import { DatabaseConnection } from '../../driver/database-connection.js';
|
|
11
11
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DatabaseIntrospector, DatabaseMetadata, DatabaseMetadataOptions } from '
|
|
1
|
+
import { DatabaseIntrospector, DatabaseMetadata, DatabaseMetadataOptions } from '../database-introspector.js';
|
|
2
2
|
import { Kysely } from '../../kysely.js';
|
|
3
3
|
export declare class PostgresIntrospector implements DatabaseIntrospector {
|
|
4
4
|
#private;
|
|
@@ -2,7 +2,7 @@ import { Driver } from '../../driver/driver.js';
|
|
|
2
2
|
import { Kysely } from '../../kysely.js';
|
|
3
3
|
import { QueryCompiler } from '../../query-compiler/query-compiler.js';
|
|
4
4
|
import { Dialect } from '../dialect.js';
|
|
5
|
-
import { DatabaseIntrospector } from '
|
|
5
|
+
import { DatabaseIntrospector } from '../database-introspector.js';
|
|
6
6
|
import { DialectAdapter } from '../dialect-adapter.js';
|
|
7
7
|
import { DatabaseConnection } from '../../driver/database-connection.js';
|
|
8
8
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DatabaseIntrospector, DatabaseMetadata, DatabaseMetadataOptions } from '
|
|
1
|
+
import { DatabaseIntrospector, DatabaseMetadata, DatabaseMetadataOptions } from '../database-introspector.js';
|
|
2
2
|
import { Kysely } from '../../kysely.js';
|
|
3
3
|
export declare class SqliteIntrospector implements DatabaseIntrospector {
|
|
4
4
|
#private;
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -91,7 +91,7 @@ export * from './operation-node/drop-view-node.js';
|
|
|
91
91
|
export * from './operation-node/filter-node.js';
|
|
92
92
|
export * from './operation-node/foreign-key-constraint-node.js';
|
|
93
93
|
export * from './operation-node/from-node.js';
|
|
94
|
-
export * from './operation-node/generated-
|
|
94
|
+
export * from './operation-node/generated-node.js';
|
|
95
95
|
export * from './operation-node/group-by-item-node.js';
|
|
96
96
|
export * from './operation-node/group-by-node.js';
|
|
97
97
|
export * from './operation-node/having-node.js';
|
|
@@ -136,7 +136,7 @@ export * from './operation-node/value-node.js';
|
|
|
136
136
|
export * from './operation-node/values-node.js';
|
|
137
137
|
export * from './operation-node/where-node.js';
|
|
138
138
|
export * from './operation-node/with-node.js';
|
|
139
|
-
export * from './
|
|
139
|
+
export * from './dialect/database-introspector.js';
|
|
140
140
|
export * from './util/compilable.js';
|
|
141
141
|
export * from './util/log.js';
|
|
142
142
|
export { AnyColumn, UnknownRow, AnySelectQueryBuilder, } from './util/type-utils.js';
|
package/dist/esm/index.js
CHANGED
|
@@ -91,7 +91,7 @@ export * from './operation-node/drop-view-node.js';
|
|
|
91
91
|
export * from './operation-node/filter-node.js';
|
|
92
92
|
export * from './operation-node/foreign-key-constraint-node.js';
|
|
93
93
|
export * from './operation-node/from-node.js';
|
|
94
|
-
export * from './operation-node/generated-
|
|
94
|
+
export * from './operation-node/generated-node.js';
|
|
95
95
|
export * from './operation-node/group-by-item-node.js';
|
|
96
96
|
export * from './operation-node/group-by-node.js';
|
|
97
97
|
export * from './operation-node/having-node.js';
|
|
@@ -136,6 +136,6 @@ export * from './operation-node/value-node.js';
|
|
|
136
136
|
export * from './operation-node/values-node.js';
|
|
137
137
|
export * from './operation-node/where-node.js';
|
|
138
138
|
export * from './operation-node/with-node.js';
|
|
139
|
-
export * from './
|
|
139
|
+
export * from './dialect/database-introspector.js';
|
|
140
140
|
export * from './util/compilable.js';
|
|
141
141
|
export * from './util/log.js';
|
package/dist/esm/kysely.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { QueryExecutor } from './query-executor/query-executor.js';
|
|
|
6
6
|
import { QueryCreator } from './query-creator.js';
|
|
7
7
|
import { KyselyPlugin } from './plugin/kysely-plugin.js';
|
|
8
8
|
import { GeneratedPlaceholder } from './util/type-utils.js';
|
|
9
|
-
import { DatabaseIntrospector } from './
|
|
9
|
+
import { DatabaseIntrospector } from './dialect/database-introspector.js';
|
|
10
10
|
import { Driver, IsolationLevel } from './driver/driver.js';
|
|
11
11
|
import { ParseContext } from './parser/parse-context.js';
|
|
12
12
|
import { FunctionBuilder } from './query-builder/function-builder.js';
|
|
@@ -11,5 +11,5 @@ export interface CheckConstraintNode extends OperationNode {
|
|
|
11
11
|
*/
|
|
12
12
|
export declare const CheckConstraintNode: Readonly<{
|
|
13
13
|
is(node: OperationNode): node is CheckConstraintNode;
|
|
14
|
-
create(
|
|
14
|
+
create(expression: RawNode, constraintName?: string | undefined): CheckConstraintNode;
|
|
15
15
|
}>;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { freeze } from '../util/object-utils.js';
|
|
2
|
-
import { RawNode } from './raw-node.js';
|
|
3
2
|
import { IdentifierNode } from './identifier-node.js';
|
|
4
3
|
/**
|
|
5
4
|
* @internal
|
|
@@ -8,10 +7,10 @@ export const CheckConstraintNode = freeze({
|
|
|
8
7
|
is(node) {
|
|
9
8
|
return node.kind === 'CheckConstraintNode';
|
|
10
9
|
},
|
|
11
|
-
create(
|
|
10
|
+
create(expression, constraintName) {
|
|
12
11
|
return freeze({
|
|
13
12
|
kind: 'CheckConstraintNode',
|
|
14
|
-
expression
|
|
13
|
+
expression,
|
|
15
14
|
name: constraintName ? IdentifierNode.create(constraintName) : undefined,
|
|
16
15
|
});
|
|
17
16
|
},
|
|
@@ -2,7 +2,7 @@ import { CheckConstraintNode } from './check-constraint-node.js';
|
|
|
2
2
|
import { ColumnNode } from './column-node.js';
|
|
3
3
|
import { DataTypeNode } from './data-type-node.js';
|
|
4
4
|
import { DefaultValueNode } from './default-value-node.js';
|
|
5
|
-
import {
|
|
5
|
+
import { GeneratedNode } from './generated-node.js';
|
|
6
6
|
import { OperationNode } from './operation-node.js';
|
|
7
7
|
import { RawNode } from './raw-node.js';
|
|
8
8
|
import { ReferencesNode } from './references-node.js';
|
|
@@ -19,7 +19,7 @@ export interface ColumnDefinitionNode extends OperationNode {
|
|
|
19
19
|
readonly notNull?: boolean;
|
|
20
20
|
readonly defaultTo?: DefaultValueNode;
|
|
21
21
|
readonly check?: CheckConstraintNode;
|
|
22
|
-
readonly
|
|
22
|
+
readonly generated?: GeneratedNode;
|
|
23
23
|
readonly unsigned?: boolean;
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
|
-
export declare type ColumnDataType = 'varchar' | `varchar(${number})` | 'text' | 'integer' | 'int2' | 'int4' | 'int8' | 'bigint' | 'boolean' | 'real' | 'double precision' | 'float4' | 'float8' | 'decimal' | `decimal(${number}, ${number})` | 'numeric' | `numeric(${number}, ${number})` | 'binary' | 'date' | 'datetime' | 'time' | 'timetz' | 'timestamp' | 'timestamptz' | 'serial' | 'bigserial' | 'uuid' | 'json' | 'jsonb';
|
|
2
|
+
export declare type ColumnDataType = 'varchar' | `varchar(${number})` | 'text' | 'integer' | 'int2' | 'int4' | 'int8' | 'bigint' | 'boolean' | 'real' | 'double precision' | 'float4' | 'float8' | 'decimal' | `decimal(${number}, ${number})` | 'numeric' | `numeric(${number}, ${number})` | 'binary' | 'date' | 'datetime' | 'time' | 'timetz' | 'timestamp' | 'timestamptz' | 'serial' | 'bigserial' | 'uuid' | 'json' | 'jsonb' | 'blob';
|
|
3
3
|
export declare type DataTypeParams = Omit<DataTypeNode, 'kind' | 'dataType'>;
|
|
4
4
|
export interface DataTypeNode extends OperationNode {
|
|
5
5
|
readonly kind: 'DataTypeNode';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { OperationNode } from './operation-node.js';
|
|
2
|
+
import { RawNode } from './raw-node.js';
|
|
3
|
+
export declare type GeneratedNodeParams = Omit<GeneratedNode, 'kind' | 'expression'>;
|
|
4
|
+
export interface GeneratedNode extends OperationNode {
|
|
5
|
+
readonly kind: 'GeneratedNode';
|
|
6
|
+
readonly byDefault?: boolean;
|
|
7
|
+
readonly always?: boolean;
|
|
8
|
+
readonly identity?: boolean;
|
|
9
|
+
readonly stored?: boolean;
|
|
10
|
+
readonly expression?: RawNode;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
export declare const GeneratedNode: Readonly<{
|
|
16
|
+
is(node: OperationNode): node is GeneratedNode;
|
|
17
|
+
create(params: GeneratedNodeParams): GeneratedNode;
|
|
18
|
+
createWithExpression(expression: RawNode): GeneratedNode;
|
|
19
|
+
cloneWith(node: GeneratedNode, params: GeneratedNodeParams): GeneratedNode;
|
|
20
|
+
}>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { freeze } from '../util/object-utils.js';
|
|
2
|
+
/**
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
export const GeneratedNode = freeze({
|
|
6
|
+
is(node) {
|
|
7
|
+
return node.kind === 'GeneratedNode';
|
|
8
|
+
},
|
|
9
|
+
create(params) {
|
|
10
|
+
return freeze({
|
|
11
|
+
kind: 'GeneratedNode',
|
|
12
|
+
...params,
|
|
13
|
+
});
|
|
14
|
+
},
|
|
15
|
+
createWithExpression(expression) {
|
|
16
|
+
return freeze({
|
|
17
|
+
kind: 'GeneratedNode',
|
|
18
|
+
always: true,
|
|
19
|
+
expression,
|
|
20
|
+
});
|
|
21
|
+
},
|
|
22
|
+
cloneWith(node, params) {
|
|
23
|
+
return freeze({
|
|
24
|
+
...node,
|
|
25
|
+
...params,
|
|
26
|
+
});
|
|
27
|
+
},
|
|
28
|
+
});
|
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
import { ColumnNode } from './column-node.js';
|
|
2
2
|
import { ColumnUpdateNode } from './column-update-node.js';
|
|
3
3
|
import { IdentifierNode } from './identifier-node.js';
|
|
4
|
+
import { FilterExpressionNode } from './operation-node-utils.js';
|
|
4
5
|
import { OperationNode } from './operation-node.js';
|
|
5
|
-
|
|
6
|
+
import { RawNode } from './raw-node.js';
|
|
7
|
+
import { WhereNode } from './where-node.js';
|
|
8
|
+
export declare type OnConflictNodeProps = Omit<OnConflictNode, 'kind' | 'indexWhere' | 'updateWhere'>;
|
|
6
9
|
export interface OnConflictNode extends OperationNode {
|
|
7
10
|
readonly kind: 'OnConflictNode';
|
|
8
11
|
readonly columns?: ReadonlyArray<ColumnNode>;
|
|
9
12
|
readonly constraint?: IdentifierNode;
|
|
13
|
+
readonly indexExpression?: RawNode;
|
|
14
|
+
readonly indexWhere?: WhereNode;
|
|
10
15
|
readonly updates?: ReadonlyArray<ColumnUpdateNode>;
|
|
16
|
+
readonly updateWhere?: WhereNode;
|
|
11
17
|
readonly doNothing?: boolean;
|
|
12
18
|
}
|
|
13
19
|
/**
|
|
@@ -15,5 +21,10 @@ export interface OnConflictNode extends OperationNode {
|
|
|
15
21
|
*/
|
|
16
22
|
export declare const OnConflictNode: Readonly<{
|
|
17
23
|
is(node: OperationNode): node is OnConflictNode;
|
|
18
|
-
create(
|
|
24
|
+
create(): OnConflictNode;
|
|
25
|
+
cloneWith(node: OnConflictNode, props: OnConflictNodeProps): OnConflictNode;
|
|
26
|
+
cloneWithIndexWhere(node: OnConflictNode, filter: FilterExpressionNode): OnConflictNode;
|
|
27
|
+
cloneWithIndexOrWhere(node: OnConflictNode, filter: FilterExpressionNode): OnConflictNode;
|
|
28
|
+
cloneWithUpdateWhere(node: OnConflictNode, filter: FilterExpressionNode): OnConflictNode;
|
|
29
|
+
cloneWithUpdateOrWhere(node: OnConflictNode, filter: FilterExpressionNode): OnConflictNode;
|
|
19
30
|
}>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { freeze } from '../util/object-utils.js';
|
|
2
|
+
import { WhereNode } from './where-node.js';
|
|
2
3
|
/**
|
|
3
4
|
* @internal
|
|
4
5
|
*/
|
|
@@ -6,10 +7,47 @@ export const OnConflictNode = freeze({
|
|
|
6
7
|
is(node) {
|
|
7
8
|
return node.kind === 'OnConflictNode';
|
|
8
9
|
},
|
|
9
|
-
create(
|
|
10
|
+
create() {
|
|
10
11
|
return freeze({
|
|
11
12
|
kind: 'OnConflictNode',
|
|
13
|
+
});
|
|
14
|
+
},
|
|
15
|
+
cloneWith(node, props) {
|
|
16
|
+
return freeze({
|
|
17
|
+
...node,
|
|
12
18
|
...props,
|
|
13
19
|
});
|
|
14
20
|
},
|
|
21
|
+
cloneWithIndexWhere(node, filter) {
|
|
22
|
+
return freeze({
|
|
23
|
+
...node,
|
|
24
|
+
indexWhere: node.indexWhere
|
|
25
|
+
? WhereNode.cloneWithFilter(node.indexWhere, 'And', filter)
|
|
26
|
+
: WhereNode.create(filter),
|
|
27
|
+
});
|
|
28
|
+
},
|
|
29
|
+
cloneWithIndexOrWhere(node, filter) {
|
|
30
|
+
return freeze({
|
|
31
|
+
...node,
|
|
32
|
+
indexWhere: node.indexWhere
|
|
33
|
+
? WhereNode.cloneWithFilter(node.indexWhere, 'Or', filter)
|
|
34
|
+
: WhereNode.create(filter),
|
|
35
|
+
});
|
|
36
|
+
},
|
|
37
|
+
cloneWithUpdateWhere(node, filter) {
|
|
38
|
+
return freeze({
|
|
39
|
+
...node,
|
|
40
|
+
updateWhere: node.updateWhere
|
|
41
|
+
? WhereNode.cloneWithFilter(node.updateWhere, 'And', filter)
|
|
42
|
+
: WhereNode.create(filter),
|
|
43
|
+
});
|
|
44
|
+
},
|
|
45
|
+
cloneWithUpdateOrWhere(node, filter) {
|
|
46
|
+
return freeze({
|
|
47
|
+
...node,
|
|
48
|
+
updateWhere: node.updateWhere
|
|
49
|
+
? WhereNode.cloneWithFilter(node.updateWhere, 'Or', filter)
|
|
50
|
+
: WhereNode.create(filter),
|
|
51
|
+
});
|
|
52
|
+
},
|
|
15
53
|
});
|
|
@@ -61,7 +61,7 @@ import { OnDuplicateKeyNode } from './on-duplicate-key-node.js';
|
|
|
61
61
|
import { UnionNode } from './union-node.js';
|
|
62
62
|
import { CreateViewNode } from './create-view-node.js';
|
|
63
63
|
import { DropViewNode } from './drop-view-node.js';
|
|
64
|
-
import {
|
|
64
|
+
import { GeneratedNode } from './generated-node.js';
|
|
65
65
|
import { DefaultValueNode } from './default-value-node.js';
|
|
66
66
|
import { OnNode } from './on-node.js';
|
|
67
67
|
import { ValuesNode } from './values-node.js';
|
|
@@ -156,7 +156,7 @@ export declare class OperationNodeTransformer {
|
|
|
156
156
|
protected transformDropConstraint(node: DropConstraintNode): DropConstraintNode;
|
|
157
157
|
protected transformCreateView(node: CreateViewNode): CreateViewNode;
|
|
158
158
|
protected transformDropView(node: DropViewNode): DropViewNode;
|
|
159
|
-
protected
|
|
159
|
+
protected transformGenerated(node: GeneratedNode): GeneratedNode;
|
|
160
160
|
protected transformDefaultValue(node: DefaultValueNode): DefaultValueNode;
|
|
161
161
|
protected transformOn(node: OnNode): OnNode;
|
|
162
162
|
protected transformDataType(node: DataTypeNode): DataTypeNode;
|
|
@@ -93,7 +93,7 @@ export class OperationNodeTransformer {
|
|
|
93
93
|
UnionNode: this.transformUnion.bind(this),
|
|
94
94
|
CreateViewNode: this.transformCreateView.bind(this),
|
|
95
95
|
DropViewNode: this.transformDropView.bind(this),
|
|
96
|
-
|
|
96
|
+
GeneratedNode: this.transformGenerated.bind(this),
|
|
97
97
|
DefaultValueNode: this.transformDefaultValue.bind(this),
|
|
98
98
|
OnNode: this.transformOn.bind(this),
|
|
99
99
|
ValuesNode: this.transformValues.bind(this),
|
|
@@ -285,7 +285,7 @@ export class OperationNodeTransformer {
|
|
|
285
285
|
unsigned: node.unsigned,
|
|
286
286
|
defaultTo: this.transformNode(node.defaultTo),
|
|
287
287
|
check: this.transformNode(node.check),
|
|
288
|
-
|
|
288
|
+
generated: this.transformNode(node.generated),
|
|
289
289
|
};
|
|
290
290
|
}
|
|
291
291
|
transformAddColumn(node) {
|
|
@@ -361,7 +361,10 @@ export class OperationNodeTransformer {
|
|
|
361
361
|
kind: 'OnConflictNode',
|
|
362
362
|
columns: this.transformNodeList(node.columns),
|
|
363
363
|
constraint: this.transformNode(node.constraint),
|
|
364
|
+
indexExpression: this.transformNode(node.indexExpression),
|
|
365
|
+
indexWhere: this.transformNode(node.indexWhere),
|
|
364
366
|
updates: this.transformNodeList(node.updates),
|
|
367
|
+
updateWhere: this.transformNode(node.updateWhere),
|
|
365
368
|
doNothing: node.doNothing,
|
|
366
369
|
};
|
|
367
370
|
}
|
|
@@ -560,11 +563,14 @@ export class OperationNodeTransformer {
|
|
|
560
563
|
materialized: node.materialized,
|
|
561
564
|
};
|
|
562
565
|
}
|
|
563
|
-
|
|
566
|
+
transformGenerated(node) {
|
|
564
567
|
return {
|
|
565
|
-
kind: '
|
|
566
|
-
|
|
568
|
+
kind: 'GeneratedNode',
|
|
569
|
+
byDefault: node.byDefault,
|
|
570
|
+
always: node.always,
|
|
571
|
+
identity: node.identity,
|
|
567
572
|
stored: node.stored,
|
|
573
|
+
expression: this.transformNode(node.expression),
|
|
568
574
|
};
|
|
569
575
|
}
|
|
570
576
|
transformDefaultValue(node) {
|
|
@@ -61,7 +61,7 @@ import { OnDuplicateKeyNode } from './on-duplicate-key-node.js';
|
|
|
61
61
|
import { UnionNode } from './union-node.js';
|
|
62
62
|
import { CreateViewNode } from './create-view-node.js';
|
|
63
63
|
import { DropViewNode } from './drop-view-node.js';
|
|
64
|
-
import {
|
|
64
|
+
import { GeneratedNode } from './generated-node.js';
|
|
65
65
|
import { DefaultValueNode } from './default-value-node.js';
|
|
66
66
|
import { OnNode } from './on-node.js';
|
|
67
67
|
import { ValuesNode } from './values-node.js';
|
|
@@ -132,7 +132,7 @@ export declare abstract class OperationNodeVisitor {
|
|
|
132
132
|
protected abstract visitOperator(node: OperatorNode): void;
|
|
133
133
|
protected abstract visitCreateView(node: CreateViewNode): void;
|
|
134
134
|
protected abstract visitDropView(node: DropViewNode): void;
|
|
135
|
-
protected abstract
|
|
135
|
+
protected abstract visitGenerated(node: GeneratedNode): void;
|
|
136
136
|
protected abstract visitDefaultValue(node: DefaultValueNode): void;
|
|
137
137
|
protected abstract visitOn(node: OnNode): void;
|
|
138
138
|
protected abstract visitValues(node: ValuesNode): void;
|
|
@@ -67,7 +67,7 @@ export class OperationNodeVisitor {
|
|
|
67
67
|
UnionNode: this.visitUnion.bind(this),
|
|
68
68
|
CreateViewNode: this.visitCreateView.bind(this),
|
|
69
69
|
DropViewNode: this.visitDropView.bind(this),
|
|
70
|
-
|
|
70
|
+
GeneratedNode: this.visitGenerated.bind(this),
|
|
71
71
|
DefaultValueNode: this.visitDefaultValue.bind(this),
|
|
72
72
|
OnNode: this.visitOn.bind(this),
|
|
73
73
|
ValuesNode: this.visitValues.bind(this),
|
|
@@ -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' | 'CreateViewNode' | 'DropViewNode' | '
|
|
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' | 'GeneratedNode' | 'DefaultValueNode' | 'OnNode' | 'ValuesNode' | 'CommonTableExpressionNameNode';
|
|
2
2
|
export interface OperationNode {
|
|
3
3
|
readonly kind: OperationNodeKind;
|
|
4
4
|
}
|