kysely 0.9.9 → 0.10.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/README.md +15 -13
- package/dist/cjs/operation-node/column-definition-node.d.ts +4 -4
- 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 +2 -2
- 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/operation-node-transformer.js +13 -11
- 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/query-compiler/default-query-compiler.js +20 -13
- package/dist/cjs/schema/alter-table-builder.d.ts +2 -2
- package/dist/cjs/schema/alter-table-builder.js +4 -4
- package/dist/cjs/schema/column-definition-builder.d.ts +2 -2
- package/dist/cjs/schema/column-definition-builder.js +5 -5
- package/dist/cjs/schema/create-schema-builder.js +1 -1
- package/dist/cjs/schema/create-table-builder.d.ts +1 -1
- package/dist/cjs/schema/create-table-builder.js +2 -2
- package/dist/cjs/schema/create-view-builder.d.ts +1 -0
- package/dist/cjs/schema/create-view-builder.js +9 -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/esm/operation-node/column-definition-node.d.ts +4 -4
- 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 +2 -2
- 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/operation-node-transformer.js +13 -11
- 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/query-compiler/default-query-compiler.js +20 -13
- package/dist/esm/schema/alter-table-builder.d.ts +2 -2
- package/dist/esm/schema/alter-table-builder.js +4 -4
- package/dist/esm/schema/column-definition-builder.d.ts +2 -2
- package/dist/esm/schema/column-definition-builder.js +5 -5
- package/dist/esm/schema/create-schema-builder.js +1 -1
- package/dist/esm/schema/create-table-builder.d.ts +1 -1
- package/dist/esm/schema/create-table-builder.js +2 -2
- package/dist/esm/schema/create-view-builder.d.ts +1 -0
- package/dist/esm/schema/create-view-builder.js +9 -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/package.json +1 -1
package/README.md
CHANGED
|
@@ -67,7 +67,9 @@ import { Kysely, PostgresDialect } from 'kysely'
|
|
|
67
67
|
interface Person {
|
|
68
68
|
id: number
|
|
69
69
|
first_name: string
|
|
70
|
-
|
|
70
|
+
// If the column is nullable in the db, make its type nullable.
|
|
71
|
+
// Don't use optional properties.
|
|
72
|
+
last_name: string | null
|
|
71
73
|
gender: 'male' | 'female' | 'other'
|
|
72
74
|
}
|
|
73
75
|
|
|
@@ -172,9 +174,9 @@ export async function up(db: Kysely<any>): Promise<void> {
|
|
|
172
174
|
await db.schema
|
|
173
175
|
.createTable('person')
|
|
174
176
|
.addColumn('id', 'serial', (col) => col.primaryKey())
|
|
175
|
-
.addColumn('first_name', 'varchar')
|
|
177
|
+
.addColumn('first_name', 'varchar', (col) => col.notNull())
|
|
176
178
|
.addColumn('last_name', 'varchar')
|
|
177
|
-
.addColumn('gender', 'varchar(50)')
|
|
179
|
+
.addColumn('gender', 'varchar(50)', (col) => col.notNull())
|
|
178
180
|
.execute()
|
|
179
181
|
|
|
180
182
|
await db.schema
|
|
@@ -182,9 +184,9 @@ export async function up(db: Kysely<any>): Promise<void> {
|
|
|
182
184
|
.addColumn('id', 'serial', (col) => col.primaryKey())
|
|
183
185
|
.addColumn('name', 'varchar', (col) => col.notNull().unique())
|
|
184
186
|
.addColumn('owner_id', 'integer', (col) =>
|
|
185
|
-
col.references('person.id').onDelete('cascade')
|
|
187
|
+
col.references('person.id').onDelete('cascade').notNull()
|
|
186
188
|
)
|
|
187
|
-
.addColumn('species', 'varchar')
|
|
189
|
+
.addColumn('species', 'varchar', (col) => col.notNull())
|
|
188
190
|
.execute()
|
|
189
191
|
|
|
190
192
|
await db.schema
|
|
@@ -208,18 +210,18 @@ import { Kysely } from 'kysely'
|
|
|
208
210
|
export async function up(db: Kysely<any>): Promise<void> {
|
|
209
211
|
await db.schema
|
|
210
212
|
.createTable('person')
|
|
211
|
-
.addColumn('id', 'integer', (col) => col.
|
|
212
|
-
.addColumn('first_name', 'varchar')
|
|
213
|
-
.addColumn('last_name', 'varchar')
|
|
214
|
-
.addColumn('gender', 'varchar(50)')
|
|
213
|
+
.addColumn('id', 'integer', (col) => col.autoIncrement().primaryKey())
|
|
214
|
+
.addColumn('first_name', 'varchar(255)', (col) => col.notNull())
|
|
215
|
+
.addColumn('last_name', 'varchar(255)')
|
|
216
|
+
.addColumn('gender', 'varchar(50)', (col) => col.notNull())
|
|
215
217
|
.execute()
|
|
216
218
|
|
|
217
219
|
await db.schema
|
|
218
220
|
.createTable('pet')
|
|
219
|
-
.addColumn('id', 'integer', (col) => col.
|
|
220
|
-
.addColumn('name', 'varchar', (col) => col.notNull().unique())
|
|
221
|
-
.addColumn('owner_id', 'integer')
|
|
222
|
-
.addColumn('species', 'varchar')
|
|
221
|
+
.addColumn('id', 'integer', (col) => col.autoIncrement().primaryKey())
|
|
222
|
+
.addColumn('name', 'varchar(255)', (col) => col.notNull().unique())
|
|
223
|
+
.addColumn('owner_id', 'integer', (col) => col.notNull())
|
|
224
|
+
.addColumn('species', 'varchar(255)', (col) => col.notNull())
|
|
223
225
|
.addForeignKeyConstraint(
|
|
224
226
|
'pet_owner_id_fk', ['owner_id'], 'person', ['id'],
|
|
225
227
|
(cb) => cb.onDelete('cascade')
|
|
@@ -12,10 +12,10 @@ export interface ColumnDefinitionNode extends OperationNode {
|
|
|
12
12
|
readonly column: ColumnNode;
|
|
13
13
|
readonly dataType: ColumnDataTypeNode;
|
|
14
14
|
readonly references?: ReferencesNode;
|
|
15
|
-
readonly
|
|
16
|
-
readonly
|
|
17
|
-
readonly
|
|
18
|
-
readonly
|
|
15
|
+
readonly primaryKey: boolean;
|
|
16
|
+
readonly autoIncrement: boolean;
|
|
17
|
+
readonly unique: boolean;
|
|
18
|
+
readonly nullable: boolean;
|
|
19
19
|
readonly defaultTo?: ValueNode | RawNode;
|
|
20
20
|
readonly check?: CheckConstraintNode;
|
|
21
21
|
}
|
|
@@ -15,10 +15,10 @@ exports.ColumnDefinitionNode = (0, object_utils_js_1.freeze)({
|
|
|
15
15
|
kind: 'ColumnDefinitionNode',
|
|
16
16
|
column: column_node_js_1.ColumnNode.create(column),
|
|
17
17
|
dataType,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
primaryKey: false,
|
|
19
|
+
autoIncrement: false,
|
|
20
|
+
unique: false,
|
|
21
|
+
nullable: true,
|
|
22
22
|
});
|
|
23
23
|
},
|
|
24
24
|
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
|
}>;
|
|
@@ -22,10 +22,10 @@ exports.CreateTableNode = (0, object_utils_js_1.freeze)({
|
|
|
22
22
|
columns: (0, object_utils_js_1.freeze)([...createTable.columns, column]),
|
|
23
23
|
});
|
|
24
24
|
},
|
|
25
|
-
|
|
25
|
+
cloneWithIfNotExists(createTable, ifNotExists) {
|
|
26
26
|
return (0, object_utils_js_1.freeze)({
|
|
27
27
|
...createTable,
|
|
28
|
-
|
|
28
|
+
ifNotExists,
|
|
29
29
|
});
|
|
30
30
|
},
|
|
31
31
|
cloneWithConstraint(createTable, constraint) {
|
|
@@ -3,12 +3,12 @@ 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
12
|
readonly columns?: ReadonlyArray<ColumnNode>;
|
|
13
13
|
readonly as?: SelectQueryNode | RawNode;
|
|
14
14
|
}
|
|
@@ -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
|
}>;
|
|
@@ -17,10 +17,10 @@ exports.DropSchemaNode = (0, object_utils_js_1.freeze)({
|
|
|
17
17
|
...params,
|
|
18
18
|
});
|
|
19
19
|
},
|
|
20
|
-
|
|
20
|
+
cloneWith(dropSchema, params) {
|
|
21
21
|
return (0, object_utils_js_1.freeze)({
|
|
22
22
|
...dropSchema,
|
|
23
|
-
|
|
23
|
+
...params,
|
|
24
24
|
});
|
|
25
25
|
},
|
|
26
26
|
});
|
|
@@ -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
|
}>;
|
|
@@ -16,10 +16,10 @@ exports.DropTableNode = (0, object_utils_js_1.freeze)({
|
|
|
16
16
|
...params,
|
|
17
17
|
});
|
|
18
18
|
},
|
|
19
|
-
|
|
19
|
+
cloneWith(dropIndex, params) {
|
|
20
20
|
return (0, object_utils_js_1.freeze)({
|
|
21
21
|
...dropIndex,
|
|
22
|
-
|
|
22
|
+
...params,
|
|
23
23
|
});
|
|
24
24
|
},
|
|
25
25
|
});
|
|
@@ -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
|
}>;
|
|
@@ -16,10 +16,10 @@ exports.DropViewNode = (0, object_utils_js_1.freeze)({
|
|
|
16
16
|
name: identifier_node_js_1.IdentifierNode.create(name),
|
|
17
17
|
});
|
|
18
18
|
},
|
|
19
|
-
|
|
19
|
+
cloneWith(dropView, params) {
|
|
20
20
|
return (0, object_utils_js_1.freeze)({
|
|
21
21
|
...dropView,
|
|
22
|
-
|
|
22
|
+
...params,
|
|
23
23
|
});
|
|
24
24
|
},
|
|
25
25
|
});
|
|
@@ -117,7 +117,7 @@ class OperationNodeTransformer {
|
|
|
117
117
|
from: this.transformNode(node.from),
|
|
118
118
|
selections: this.transformNodeList(node.selections),
|
|
119
119
|
distinctOnSelections: this.transformNodeList(node.distinctOnSelections),
|
|
120
|
-
|
|
120
|
+
distinct: node.distinct,
|
|
121
121
|
joins: this.transformNodeList(node.joins),
|
|
122
122
|
groupBy: this.transformNode(node.groupBy),
|
|
123
123
|
orderBy: this.transformNode(node.orderBy),
|
|
@@ -259,7 +259,7 @@ class OperationNodeTransformer {
|
|
|
259
259
|
table: this.transformNode(node.table),
|
|
260
260
|
columns: this.transformNodeList(node.columns),
|
|
261
261
|
constraints: this.transformNodeList(node.constraints),
|
|
262
|
-
|
|
262
|
+
ifNotExists: node.ifNotExists,
|
|
263
263
|
};
|
|
264
264
|
}
|
|
265
265
|
transformColumnDefinition(node) {
|
|
@@ -268,10 +268,10 @@ class OperationNodeTransformer {
|
|
|
268
268
|
column: this.transformNode(node.column),
|
|
269
269
|
dataType: this.transformNode(node.dataType),
|
|
270
270
|
references: this.transformNode(node.references),
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
271
|
+
primaryKey: node.primaryKey,
|
|
272
|
+
autoIncrement: node.autoIncrement,
|
|
273
|
+
unique: node.unique,
|
|
274
|
+
nullable: node.nullable,
|
|
275
275
|
defaultTo: this.transformNode(node.defaultTo),
|
|
276
276
|
check: this.transformNode(node.check),
|
|
277
277
|
};
|
|
@@ -286,7 +286,7 @@ class OperationNodeTransformer {
|
|
|
286
286
|
return {
|
|
287
287
|
kind: 'DropTableNode',
|
|
288
288
|
table: this.transformNode(node.table),
|
|
289
|
-
|
|
289
|
+
ifExists: node.ifExists,
|
|
290
290
|
};
|
|
291
291
|
}
|
|
292
292
|
transformOrderBy(node) {
|
|
@@ -380,7 +380,7 @@ class OperationNodeTransformer {
|
|
|
380
380
|
kind: 'DropIndexNode',
|
|
381
381
|
name: this.transformNode(node.name),
|
|
382
382
|
table: this.transformNode(node.table),
|
|
383
|
-
|
|
383
|
+
ifExists: node.ifExists,
|
|
384
384
|
};
|
|
385
385
|
}
|
|
386
386
|
transformPrimaryKeyConstraint(node) {
|
|
@@ -459,7 +459,7 @@ class OperationNodeTransformer {
|
|
|
459
459
|
return {
|
|
460
460
|
kind: 'DropSchemaNode',
|
|
461
461
|
schema: this.transformNode(node.schema),
|
|
462
|
-
|
|
462
|
+
ifExists: node.ifExists,
|
|
463
463
|
};
|
|
464
464
|
}
|
|
465
465
|
transformAlterTable(node) {
|
|
@@ -524,7 +524,8 @@ class OperationNodeTransformer {
|
|
|
524
524
|
return {
|
|
525
525
|
kind: 'CreateViewNode',
|
|
526
526
|
name: this.transformNode(node.name),
|
|
527
|
-
|
|
527
|
+
orReplace: node.orReplace,
|
|
528
|
+
materialized: node.materialized,
|
|
528
529
|
columns: this.transformNodeList(node.columns),
|
|
529
530
|
as: this.transformNode(node.as),
|
|
530
531
|
};
|
|
@@ -533,7 +534,8 @@ class OperationNodeTransformer {
|
|
|
533
534
|
return {
|
|
534
535
|
kind: 'DropViewNode',
|
|
535
536
|
name: this.transformNode(node.name),
|
|
536
|
-
|
|
537
|
+
ifExists: node.ifExists,
|
|
538
|
+
materialized: node.materialized,
|
|
537
539
|
};
|
|
538
540
|
}
|
|
539
541
|
transformDataType(node) {
|
|
@@ -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;
|
|
@@ -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);
|
|
@@ -306,17 +306,17 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
306
306
|
this.append(' default ');
|
|
307
307
|
this.visitNode(node.defaultTo);
|
|
308
308
|
}
|
|
309
|
-
if (!node.
|
|
309
|
+
if (!node.nullable) {
|
|
310
310
|
this.append(' not null');
|
|
311
311
|
}
|
|
312
|
-
if (node.
|
|
312
|
+
if (node.autoIncrement) {
|
|
313
313
|
this.append(' ');
|
|
314
314
|
this.append(this.getAutoIncrement());
|
|
315
315
|
}
|
|
316
|
-
if (node.
|
|
316
|
+
if (node.unique) {
|
|
317
317
|
this.append(' unique');
|
|
318
318
|
}
|
|
319
|
-
if (node.
|
|
319
|
+
if (node.primaryKey) {
|
|
320
320
|
this.append(' primary key');
|
|
321
321
|
}
|
|
322
322
|
if (node.references) {
|
|
@@ -348,7 +348,7 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
348
348
|
}
|
|
349
349
|
visitDropTable(node) {
|
|
350
350
|
this.append('drop table ');
|
|
351
|
-
if (node.
|
|
351
|
+
if (node.ifExists) {
|
|
352
352
|
this.append('if exists ');
|
|
353
353
|
}
|
|
354
354
|
this.visitNode(node.table);
|
|
@@ -470,7 +470,7 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
470
470
|
}
|
|
471
471
|
visitDropIndex(node) {
|
|
472
472
|
this.append('drop index ');
|
|
473
|
-
if (node.
|
|
473
|
+
if (node.ifExists) {
|
|
474
474
|
this.append('if exists ');
|
|
475
475
|
}
|
|
476
476
|
this.visitNode(node.name);
|
|
@@ -481,14 +481,14 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
481
481
|
}
|
|
482
482
|
visitCreateSchema(node) {
|
|
483
483
|
this.append('create schema ');
|
|
484
|
-
if (node.
|
|
484
|
+
if (node.ifNotExists) {
|
|
485
485
|
this.append('if not exists ');
|
|
486
486
|
}
|
|
487
487
|
this.visitNode(node.schema);
|
|
488
488
|
}
|
|
489
489
|
visitDropSchema(node) {
|
|
490
490
|
this.append('drop schema ');
|
|
491
|
-
if (node.
|
|
491
|
+
if (node.ifExists) {
|
|
492
492
|
this.append('if exists ');
|
|
493
493
|
}
|
|
494
494
|
this.visitNode(node.schema);
|
|
@@ -649,9 +649,12 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
649
649
|
}
|
|
650
650
|
visitCreateView(node) {
|
|
651
651
|
this.append('create ');
|
|
652
|
-
if (node.
|
|
652
|
+
if (node.orReplace) {
|
|
653
653
|
this.append('or replace ');
|
|
654
654
|
}
|
|
655
|
+
if (node.materialized) {
|
|
656
|
+
this.append('materialized ');
|
|
657
|
+
}
|
|
655
658
|
this.append('view ');
|
|
656
659
|
this.visitNode(node.name);
|
|
657
660
|
this.append(' ');
|
|
@@ -666,8 +669,12 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
|
|
|
666
669
|
}
|
|
667
670
|
}
|
|
668
671
|
visitDropView(node) {
|
|
669
|
-
this.append('drop
|
|
670
|
-
if (node.
|
|
672
|
+
this.append('drop ');
|
|
673
|
+
if (node.materialized) {
|
|
674
|
+
this.append('materialized ');
|
|
675
|
+
}
|
|
676
|
+
this.append('view ');
|
|
677
|
+
if (node.ifExists) {
|
|
671
678
|
this.append('if exists ');
|
|
672
679
|
}
|
|
673
680
|
this.visitNode(node.name);
|
|
@@ -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;
|
|
@@ -82,7 +82,7 @@ export interface AlterTableAddColumnBuilderProps extends AlterTableBuilderProps
|
|
|
82
82
|
export declare class AlterTableModifyColumnBuilder implements ColumnDefinitionBuilderInterface<AlterTableModifyColumnBuilder>, OperationNodeSource, Compilable {
|
|
83
83
|
#private;
|
|
84
84
|
constructor(props: AlterTableModifyColumnBuilderProps);
|
|
85
|
-
|
|
85
|
+
autoIncrement(): AlterTableModifyColumnBuilder;
|
|
86
86
|
primaryKey(): AlterTableModifyColumnBuilder;
|
|
87
87
|
references(ref: string): AlterTableModifyColumnBuilder;
|
|
88
88
|
onDelete(onDelete: OnModifyForeignAction): AlterTableModifyColumnBuilder;
|
|
@@ -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() {
|
|
@@ -262,10 +262,10 @@ class AlterTableModifyColumnBuilder {
|
|
|
262
262
|
constructor(props) {
|
|
263
263
|
this.#props = (0, object_utils_js_1.freeze)(props);
|
|
264
264
|
}
|
|
265
|
-
|
|
265
|
+
autoIncrement() {
|
|
266
266
|
return new AlterTableModifyColumnBuilder({
|
|
267
267
|
...this.#props,
|
|
268
|
-
columnBuilder: this.#props.columnBuilder.
|
|
268
|
+
columnBuilder: this.#props.columnBuilder.autoIncrement(),
|
|
269
269
|
});
|
|
270
270
|
}
|
|
271
271
|
primaryKey() {
|
|
@@ -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
|
*
|
|
@@ -82,7 +82,7 @@ export interface ColumnDefinitionBuilderInterface<R> {
|
|
|
82
82
|
export declare class ColumnDefinitionBuilder implements ColumnDefinitionBuilderInterface<ColumnDefinitionBuilder>, OperationNodeSource {
|
|
83
83
|
#private;
|
|
84
84
|
constructor(node: ColumnDefinitionNode);
|
|
85
|
-
|
|
85
|
+
autoIncrement(): ColumnDefinitionBuilder;
|
|
86
86
|
primaryKey(): ColumnDefinitionBuilder;
|
|
87
87
|
references(ref: string): ColumnDefinitionBuilder;
|
|
88
88
|
onDelete(onDelete: OnModifyForeignAction): ColumnDefinitionBuilder;
|
|
@@ -14,11 +14,11 @@ class ColumnDefinitionBuilder {
|
|
|
14
14
|
constructor(node) {
|
|
15
15
|
this.#node = node;
|
|
16
16
|
}
|
|
17
|
-
|
|
18
|
-
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
|
|
17
|
+
autoIncrement() {
|
|
18
|
+
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { autoIncrement: true }));
|
|
19
19
|
}
|
|
20
20
|
primaryKey() {
|
|
21
|
-
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
|
|
21
|
+
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { primaryKey: true }));
|
|
22
22
|
}
|
|
23
23
|
references(ref) {
|
|
24
24
|
const references = (0, reference_parser_js_1.parseStringReference)(ref);
|
|
@@ -48,10 +48,10 @@ class ColumnDefinitionBuilder {
|
|
|
48
48
|
}));
|
|
49
49
|
}
|
|
50
50
|
unique() {
|
|
51
|
-
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
|
|
51
|
+
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { unique: true }));
|
|
52
52
|
}
|
|
53
53
|
notNull() {
|
|
54
|
-
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
|
|
54
|
+
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { nullable: false }));
|
|
55
55
|
}
|
|
56
56
|
defaultTo(value) {
|
|
57
57
|
return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
|
|
@@ -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() {
|
|
@@ -26,7 +26,7 @@ export declare class CreateTableBuilder<TB extends string, C extends string = ne
|
|
|
26
26
|
* ```ts
|
|
27
27
|
* await db.schema
|
|
28
28
|
* .createTable('person')
|
|
29
|
-
* .addColumn('id', 'integer', (col) => col.
|
|
29
|
+
* .addColumn('id', 'integer', (col) => col.autoIncrement().primaryKey()),
|
|
30
30
|
* .addColumn('first_name', 'varchar(50), (col) => col.notNull())
|
|
31
31
|
* .addColumn('last_name', 'varchar')
|
|
32
32
|
* .addColumn('bank_balance', 'numeric(8, 2)')
|
|
@@ -30,7 +30,7 @@ class CreateTableBuilder {
|
|
|
30
30
|
ifNotExists() {
|
|
31
31
|
return new CreateTableBuilder({
|
|
32
32
|
...this.#props,
|
|
33
|
-
createTableNode: create_table_node_js_1.CreateTableNode.
|
|
33
|
+
createTableNode: create_table_node_js_1.CreateTableNode.cloneWithIfNotExists(this.#props.createTableNode, true),
|
|
34
34
|
});
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
@@ -40,7 +40,7 @@ class CreateTableBuilder {
|
|
|
40
40
|
* ```ts
|
|
41
41
|
* await db.schema
|
|
42
42
|
* .createTable('person')
|
|
43
|
-
* .addColumn('id', 'integer', (col) => col.
|
|
43
|
+
* .addColumn('id', 'integer', (col) => col.autoIncrement().primaryKey()),
|
|
44
44
|
* .addColumn('first_name', 'varchar(50), (col) => col.notNull())
|
|
45
45
|
* .addColumn('last_name', 'varchar')
|
|
46
46
|
* .addColumn('bank_balance', 'numeric(8, 2)')
|
|
@@ -9,6 +9,7 @@ import { AnyRawBuilder } from '../util/type-utils.js';
|
|
|
9
9
|
export declare class CreateViewBuilder implements OperationNodeSource, Compilable {
|
|
10
10
|
#private;
|
|
11
11
|
constructor(props: CreateViewBuilderProps);
|
|
12
|
+
materialized(): CreateViewBuilder;
|
|
12
13
|
orReplace(): CreateViewBuilder;
|
|
13
14
|
columns(columns: string[]): CreateViewBuilder;
|
|
14
15
|
as(query: AnyQueryBuilder | AnyRawBuilder): CreateViewBuilder;
|
|
@@ -23,11 +23,19 @@ class CreateViewBuilder {
|
|
|
23
23
|
executor: props.executor.withPlugin(new immediate_value_plugin_js_1.ImmediateValuePlugin()),
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
|
+
materialized() {
|
|
27
|
+
return new CreateViewBuilder({
|
|
28
|
+
...this.#props,
|
|
29
|
+
createViewNode: create_view_node_js_1.CreateViewNode.cloneWith(this.#props.createViewNode, {
|
|
30
|
+
materialized: true,
|
|
31
|
+
}),
|
|
32
|
+
});
|
|
33
|
+
}
|
|
26
34
|
orReplace() {
|
|
27
35
|
return new CreateViewBuilder({
|
|
28
36
|
...this.#props,
|
|
29
37
|
createViewNode: create_view_node_js_1.CreateViewNode.cloneWith(this.#props.createViewNode, {
|
|
30
|
-
|
|
38
|
+
orReplace: true,
|
|
31
39
|
}),
|
|
32
40
|
});
|
|
33
41
|
}
|