kysely 0.8.1 → 0.9.3
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 +47 -4
- package/dist/cjs/dialect/mysql/mysql-driver.js +2 -2
- package/dist/cjs/dialect/mysql/mysql-query-compiler.d.ts +0 -2
- package/dist/cjs/dialect/mysql/mysql-query-compiler.js +0 -29
- package/dist/cjs/operation-node/create-schema-node.d.ts +1 -1
- package/dist/cjs/operation-node/create-schema-node.js +2 -2
- package/dist/cjs/operation-node/create-table-node.d.ts +1 -5
- package/dist/cjs/operation-node/create-table-node.js +1 -31
- package/dist/cjs/operation-node/join-node.d.ts +2 -1
- package/dist/cjs/operation-node/join-node.js +8 -6
- package/dist/cjs/operation-node/operation-node-source.d.ts +1 -1
- package/dist/cjs/operation-node/operation-node-transformer.d.ts +2 -0
- package/dist/cjs/operation-node/operation-node-transformer.js +11 -1
- package/dist/cjs/operation-node/operation-node-visitor.d.ts +61 -59
- package/dist/cjs/operation-node/operation-node-visitor.js +1 -316
- package/dist/cjs/operation-node/operation-node.d.ts +1 -1
- package/dist/cjs/operation-node/primitive-value-list-node.js +1 -1
- package/dist/cjs/operation-node/query-node.d.ts +4 -3
- package/dist/cjs/operation-node/query-node.js +10 -2
- package/dist/cjs/operation-node/select-query-node.d.ts +5 -1
- package/dist/cjs/operation-node/select-query-node.js +18 -2
- package/dist/cjs/operation-node/union-node.d.ts +16 -0
- package/dist/cjs/operation-node/union-node.js +19 -0
- package/dist/cjs/parser/group-by-parser.d.ts +4 -0
- package/dist/cjs/parser/group-by-parser.js +9 -0
- package/dist/cjs/parser/insert-values-parser.d.ts +1 -1
- package/dist/cjs/parser/join-parser.d.ts +6 -3
- package/dist/cjs/parser/order-by-parser.d.ts +2 -4
- package/dist/cjs/parser/order-by-parser.js +6 -3
- package/dist/cjs/parser/reference-parser.d.ts +1 -1
- package/dist/cjs/parser/reference-parser.js +1 -1
- package/dist/cjs/parser/table-parser.d.ts +8 -8
- package/dist/cjs/parser/union-parser.d.ts +5 -0
- package/dist/cjs/parser/union-parser.js +13 -0
- package/dist/cjs/parser/value-parser.d.ts +1 -1
- package/dist/cjs/query-builder/function-builder.d.ts +6 -6
- package/dist/cjs/query-builder/function-builder.js +6 -6
- package/dist/cjs/query-builder/join-builder.js +8 -8
- package/dist/cjs/query-builder/query-builder.d.ts +30 -1
- package/dist/cjs/query-builder/query-builder.js +66 -22
- package/dist/cjs/query-compiler/compiled-query.d.ts +1 -1
- package/dist/cjs/query-compiler/default-query-compiler.d.ts +8 -2
- package/dist/cjs/query-compiler/default-query-compiler.js +33 -22
- package/dist/cjs/query-creator.d.ts +6 -3
- package/dist/cjs/query-creator.js +5 -2
- package/dist/cjs/schema/alter-table-builder.d.ts +3 -0
- package/dist/cjs/schema/alter-table-builder.js +3 -0
- package/dist/cjs/schema/column-definition-builder.d.ts +14 -5
- package/dist/cjs/schema/create-schema-builder.js +1 -1
- package/dist/cjs/schema/create-table-builder.d.ts +55 -10
- package/dist/cjs/schema/create-table-builder.js +59 -17
- package/dist/cjs/schema/schema.d.ts +37 -2
- package/dist/cjs/schema/schema.js +36 -1
- package/dist/cjs/util/object-utils.d.ts +12 -11
- package/dist/cjs/util/object-utils.js +6 -2
- package/dist/esm/dialect/mysql/mysql-driver.js +3 -3
- package/dist/esm/dialect/mysql/mysql-query-compiler.d.ts +0 -2
- package/dist/esm/dialect/mysql/mysql-query-compiler.js +0 -29
- package/dist/esm/operation-node/create-schema-node.d.ts +1 -1
- package/dist/esm/operation-node/create-schema-node.js +2 -2
- package/dist/esm/operation-node/create-table-node.d.ts +1 -5
- package/dist/esm/operation-node/create-table-node.js +1 -31
- package/dist/esm/operation-node/join-node.d.ts +2 -1
- package/dist/esm/operation-node/join-node.js +8 -6
- package/dist/esm/operation-node/operation-node-source.d.ts +1 -1
- package/dist/esm/operation-node/operation-node-transformer.d.ts +2 -0
- package/dist/esm/operation-node/operation-node-transformer.js +11 -1
- package/dist/esm/operation-node/operation-node-visitor.d.ts +61 -59
- package/dist/esm/operation-node/operation-node-visitor.js +1 -316
- package/dist/esm/operation-node/operation-node.d.ts +1 -1
- package/dist/esm/operation-node/primitive-value-list-node.js +1 -1
- package/dist/esm/operation-node/query-node.d.ts +4 -3
- package/dist/esm/operation-node/query-node.js +10 -2
- package/dist/esm/operation-node/select-query-node.d.ts +5 -1
- package/dist/esm/operation-node/select-query-node.js +18 -2
- package/dist/esm/operation-node/union-node.d.ts +16 -0
- package/dist/esm/operation-node/union-node.js +16 -0
- package/dist/esm/parser/group-by-parser.d.ts +4 -0
- package/dist/esm/parser/group-by-parser.js +5 -0
- package/dist/esm/parser/insert-values-parser.d.ts +1 -1
- package/dist/esm/parser/join-parser.d.ts +6 -3
- package/dist/esm/parser/order-by-parser.d.ts +2 -4
- package/dist/esm/parser/order-by-parser.js +6 -2
- package/dist/esm/parser/reference-parser.d.ts +1 -1
- package/dist/esm/parser/reference-parser.js +2 -2
- package/dist/esm/parser/table-parser.d.ts +8 -8
- package/dist/esm/parser/union-parser.d.ts +5 -0
- package/dist/esm/parser/union-parser.js +9 -0
- package/dist/esm/parser/value-parser.d.ts +1 -1
- package/dist/esm/query-builder/function-builder.d.ts +6 -6
- package/dist/esm/query-builder/function-builder.js +6 -6
- package/dist/esm/query-builder/join-builder.js +8 -8
- package/dist/esm/query-builder/query-builder.d.ts +30 -1
- package/dist/esm/query-builder/query-builder.js +67 -23
- package/dist/esm/query-compiler/compiled-query.d.ts +1 -1
- package/dist/esm/query-compiler/default-query-compiler.d.ts +8 -2
- package/dist/esm/query-compiler/default-query-compiler.js +33 -22
- package/dist/esm/query-creator.d.ts +6 -3
- package/dist/esm/query-creator.js +5 -2
- package/dist/esm/schema/alter-table-builder.d.ts +3 -0
- package/dist/esm/schema/alter-table-builder.js +3 -0
- package/dist/esm/schema/column-definition-builder.d.ts +14 -5
- package/dist/esm/schema/create-schema-builder.js +1 -1
- package/dist/esm/schema/create-table-builder.d.ts +55 -10
- package/dist/esm/schema/create-table-builder.js +60 -18
- package/dist/esm/schema/schema.d.ts +37 -2
- package/dist/esm/schema/schema.js +36 -1
- package/dist/esm/util/object-utils.d.ts +12 -11
- package/dist/esm/util/object-utils.js +4 -1
- package/package.json +1 -1
|
@@ -24,14 +24,16 @@ export const JoinNode = freeze({
|
|
|
24
24
|
on,
|
|
25
25
|
});
|
|
26
26
|
},
|
|
27
|
-
cloneWithOn(joinNode,
|
|
27
|
+
cloneWithOn(joinNode, on) {
|
|
28
28
|
return freeze({
|
|
29
29
|
...joinNode,
|
|
30
|
-
on: joinNode.on
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
on: joinNode.on ? AndNode.create(joinNode.on, on) : on,
|
|
31
|
+
});
|
|
32
|
+
},
|
|
33
|
+
cloneWithOrOn(joinNode, on) {
|
|
34
|
+
return freeze({
|
|
35
|
+
...joinNode,
|
|
36
|
+
on: joinNode.on ? OrNode.create(joinNode.on, on) : on,
|
|
35
37
|
});
|
|
36
38
|
},
|
|
37
39
|
});
|
|
@@ -2,4 +2,4 @@ import { OperationNode } from './operation-node.js';
|
|
|
2
2
|
export interface OperationNodeSource {
|
|
3
3
|
toOperationNode(): OperationNode;
|
|
4
4
|
}
|
|
5
|
-
export declare function isOperationNodeSource(obj:
|
|
5
|
+
export declare function isOperationNodeSource(obj: unknown): obj is OperationNodeSource;
|
|
@@ -57,6 +57,7 @@ import { ForeignKeyConstraintNode } from './foreign-key-constraint-node.js';
|
|
|
57
57
|
import { ColumnDefinitionNode } from './column-definition-node.js';
|
|
58
58
|
import { ModifyColumnNode } from './modify-column-node.js';
|
|
59
59
|
import { OnDuplicateKeyNode } from './on-duplicate-key-node.js';
|
|
60
|
+
import { UnionNode } from './union-node.js';
|
|
60
61
|
/**
|
|
61
62
|
* Transforms an operation node tree into another one.
|
|
62
63
|
*
|
|
@@ -129,6 +130,7 @@ export declare class OperationNodeTransformer {
|
|
|
129
130
|
protected transformPrimaryKeyConstraint(node: PrimaryKeyConstraintNode): PrimaryKeyConstraintNode;
|
|
130
131
|
protected transformUniqueConstraint(node: UniqueConstraintNode): UniqueConstraintNode;
|
|
131
132
|
protected transformForeignKeyConstraint(node: ForeignKeyConstraintNode): ForeignKeyConstraintNode;
|
|
133
|
+
protected transformUnion(node: UnionNode): UnionNode;
|
|
132
134
|
protected transformReferences(node: ReferencesNode): ReferencesNode;
|
|
133
135
|
protected transformCheckConstraint(node: CheckConstraintNode): CheckConstraintNode;
|
|
134
136
|
protected transformWith(node: WithNode): WithNode;
|
|
@@ -89,6 +89,7 @@ export class OperationNodeTransformer {
|
|
|
89
89
|
AddConstraintNode: this.transformAddConstraint.bind(this),
|
|
90
90
|
DropConstraintNode: this.transformDropConstraint.bind(this),
|
|
91
91
|
ForeignKeyConstraintNode: this.transformForeignKeyConstraint.bind(this),
|
|
92
|
+
UnionNode: this.transformUnion.bind(this),
|
|
92
93
|
};
|
|
93
94
|
transformNode = (node) => {
|
|
94
95
|
if (!node) {
|
|
@@ -121,6 +122,7 @@ export class OperationNodeTransformer {
|
|
|
121
122
|
offset: this.transformNode(node.offset),
|
|
122
123
|
with: this.transformNode(node.with),
|
|
123
124
|
having: this.transformNode(node.having),
|
|
125
|
+
union: this.transformNodeList(node.union),
|
|
124
126
|
};
|
|
125
127
|
}
|
|
126
128
|
transformSelection(node) {
|
|
@@ -400,6 +402,13 @@ export class OperationNodeTransformer {
|
|
|
400
402
|
onUpdate: node.onUpdate,
|
|
401
403
|
};
|
|
402
404
|
}
|
|
405
|
+
transformUnion(node) {
|
|
406
|
+
return {
|
|
407
|
+
kind: 'UnionNode',
|
|
408
|
+
union: this.transformNode(node.union),
|
|
409
|
+
all: node.all,
|
|
410
|
+
};
|
|
411
|
+
}
|
|
403
412
|
transformReferences(node) {
|
|
404
413
|
return {
|
|
405
414
|
kind: 'ReferencesNode',
|
|
@@ -453,11 +462,12 @@ export class OperationNodeTransformer {
|
|
|
453
462
|
kind: 'AlterTableNode',
|
|
454
463
|
table: this.transformNode(node.table),
|
|
455
464
|
renameTo: this.transformNode(node.renameTo),
|
|
456
|
-
renameColumn: this.transformNode(node.renameColumn),
|
|
457
465
|
setSchema: this.transformNode(node.setSchema),
|
|
466
|
+
renameColumn: this.transformNode(node.renameColumn),
|
|
458
467
|
addColumn: this.transformNode(node.addColumn),
|
|
459
468
|
dropColumn: this.transformNode(node.dropColumn),
|
|
460
469
|
alterColumn: this.transformNode(node.alterColumn),
|
|
470
|
+
modifyColumn: this.transformNode(node.modifyColumn),
|
|
461
471
|
addConstraint: this.transformNode(node.addConstraint),
|
|
462
472
|
dropConstraint: this.transformNode(node.dropConstraint),
|
|
463
473
|
};
|
|
@@ -57,66 +57,68 @@ import { ForeignKeyConstraintNode } from './foreign-key-constraint-node.js';
|
|
|
57
57
|
import { ColumnDefinitionNode } from './column-definition-node.js';
|
|
58
58
|
import { ModifyColumnNode } from './modify-column-node.js';
|
|
59
59
|
import { OnDuplicateKeyNode } from './on-duplicate-key-node.js';
|
|
60
|
-
|
|
60
|
+
import { UnionNode } from './union-node.js';
|
|
61
|
+
export declare abstract class OperationNodeVisitor {
|
|
61
62
|
#private;
|
|
62
63
|
protected readonly nodeStack: OperationNode[];
|
|
63
64
|
protected readonly visitNode: (node: OperationNode) => void;
|
|
64
|
-
protected visitSelectQuery(node: SelectQueryNode): void;
|
|
65
|
-
protected visitSelection(node: SelectionNode): void;
|
|
66
|
-
protected visitColumn(node: ColumnNode): void;
|
|
67
|
-
protected visitAlias(node: AliasNode): void;
|
|
68
|
-
protected visitTable(node: TableNode): void;
|
|
69
|
-
protected visitFrom(node: FromNode): void;
|
|
70
|
-
protected visitReference(node: ReferenceNode): void;
|
|
71
|
-
protected visitFilter(node: FilterNode): void;
|
|
72
|
-
protected visitAnd(node: AndNode): void;
|
|
73
|
-
protected visitOr(node: OrNode): void;
|
|
74
|
-
protected visitValueList(node: ValueListNode): void;
|
|
75
|
-
protected visitParens(node: ParensNode): void;
|
|
76
|
-
protected visitJoin(node: JoinNode): void;
|
|
77
|
-
protected visitRaw(node: RawNode): void;
|
|
78
|
-
protected visitWhere(node: WhereNode): void;
|
|
79
|
-
protected visitInsertQuery(node: InsertQueryNode): void;
|
|
80
|
-
protected visitDeleteQuery(node: DeleteQueryNode): void;
|
|
81
|
-
protected visitReturning(node: ReturningNode): void;
|
|
82
|
-
protected visitCreateTable(node: CreateTableNode): void;
|
|
83
|
-
protected visitAddColumn(node: AddColumnNode): void;
|
|
84
|
-
protected visitColumnDefinition(node: ColumnDefinitionNode): void;
|
|
85
|
-
protected visitDropTable(node: DropTableNode): void;
|
|
86
|
-
protected visitOrderBy(node: OrderByNode): void;
|
|
87
|
-
protected visitOrderByItem(node: OrderByItemNode): void;
|
|
88
|
-
protected visitGroupBy(node: GroupByNode): void;
|
|
89
|
-
protected visitGroupByItem(node: GroupByItemNode): void;
|
|
90
|
-
protected visitUpdateQuery(node: UpdateQueryNode): void;
|
|
91
|
-
protected visitColumnUpdate(node: ColumnUpdateNode): void;
|
|
92
|
-
protected visitLimit(node: LimitNode): void;
|
|
93
|
-
protected visitOffset(node: OffsetNode): void;
|
|
94
|
-
protected visitOnConflict(node: OnConflictNode): void;
|
|
95
|
-
protected visitOnDuplicateKey(node: OnDuplicateKeyNode): void;
|
|
96
|
-
protected visitCreateIndex(node: CreateIndexNode): void;
|
|
97
|
-
protected
|
|
98
|
-
protected
|
|
99
|
-
protected visitPrimaryKeyConstraint(node: PrimaryKeyConstraintNode): void;
|
|
100
|
-
protected visitUniqueConstraint(node: UniqueConstraintNode): void;
|
|
101
|
-
protected visitReferences(node: ReferencesNode): void;
|
|
102
|
-
protected visitCheckConstraint(node: CheckConstraintNode): void;
|
|
103
|
-
protected visitWith(node: WithNode): void;
|
|
104
|
-
protected visitCommonTableExpression(node: CommonTableExpressionNode): void;
|
|
105
|
-
protected visitHaving(node: HavingNode): void;
|
|
106
|
-
protected visitCreateSchema(node: CreateSchemaNode): void;
|
|
107
|
-
protected visitDropSchema(node: DropSchemaNode): void;
|
|
108
|
-
protected visitAlterTable(node: AlterTableNode): void;
|
|
109
|
-
protected visitDropColumn(node: DropColumnNode): void;
|
|
110
|
-
protected visitRenameColumn(node: RenameColumnNode): void;
|
|
111
|
-
protected visitAlterColumn(node: AlterColumnNode): void;
|
|
112
|
-
protected visitModifyColumn(node: ModifyColumnNode): void;
|
|
113
|
-
protected visitAddConstraint(node: AddConstraintNode): void;
|
|
114
|
-
protected visitDropConstraint(node: DropConstraintNode): void;
|
|
115
|
-
protected visitForeignKeyConstraint(node: ForeignKeyConstraintNode): void;
|
|
116
|
-
protected
|
|
117
|
-
protected
|
|
118
|
-
protected
|
|
119
|
-
protected
|
|
120
|
-
protected
|
|
121
|
-
protected
|
|
65
|
+
protected abstract visitSelectQuery(node: SelectQueryNode): void;
|
|
66
|
+
protected abstract visitSelection(node: SelectionNode): void;
|
|
67
|
+
protected abstract visitColumn(node: ColumnNode): void;
|
|
68
|
+
protected abstract visitAlias(node: AliasNode): void;
|
|
69
|
+
protected abstract visitTable(node: TableNode): void;
|
|
70
|
+
protected abstract visitFrom(node: FromNode): void;
|
|
71
|
+
protected abstract visitReference(node: ReferenceNode): void;
|
|
72
|
+
protected abstract visitFilter(node: FilterNode): void;
|
|
73
|
+
protected abstract visitAnd(node: AndNode): void;
|
|
74
|
+
protected abstract visitOr(node: OrNode): void;
|
|
75
|
+
protected abstract visitValueList(node: ValueListNode): void;
|
|
76
|
+
protected abstract visitParens(node: ParensNode): void;
|
|
77
|
+
protected abstract visitJoin(node: JoinNode): void;
|
|
78
|
+
protected abstract visitRaw(node: RawNode): void;
|
|
79
|
+
protected abstract visitWhere(node: WhereNode): void;
|
|
80
|
+
protected abstract visitInsertQuery(node: InsertQueryNode): void;
|
|
81
|
+
protected abstract visitDeleteQuery(node: DeleteQueryNode): void;
|
|
82
|
+
protected abstract visitReturning(node: ReturningNode): void;
|
|
83
|
+
protected abstract visitCreateTable(node: CreateTableNode): void;
|
|
84
|
+
protected abstract visitAddColumn(node: AddColumnNode): void;
|
|
85
|
+
protected abstract visitColumnDefinition(node: ColumnDefinitionNode): void;
|
|
86
|
+
protected abstract visitDropTable(node: DropTableNode): void;
|
|
87
|
+
protected abstract visitOrderBy(node: OrderByNode): void;
|
|
88
|
+
protected abstract visitOrderByItem(node: OrderByItemNode): void;
|
|
89
|
+
protected abstract visitGroupBy(node: GroupByNode): void;
|
|
90
|
+
protected abstract visitGroupByItem(node: GroupByItemNode): void;
|
|
91
|
+
protected abstract visitUpdateQuery(node: UpdateQueryNode): void;
|
|
92
|
+
protected abstract visitColumnUpdate(node: ColumnUpdateNode): void;
|
|
93
|
+
protected abstract visitLimit(node: LimitNode): void;
|
|
94
|
+
protected abstract visitOffset(node: OffsetNode): void;
|
|
95
|
+
protected abstract visitOnConflict(node: OnConflictNode): void;
|
|
96
|
+
protected abstract visitOnDuplicateKey(node: OnDuplicateKeyNode): void;
|
|
97
|
+
protected abstract visitCreateIndex(node: CreateIndexNode): void;
|
|
98
|
+
protected abstract visitDropIndex(node: DropIndexNode): void;
|
|
99
|
+
protected abstract visitList(node: ListNode): void;
|
|
100
|
+
protected abstract visitPrimaryKeyConstraint(node: PrimaryKeyConstraintNode): void;
|
|
101
|
+
protected abstract visitUniqueConstraint(node: UniqueConstraintNode): void;
|
|
102
|
+
protected abstract visitReferences(node: ReferencesNode): void;
|
|
103
|
+
protected abstract visitCheckConstraint(node: CheckConstraintNode): void;
|
|
104
|
+
protected abstract visitWith(node: WithNode): void;
|
|
105
|
+
protected abstract visitCommonTableExpression(node: CommonTableExpressionNode): void;
|
|
106
|
+
protected abstract visitHaving(node: HavingNode): void;
|
|
107
|
+
protected abstract visitCreateSchema(node: CreateSchemaNode): void;
|
|
108
|
+
protected abstract visitDropSchema(node: DropSchemaNode): void;
|
|
109
|
+
protected abstract visitAlterTable(node: AlterTableNode): void;
|
|
110
|
+
protected abstract visitDropColumn(node: DropColumnNode): void;
|
|
111
|
+
protected abstract visitRenameColumn(node: RenameColumnNode): void;
|
|
112
|
+
protected abstract visitAlterColumn(node: AlterColumnNode): void;
|
|
113
|
+
protected abstract visitModifyColumn(node: ModifyColumnNode): void;
|
|
114
|
+
protected abstract visitAddConstraint(node: AddConstraintNode): void;
|
|
115
|
+
protected abstract visitDropConstraint(node: DropConstraintNode): void;
|
|
116
|
+
protected abstract visitForeignKeyConstraint(node: ForeignKeyConstraintNode): void;
|
|
117
|
+
protected abstract visitUnion(node: UnionNode): void;
|
|
118
|
+
protected abstract visitDataType(node: DataTypeNode): void;
|
|
119
|
+
protected abstract visitSelectAll(_: SelectAllNode): void;
|
|
120
|
+
protected abstract visitIdentifier(_: IdentifierNode): void;
|
|
121
|
+
protected abstract visitValue(_: ValueNode): void;
|
|
122
|
+
protected abstract visitPrimitiveValueList(_: PrimitiveValueListNode): void;
|
|
123
|
+
protected abstract visitOperator(node: OperatorNode): void;
|
|
122
124
|
}
|
|
@@ -59,326 +59,11 @@ export class OperationNodeVisitor {
|
|
|
59
59
|
AddConstraintNode: this.visitAddConstraint.bind(this),
|
|
60
60
|
DropConstraintNode: this.visitDropConstraint.bind(this),
|
|
61
61
|
ForeignKeyConstraintNode: this.visitForeignKeyConstraint.bind(this),
|
|
62
|
+
UnionNode: this.visitUnion.bind(this),
|
|
62
63
|
};
|
|
63
64
|
visitNode = (node) => {
|
|
64
65
|
this.nodeStack.push(node);
|
|
65
66
|
this.#visitors[node.kind](node);
|
|
66
67
|
this.nodeStack.pop();
|
|
67
68
|
};
|
|
68
|
-
visitSelectQuery(node) {
|
|
69
|
-
if (node.with) {
|
|
70
|
-
this.visitNode(node.with);
|
|
71
|
-
}
|
|
72
|
-
if (node.distinctOnSelections) {
|
|
73
|
-
node.distinctOnSelections.forEach(this.visitNode);
|
|
74
|
-
}
|
|
75
|
-
if (node.selections) {
|
|
76
|
-
node.selections.forEach(this.visitNode);
|
|
77
|
-
}
|
|
78
|
-
this.visitNode(node.from);
|
|
79
|
-
if (node.joins) {
|
|
80
|
-
node.joins.forEach(this.visitNode);
|
|
81
|
-
}
|
|
82
|
-
if (node.where) {
|
|
83
|
-
this.visitNode(node.where);
|
|
84
|
-
}
|
|
85
|
-
if (node.groupBy) {
|
|
86
|
-
this.visitNode(node.groupBy);
|
|
87
|
-
}
|
|
88
|
-
if (node.having) {
|
|
89
|
-
this.visitNode(node.having);
|
|
90
|
-
}
|
|
91
|
-
if (node.orderBy) {
|
|
92
|
-
this.visitNode(node.orderBy);
|
|
93
|
-
}
|
|
94
|
-
if (node.limit) {
|
|
95
|
-
this.visitNode(node.limit);
|
|
96
|
-
}
|
|
97
|
-
if (node.offset) {
|
|
98
|
-
this.visitNode(node.offset);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
visitSelection(node) {
|
|
102
|
-
this.visitNode(node.selection);
|
|
103
|
-
}
|
|
104
|
-
visitColumn(node) {
|
|
105
|
-
this.visitNode(node.column);
|
|
106
|
-
}
|
|
107
|
-
visitAlias(node) {
|
|
108
|
-
this.visitNode(node.node);
|
|
109
|
-
}
|
|
110
|
-
visitTable(node) {
|
|
111
|
-
if (node.schema) {
|
|
112
|
-
this.visitNode(node.schema);
|
|
113
|
-
}
|
|
114
|
-
this.visitNode(node.table);
|
|
115
|
-
}
|
|
116
|
-
visitFrom(node) {
|
|
117
|
-
node.froms.forEach(this.visitNode);
|
|
118
|
-
}
|
|
119
|
-
visitReference(node) {
|
|
120
|
-
this.visitNode(node.column);
|
|
121
|
-
this.visitNode(node.table);
|
|
122
|
-
}
|
|
123
|
-
visitFilter(node) {
|
|
124
|
-
if (node.left) {
|
|
125
|
-
this.visitNode(node.left);
|
|
126
|
-
}
|
|
127
|
-
this.visitNode(node.op);
|
|
128
|
-
this.visitNode(node.right);
|
|
129
|
-
}
|
|
130
|
-
visitAnd(node) {
|
|
131
|
-
this.visitNode(node.left);
|
|
132
|
-
this.visitNode(node.right);
|
|
133
|
-
}
|
|
134
|
-
visitOr(node) {
|
|
135
|
-
this.visitNode(node.left);
|
|
136
|
-
this.visitNode(node.right);
|
|
137
|
-
}
|
|
138
|
-
visitValueList(node) {
|
|
139
|
-
node.values.forEach(this.visitNode);
|
|
140
|
-
}
|
|
141
|
-
visitParens(node) {
|
|
142
|
-
this.visitNode(node.node);
|
|
143
|
-
}
|
|
144
|
-
visitJoin(node) {
|
|
145
|
-
this.visitNode(node.table);
|
|
146
|
-
if (node.on) {
|
|
147
|
-
this.visitNode(node.on);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
visitRaw(node) {
|
|
151
|
-
node.params.forEach(this.visitNode);
|
|
152
|
-
}
|
|
153
|
-
visitWhere(node) {
|
|
154
|
-
this.visitNode(node.where);
|
|
155
|
-
}
|
|
156
|
-
visitInsertQuery(node) {
|
|
157
|
-
if (node.with) {
|
|
158
|
-
this.visitNode(node.with);
|
|
159
|
-
}
|
|
160
|
-
this.visitNode(node.into);
|
|
161
|
-
if (node.columns) {
|
|
162
|
-
node.columns.forEach(this.visitNode);
|
|
163
|
-
}
|
|
164
|
-
if (node.values) {
|
|
165
|
-
node.values.forEach(this.visitNode);
|
|
166
|
-
}
|
|
167
|
-
if (node.returning) {
|
|
168
|
-
this.visitNode(node.returning);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
visitDeleteQuery(node) {
|
|
172
|
-
if (node.with) {
|
|
173
|
-
this.visitNode(node.with);
|
|
174
|
-
}
|
|
175
|
-
this.visitNode(node.from);
|
|
176
|
-
if (node.joins) {
|
|
177
|
-
node.joins.forEach(this.visitNode);
|
|
178
|
-
}
|
|
179
|
-
if (node.where) {
|
|
180
|
-
this.visitNode(node.where);
|
|
181
|
-
}
|
|
182
|
-
if (node.returning) {
|
|
183
|
-
this.visitNode(node.returning);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
visitReturning(node) {
|
|
187
|
-
node.selections.forEach(this.visitNode);
|
|
188
|
-
}
|
|
189
|
-
visitCreateTable(node) {
|
|
190
|
-
this.visitNode(node.table);
|
|
191
|
-
node.columns.forEach(this.visitNode);
|
|
192
|
-
if (node.constraints) {
|
|
193
|
-
node.constraints.forEach(this.visitNode);
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
visitAddColumn(node) {
|
|
197
|
-
this.visitNode(node.column);
|
|
198
|
-
}
|
|
199
|
-
visitColumnDefinition(node) {
|
|
200
|
-
this.visitNode(node.column);
|
|
201
|
-
this.visitNode(node.dataType);
|
|
202
|
-
if (node.defaultTo) {
|
|
203
|
-
this.visitNode(node.defaultTo);
|
|
204
|
-
}
|
|
205
|
-
if (node.references) {
|
|
206
|
-
this.visitNode(node.references);
|
|
207
|
-
}
|
|
208
|
-
if (node.check) {
|
|
209
|
-
this.visitNode(node.check);
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
visitDropTable(node) {
|
|
213
|
-
this.visitNode(node.table);
|
|
214
|
-
}
|
|
215
|
-
visitOrderBy(node) {
|
|
216
|
-
node.items.forEach(this.visitNode);
|
|
217
|
-
}
|
|
218
|
-
visitOrderByItem(node) {
|
|
219
|
-
this.visitNode(node.orderBy);
|
|
220
|
-
}
|
|
221
|
-
visitGroupBy(node) {
|
|
222
|
-
node.items.forEach(this.visitNode);
|
|
223
|
-
}
|
|
224
|
-
visitGroupByItem(node) {
|
|
225
|
-
this.visitNode(node.groupBy);
|
|
226
|
-
}
|
|
227
|
-
visitUpdateQuery(node) {
|
|
228
|
-
if (node.with) {
|
|
229
|
-
this.visitNode(node.with);
|
|
230
|
-
}
|
|
231
|
-
this.visitNode(node.table);
|
|
232
|
-
if (node.updates) {
|
|
233
|
-
node.updates.forEach(this.visitNode);
|
|
234
|
-
}
|
|
235
|
-
if (node.joins) {
|
|
236
|
-
node.joins.forEach(this.visitNode);
|
|
237
|
-
}
|
|
238
|
-
if (node.where) {
|
|
239
|
-
this.visitNode(node.where);
|
|
240
|
-
}
|
|
241
|
-
if (node.returning) {
|
|
242
|
-
this.visitNode(node.returning);
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
visitColumnUpdate(node) {
|
|
246
|
-
this.visitNode(node.column);
|
|
247
|
-
this.visitNode(node.value);
|
|
248
|
-
}
|
|
249
|
-
visitLimit(node) {
|
|
250
|
-
this.visitNode(node.limit);
|
|
251
|
-
}
|
|
252
|
-
visitOffset(node) {
|
|
253
|
-
this.visitNode(node.offset);
|
|
254
|
-
}
|
|
255
|
-
visitOnConflict(node) {
|
|
256
|
-
if (node.columns) {
|
|
257
|
-
node.columns.forEach(this.visitNode);
|
|
258
|
-
}
|
|
259
|
-
if (node.constraint) {
|
|
260
|
-
this.visitNode(node.constraint);
|
|
261
|
-
}
|
|
262
|
-
if (node.updates) {
|
|
263
|
-
node.updates.forEach(this.visitNode);
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
visitOnDuplicateKey(node) {
|
|
267
|
-
node.updates.forEach(this.visitNode);
|
|
268
|
-
}
|
|
269
|
-
visitCreateIndex(node) {
|
|
270
|
-
this.visitNode(node.name);
|
|
271
|
-
if (node.table) {
|
|
272
|
-
this.visitNode(node.table);
|
|
273
|
-
}
|
|
274
|
-
if (node.using) {
|
|
275
|
-
this.visitNode(node.using);
|
|
276
|
-
}
|
|
277
|
-
if (node.expression) {
|
|
278
|
-
this.visitNode(node.expression);
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
visitList(node) {
|
|
282
|
-
node.items.forEach(this.visitNode);
|
|
283
|
-
}
|
|
284
|
-
visitDropIndex(node) {
|
|
285
|
-
this.visitNode(node.name);
|
|
286
|
-
if (node.table) {
|
|
287
|
-
this.visitNode(node.table);
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
visitPrimaryKeyConstraint(node) {
|
|
291
|
-
if (node.name) {
|
|
292
|
-
this.visitNode(node.name);
|
|
293
|
-
}
|
|
294
|
-
node.columns.forEach(this.visitNode);
|
|
295
|
-
}
|
|
296
|
-
visitUniqueConstraint(node) {
|
|
297
|
-
if (node.name) {
|
|
298
|
-
this.visitNode(node.name);
|
|
299
|
-
}
|
|
300
|
-
node.columns.forEach(this.visitNode);
|
|
301
|
-
}
|
|
302
|
-
visitReferences(node) {
|
|
303
|
-
node.columns.forEach(this.visitNode);
|
|
304
|
-
this.visitNode(node.table);
|
|
305
|
-
}
|
|
306
|
-
visitCheckConstraint(node) {
|
|
307
|
-
if (node.name) {
|
|
308
|
-
this.visitNode(node.name);
|
|
309
|
-
}
|
|
310
|
-
this.visitNode(node.expression);
|
|
311
|
-
}
|
|
312
|
-
visitWith(node) {
|
|
313
|
-
node.expressions.forEach(this.visitNode);
|
|
314
|
-
}
|
|
315
|
-
visitCommonTableExpression(node) {
|
|
316
|
-
this.visitNode(node.name);
|
|
317
|
-
this.visitNode(node.expression);
|
|
318
|
-
}
|
|
319
|
-
visitHaving(node) {
|
|
320
|
-
this.visitNode(node.having);
|
|
321
|
-
}
|
|
322
|
-
visitCreateSchema(node) {
|
|
323
|
-
this.visitNode(node.schema);
|
|
324
|
-
}
|
|
325
|
-
visitDropSchema(node) {
|
|
326
|
-
this.visitNode(node.schema);
|
|
327
|
-
}
|
|
328
|
-
visitAlterTable(node) {
|
|
329
|
-
this.visitNode(node.table);
|
|
330
|
-
if (node.renameTo) {
|
|
331
|
-
this.visitNode(node.renameTo);
|
|
332
|
-
}
|
|
333
|
-
if (node.renameColumn) {
|
|
334
|
-
this.visitNode(node.renameColumn);
|
|
335
|
-
}
|
|
336
|
-
if (node.setSchema) {
|
|
337
|
-
this.visitNode(node.setSchema);
|
|
338
|
-
}
|
|
339
|
-
if (node.addColumn) {
|
|
340
|
-
this.visitNode(node.addColumn);
|
|
341
|
-
}
|
|
342
|
-
if (node.dropColumn) {
|
|
343
|
-
this.visitNode(node.dropColumn);
|
|
344
|
-
}
|
|
345
|
-
if (node.alterColumn) {
|
|
346
|
-
this.visitNode(node.alterColumn);
|
|
347
|
-
}
|
|
348
|
-
if (node.modifyColumn) {
|
|
349
|
-
this.visitNode(node.modifyColumn);
|
|
350
|
-
}
|
|
351
|
-
}
|
|
352
|
-
visitDropColumn(node) {
|
|
353
|
-
this.visitNode(node.column);
|
|
354
|
-
}
|
|
355
|
-
visitRenameColumn(node) {
|
|
356
|
-
this.visitNode(node.column);
|
|
357
|
-
this.visitNode(node.renameTo);
|
|
358
|
-
}
|
|
359
|
-
visitAlterColumn(node) {
|
|
360
|
-
this.visitNode(node.column);
|
|
361
|
-
}
|
|
362
|
-
visitModifyColumn(node) {
|
|
363
|
-
this.visitNode(node.column);
|
|
364
|
-
}
|
|
365
|
-
visitAddConstraint(node) {
|
|
366
|
-
this.visitNode(node.constraint);
|
|
367
|
-
}
|
|
368
|
-
visitDropConstraint(node) {
|
|
369
|
-
this.visitNode(node.constraintName);
|
|
370
|
-
}
|
|
371
|
-
visitForeignKeyConstraint(node) {
|
|
372
|
-
if (node.name) {
|
|
373
|
-
this.visitNode(node.name);
|
|
374
|
-
}
|
|
375
|
-
node.columns.forEach(this.visitNode);
|
|
376
|
-
this.visitNode(node.references);
|
|
377
|
-
}
|
|
378
|
-
visitDataType(node) { }
|
|
379
|
-
visitSelectAll(_) { }
|
|
380
|
-
visitIdentifier(_) { }
|
|
381
|
-
visitValue(_) { }
|
|
382
|
-
visitPrimitiveValueList(_) { }
|
|
383
|
-
visitOperator(node) { }
|
|
384
69
|
}
|
|
@@ -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';
|
|
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';
|
|
2
2
|
export interface OperationNode {
|
|
3
3
|
readonly kind: OperationNodeKind;
|
|
4
4
|
}
|
|
@@ -16,7 +16,8 @@ export declare const QueryNode: Readonly<{
|
|
|
16
16
|
is(node: OperationNode): node is QueryNode;
|
|
17
17
|
isMutating(node: OperationNode): node is MutatingQueryNode;
|
|
18
18
|
isFilterable(node: OperationNode): node is FilterableQueryNode;
|
|
19
|
-
cloneWithWhere<T extends FilterableQueryNode>(node: T,
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
cloneWithWhere<T extends FilterableQueryNode>(node: T, filter: WhereChildNode): T;
|
|
20
|
+
cloneWithOrWhere<T_1 extends FilterableQueryNode>(node: T_1, filter: WhereChildNode): T_1;
|
|
21
|
+
cloneWithJoin<T_2 extends FilterableQueryNode>(node: T_2, join: JoinNode): T_2;
|
|
22
|
+
cloneWithReturning<T_3 extends MutatingQueryNode>(node: T_3, selections: ReadonlyArray<SelectionNode>): T_3;
|
|
22
23
|
}>;
|
|
@@ -25,11 +25,19 @@ export const QueryNode = freeze({
|
|
|
25
25
|
DeleteQueryNode.is(node) ||
|
|
26
26
|
UpdateQueryNode.is(node));
|
|
27
27
|
},
|
|
28
|
-
cloneWithWhere(node,
|
|
28
|
+
cloneWithWhere(node, filter) {
|
|
29
29
|
return freeze({
|
|
30
30
|
...node,
|
|
31
31
|
where: node.where
|
|
32
|
-
? WhereNode.cloneWithFilter(node.where,
|
|
32
|
+
? WhereNode.cloneWithFilter(node.where, 'And', filter)
|
|
33
|
+
: WhereNode.create(filter),
|
|
34
|
+
});
|
|
35
|
+
},
|
|
36
|
+
cloneWithOrWhere(node, filter) {
|
|
37
|
+
return freeze({
|
|
38
|
+
...node,
|
|
39
|
+
where: node.where
|
|
40
|
+
? WhereNode.cloneWithFilter(node.where, 'Or', filter)
|
|
33
41
|
: WhereNode.create(filter),
|
|
34
42
|
});
|
|
35
43
|
},
|
|
@@ -12,6 +12,7 @@ import { OrderByNode } from './order-by-node.js';
|
|
|
12
12
|
import { SelectionNode } from './selection-node.js';
|
|
13
13
|
import { WhereNode } from './where-node.js';
|
|
14
14
|
import { WithNode } from './with-node.js';
|
|
15
|
+
import { UnionNode } from './union-node.js';
|
|
15
16
|
export declare type SelectModifier = 'ForUpdate' | 'ForNoKeyUpdate' | 'ForShare' | 'ForKeyShare' | 'NoWait' | 'SkipLocked';
|
|
16
17
|
export interface SelectQueryNode extends OperationNode {
|
|
17
18
|
readonly kind: 'SelectQueryNode';
|
|
@@ -28,6 +29,7 @@ export interface SelectQueryNode extends OperationNode {
|
|
|
28
29
|
readonly offset?: OffsetNode;
|
|
29
30
|
readonly with?: WithNode;
|
|
30
31
|
readonly having?: HavingNode;
|
|
32
|
+
readonly union?: ReadonlyArray<UnionNode>;
|
|
31
33
|
}
|
|
32
34
|
/**
|
|
33
35
|
* @internal
|
|
@@ -42,6 +44,8 @@ export declare const SelectQueryNode: Readonly<{
|
|
|
42
44
|
cloneWithGroupByItems(selectNode: SelectQueryNode, items: ReadonlyArray<GroupByItemNode>): SelectQueryNode;
|
|
43
45
|
cloneWithLimit(selectNode: SelectQueryNode, limit: LimitNode): SelectQueryNode;
|
|
44
46
|
cloneWithOffset(selectNode: SelectQueryNode, offset: OffsetNode): SelectQueryNode;
|
|
45
|
-
cloneWithHaving(selectNode: SelectQueryNode,
|
|
47
|
+
cloneWithHaving(selectNode: SelectQueryNode, filter: HavingNodeChild): SelectQueryNode;
|
|
48
|
+
cloneWithOrHaving(selectNode: SelectQueryNode, filter: HavingNodeChild): SelectQueryNode;
|
|
46
49
|
cloneWithDistinct(selectNode: SelectQueryNode): SelectQueryNode;
|
|
50
|
+
cloneWithUnion(selectNode: SelectQueryNode, union: UnionNode): SelectQueryNode;
|
|
47
51
|
}>;
|
|
@@ -69,11 +69,19 @@ export const SelectQueryNode = freeze({
|
|
|
69
69
|
offset,
|
|
70
70
|
});
|
|
71
71
|
},
|
|
72
|
-
cloneWithHaving(selectNode,
|
|
72
|
+
cloneWithHaving(selectNode, filter) {
|
|
73
73
|
return freeze({
|
|
74
74
|
...selectNode,
|
|
75
75
|
having: selectNode.having
|
|
76
|
-
? HavingNode.cloneWithFilter(selectNode.having,
|
|
76
|
+
? HavingNode.cloneWithFilter(selectNode.having, 'And', filter)
|
|
77
|
+
: HavingNode.create(filter),
|
|
78
|
+
});
|
|
79
|
+
},
|
|
80
|
+
cloneWithOrHaving(selectNode, filter) {
|
|
81
|
+
return freeze({
|
|
82
|
+
...selectNode,
|
|
83
|
+
having: selectNode.having
|
|
84
|
+
? HavingNode.cloneWithFilter(selectNode.having, 'Or', filter)
|
|
77
85
|
: HavingNode.create(filter),
|
|
78
86
|
});
|
|
79
87
|
},
|
|
@@ -83,4 +91,12 @@ export const SelectQueryNode = freeze({
|
|
|
83
91
|
isDistinct: true,
|
|
84
92
|
});
|
|
85
93
|
},
|
|
94
|
+
cloneWithUnion(selectNode, union) {
|
|
95
|
+
return freeze({
|
|
96
|
+
...selectNode,
|
|
97
|
+
union: selectNode.union
|
|
98
|
+
? freeze([...selectNode.union, union])
|
|
99
|
+
: freeze([union]),
|
|
100
|
+
});
|
|
101
|
+
},
|
|
86
102
|
});
|