kysely 0.9.9 → 0.11.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 +22 -16
- package/dist/cjs/dialect/dialect-adapter.d.ts +3 -2
- package/dist/cjs/dialect/mysql/mysql-adapter.js +1 -1
- package/dist/cjs/dialect/mysql/mysql-dialect.d.ts +3 -3
- package/dist/cjs/dialect/mysql/mysql-driver.js +25 -32
- package/dist/cjs/dialect/postgres/postgres-dialect.d.ts +2 -2
- package/dist/cjs/dialect/postgres/postgres-driver.js +8 -19
- package/dist/cjs/dialect/sqlite/sqlite-adapter.d.ts +7 -0
- package/dist/cjs/dialect/sqlite/sqlite-adapter.js +18 -0
- package/dist/cjs/dialect/sqlite/sqlite-dialect.d.ts +64 -0
- package/dist/cjs/dialect/sqlite/sqlite-dialect.js +33 -0
- package/dist/cjs/dialect/sqlite/sqlite-driver.d.ts +14 -0
- package/dist/cjs/dialect/sqlite/sqlite-driver.js +116 -0
- package/dist/cjs/dialect/sqlite/sqlite-introspector.d.ts +7 -0
- package/dist/cjs/dialect/sqlite/sqlite-introspector.js +44 -0
- package/dist/cjs/dialect/sqlite/sqlite-query-compiler.d.ts +7 -0
- package/dist/cjs/dialect/sqlite/sqlite-query-compiler.js +19 -0
- package/dist/cjs/driver/database-connection.d.ts +2 -2
- package/dist/cjs/driver/runtime-driver.js +3 -4
- package/dist/cjs/index.d.ts +8 -0
- package/dist/cjs/index.js +8 -0
- package/dist/cjs/kysely.d.ts +6 -4
- package/dist/cjs/kysely.js +6 -4
- package/dist/cjs/migration/migration.d.ts +1 -1
- package/dist/cjs/migration/migration.js +3 -3
- 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 +3 -2
- 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 +2 -2
- 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 +3 -3
- package/dist/cjs/operation-node/drop-view-node.js +2 -2
- 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/having-node.d.ts +4 -8
- package/dist/cjs/operation-node/having-node.js +3 -3
- package/dist/cjs/operation-node/join-node.d.ts +6 -9
- package/dist/cjs/operation-node/join-node.js +10 -7
- package/dist/cjs/operation-node/on-node.d.ts +14 -0
- package/dist/cjs/operation-node/on-node.js +28 -0
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +6 -0
- package/dist/cjs/operation-node/operation-node-transformer.js +39 -13
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +7 -0
- package/dist/cjs/operation-node/operation-node-visitor.js +9 -2
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/query-node.d.ts +3 -3
- package/dist/cjs/operation-node/raw-node.d.ts +1 -1
- package/dist/cjs/operation-node/select-query-node.d.ts +5 -5
- package/dist/cjs/operation-node/select-query-node.js +1 -1
- package/dist/cjs/operation-node/where-node.d.ts +4 -8
- package/dist/cjs/operation-node/where-node.js +3 -3
- package/dist/cjs/parser/filter-parser.js +1 -1
- package/dist/cjs/parser/returning-parser.d.ts +4 -2
- package/dist/cjs/parser/select-parser.d.ts +2 -2
- package/dist/cjs/plugin/immediate-value.ts/immediate-value-plugin.d.ts +1 -1
- package/dist/cjs/query-builder/delete-result.d.ts +5 -0
- package/dist/cjs/query-builder/delete-result.js +13 -0
- package/dist/cjs/query-builder/expression-builder.d.ts +2 -2
- package/dist/cjs/query-builder/expression-builder.js +1 -1
- package/dist/cjs/query-builder/function-builder.d.ts +5 -5
- package/dist/cjs/query-builder/function-builder.js +3 -3
- package/dist/cjs/query-builder/insert-result.d.ts +27 -0
- package/dist/cjs/query-builder/insert-result.js +35 -0
- package/dist/cjs/query-builder/query-builder.d.ts +91 -81
- package/dist/cjs/query-builder/query-builder.js +38 -41
- package/dist/cjs/query-builder/update-result.d.ts +5 -0
- package/dist/cjs/query-builder/update-result.js +13 -0
- package/dist/cjs/query-compiler/compiled-query.d.ts +5 -0
- package/dist/cjs/query-compiler/compiled-query.js +12 -0
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +6 -0
- package/dist/cjs/query-compiler/default-query-compiler.js +60 -26
- package/dist/cjs/query-creator.d.ts +36 -26
- package/dist/cjs/query-creator.js +25 -17
- 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 +5 -0
- package/dist/cjs/schema/create-view-builder.js +20 -1
- 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 +1 -0
- package/dist/cjs/schema/drop-view-builder.js +11 -1
- package/dist/cjs/schema/schema.d.ts +3 -3
- package/dist/cjs/schema/schema.js +3 -3
- package/dist/cjs/util/dynamic-import.d.ts +2 -0
- package/dist/cjs/util/dynamic-import.js +32 -0
- package/dist/cjs/util/performance-now.d.ts +1 -0
- package/dist/cjs/util/performance-now.js +13 -0
- package/dist/cjs/util/type-utils.d.ts +4 -15
- package/dist/esm/dialect/dialect-adapter.d.ts +3 -2
- package/dist/esm/dialect/mysql/mysql-adapter.js +1 -1
- package/dist/esm/dialect/mysql/mysql-dialect.d.ts +3 -3
- package/dist/esm/dialect/mysql/mysql-driver.js +26 -33
- package/dist/esm/dialect/postgres/postgres-dialect.d.ts +2 -2
- package/dist/esm/dialect/postgres/postgres-driver.js +8 -19
- package/dist/esm/dialect/sqlite/sqlite-adapter.d.ts +7 -0
- package/dist/esm/dialect/sqlite/sqlite-adapter.js +14 -0
- package/dist/esm/dialect/sqlite/sqlite-dialect.d.ts +64 -0
- package/dist/esm/dialect/sqlite/sqlite-dialect.js +29 -0
- package/dist/esm/dialect/sqlite/sqlite-driver.d.ts +14 -0
- package/dist/esm/dialect/sqlite/sqlite-driver.js +112 -0
- package/dist/esm/dialect/sqlite/sqlite-introspector.d.ts +7 -0
- package/dist/esm/dialect/sqlite/sqlite-introspector.js +40 -0
- package/dist/esm/dialect/sqlite/sqlite-query-compiler.d.ts +7 -0
- package/dist/esm/dialect/sqlite/sqlite-query-compiler.js +15 -0
- package/dist/esm/driver/database-connection.d.ts +2 -2
- package/dist/esm/driver/runtime-driver.js +3 -4
- package/dist/esm/index.d.ts +8 -0
- package/dist/esm/index.js +8 -0
- package/dist/esm/kysely.d.ts +6 -4
- package/dist/esm/kysely.js +6 -4
- package/dist/esm/migration/migration.d.ts +1 -1
- package/dist/esm/migration/migration.js +3 -3
- 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 +3 -2
- 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 +2 -2
- 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 +3 -3
- package/dist/esm/operation-node/drop-view-node.js +2 -2
- 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/having-node.d.ts +4 -8
- package/dist/esm/operation-node/having-node.js +3 -3
- package/dist/esm/operation-node/join-node.d.ts +6 -9
- package/dist/esm/operation-node/join-node.js +10 -7
- package/dist/esm/operation-node/on-node.d.ts +14 -0
- package/dist/esm/operation-node/on-node.js +25 -0
- package/dist/esm/operation-node/operation-node-transformer.d.ts +6 -0
- package/dist/esm/operation-node/operation-node-transformer.js +39 -13
- package/dist/esm/operation-node/operation-node-visitor.d.ts +7 -0
- package/dist/esm/operation-node/operation-node-visitor.js +9 -2
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- package/dist/esm/operation-node/query-node.d.ts +3 -3
- package/dist/esm/operation-node/raw-node.d.ts +1 -1
- package/dist/esm/operation-node/select-query-node.d.ts +5 -5
- package/dist/esm/operation-node/select-query-node.js +1 -1
- package/dist/esm/operation-node/where-node.d.ts +4 -8
- package/dist/esm/operation-node/where-node.js +3 -3
- package/dist/esm/parser/filter-parser.js +1 -1
- package/dist/esm/parser/returning-parser.d.ts +4 -2
- package/dist/esm/parser/select-parser.d.ts +2 -2
- package/dist/esm/plugin/immediate-value.ts/immediate-value-plugin.d.ts +1 -1
- package/dist/esm/query-builder/delete-result.d.ts +5 -0
- package/dist/esm/query-builder/delete-result.js +9 -0
- package/dist/esm/query-builder/expression-builder.d.ts +2 -2
- package/dist/esm/query-builder/expression-builder.js +1 -1
- package/dist/esm/query-builder/function-builder.d.ts +5 -5
- package/dist/esm/query-builder/function-builder.js +3 -3
- package/dist/esm/query-builder/insert-result.d.ts +27 -0
- package/dist/esm/query-builder/insert-result.js +31 -0
- package/dist/esm/query-builder/query-builder.d.ts +91 -81
- package/dist/esm/query-builder/query-builder.js +38 -41
- package/dist/esm/query-builder/update-result.d.ts +5 -0
- package/dist/esm/query-builder/update-result.js +9 -0
- package/dist/esm/query-compiler/compiled-query.d.ts +5 -0
- package/dist/esm/query-compiler/compiled-query.js +11 -1
- package/dist/esm/query-compiler/default-query-compiler.d.ts +6 -0
- package/dist/esm/query-compiler/default-query-compiler.js +60 -26
- package/dist/esm/query-creator.d.ts +36 -26
- package/dist/esm/query-creator.js +25 -17
- 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 +5 -0
- package/dist/esm/schema/create-view-builder.js +20 -1
- 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 +1 -0
- package/dist/esm/schema/drop-view-builder.js +11 -1
- package/dist/esm/schema/schema.d.ts +3 -3
- package/dist/esm/schema/schema.js +3 -3
- package/dist/esm/util/dynamic-import.d.ts +2 -0
- package/dist/esm/util/dynamic-import.js +27 -0
- package/dist/esm/util/performance-now.d.ts +1 -0
- package/dist/esm/util/performance-now.js +9 -0
- package/dist/esm/util/type-utils.d.ts +4 -15
- package/package.json +5 -3
package/dist/esm/index.d.ts
CHANGED
|
@@ -3,6 +3,9 @@ export * from './query-creator.js';
|
|
|
3
3
|
export * from './query-builder/query-builder.js';
|
|
4
4
|
export * from './query-builder/join-builder.js';
|
|
5
5
|
export * from './query-builder/expression-builder.js';
|
|
6
|
+
export * from './query-builder/insert-result.js';
|
|
7
|
+
export * from './query-builder/delete-result.js';
|
|
8
|
+
export * from './query-builder/update-result.js';
|
|
6
9
|
export * from './raw-builder/raw-builder.js';
|
|
7
10
|
export * from './query-executor/query-executor.js';
|
|
8
11
|
export * from './query-executor/default-query-executor.js';
|
|
@@ -37,6 +40,11 @@ export * from './dialect/mysql/mysql-query-compiler.js';
|
|
|
37
40
|
export * from './dialect/mysql/mysql-driver.js';
|
|
38
41
|
export * from './dialect/mysql/mysql-introspector.js';
|
|
39
42
|
export * from './dialect/mysql/mysql-adapter.js';
|
|
43
|
+
export * from './dialect/sqlite/sqlite-dialect.js';
|
|
44
|
+
export * from './dialect/sqlite/sqlite-query-compiler.js';
|
|
45
|
+
export * from './dialect/sqlite/sqlite-driver.js';
|
|
46
|
+
export * from './dialect/sqlite/sqlite-introspector.js';
|
|
47
|
+
export * from './dialect/sqlite/sqlite-adapter.js';
|
|
40
48
|
export * from './query-compiler/default-query-compiler.js';
|
|
41
49
|
export * from './query-compiler/query-compiler.js';
|
|
42
50
|
export * from './migration/migration.js';
|
package/dist/esm/index.js
CHANGED
|
@@ -3,6 +3,9 @@ export * from './query-creator.js';
|
|
|
3
3
|
export * from './query-builder/query-builder.js';
|
|
4
4
|
export * from './query-builder/join-builder.js';
|
|
5
5
|
export * from './query-builder/expression-builder.js';
|
|
6
|
+
export * from './query-builder/insert-result.js';
|
|
7
|
+
export * from './query-builder/delete-result.js';
|
|
8
|
+
export * from './query-builder/update-result.js';
|
|
6
9
|
export * from './raw-builder/raw-builder.js';
|
|
7
10
|
export * from './query-executor/query-executor.js';
|
|
8
11
|
export * from './query-executor/default-query-executor.js';
|
|
@@ -37,6 +40,11 @@ export * from './dialect/mysql/mysql-query-compiler.js';
|
|
|
37
40
|
export * from './dialect/mysql/mysql-driver.js';
|
|
38
41
|
export * from './dialect/mysql/mysql-introspector.js';
|
|
39
42
|
export * from './dialect/mysql/mysql-adapter.js';
|
|
43
|
+
export * from './dialect/sqlite/sqlite-dialect.js';
|
|
44
|
+
export * from './dialect/sqlite/sqlite-query-compiler.js';
|
|
45
|
+
export * from './dialect/sqlite/sqlite-driver.js';
|
|
46
|
+
export * from './dialect/sqlite/sqlite-introspector.js';
|
|
47
|
+
export * from './dialect/sqlite/sqlite-adapter.js';
|
|
40
48
|
export * from './query-compiler/default-query-compiler.js';
|
|
41
49
|
export * from './query-compiler/query-compiler.js';
|
|
42
50
|
export * from './migration/migration.js';
|
package/dist/esm/kysely.d.ts
CHANGED
|
@@ -116,7 +116,7 @@ export declare class Kysely<DB> extends QueryCreator<DB> {
|
|
|
116
116
|
* .execute()
|
|
117
117
|
* ```
|
|
118
118
|
*
|
|
119
|
-
* The generated SQL (
|
|
119
|
+
* The generated SQL (PostgreSQL):
|
|
120
120
|
*
|
|
121
121
|
* ```sql
|
|
122
122
|
* select "person"."id", count("pet"."id") as "pet_count"
|
|
@@ -146,17 +146,19 @@ export declare class Kysely<DB> extends QueryCreator<DB> {
|
|
|
146
146
|
* const catto = await db.transaction().execute(async (trx) => {
|
|
147
147
|
* const jennifer = await trx.insertInto('person')
|
|
148
148
|
* .values({
|
|
149
|
+
* id: db.generated,
|
|
149
150
|
* first_name: 'Jennifer',
|
|
150
|
-
*
|
|
151
|
+
* last_name: 'Aniston',
|
|
151
152
|
* })
|
|
152
153
|
* .returning('id')
|
|
153
|
-
* .
|
|
154
|
+
* .executeTakeFirstOrThrow()
|
|
154
155
|
*
|
|
155
156
|
* await someFunction(trx, jennifer)
|
|
156
157
|
*
|
|
157
158
|
* return await trx.insertInto('pet')
|
|
158
159
|
* .values({
|
|
159
|
-
*
|
|
160
|
+
* id: db.generated,
|
|
161
|
+
* user_id: jennifer.id,
|
|
160
162
|
* name: 'Catto',
|
|
161
163
|
* species: 'cat'
|
|
162
164
|
* })
|
package/dist/esm/kysely.js
CHANGED
|
@@ -151,7 +151,7 @@ export class Kysely extends QueryCreator {
|
|
|
151
151
|
* .execute()
|
|
152
152
|
* ```
|
|
153
153
|
*
|
|
154
|
-
* The generated SQL (
|
|
154
|
+
* The generated SQL (PostgreSQL):
|
|
155
155
|
*
|
|
156
156
|
* ```sql
|
|
157
157
|
* select "person"."id", count("pet"."id") as "pet_count"
|
|
@@ -183,17 +183,19 @@ export class Kysely extends QueryCreator {
|
|
|
183
183
|
* const catto = await db.transaction().execute(async (trx) => {
|
|
184
184
|
* const jennifer = await trx.insertInto('person')
|
|
185
185
|
* .values({
|
|
186
|
+
* id: db.generated,
|
|
186
187
|
* first_name: 'Jennifer',
|
|
187
|
-
*
|
|
188
|
+
* last_name: 'Aniston',
|
|
188
189
|
* })
|
|
189
190
|
* .returning('id')
|
|
190
|
-
* .
|
|
191
|
+
* .executeTakeFirstOrThrow()
|
|
191
192
|
*
|
|
192
193
|
* await someFunction(trx, jennifer)
|
|
193
194
|
*
|
|
194
195
|
* return await trx.insertInto('pet')
|
|
195
196
|
* .values({
|
|
196
|
-
*
|
|
197
|
+
* id: db.generated,
|
|
198
|
+
* user_id: jennifer.id,
|
|
197
199
|
* name: 'Catto',
|
|
198
200
|
* species: 'cat'
|
|
199
201
|
* })
|
|
@@ -57,7 +57,7 @@ async function ensureMigrationTableExists(db) {
|
|
|
57
57
|
.execute();
|
|
58
58
|
}
|
|
59
59
|
catch (error) {
|
|
60
|
-
// At least on
|
|
60
|
+
// At least on PostgreSQL, `if not exists` doesn't guarantee the `create table`
|
|
61
61
|
// query doesn't throw if the table already exits. That's why we check if
|
|
62
62
|
// the table exist here and ignore the error if it does.
|
|
63
63
|
if (!(await doesTableExists(db, MIGRATION_TABLE))) {
|
|
@@ -77,7 +77,7 @@ async function ensureMigrationLockTableExists(db) {
|
|
|
77
77
|
.execute();
|
|
78
78
|
}
|
|
79
79
|
catch (error) {
|
|
80
|
-
// At least on
|
|
80
|
+
// At least on PostgreSQL, `if not exists` doesn't guarantee the `create table`
|
|
81
81
|
// query doesn't throw if the table already exits. That's why we check if
|
|
82
82
|
// the table exist here and ignore the error if it does.
|
|
83
83
|
if (!(await doesTableExists(db, MIGRATION_LOCK_TABLE))) {
|
|
@@ -179,5 +179,5 @@ function ensureMigrationsAreNotCorrupted(executedMigrationNames, oldMigrationNam
|
|
|
179
179
|
}
|
|
180
180
|
}
|
|
181
181
|
function isMigration(obj) {
|
|
182
|
-
return isObject(obj) && isFunction(obj.up)
|
|
182
|
+
return isObject(obj) && isFunction(obj.up);
|
|
183
183
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
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
|
+
import { DefaultValueNode } from './default-value-node.js';
|
|
5
|
+
import { GeneratedAlwaysAsNode } from './generated-always-as-node.js';
|
|
4
6
|
import { OperationNode } from './operation-node.js';
|
|
5
7
|
import { RawNode } from './raw-node.js';
|
|
6
8
|
import { ReferencesNode } from './references-node.js';
|
|
7
|
-
import { ValueNode } from './value-node.js';
|
|
8
9
|
export declare type ColumnDefinitionNodeProps = Omit<Partial<ColumnDefinitionNode>, 'kind'>;
|
|
9
10
|
export declare type ColumnDataTypeNode = DataTypeNode | RawNode;
|
|
10
11
|
export interface ColumnDefinitionNode extends OperationNode {
|
|
@@ -12,12 +13,13 @@ export interface ColumnDefinitionNode extends OperationNode {
|
|
|
12
13
|
readonly column: ColumnNode;
|
|
13
14
|
readonly dataType: ColumnDataTypeNode;
|
|
14
15
|
readonly references?: ReferencesNode;
|
|
15
|
-
readonly
|
|
16
|
-
readonly
|
|
17
|
-
readonly
|
|
18
|
-
readonly
|
|
19
|
-
readonly defaultTo?:
|
|
16
|
+
readonly primaryKey: boolean;
|
|
17
|
+
readonly autoIncrement: boolean;
|
|
18
|
+
readonly unique: boolean;
|
|
19
|
+
readonly nullable: boolean;
|
|
20
|
+
readonly defaultTo?: DefaultValueNode;
|
|
20
21
|
readonly check?: CheckConstraintNode;
|
|
22
|
+
readonly generatedAlwaysAs?: GeneratedAlwaysAsNode;
|
|
21
23
|
}
|
|
22
24
|
/**
|
|
23
25
|
* @internal
|
|
@@ -12,10 +12,10 @@ export const ColumnDefinitionNode = freeze({
|
|
|
12
12
|
kind: 'ColumnDefinitionNode',
|
|
13
13
|
column: ColumnNode.create(column),
|
|
14
14
|
dataType,
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
primaryKey: false,
|
|
16
|
+
autoIncrement: false,
|
|
17
|
+
unique: false,
|
|
18
|
+
nullable: true,
|
|
19
19
|
});
|
|
20
20
|
},
|
|
21
21
|
cloneWith(node, props) {
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { IdentifierNode } from './identifier-node.js';
|
|
2
2
|
import { OperationNode } from './operation-node.js';
|
|
3
|
-
export declare type CreateSchemaNodeModifier = 'IfNotExists';
|
|
4
3
|
export declare type CreateSchemaNodeParams = Omit<Partial<CreateSchemaNode>, 'kind' | 'schema'>;
|
|
5
4
|
export interface CreateSchemaNode extends OperationNode {
|
|
6
5
|
readonly kind: 'CreateSchemaNode';
|
|
7
6
|
readonly schema: IdentifierNode;
|
|
8
|
-
readonly
|
|
7
|
+
readonly ifNotExists?: boolean;
|
|
9
8
|
}
|
|
10
9
|
/**
|
|
11
10
|
* @internal
|
|
@@ -2,12 +2,11 @@ import { OperationNode } from './operation-node.js';
|
|
|
2
2
|
import { TableNode } from './table-node.js';
|
|
3
3
|
import { ConstraintNode } from './constraint-node.js';
|
|
4
4
|
import { ColumnDefinitionNode } from './column-definition-node.js';
|
|
5
|
-
export declare type CreateTableNodeModifier = 'IfNotExists';
|
|
6
5
|
export interface CreateTableNode extends OperationNode {
|
|
7
6
|
readonly kind: 'CreateTableNode';
|
|
8
7
|
readonly table: TableNode;
|
|
9
8
|
readonly columns: ReadonlyArray<ColumnDefinitionNode>;
|
|
10
|
-
readonly
|
|
9
|
+
readonly ifNotExists?: boolean;
|
|
11
10
|
readonly constraints?: ReadonlyArray<ConstraintNode>;
|
|
12
11
|
}
|
|
13
12
|
/**
|
|
@@ -17,6 +16,6 @@ export declare const CreateTableNode: Readonly<{
|
|
|
17
16
|
is(node: OperationNode): node is CreateTableNode;
|
|
18
17
|
create(table: TableNode): CreateTableNode;
|
|
19
18
|
cloneWithColumn(createTable: CreateTableNode, column: ColumnDefinitionNode): CreateTableNode;
|
|
20
|
-
|
|
19
|
+
cloneWithIfNotExists(createTable: CreateTableNode, ifNotExists: boolean): CreateTableNode;
|
|
21
20
|
cloneWithConstraint(createTable: CreateTableNode, constraint: ConstraintNode): CreateTableNode;
|
|
22
21
|
}>;
|
|
@@ -19,10 +19,10 @@ export const CreateTableNode = freeze({
|
|
|
19
19
|
columns: freeze([...createTable.columns, column]),
|
|
20
20
|
});
|
|
21
21
|
},
|
|
22
|
-
|
|
22
|
+
cloneWithIfNotExists(createTable, ifNotExists) {
|
|
23
23
|
return freeze({
|
|
24
24
|
...createTable,
|
|
25
|
-
|
|
25
|
+
ifNotExists,
|
|
26
26
|
});
|
|
27
27
|
},
|
|
28
28
|
cloneWithConstraint(createTable, constraint) {
|
|
@@ -3,12 +3,13 @@ import { IdentifierNode } from './identifier-node.js';
|
|
|
3
3
|
import { OperationNode } from './operation-node.js';
|
|
4
4
|
import { RawNode } from './raw-node.js';
|
|
5
5
|
import { SelectQueryNode } from './select-query-node.js';
|
|
6
|
-
export declare type CreateViewNodeModifier = 'OrReplace';
|
|
7
6
|
export declare type CreateViewNodeParams = Omit<Partial<CreateViewNode>, 'kind' | 'name'>;
|
|
8
7
|
export interface CreateViewNode extends OperationNode {
|
|
9
8
|
readonly kind: 'CreateViewNode';
|
|
10
9
|
readonly name: IdentifierNode;
|
|
11
|
-
readonly
|
|
10
|
+
readonly materialized?: boolean;
|
|
11
|
+
readonly orReplace?: boolean;
|
|
12
|
+
readonly ifNotExists?: boolean;
|
|
12
13
|
readonly columns?: ReadonlyArray<ColumnNode>;
|
|
13
14
|
readonly as?: SelectQueryNode | RawNode;
|
|
14
15
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { OperationNode } from './operation-node.js';
|
|
2
|
+
import { RawNode } from './raw-node.js';
|
|
3
|
+
import { ValueNode } from './value-node.js';
|
|
4
|
+
export interface DefaultValueNode extends OperationNode {
|
|
5
|
+
readonly kind: 'DefaultValueNode';
|
|
6
|
+
readonly defaultValue: ValueNode | RawNode;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
export declare const DefaultValueNode: Readonly<{
|
|
12
|
+
is(node: OperationNode): node is DefaultValueNode;
|
|
13
|
+
create(defaultValue: ValueNode | RawNode): DefaultValueNode;
|
|
14
|
+
}>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { freeze } from '../util/object-utils.js';
|
|
2
|
+
/**
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
export const DefaultValueNode = freeze({
|
|
6
|
+
is(node) {
|
|
7
|
+
return node.kind === 'DefaultValueNode';
|
|
8
|
+
},
|
|
9
|
+
create(defaultValue) {
|
|
10
|
+
return freeze({
|
|
11
|
+
kind: 'DefaultValueNode',
|
|
12
|
+
defaultValue,
|
|
13
|
+
});
|
|
14
|
+
},
|
|
15
|
+
});
|
|
@@ -2,12 +2,11 @@ import { IdentifierNode } from './identifier-node.js';
|
|
|
2
2
|
import { OperationNode } from './operation-node.js';
|
|
3
3
|
import { TableNode } from './table-node.js';
|
|
4
4
|
export declare type DropIndexNodeProps = Omit<DropIndexNode, 'kind' | 'name'>;
|
|
5
|
-
export declare type DropIndexNodeModifier = 'IfExists';
|
|
6
5
|
export interface DropIndexNode extends OperationNode {
|
|
7
6
|
readonly kind: 'DropIndexNode';
|
|
8
7
|
readonly name: IdentifierNode;
|
|
9
8
|
readonly table?: TableNode;
|
|
10
|
-
readonly
|
|
9
|
+
readonly ifExists?: boolean;
|
|
11
10
|
}
|
|
12
11
|
/**
|
|
13
12
|
* @internal
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { IdentifierNode } from './identifier-node.js';
|
|
2
2
|
import { OperationNode } from './operation-node.js';
|
|
3
|
-
export declare type DropSchemaNodeModifier = 'IfExists';
|
|
4
3
|
export declare type DropSchemaNodeParams = Omit<Partial<DropSchemaNode>, 'kind' | 'schema'>;
|
|
5
4
|
export interface DropSchemaNode extends OperationNode {
|
|
6
5
|
readonly kind: 'DropSchemaNode';
|
|
7
6
|
readonly schema: IdentifierNode;
|
|
8
|
-
readonly
|
|
7
|
+
readonly ifExists?: boolean;
|
|
9
8
|
}
|
|
10
9
|
/**
|
|
11
10
|
* @internal
|
|
@@ -13,5 +12,5 @@ export interface DropSchemaNode extends OperationNode {
|
|
|
13
12
|
export declare const DropSchemaNode: Readonly<{
|
|
14
13
|
is(node: OperationNode): node is DropSchemaNode;
|
|
15
14
|
create(schema: string, params?: DropSchemaNodeParams | undefined): DropSchemaNode;
|
|
16
|
-
|
|
15
|
+
cloneWith(dropSchema: DropSchemaNode, params: DropSchemaNodeParams): DropSchemaNode;
|
|
17
16
|
}>;
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { OperationNode } from './operation-node.js';
|
|
2
2
|
import { TableNode } from './table-node.js';
|
|
3
3
|
export declare type DropTablexNodeParams = Omit<Partial<DropTableNode>, 'kind' | 'table'>;
|
|
4
|
-
export declare type DropTableNodeModifier = 'IfExists';
|
|
5
4
|
export interface DropTableNode extends OperationNode {
|
|
6
5
|
readonly kind: 'DropTableNode';
|
|
7
6
|
readonly table: TableNode;
|
|
8
|
-
readonly
|
|
7
|
+
readonly ifExists?: boolean;
|
|
9
8
|
}
|
|
10
9
|
/**
|
|
11
10
|
* @internal
|
|
@@ -13,5 +12,5 @@ export interface DropTableNode extends OperationNode {
|
|
|
13
12
|
export declare const DropTableNode: Readonly<{
|
|
14
13
|
is(node: OperationNode): node is DropTableNode;
|
|
15
14
|
create(table: TableNode, params?: DropTablexNodeParams | undefined): DropTableNode;
|
|
16
|
-
|
|
15
|
+
cloneWith(dropIndex: DropTableNode, params: DropTablexNodeParams): DropTableNode;
|
|
17
16
|
}>;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { IdentifierNode } from './identifier-node.js';
|
|
2
2
|
import { OperationNode } from './operation-node.js';
|
|
3
|
-
export declare type DropViewNodeModifier = 'IfExists';
|
|
4
3
|
export declare type DropViewNodeParams = Omit<Partial<DropViewNode>, 'kind' | 'name'>;
|
|
5
4
|
export interface DropViewNode extends OperationNode {
|
|
6
5
|
readonly kind: 'DropViewNode';
|
|
7
6
|
readonly name: IdentifierNode;
|
|
8
|
-
readonly
|
|
7
|
+
readonly ifExists?: boolean;
|
|
8
|
+
readonly materialized?: boolean;
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
11
|
* @internal
|
|
@@ -13,5 +13,5 @@ export interface DropViewNode extends OperationNode {
|
|
|
13
13
|
export declare const DropViewNode: Readonly<{
|
|
14
14
|
is(node: OperationNode): node is DropViewNode;
|
|
15
15
|
create(name: string): DropViewNode;
|
|
16
|
-
|
|
16
|
+
cloneWith(dropView: DropViewNode, params: DropViewNodeParams): DropViewNode;
|
|
17
17
|
}>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { OperationNode } from './operation-node.js';
|
|
2
|
+
import { RawNode } from './raw-node.js';
|
|
3
|
+
export declare type GeneratedAlwaysAsNodeParams = Omit<GeneratedAlwaysAsNode, 'kind' | 'expression'>;
|
|
4
|
+
export interface GeneratedAlwaysAsNode extends OperationNode {
|
|
5
|
+
readonly kind: 'GeneratedAlwaysAsNode';
|
|
6
|
+
readonly expression: RawNode;
|
|
7
|
+
readonly stored?: boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export declare const GeneratedAlwaysAsNode: Readonly<{
|
|
13
|
+
is(node: OperationNode): node is GeneratedAlwaysAsNode;
|
|
14
|
+
create(expression: string): GeneratedAlwaysAsNode;
|
|
15
|
+
cloneWith(node: GeneratedAlwaysAsNode, params: GeneratedAlwaysAsNodeParams): GeneratedAlwaysAsNode;
|
|
16
|
+
}>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { freeze } from '../util/object-utils.js';
|
|
2
|
+
import { RawNode } from './raw-node.js';
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export const GeneratedAlwaysAsNode = freeze({
|
|
7
|
+
is(node) {
|
|
8
|
+
return node.kind === 'GeneratedAlwaysAsNode';
|
|
9
|
+
},
|
|
10
|
+
create(expression) {
|
|
11
|
+
return freeze({
|
|
12
|
+
kind: 'GeneratedAlwaysAsNode',
|
|
13
|
+
expression: RawNode.createWithSql(expression),
|
|
14
|
+
});
|
|
15
|
+
},
|
|
16
|
+
cloneWith(node, params) {
|
|
17
|
+
return freeze({
|
|
18
|
+
...node,
|
|
19
|
+
...params,
|
|
20
|
+
});
|
|
21
|
+
},
|
|
22
|
+
});
|
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { FilterNode } from './filter-node.js';
|
|
1
|
+
import { FilterExpressionNode } from './operation-node-utils.js';
|
|
3
2
|
import { OperationNode } from './operation-node.js';
|
|
4
|
-
import { OrNode } from './or-node.js';
|
|
5
|
-
import { ParensNode } from './parens-node.js';
|
|
6
|
-
export declare type HavingNodeChild = FilterNode | AndNode | OrNode | ParensNode;
|
|
7
3
|
export interface HavingNode extends OperationNode {
|
|
8
4
|
readonly kind: 'HavingNode';
|
|
9
|
-
readonly having:
|
|
5
|
+
readonly having: FilterExpressionNode;
|
|
10
6
|
}
|
|
11
7
|
/**
|
|
12
8
|
* @internal
|
|
13
9
|
*/
|
|
14
10
|
export declare const HavingNode: Readonly<{
|
|
15
11
|
is(node: OperationNode): node is HavingNode;
|
|
16
|
-
create(filter:
|
|
17
|
-
cloneWithFilter(havingNode: HavingNode, op: 'And' | 'Or',
|
|
12
|
+
create(filter: FilterExpressionNode): HavingNode;
|
|
13
|
+
cloneWithFilter(havingNode: HavingNode, op: 'And' | 'Or', filter: FilterExpressionNode): HavingNode;
|
|
18
14
|
}>;
|
|
@@ -14,12 +14,12 @@ export const HavingNode = freeze({
|
|
|
14
14
|
having: filter,
|
|
15
15
|
});
|
|
16
16
|
},
|
|
17
|
-
cloneWithFilter(havingNode, op,
|
|
17
|
+
cloneWithFilter(havingNode, op, filter) {
|
|
18
18
|
return freeze({
|
|
19
19
|
...havingNode,
|
|
20
20
|
having: op === 'And'
|
|
21
|
-
? AndNode.create(havingNode.having,
|
|
22
|
-
: OrNode.create(havingNode.having,
|
|
21
|
+
? AndNode.create(havingNode.having, filter)
|
|
22
|
+
: OrNode.create(havingNode.having, filter),
|
|
23
23
|
});
|
|
24
24
|
},
|
|
25
25
|
});
|
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
import { AliasNode } from './alias-node.js';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { OnNode } from './on-node.js';
|
|
3
|
+
import { FilterExpressionNode } from './operation-node-utils.js';
|
|
4
4
|
import { OperationNode } from './operation-node.js';
|
|
5
|
-
import { OrNode } from './or-node.js';
|
|
6
|
-
import { ParensNode } from './parens-node.js';
|
|
7
5
|
import { TableNode } from './table-node.js';
|
|
8
6
|
export declare type JoinTableNode = TableNode | AliasNode;
|
|
9
7
|
export declare type JoinType = 'InnerJoin' | 'LeftJoin' | 'RightJoin' | 'FullJoin';
|
|
10
|
-
export declare type JoinNodeOnNode = FilterNode | AndNode | OrNode | ParensNode;
|
|
11
8
|
export interface JoinNode extends OperationNode {
|
|
12
9
|
readonly kind: 'JoinNode';
|
|
13
10
|
readonly joinType: JoinType;
|
|
14
11
|
readonly table: JoinTableNode;
|
|
15
|
-
readonly on?:
|
|
12
|
+
readonly on?: OnNode;
|
|
16
13
|
}
|
|
17
14
|
/**
|
|
18
15
|
* @internal
|
|
@@ -20,7 +17,7 @@ export interface JoinNode extends OperationNode {
|
|
|
20
17
|
export declare const JoinNode: Readonly<{
|
|
21
18
|
is(node: OperationNode): node is JoinNode;
|
|
22
19
|
create(joinType: JoinType, table: JoinTableNode): JoinNode;
|
|
23
|
-
createWithOn(joinType: JoinType, table: JoinTableNode, on:
|
|
24
|
-
cloneWithOn(joinNode: JoinNode,
|
|
25
|
-
cloneWithOrOn(joinNode: JoinNode,
|
|
20
|
+
createWithOn(joinType: JoinType, table: JoinTableNode, on: FilterExpressionNode): JoinNode;
|
|
21
|
+
cloneWithOn(joinNode: JoinNode, filter: FilterExpressionNode): JoinNode;
|
|
22
|
+
cloneWithOrOn(joinNode: JoinNode, filter: FilterExpressionNode): JoinNode;
|
|
26
23
|
}>;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { freeze } from '../util/object-utils.js';
|
|
2
|
-
import {
|
|
3
|
-
import { OrNode } from './or-node.js';
|
|
2
|
+
import { OnNode } from './on-node.js';
|
|
4
3
|
/**
|
|
5
4
|
* @internal
|
|
6
5
|
*/
|
|
@@ -21,19 +20,23 @@ export const JoinNode = freeze({
|
|
|
21
20
|
kind: 'JoinNode',
|
|
22
21
|
joinType,
|
|
23
22
|
table,
|
|
24
|
-
on,
|
|
23
|
+
on: OnNode.create(on),
|
|
25
24
|
});
|
|
26
25
|
},
|
|
27
|
-
cloneWithOn(joinNode,
|
|
26
|
+
cloneWithOn(joinNode, filter) {
|
|
28
27
|
return freeze({
|
|
29
28
|
...joinNode,
|
|
30
|
-
on: joinNode.on
|
|
29
|
+
on: joinNode.on
|
|
30
|
+
? OnNode.cloneWithFilter(joinNode.on, 'And', filter)
|
|
31
|
+
: OnNode.create(filter),
|
|
31
32
|
});
|
|
32
33
|
},
|
|
33
|
-
cloneWithOrOn(joinNode,
|
|
34
|
+
cloneWithOrOn(joinNode, filter) {
|
|
34
35
|
return freeze({
|
|
35
36
|
...joinNode,
|
|
36
|
-
on: joinNode.on
|
|
37
|
+
on: joinNode.on
|
|
38
|
+
? OnNode.cloneWithFilter(joinNode.on, 'Or', filter)
|
|
39
|
+
: OnNode.create(filter),
|
|
37
40
|
});
|
|
38
41
|
},
|
|
39
42
|
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { FilterExpressionNode } from './operation-node-utils.js';
|
|
2
|
+
import { OperationNode } from './operation-node.js';
|
|
3
|
+
export interface OnNode extends OperationNode {
|
|
4
|
+
readonly kind: 'OnNode';
|
|
5
|
+
readonly on: FilterExpressionNode;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export declare const OnNode: Readonly<{
|
|
11
|
+
is(node: OperationNode): node is OnNode;
|
|
12
|
+
create(filter: FilterExpressionNode): OnNode;
|
|
13
|
+
cloneWithFilter(onNode: OnNode, op: 'And' | 'Or', filter: FilterExpressionNode): OnNode;
|
|
14
|
+
}>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { freeze } from '../util/object-utils.js';
|
|
2
|
+
import { AndNode } from './and-node.js';
|
|
3
|
+
import { OrNode } from './or-node.js';
|
|
4
|
+
/**
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
export const OnNode = freeze({
|
|
8
|
+
is(node) {
|
|
9
|
+
return node.kind === 'OnNode';
|
|
10
|
+
},
|
|
11
|
+
create(filter) {
|
|
12
|
+
return freeze({
|
|
13
|
+
kind: 'OnNode',
|
|
14
|
+
on: filter,
|
|
15
|
+
});
|
|
16
|
+
},
|
|
17
|
+
cloneWithFilter(onNode, op, filter) {
|
|
18
|
+
return freeze({
|
|
19
|
+
...onNode,
|
|
20
|
+
on: op === 'And'
|
|
21
|
+
? AndNode.create(onNode.on, filter)
|
|
22
|
+
: OrNode.create(onNode.on, filter),
|
|
23
|
+
});
|
|
24
|
+
},
|
|
25
|
+
});
|
|
@@ -60,6 +60,9 @@ import { OnDuplicateKeyNode } from './on-duplicate-key-node.js';
|
|
|
60
60
|
import { UnionNode } from './union-node.js';
|
|
61
61
|
import { CreateViewNode } from './create-view-node.js';
|
|
62
62
|
import { DropViewNode } from './drop-view-node.js';
|
|
63
|
+
import { GeneratedAlwaysAsNode } from './generated-always-as-node.js';
|
|
64
|
+
import { DefaultValueNode } from './default-value-node.js';
|
|
65
|
+
import { OnNode } from './on-node.js';
|
|
63
66
|
/**
|
|
64
67
|
* Transforms an operation node tree into another one.
|
|
65
68
|
*
|
|
@@ -149,6 +152,9 @@ export declare class OperationNodeTransformer {
|
|
|
149
152
|
protected transformDropConstraint(node: DropConstraintNode): DropConstraintNode;
|
|
150
153
|
protected transformCreateView(node: CreateViewNode): CreateViewNode;
|
|
151
154
|
protected transformDropView(node: DropViewNode): DropViewNode;
|
|
155
|
+
protected transformGeneratedAlwaysAs(node: GeneratedAlwaysAsNode): GeneratedAlwaysAsNode;
|
|
156
|
+
protected transformDefaultValue(node: DefaultValueNode): DefaultValueNode;
|
|
157
|
+
protected transformOn(node: OnNode): OnNode;
|
|
152
158
|
protected transformDataType(node: DataTypeNode): DataTypeNode;
|
|
153
159
|
protected transformSelectAll(node: SelectAllNode): SelectAllNode;
|
|
154
160
|
protected transformIdentifier(node: IdentifierNode): IdentifierNode;
|