@shaxpir/squilt 1.0.0 → 1.1.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 +289 -1
- package/dist/ast/AlterTableQuery.d.ts +32 -0
- package/dist/ast/AlterTableQuery.js +60 -0
- package/dist/ast/BetweenExpression.d.ts +10 -0
- package/dist/ast/BetweenExpression.js +18 -0
- package/dist/ast/CastExpression.d.ts +13 -0
- package/dist/ast/CastExpression.js +25 -0
- package/dist/ast/CollateExpression.d.ts +18 -0
- package/dist/ast/CollateExpression.js +30 -0
- package/dist/ast/CreateIndexQuery.d.ts +25 -0
- package/dist/ast/CreateIndexQuery.js +64 -0
- package/dist/ast/CreateTableQuery.d.ts +57 -0
- package/dist/ast/CreateTableQuery.js +79 -0
- package/dist/ast/CreateViewQuery.d.ts +34 -0
- package/dist/ast/CreateViewQuery.js +61 -0
- package/dist/ast/CreateVirtualTableQuery.d.ts +32 -0
- package/dist/ast/CreateVirtualTableQuery.js +74 -0
- package/dist/ast/DeleteQuery.d.ts +17 -0
- package/dist/ast/DeleteQuery.js +43 -0
- package/dist/ast/DropIndexQuery.d.ts +14 -0
- package/dist/ast/DropIndexQuery.js +35 -0
- package/dist/ast/DropTableQuery.d.ts +14 -0
- package/dist/ast/DropTableQuery.js +35 -0
- package/dist/ast/DropViewQuery.d.ts +11 -0
- package/dist/ast/DropViewQuery.js +24 -0
- package/dist/ast/FunctionExpression.d.ts +21 -0
- package/dist/ast/FunctionExpression.js +40 -1
- package/dist/ast/FunctionName.d.ts +1 -1
- package/dist/ast/FunctionName.js +1 -1
- package/dist/ast/InsertQuery.d.ts +24 -1
- package/dist/ast/InsertQuery.js +49 -1
- package/dist/ast/Operator.d.ts +2 -0
- package/dist/ast/Operator.js +3 -1
- package/dist/ast/SelectQuery.d.ts +4 -0
- package/dist/ast/SelectQuery.js +11 -1
- package/dist/ast/SubqueryExpression.d.ts +18 -0
- package/dist/ast/SubqueryExpression.js +27 -0
- package/dist/ast/UpdateQuery.d.ts +24 -0
- package/dist/ast/UpdateQuery.js +51 -0
- package/dist/ast/WindowExpression.d.ts +51 -0
- package/dist/ast/WindowExpression.js +61 -0
- package/dist/ast/WindowSpecification.d.ts +46 -0
- package/dist/ast/WindowSpecification.js +60 -0
- package/dist/builder/QueryBuilder.d.ts +20 -0
- package/dist/builder/QueryBuilder.js +41 -1
- package/dist/builder/Shorthand.d.ts +51 -0
- package/dist/builder/Shorthand.js +125 -1
- package/dist/index.d.ts +17 -1
- package/dist/index.js +59 -3
- package/dist/renderer/CompactQueryRenderer.d.ts +34 -2
- package/dist/renderer/CompactQueryRenderer.js +272 -2
- package/dist/renderer/IndentedQueryRenderer.d.ts +34 -2
- package/dist/renderer/IndentedQueryRenderer.js +289 -3
- package/dist/renderer/QueryRenderer.d.ts +11 -1
- package/dist/renderer/QueryRenderer.js +1 -1
- package/dist/validate/CommonQueryValidator.d.ts +31 -1
- package/dist/validate/CommonQueryValidator.js +253 -4
- package/dist/validate/QueryValidator.d.ts +10 -1
- package/dist/validate/QueryValidator.js +1 -1
- package/dist/validate/SQLiteQueryValidator.d.ts +16 -1
- package/dist/validate/SQLiteQueryValidator.js +32 -3
- package/dist/visitor/ParamCollector.d.ts +30 -0
- package/dist/visitor/ParamCollector.js +109 -2
- package/dist/visitor/QueryIdentityTransformer.d.ts +30 -0
- package/dist/visitor/QueryIdentityTransformer.js +217 -2
- package/dist/visitor/SqlTreeNodeVisitor.d.ts +30 -0
- package/dist/visitor/SqlTreeNodeVisitor.js +1 -1
- package/package.json +4 -1
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { QueryRenderer } from "../renderer/QueryRenderer";
|
|
2
|
+
import { SqlTreeNodeVisitor } from "../visitor/SqlTreeNodeVisitor";
|
|
3
|
+
import { Expression, SqlTreeNode } from "./Abstractions";
|
|
4
|
+
export type ColumnType = 'INTEGER' | 'TEXT' | 'REAL' | 'BLOB' | 'NUMERIC';
|
|
5
|
+
export interface ForeignKeyReference {
|
|
6
|
+
table: string;
|
|
7
|
+
column: string;
|
|
8
|
+
onDelete?: 'CASCADE' | 'SET NULL' | 'SET DEFAULT' | 'RESTRICT' | 'NO ACTION';
|
|
9
|
+
onUpdate?: 'CASCADE' | 'SET NULL' | 'SET DEFAULT' | 'RESTRICT' | 'NO ACTION';
|
|
10
|
+
}
|
|
11
|
+
export interface ColumnConstraints {
|
|
12
|
+
primaryKey?: boolean;
|
|
13
|
+
autoIncrement?: boolean;
|
|
14
|
+
notNull?: boolean;
|
|
15
|
+
unique?: boolean;
|
|
16
|
+
default?: string | number | null;
|
|
17
|
+
check?: Expression;
|
|
18
|
+
references?: ForeignKeyReference;
|
|
19
|
+
}
|
|
20
|
+
export interface ColumnDefinition {
|
|
21
|
+
name: string;
|
|
22
|
+
type: ColumnType;
|
|
23
|
+
constraints: ColumnConstraints;
|
|
24
|
+
}
|
|
25
|
+
export interface TableConstraint {
|
|
26
|
+
type: 'PRIMARY KEY' | 'UNIQUE' | 'FOREIGN KEY' | 'CHECK';
|
|
27
|
+
columns?: string[];
|
|
28
|
+
references?: ForeignKeyReference;
|
|
29
|
+
check?: Expression;
|
|
30
|
+
name?: string;
|
|
31
|
+
}
|
|
32
|
+
export declare class CreateTableQuery implements SqlTreeNode {
|
|
33
|
+
private _tableName;
|
|
34
|
+
private _columns;
|
|
35
|
+
private _tableConstraints;
|
|
36
|
+
private _ifNotExists;
|
|
37
|
+
private _withoutRowid;
|
|
38
|
+
private _strict;
|
|
39
|
+
constructor(tableName: string);
|
|
40
|
+
static create(tableName: string): CreateTableQuery;
|
|
41
|
+
column(name: string, type: ColumnType, constraints?: ColumnConstraints): CreateTableQuery;
|
|
42
|
+
primaryKey(...columns: string[]): CreateTableQuery;
|
|
43
|
+
unique(...columns: string[]): CreateTableQuery;
|
|
44
|
+
foreignKey(columns: string[], references: ForeignKeyReference): CreateTableQuery;
|
|
45
|
+
check(expression: Expression, name?: string): CreateTableQuery;
|
|
46
|
+
ifNotExists(): CreateTableQuery;
|
|
47
|
+
withoutRowid(): CreateTableQuery;
|
|
48
|
+
strict(): CreateTableQuery;
|
|
49
|
+
get tableName(): string;
|
|
50
|
+
get columns(): ColumnDefinition[];
|
|
51
|
+
get tableConstraints(): TableConstraint[];
|
|
52
|
+
get hasIfNotExists(): boolean;
|
|
53
|
+
get hasWithoutRowid(): boolean;
|
|
54
|
+
get isStrict(): boolean;
|
|
55
|
+
toSQL(renderer?: QueryRenderer): string;
|
|
56
|
+
accept<T>(visitor: SqlTreeNodeVisitor<T>): T;
|
|
57
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CreateTableQuery = void 0;
|
|
4
|
+
const IndentedQueryRenderer_1 = require("../renderer/IndentedQueryRenderer");
|
|
5
|
+
// Represents a CREATE TABLE statement
|
|
6
|
+
class CreateTableQuery {
|
|
7
|
+
constructor(tableName) {
|
|
8
|
+
this._columns = [];
|
|
9
|
+
this._tableConstraints = [];
|
|
10
|
+
this._ifNotExists = false;
|
|
11
|
+
this._withoutRowid = false;
|
|
12
|
+
this._strict = false;
|
|
13
|
+
this._tableName = tableName;
|
|
14
|
+
}
|
|
15
|
+
static create(tableName) {
|
|
16
|
+
return new CreateTableQuery(tableName);
|
|
17
|
+
}
|
|
18
|
+
column(name, type, constraints = {}) {
|
|
19
|
+
this._columns.push({ name, type, constraints });
|
|
20
|
+
return this;
|
|
21
|
+
}
|
|
22
|
+
primaryKey(...columns) {
|
|
23
|
+
this._tableConstraints.push({ type: 'PRIMARY KEY', columns });
|
|
24
|
+
return this;
|
|
25
|
+
}
|
|
26
|
+
unique(...columns) {
|
|
27
|
+
this._tableConstraints.push({ type: 'UNIQUE', columns });
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
foreignKey(columns, references) {
|
|
31
|
+
this._tableConstraints.push({ type: 'FOREIGN KEY', columns, references });
|
|
32
|
+
return this;
|
|
33
|
+
}
|
|
34
|
+
check(expression, name) {
|
|
35
|
+
this._tableConstraints.push({ type: 'CHECK', check: expression, name });
|
|
36
|
+
return this;
|
|
37
|
+
}
|
|
38
|
+
ifNotExists() {
|
|
39
|
+
this._ifNotExists = true;
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
withoutRowid() {
|
|
43
|
+
this._withoutRowid = true;
|
|
44
|
+
return this;
|
|
45
|
+
}
|
|
46
|
+
strict() {
|
|
47
|
+
this._strict = true;
|
|
48
|
+
return this;
|
|
49
|
+
}
|
|
50
|
+
get tableName() {
|
|
51
|
+
return this._tableName;
|
|
52
|
+
}
|
|
53
|
+
get columns() {
|
|
54
|
+
return this._columns;
|
|
55
|
+
}
|
|
56
|
+
get tableConstraints() {
|
|
57
|
+
return this._tableConstraints;
|
|
58
|
+
}
|
|
59
|
+
get hasIfNotExists() {
|
|
60
|
+
return this._ifNotExists;
|
|
61
|
+
}
|
|
62
|
+
get hasWithoutRowid() {
|
|
63
|
+
return this._withoutRowid;
|
|
64
|
+
}
|
|
65
|
+
get isStrict() {
|
|
66
|
+
return this._strict;
|
|
67
|
+
}
|
|
68
|
+
toSQL(renderer) {
|
|
69
|
+
if (!renderer) {
|
|
70
|
+
renderer = new IndentedQueryRenderer_1.IndentedQueryRenderer(2);
|
|
71
|
+
}
|
|
72
|
+
return this.accept(renderer);
|
|
73
|
+
}
|
|
74
|
+
accept(visitor) {
|
|
75
|
+
return visitor.visitCreateTableQuery(this);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
exports.CreateTableQuery = CreateTableQuery;
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3JlYXRlVGFibGVRdWVyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hc3QvQ3JlYXRlVGFibGVRdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2RUFBMEU7QUEyQzFFLHNDQUFzQztBQUN0QyxNQUFhLGdCQUFnQjtJQVMzQixZQUFZLFNBQWlCO1FBTnJCLGFBQVEsR0FBdUIsRUFBRSxDQUFDO1FBQ2xDLHNCQUFpQixHQUFzQixFQUFFLENBQUM7UUFDMUMsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDL0IsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUcvQixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztJQUM5QixDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFpQjtRQUNwQyxPQUFPLElBQUksZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxJQUFZLEVBQUUsSUFBZ0IsRUFBRSxjQUFpQyxFQUFFO1FBQy9FLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFVBQVUsQ0FBQyxHQUFHLE9BQWlCO1FBQ3BDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDOUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sTUFBTSxDQUFDLEdBQUcsT0FBaUI7UUFDaEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN6RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxVQUFVLENBQUMsT0FBaUIsRUFBRSxVQUErQjtRQUNsRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUMxRSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxLQUFLLENBQUMsVUFBc0IsRUFBRSxJQUFhO1FBQ2hELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN4RSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFlBQVk7UUFDakIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFTSxLQUFLLENBQUMsUUFBd0I7UUFDbkMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsUUFBUSxHQUFHLElBQUksNkNBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sTUFBTSxDQUFJLE9BQThCO1FBQzdDLE9BQU8sT0FBTyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUM7Q0FDRjtBQTNGRCw0Q0EyRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmRlbnRlZFF1ZXJ5UmVuZGVyZXIgfSBmcm9tIFwiLi4vcmVuZGVyZXIvSW5kZW50ZWRRdWVyeVJlbmRlcmVyXCI7XG5pbXBvcnQgeyBRdWVyeVJlbmRlcmVyIH0gZnJvbSBcIi4uL3JlbmRlcmVyL1F1ZXJ5UmVuZGVyZXJcIjtcbmltcG9ydCB7IFNxbFRyZWVOb2RlVmlzaXRvciB9IGZyb20gXCIuLi92aXNpdG9yL1NxbFRyZWVOb2RlVmlzaXRvclwiO1xuaW1wb3J0IHsgRXhwcmVzc2lvbiwgU3FsVHJlZU5vZGUgfSBmcm9tIFwiLi9BYnN0cmFjdGlvbnNcIjtcblxuLy8gQ29sdW1uIHR5cGUgZm9yIFNRTGl0ZVxuZXhwb3J0IHR5cGUgQ29sdW1uVHlwZSA9ICdJTlRFR0VSJyB8ICdURVhUJyB8ICdSRUFMJyB8ICdCTE9CJyB8ICdOVU1FUklDJztcblxuLy8gRm9yZWlnbiBrZXkgcmVmZXJlbmNlIGNvbmZpZ3VyYXRpb25cbmV4cG9ydCBpbnRlcmZhY2UgRm9yZWlnbktleVJlZmVyZW5jZSB7XG4gIHRhYmxlOiBzdHJpbmc7XG4gIGNvbHVtbjogc3RyaW5nO1xuICBvbkRlbGV0ZT86ICdDQVNDQURFJyB8ICdTRVQgTlVMTCcgfCAnU0VUIERFRkFVTFQnIHwgJ1JFU1RSSUNUJyB8ICdOTyBBQ1RJT04nO1xuICBvblVwZGF0ZT86ICdDQVNDQURFJyB8ICdTRVQgTlVMTCcgfCAnU0VUIERFRkFVTFQnIHwgJ1JFU1RSSUNUJyB8ICdOTyBBQ1RJT04nO1xufVxuXG4vLyBDb2x1bW4gY29uc3RyYWludCBvcHRpb25zXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbkNvbnN0cmFpbnRzIHtcbiAgcHJpbWFyeUtleT86IGJvb2xlYW47XG4gIGF1dG9JbmNyZW1lbnQ/OiBib29sZWFuO1xuICBub3ROdWxsPzogYm9vbGVhbjtcbiAgdW5pcXVlPzogYm9vbGVhbjtcbiAgZGVmYXVsdD86IHN0cmluZyB8IG51bWJlciB8IG51bGw7XG4gIGNoZWNrPzogRXhwcmVzc2lvbjtcbiAgcmVmZXJlbmNlcz86IEZvcmVpZ25LZXlSZWZlcmVuY2U7XG59XG5cbi8vIENvbHVtbiBkZWZpbml0aW9uXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbkRlZmluaXRpb24ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IENvbHVtblR5cGU7XG4gIGNvbnN0cmFpbnRzOiBDb2x1bW5Db25zdHJhaW50cztcbn1cblxuLy8gVGFibGUtbGV2ZWwgY29uc3RyYWludCBmb3IgY29tcG9zaXRlIGtleXNcbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVDb25zdHJhaW50IHtcbiAgdHlwZTogJ1BSSU1BUlkgS0VZJyB8ICdVTklRVUUnIHwgJ0ZPUkVJR04gS0VZJyB8ICdDSEVDSyc7XG4gIGNvbHVtbnM/OiBzdHJpbmdbXTtcbiAgcmVmZXJlbmNlcz86IEZvcmVpZ25LZXlSZWZlcmVuY2U7XG4gIGNoZWNrPzogRXhwcmVzc2lvbjtcbiAgbmFtZT86IHN0cmluZztcbn1cblxuLy8gUmVwcmVzZW50cyBhIENSRUFURSBUQUJMRSBzdGF0ZW1lbnRcbmV4cG9ydCBjbGFzcyBDcmVhdGVUYWJsZVF1ZXJ5IGltcGxlbWVudHMgU3FsVHJlZU5vZGUge1xuXG4gIHByaXZhdGUgX3RhYmxlTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIF9jb2x1bW5zOiBDb2x1bW5EZWZpbml0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBfdGFibGVDb25zdHJhaW50czogVGFibGVDb25zdHJhaW50W10gPSBbXTtcbiAgcHJpdmF0ZSBfaWZOb3RFeGlzdHM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfd2l0aG91dFJvd2lkOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3N0cmljdDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHRhYmxlTmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fdGFibGVOYW1lID0gdGFibGVOYW1lO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGUodGFibGVOYW1lOiBzdHJpbmcpOiBDcmVhdGVUYWJsZVF1ZXJ5IHtcbiAgICByZXR1cm4gbmV3IENyZWF0ZVRhYmxlUXVlcnkodGFibGVOYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBjb2x1bW4obmFtZTogc3RyaW5nLCB0eXBlOiBDb2x1bW5UeXBlLCBjb25zdHJhaW50czogQ29sdW1uQ29uc3RyYWludHMgPSB7fSk6IENyZWF0ZVRhYmxlUXVlcnkge1xuICAgIHRoaXMuX2NvbHVtbnMucHVzaCh7IG5hbWUsIHR5cGUsIGNvbnN0cmFpbnRzIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHByaW1hcnlLZXkoLi4uY29sdW1uczogc3RyaW5nW10pOiBDcmVhdGVUYWJsZVF1ZXJ5IHtcbiAgICB0aGlzLl90YWJsZUNvbnN0cmFpbnRzLnB1c2goeyB0eXBlOiAnUFJJTUFSWSBLRVknLCBjb2x1bW5zIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHVuaXF1ZSguLi5jb2x1bW5zOiBzdHJpbmdbXSk6IENyZWF0ZVRhYmxlUXVlcnkge1xuICAgIHRoaXMuX3RhYmxlQ29uc3RyYWludHMucHVzaCh7IHR5cGU6ICdVTklRVUUnLCBjb2x1bW5zIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGZvcmVpZ25LZXkoY29sdW1uczogc3RyaW5nW10sIHJlZmVyZW5jZXM6IEZvcmVpZ25LZXlSZWZlcmVuY2UpOiBDcmVhdGVUYWJsZVF1ZXJ5IHtcbiAgICB0aGlzLl90YWJsZUNvbnN0cmFpbnRzLnB1c2goeyB0eXBlOiAnRk9SRUlHTiBLRVknLCBjb2x1bW5zLCByZWZlcmVuY2VzIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGNoZWNrKGV4cHJlc3Npb246IEV4cHJlc3Npb24sIG5hbWU/OiBzdHJpbmcpOiBDcmVhdGVUYWJsZVF1ZXJ5IHtcbiAgICB0aGlzLl90YWJsZUNvbnN0cmFpbnRzLnB1c2goeyB0eXBlOiAnQ0hFQ0snLCBjaGVjazogZXhwcmVzc2lvbiwgbmFtZSB9KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBpZk5vdEV4aXN0cygpOiBDcmVhdGVUYWJsZVF1ZXJ5IHtcbiAgICB0aGlzLl9pZk5vdEV4aXN0cyA9IHRydWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgd2l0aG91dFJvd2lkKCk6IENyZWF0ZVRhYmxlUXVlcnkge1xuICAgIHRoaXMuX3dpdGhvdXRSb3dpZCA9IHRydWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgc3RyaWN0KCk6IENyZWF0ZVRhYmxlUXVlcnkge1xuICAgIHRoaXMuX3N0cmljdCA9IHRydWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRhYmxlTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90YWJsZU5hbWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbHVtbnMoKTogQ29sdW1uRGVmaW5pdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5fY29sdW1ucztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdGFibGVDb25zdHJhaW50cygpOiBUYWJsZUNvbnN0cmFpbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3RhYmxlQ29uc3RyYWludHM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc0lmTm90RXhpc3RzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pZk5vdEV4aXN0cztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzV2l0aG91dFJvd2lkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl93aXRob3V0Um93aWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzU3RyaWN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zdHJpY3Q7XG4gIH1cblxuICBwdWJsaWMgdG9TUUwocmVuZGVyZXI/OiBRdWVyeVJlbmRlcmVyKTogc3RyaW5nIHtcbiAgICBpZiAoIXJlbmRlcmVyKSB7XG4gICAgICByZW5kZXJlciA9IG5ldyBJbmRlbnRlZFF1ZXJ5UmVuZGVyZXIoMik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFjY2VwdChyZW5kZXJlcik7XG4gIH1cblxuICBwdWJsaWMgYWNjZXB0PFQ+KHZpc2l0b3I6IFNxbFRyZWVOb2RlVmlzaXRvcjxUPik6IFQge1xuICAgIHJldHVybiB2aXNpdG9yLnZpc2l0Q3JlYXRlVGFibGVRdWVyeSh0aGlzKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { SqlTreeNode } from "./Abstractions";
|
|
2
|
+
import { SelectQuery } from "./SelectQuery";
|
|
3
|
+
import { SqlTreeNodeVisitor } from "../visitor/SqlTreeNodeVisitor";
|
|
4
|
+
export declare class CreateViewQuery implements SqlTreeNode {
|
|
5
|
+
private _viewName;
|
|
6
|
+
private _columns;
|
|
7
|
+
private _selectQuery;
|
|
8
|
+
private _ifNotExists;
|
|
9
|
+
private _isTemporary;
|
|
10
|
+
constructor(viewName: string);
|
|
11
|
+
get viewName(): string;
|
|
12
|
+
get columns(): string[];
|
|
13
|
+
get selectQuery(): SelectQuery | null;
|
|
14
|
+
get hasIfNotExists(): boolean;
|
|
15
|
+
get isTemporary(): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Specify column names for the view (optional).
|
|
18
|
+
* If not specified, column names are derived from the SELECT query.
|
|
19
|
+
*/
|
|
20
|
+
withColumns(...columns: string[]): CreateViewQuery;
|
|
21
|
+
/**
|
|
22
|
+
* Define the view's SELECT query.
|
|
23
|
+
*/
|
|
24
|
+
as(query: SelectQuery): CreateViewQuery;
|
|
25
|
+
/**
|
|
26
|
+
* Add IF NOT EXISTS modifier.
|
|
27
|
+
*/
|
|
28
|
+
ifNotExists(): CreateViewQuery;
|
|
29
|
+
/**
|
|
30
|
+
* Create a temporary view.
|
|
31
|
+
*/
|
|
32
|
+
temporary(): CreateViewQuery;
|
|
33
|
+
accept<T>(visitor: SqlTreeNodeVisitor<T>): T;
|
|
34
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CreateViewQuery = void 0;
|
|
4
|
+
class CreateViewQuery {
|
|
5
|
+
constructor(viewName) {
|
|
6
|
+
this._columns = [];
|
|
7
|
+
this._selectQuery = null;
|
|
8
|
+
this._ifNotExists = false;
|
|
9
|
+
this._isTemporary = false;
|
|
10
|
+
this._viewName = viewName;
|
|
11
|
+
}
|
|
12
|
+
get viewName() {
|
|
13
|
+
return this._viewName;
|
|
14
|
+
}
|
|
15
|
+
get columns() {
|
|
16
|
+
return this._columns;
|
|
17
|
+
}
|
|
18
|
+
get selectQuery() {
|
|
19
|
+
return this._selectQuery;
|
|
20
|
+
}
|
|
21
|
+
get hasIfNotExists() {
|
|
22
|
+
return this._ifNotExists;
|
|
23
|
+
}
|
|
24
|
+
get isTemporary() {
|
|
25
|
+
return this._isTemporary;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Specify column names for the view (optional).
|
|
29
|
+
* If not specified, column names are derived from the SELECT query.
|
|
30
|
+
*/
|
|
31
|
+
withColumns(...columns) {
|
|
32
|
+
this._columns = columns;
|
|
33
|
+
return this;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Define the view's SELECT query.
|
|
37
|
+
*/
|
|
38
|
+
as(query) {
|
|
39
|
+
this._selectQuery = query;
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Add IF NOT EXISTS modifier.
|
|
44
|
+
*/
|
|
45
|
+
ifNotExists() {
|
|
46
|
+
this._ifNotExists = true;
|
|
47
|
+
return this;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Create a temporary view.
|
|
51
|
+
*/
|
|
52
|
+
temporary() {
|
|
53
|
+
this._isTemporary = true;
|
|
54
|
+
return this;
|
|
55
|
+
}
|
|
56
|
+
accept(visitor) {
|
|
57
|
+
return visitor.visitCreateViewQuery(this);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
exports.CreateViewQuery = CreateViewQuery;
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3JlYXRlVmlld1F1ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FzdC9DcmVhdGVWaWV3UXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsTUFBYSxlQUFlO0lBTzFCLFlBQVksUUFBZ0I7UUFMcEIsYUFBUSxHQUFhLEVBQUUsQ0FBQztRQUN4QixpQkFBWSxHQUF1QixJQUFJLENBQUM7UUFDeEMsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFHcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQVcsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQVcsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFdBQVcsQ0FBQyxHQUFHLE9BQWlCO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0ksRUFBRSxDQUFDLEtBQWtCO1FBQzFCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVztRQUNoQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNJLFNBQVM7UUFDZCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxNQUFNLENBQUksT0FBOEI7UUFDN0MsT0FBTyxPQUFPLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztDQUNGO0FBbkVELDBDQW1FQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNxbFRyZWVOb2RlIH0gZnJvbSBcIi4vQWJzdHJhY3Rpb25zXCI7XG5pbXBvcnQgeyBTZWxlY3RRdWVyeSB9IGZyb20gXCIuL1NlbGVjdFF1ZXJ5XCI7XG5pbXBvcnQgeyBTcWxUcmVlTm9kZVZpc2l0b3IgfSBmcm9tIFwiLi4vdmlzaXRvci9TcWxUcmVlTm9kZVZpc2l0b3JcIjtcblxuZXhwb3J0IGNsYXNzIENyZWF0ZVZpZXdRdWVyeSBpbXBsZW1lbnRzIFNxbFRyZWVOb2RlIHtcbiAgcHJpdmF0ZSBfdmlld05hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSBfY29sdW1uczogc3RyaW5nW10gPSBbXTtcbiAgcHJpdmF0ZSBfc2VsZWN0UXVlcnk6IFNlbGVjdFF1ZXJ5IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2lmTm90RXhpc3RzOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2lzVGVtcG9yYXJ5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3Iodmlld05hbWU6IHN0cmluZykge1xuICAgIHRoaXMuX3ZpZXdOYW1lID0gdmlld05hbWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZpZXdOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXdOYW1lO1xuICB9XG5cbiAgcHVibGljIGdldCBjb2x1bW5zKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5fY29sdW1ucztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VsZWN0UXVlcnkoKTogU2VsZWN0UXVlcnkgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0UXVlcnk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc0lmTm90RXhpc3RzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pZk5vdEV4aXN0cztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNUZW1wb3JhcnkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzVGVtcG9yYXJ5O1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgY29sdW1uIG5hbWVzIGZvciB0aGUgdmlldyAob3B0aW9uYWwpLlxuICAgKiBJZiBub3Qgc3BlY2lmaWVkLCBjb2x1bW4gbmFtZXMgYXJlIGRlcml2ZWQgZnJvbSB0aGUgU0VMRUNUIHF1ZXJ5LlxuICAgKi9cbiAgcHVibGljIHdpdGhDb2x1bW5zKC4uLmNvbHVtbnM6IHN0cmluZ1tdKTogQ3JlYXRlVmlld1F1ZXJ5IHtcbiAgICB0aGlzLl9jb2x1bW5zID0gY29sdW1ucztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIHZpZXcncyBTRUxFQ1QgcXVlcnkuXG4gICAqL1xuICBwdWJsaWMgYXMocXVlcnk6IFNlbGVjdFF1ZXJ5KTogQ3JlYXRlVmlld1F1ZXJ5IHtcbiAgICB0aGlzLl9zZWxlY3RRdWVyeSA9IHF1ZXJ5O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBJRiBOT1QgRVhJU1RTIG1vZGlmaWVyLlxuICAgKi9cbiAgcHVibGljIGlmTm90RXhpc3RzKCk6IENyZWF0ZVZpZXdRdWVyeSB7XG4gICAgdGhpcy5faWZOb3RFeGlzdHMgPSB0cnVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHRlbXBvcmFyeSB2aWV3LlxuICAgKi9cbiAgcHVibGljIHRlbXBvcmFyeSgpOiBDcmVhdGVWaWV3UXVlcnkge1xuICAgIHRoaXMuX2lzVGVtcG9yYXJ5ID0gdHJ1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBhY2NlcHQ8VD4odmlzaXRvcjogU3FsVHJlZU5vZGVWaXNpdG9yPFQ+KTogVCB7XG4gICAgcmV0dXJuIHZpc2l0b3IudmlzaXRDcmVhdGVWaWV3UXVlcnkodGhpcyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { QueryRenderer } from "../renderer/QueryRenderer";
|
|
2
|
+
import { SqlTreeNodeVisitor } from "../visitor/SqlTreeNodeVisitor";
|
|
3
|
+
import { SqlTreeNode } from "./Abstractions";
|
|
4
|
+
export type VirtualTableModule = 'fts5';
|
|
5
|
+
export interface FTS5Options {
|
|
6
|
+
tokenize?: string;
|
|
7
|
+
content?: string;
|
|
8
|
+
contentRowid?: string;
|
|
9
|
+
prefix?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare class CreateVirtualTableQuery implements SqlTreeNode {
|
|
12
|
+
private _tableName;
|
|
13
|
+
private _module;
|
|
14
|
+
private _columns;
|
|
15
|
+
private _options;
|
|
16
|
+
private _ifNotExists;
|
|
17
|
+
constructor(tableName: string, module: VirtualTableModule);
|
|
18
|
+
static create(tableName: string, module: VirtualTableModule): CreateVirtualTableQuery;
|
|
19
|
+
column(name: string): CreateVirtualTableQuery;
|
|
20
|
+
tokenize(tokenizer: string): CreateVirtualTableQuery;
|
|
21
|
+
content(tableName: string): CreateVirtualTableQuery;
|
|
22
|
+
contentRowid(columnName: string): CreateVirtualTableQuery;
|
|
23
|
+
prefix(lengths: string): CreateVirtualTableQuery;
|
|
24
|
+
ifNotExists(): CreateVirtualTableQuery;
|
|
25
|
+
get tableName(): string;
|
|
26
|
+
get module(): VirtualTableModule;
|
|
27
|
+
get columns(): string[];
|
|
28
|
+
get options(): FTS5Options;
|
|
29
|
+
get hasIfNotExists(): boolean;
|
|
30
|
+
toSQL(renderer?: QueryRenderer): string;
|
|
31
|
+
accept<T>(visitor: SqlTreeNodeVisitor<T>): T;
|
|
32
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CreateVirtualTableQuery = void 0;
|
|
4
|
+
const IndentedQueryRenderer_1 = require("../renderer/IndentedQueryRenderer");
|
|
5
|
+
// Represents a CREATE VIRTUAL TABLE statement
|
|
6
|
+
class CreateVirtualTableQuery {
|
|
7
|
+
constructor(tableName, module) {
|
|
8
|
+
this._columns = [];
|
|
9
|
+
this._options = {};
|
|
10
|
+
this._ifNotExists = false;
|
|
11
|
+
this._tableName = tableName;
|
|
12
|
+
this._module = module;
|
|
13
|
+
}
|
|
14
|
+
static create(tableName, module) {
|
|
15
|
+
return new CreateVirtualTableQuery(tableName, module);
|
|
16
|
+
}
|
|
17
|
+
// Add a column to the virtual table
|
|
18
|
+
column(name) {
|
|
19
|
+
this._columns.push(name);
|
|
20
|
+
return this;
|
|
21
|
+
}
|
|
22
|
+
// Set the tokenizer for FTS5
|
|
23
|
+
tokenize(tokenizer) {
|
|
24
|
+
this._options.tokenize = tokenizer;
|
|
25
|
+
return this;
|
|
26
|
+
}
|
|
27
|
+
// Set the external content table for FTS5
|
|
28
|
+
content(tableName) {
|
|
29
|
+
this._options.content = tableName;
|
|
30
|
+
return this;
|
|
31
|
+
}
|
|
32
|
+
// Set the content_rowid column for external content FTS5 tables
|
|
33
|
+
contentRowid(columnName) {
|
|
34
|
+
this._options.contentRowid = columnName;
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
37
|
+
// Set prefix index lengths for FTS5
|
|
38
|
+
prefix(lengths) {
|
|
39
|
+
this._options.prefix = lengths;
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
// Add IF NOT EXISTS clause
|
|
43
|
+
ifNotExists() {
|
|
44
|
+
this._ifNotExists = true;
|
|
45
|
+
return this;
|
|
46
|
+
}
|
|
47
|
+
// Getters
|
|
48
|
+
get tableName() {
|
|
49
|
+
return this._tableName;
|
|
50
|
+
}
|
|
51
|
+
get module() {
|
|
52
|
+
return this._module;
|
|
53
|
+
}
|
|
54
|
+
get columns() {
|
|
55
|
+
return this._columns;
|
|
56
|
+
}
|
|
57
|
+
get options() {
|
|
58
|
+
return this._options;
|
|
59
|
+
}
|
|
60
|
+
get hasIfNotExists() {
|
|
61
|
+
return this._ifNotExists;
|
|
62
|
+
}
|
|
63
|
+
toSQL(renderer) {
|
|
64
|
+
if (!renderer) {
|
|
65
|
+
renderer = new IndentedQueryRenderer_1.IndentedQueryRenderer(2);
|
|
66
|
+
}
|
|
67
|
+
return this.accept(renderer);
|
|
68
|
+
}
|
|
69
|
+
accept(visitor) {
|
|
70
|
+
return visitor.visitCreateVirtualTableQuery(this);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.CreateVirtualTableQuery = CreateVirtualTableQuery;
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3JlYXRlVmlydHVhbFRhYmxlUXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXN0L0NyZWF0ZVZpcnR1YWxUYWJsZVF1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZFQUEwRTtBQWdCMUUsOENBQThDO0FBQzlDLE1BQWEsdUJBQXVCO0lBUWxDLFlBQVksU0FBaUIsRUFBRSxNQUEwQjtRQUpqRCxhQUFRLEdBQWEsRUFBRSxDQUFDO1FBQ3hCLGFBQVEsR0FBZ0IsRUFBRSxDQUFDO1FBQzNCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBR3BDLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQ3hCLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQWlCLEVBQUUsTUFBMEI7UUFDaEUsT0FBTyxJQUFJLHVCQUF1QixDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsb0NBQW9DO0lBQzdCLE1BQU0sQ0FBQyxJQUFZO1FBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELDZCQUE2QjtJQUN0QixRQUFRLENBQUMsU0FBaUI7UUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELDBDQUEwQztJQUNuQyxPQUFPLENBQUMsU0FBaUI7UUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGdFQUFnRTtJQUN6RCxZQUFZLENBQUMsVUFBa0I7UUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDO1FBQ3hDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELG9DQUFvQztJQUM3QixNQUFNLENBQUMsT0FBZTtRQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsMkJBQTJCO0lBQ3BCLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsVUFBVTtJQUNWLElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRU0sS0FBSyxDQUFDLFFBQXdCO1FBQ25DLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLFFBQVEsR0FBRyxJQUFJLDZDQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLE1BQU0sQ0FBSSxPQUE4QjtRQUM3QyxPQUFPLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0NBQ0Y7QUFwRkQsMERBb0ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5kZW50ZWRRdWVyeVJlbmRlcmVyIH0gZnJvbSBcIi4uL3JlbmRlcmVyL0luZGVudGVkUXVlcnlSZW5kZXJlclwiO1xuaW1wb3J0IHsgUXVlcnlSZW5kZXJlciB9IGZyb20gXCIuLi9yZW5kZXJlci9RdWVyeVJlbmRlcmVyXCI7XG5pbXBvcnQgeyBTcWxUcmVlTm9kZVZpc2l0b3IgfSBmcm9tIFwiLi4vdmlzaXRvci9TcWxUcmVlTm9kZVZpc2l0b3JcIjtcbmltcG9ydCB7IFNxbFRyZWVOb2RlIH0gZnJvbSBcIi4vQWJzdHJhY3Rpb25zXCI7XG5cbi8vIFN1cHBvcnRlZCB2aXJ0dWFsIHRhYmxlIG1vZHVsZXMgKGV4dGVuc2libGUgZm9yIGZ1dHVyZSBtb2R1bGVzIGxpa2UgcnRyZWUpXG5leHBvcnQgdHlwZSBWaXJ0dWFsVGFibGVNb2R1bGUgPSAnZnRzNSc7XG5cbi8vIEZUUzUtc3BlY2lmaWMgb3B0aW9uc1xuZXhwb3J0IGludGVyZmFjZSBGVFM1T3B0aW9ucyB7XG4gIHRva2VuaXplPzogc3RyaW5nOyAgICAgIC8vIGUuZy4sICdwb3J0ZXIgdW5pY29kZTYxJ1xuICBjb250ZW50Pzogc3RyaW5nOyAgICAgICAvLyBFeHRlcm5hbCBjb250ZW50IHRhYmxlIG5hbWVcbiAgY29udGVudFJvd2lkPzogc3RyaW5nOyAgLy8gQ29sdW1uIHRvIHVzZSBhcyByb3dpZCBmb3IgZXh0ZXJuYWwgY29udGVudFxuICBwcmVmaXg/OiBzdHJpbmc7ICAgICAgICAvLyBQcmVmaXggaW5kZXhlcywgZS5nLiwgJzIgMyA0J1xufVxuXG4vLyBSZXByZXNlbnRzIGEgQ1JFQVRFIFZJUlRVQUwgVEFCTEUgc3RhdGVtZW50XG5leHBvcnQgY2xhc3MgQ3JlYXRlVmlydHVhbFRhYmxlUXVlcnkgaW1wbGVtZW50cyBTcWxUcmVlTm9kZSB7XG5cbiAgcHJpdmF0ZSBfdGFibGVOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgX21vZHVsZTogVmlydHVhbFRhYmxlTW9kdWxlO1xuICBwcml2YXRlIF9jb2x1bW5zOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIF9vcHRpb25zOiBGVFM1T3B0aW9ucyA9IHt9O1xuICBwcml2YXRlIF9pZk5vdEV4aXN0czogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHRhYmxlTmFtZTogc3RyaW5nLCBtb2R1bGU6IFZpcnR1YWxUYWJsZU1vZHVsZSkge1xuICAgIHRoaXMuX3RhYmxlTmFtZSA9IHRhYmxlTmFtZTtcbiAgICB0aGlzLl9tb2R1bGUgPSBtb2R1bGU7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZSh0YWJsZU5hbWU6IHN0cmluZywgbW9kdWxlOiBWaXJ0dWFsVGFibGVNb2R1bGUpOiBDcmVhdGVWaXJ0dWFsVGFibGVRdWVyeSB7XG4gICAgcmV0dXJuIG5ldyBDcmVhdGVWaXJ0dWFsVGFibGVRdWVyeSh0YWJsZU5hbWUsIG1vZHVsZSk7XG4gIH1cblxuICAvLyBBZGQgYSBjb2x1bW4gdG8gdGhlIHZpcnR1YWwgdGFibGVcbiAgcHVibGljIGNvbHVtbihuYW1lOiBzdHJpbmcpOiBDcmVhdGVWaXJ0dWFsVGFibGVRdWVyeSB7XG4gICAgdGhpcy5fY29sdW1ucy5wdXNoKG5hbWUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLy8gU2V0IHRoZSB0b2tlbml6ZXIgZm9yIEZUUzVcbiAgcHVibGljIHRva2VuaXplKHRva2VuaXplcjogc3RyaW5nKTogQ3JlYXRlVmlydHVhbFRhYmxlUXVlcnkge1xuICAgIHRoaXMuX29wdGlvbnMudG9rZW5pemUgPSB0b2tlbml6ZXI7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvLyBTZXQgdGhlIGV4dGVybmFsIGNvbnRlbnQgdGFibGUgZm9yIEZUUzVcbiAgcHVibGljIGNvbnRlbnQodGFibGVOYW1lOiBzdHJpbmcpOiBDcmVhdGVWaXJ0dWFsVGFibGVRdWVyeSB7XG4gICAgdGhpcy5fb3B0aW9ucy5jb250ZW50ID0gdGFibGVOYW1lO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLy8gU2V0IHRoZSBjb250ZW50X3Jvd2lkIGNvbHVtbiBmb3IgZXh0ZXJuYWwgY29udGVudCBGVFM1IHRhYmxlc1xuICBwdWJsaWMgY29udGVudFJvd2lkKGNvbHVtbk5hbWU6IHN0cmluZyk6IENyZWF0ZVZpcnR1YWxUYWJsZVF1ZXJ5IHtcbiAgICB0aGlzLl9vcHRpb25zLmNvbnRlbnRSb3dpZCA9IGNvbHVtbk5hbWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvLyBTZXQgcHJlZml4IGluZGV4IGxlbmd0aHMgZm9yIEZUUzVcbiAgcHVibGljIHByZWZpeChsZW5ndGhzOiBzdHJpbmcpOiBDcmVhdGVWaXJ0dWFsVGFibGVRdWVyeSB7XG4gICAgdGhpcy5fb3B0aW9ucy5wcmVmaXggPSBsZW5ndGhzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLy8gQWRkIElGIE5PVCBFWElTVFMgY2xhdXNlXG4gIHB1YmxpYyBpZk5vdEV4aXN0cygpOiBDcmVhdGVWaXJ0dWFsVGFibGVRdWVyeSB7XG4gICAgdGhpcy5faWZOb3RFeGlzdHMgPSB0cnVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLy8gR2V0dGVyc1xuICBwdWJsaWMgZ2V0IHRhYmxlTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90YWJsZU5hbWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1vZHVsZSgpOiBWaXJ0dWFsVGFibGVNb2R1bGUge1xuICAgIHJldHVybiB0aGlzLl9tb2R1bGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbHVtbnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9jb2x1bW5zO1xuICB9XG5cbiAgcHVibGljIGdldCBvcHRpb25zKCk6IEZUUzVPcHRpb25zIHtcbiAgICByZXR1cm4gdGhpcy5fb3B0aW9ucztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzSWZOb3RFeGlzdHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lmTm90RXhpc3RzO1xuICB9XG5cbiAgcHVibGljIHRvU1FMKHJlbmRlcmVyPzogUXVlcnlSZW5kZXJlcik6IHN0cmluZyB7XG4gICAgaWYgKCFyZW5kZXJlcikge1xuICAgICAgcmVuZGVyZXIgPSBuZXcgSW5kZW50ZWRRdWVyeVJlbmRlcmVyKDIpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hY2NlcHQocmVuZGVyZXIpO1xuICB9XG5cbiAgcHVibGljIGFjY2VwdDxUPih2aXNpdG9yOiBTcWxUcmVlTm9kZVZpc2l0b3I8VD4pOiBUIHtcbiAgICByZXR1cm4gdmlzaXRvci52aXNpdENyZWF0ZVZpcnR1YWxUYWJsZVF1ZXJ5KHRoaXMpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { QueryRenderer } from "../renderer/QueryRenderer";
|
|
2
|
+
import { SqlTreeNodeVisitor } from "../visitor/SqlTreeNodeVisitor";
|
|
3
|
+
import { AliasableExpression, Expression, SqlTreeNode } from "./Abstractions";
|
|
4
|
+
export declare class DeleteQuery implements SqlTreeNode {
|
|
5
|
+
private _tableName;
|
|
6
|
+
private _where;
|
|
7
|
+
private _returning;
|
|
8
|
+
constructor(tableName: string);
|
|
9
|
+
static create(tableName: string): DeleteQuery;
|
|
10
|
+
where(condition: Expression): DeleteQuery;
|
|
11
|
+
returning(...expressions: AliasableExpression[]): DeleteQuery;
|
|
12
|
+
get tableName(): string;
|
|
13
|
+
get whereClause(): Expression | null;
|
|
14
|
+
get returningClause(): AliasableExpression[];
|
|
15
|
+
toSQL(renderer?: QueryRenderer): string;
|
|
16
|
+
accept<T>(visitor: SqlTreeNodeVisitor<T>): T;
|
|
17
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeleteQuery = void 0;
|
|
4
|
+
const IndentedQueryRenderer_1 = require("../renderer/IndentedQueryRenderer");
|
|
5
|
+
// Represents a DELETE statement with a table and optional WHERE clause
|
|
6
|
+
class DeleteQuery {
|
|
7
|
+
constructor(tableName) {
|
|
8
|
+
this._where = null;
|
|
9
|
+
this._returning = [];
|
|
10
|
+
this._tableName = tableName;
|
|
11
|
+
}
|
|
12
|
+
static create(tableName) {
|
|
13
|
+
return new DeleteQuery(tableName);
|
|
14
|
+
}
|
|
15
|
+
where(condition) {
|
|
16
|
+
this._where = condition;
|
|
17
|
+
return this;
|
|
18
|
+
}
|
|
19
|
+
returning(...expressions) {
|
|
20
|
+
this._returning = expressions;
|
|
21
|
+
return this;
|
|
22
|
+
}
|
|
23
|
+
get tableName() {
|
|
24
|
+
return this._tableName;
|
|
25
|
+
}
|
|
26
|
+
get whereClause() {
|
|
27
|
+
return this._where;
|
|
28
|
+
}
|
|
29
|
+
get returningClause() {
|
|
30
|
+
return this._returning;
|
|
31
|
+
}
|
|
32
|
+
toSQL(renderer) {
|
|
33
|
+
if (!renderer) {
|
|
34
|
+
renderer = new IndentedQueryRenderer_1.IndentedQueryRenderer(2);
|
|
35
|
+
}
|
|
36
|
+
return this.accept(renderer);
|
|
37
|
+
}
|
|
38
|
+
accept(visitor) {
|
|
39
|
+
return visitor.visitDeleteQuery(this);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.DeleteQuery = DeleteQuery;
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVsZXRlUXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXN0L0RlbGV0ZVF1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZFQUEwRTtBQUsxRSx1RUFBdUU7QUFDdkUsTUFBYSxXQUFXO0lBTXRCLFlBQVksU0FBaUI7UUFIckIsV0FBTSxHQUFzQixJQUFJLENBQUM7UUFDakMsZUFBVSxHQUEwQixFQUFFLENBQUM7UUFHN0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFDOUIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBaUI7UUFDcEMsT0FBTyxJQUFJLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU0sS0FBSyxDQUFDLFNBQXFCO1FBQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFNBQVMsQ0FBQyxHQUFHLFdBQWtDO1FBQ3BELElBQUksQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVNLEtBQUssQ0FBQyxRQUF3QjtRQUNuQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxRQUFRLEdBQUcsSUFBSSw2Q0FBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTSxNQUFNLENBQUksT0FBOEI7UUFDN0MsT0FBTyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQztDQUNGO0FBOUNELGtDQThDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluZGVudGVkUXVlcnlSZW5kZXJlciB9IGZyb20gXCIuLi9yZW5kZXJlci9JbmRlbnRlZFF1ZXJ5UmVuZGVyZXJcIjtcbmltcG9ydCB7IFF1ZXJ5UmVuZGVyZXIgfSBmcm9tIFwiLi4vcmVuZGVyZXIvUXVlcnlSZW5kZXJlclwiO1xuaW1wb3J0IHsgU3FsVHJlZU5vZGVWaXNpdG9yIH0gZnJvbSBcIi4uL3Zpc2l0b3IvU3FsVHJlZU5vZGVWaXNpdG9yXCI7XG5pbXBvcnQgeyBBbGlhc2FibGVFeHByZXNzaW9uLCBFeHByZXNzaW9uLCBTcWxUcmVlTm9kZSB9IGZyb20gXCIuL0Fic3RyYWN0aW9uc1wiO1xuXG4vLyBSZXByZXNlbnRzIGEgREVMRVRFIHN0YXRlbWVudCB3aXRoIGEgdGFibGUgYW5kIG9wdGlvbmFsIFdIRVJFIGNsYXVzZVxuZXhwb3J0IGNsYXNzIERlbGV0ZVF1ZXJ5IGltcGxlbWVudHMgU3FsVHJlZU5vZGUge1xuXG4gIHByaXZhdGUgX3RhYmxlTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIF93aGVyZTogRXhwcmVzc2lvbiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9yZXR1cm5pbmc6IEFsaWFzYWJsZUV4cHJlc3Npb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHRhYmxlTmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fdGFibGVOYW1lID0gdGFibGVOYW1lO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGUodGFibGVOYW1lOiBzdHJpbmcpOiBEZWxldGVRdWVyeSB7XG4gICAgcmV0dXJuIG5ldyBEZWxldGVRdWVyeSh0YWJsZU5hbWUpO1xuICB9XG5cbiAgcHVibGljIHdoZXJlKGNvbmRpdGlvbjogRXhwcmVzc2lvbik6IERlbGV0ZVF1ZXJ5IHtcbiAgICB0aGlzLl93aGVyZSA9IGNvbmRpdGlvbjtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyByZXR1cm5pbmcoLi4uZXhwcmVzc2lvbnM6IEFsaWFzYWJsZUV4cHJlc3Npb25bXSk6IERlbGV0ZVF1ZXJ5IHtcbiAgICB0aGlzLl9yZXR1cm5pbmcgPSBleHByZXNzaW9ucztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdGFibGVOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3RhYmxlTmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgd2hlcmVDbGF1c2UoKTogRXhwcmVzc2lvbiB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl93aGVyZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmV0dXJuaW5nQ2xhdXNlKCk6IEFsaWFzYWJsZUV4cHJlc3Npb25bXSB7XG4gICAgcmV0dXJuIHRoaXMuX3JldHVybmluZztcbiAgfVxuXG4gIHB1YmxpYyB0b1NRTChyZW5kZXJlcj86IFF1ZXJ5UmVuZGVyZXIpOiBzdHJpbmcge1xuICAgIGlmICghcmVuZGVyZXIpIHtcbiAgICAgIHJlbmRlcmVyID0gbmV3IEluZGVudGVkUXVlcnlSZW5kZXJlcigyKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYWNjZXB0KHJlbmRlcmVyKTtcbiAgfVxuXG4gIHB1YmxpYyBhY2NlcHQ8VD4odmlzaXRvcjogU3FsVHJlZU5vZGVWaXNpdG9yPFQ+KTogVCB7XG4gICAgcmV0dXJuIHZpc2l0b3IudmlzaXREZWxldGVRdWVyeSh0aGlzKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { QueryRenderer } from "../renderer/QueryRenderer";
|
|
2
|
+
import { SqlTreeNodeVisitor } from "../visitor/SqlTreeNodeVisitor";
|
|
3
|
+
import { SqlTreeNode } from "./Abstractions";
|
|
4
|
+
export declare class DropIndexQuery implements SqlTreeNode {
|
|
5
|
+
private _indexName;
|
|
6
|
+
private _ifExists;
|
|
7
|
+
constructor(indexName: string);
|
|
8
|
+
static create(indexName: string): DropIndexQuery;
|
|
9
|
+
ifExists(): DropIndexQuery;
|
|
10
|
+
get indexName(): string;
|
|
11
|
+
get hasIfExists(): boolean;
|
|
12
|
+
toSQL(renderer?: QueryRenderer): string;
|
|
13
|
+
accept<T>(visitor: SqlTreeNodeVisitor<T>): T;
|
|
14
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DropIndexQuery = void 0;
|
|
4
|
+
const IndentedQueryRenderer_1 = require("../renderer/IndentedQueryRenderer");
|
|
5
|
+
// Represents a DROP INDEX statement
|
|
6
|
+
class DropIndexQuery {
|
|
7
|
+
constructor(indexName) {
|
|
8
|
+
this._ifExists = false;
|
|
9
|
+
this._indexName = indexName;
|
|
10
|
+
}
|
|
11
|
+
static create(indexName) {
|
|
12
|
+
return new DropIndexQuery(indexName);
|
|
13
|
+
}
|
|
14
|
+
ifExists() {
|
|
15
|
+
this._ifExists = true;
|
|
16
|
+
return this;
|
|
17
|
+
}
|
|
18
|
+
get indexName() {
|
|
19
|
+
return this._indexName;
|
|
20
|
+
}
|
|
21
|
+
get hasIfExists() {
|
|
22
|
+
return this._ifExists;
|
|
23
|
+
}
|
|
24
|
+
toSQL(renderer) {
|
|
25
|
+
if (!renderer) {
|
|
26
|
+
renderer = new IndentedQueryRenderer_1.IndentedQueryRenderer(2);
|
|
27
|
+
}
|
|
28
|
+
return this.accept(renderer);
|
|
29
|
+
}
|
|
30
|
+
accept(visitor) {
|
|
31
|
+
return visitor.visitDropIndexQuery(this);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.DropIndexQuery = DropIndexQuery;
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHJvcEluZGV4UXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXN0L0Ryb3BJbmRleFF1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZFQUEwRTtBQUsxRSxvQ0FBb0M7QUFDcEMsTUFBYSxjQUFjO0lBS3pCLFlBQVksU0FBaUI7UUFGckIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUdqQyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztJQUM5QixDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFpQjtRQUNwQyxPQUFPLElBQUksY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRU0sS0FBSyxDQUFDLFFBQXdCO1FBQ25DLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLFFBQVEsR0FBRyxJQUFJLDZDQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLE1BQU0sQ0FBSSxPQUE4QjtRQUM3QyxPQUFPLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDO0NBQ0Y7QUFwQ0Qsd0NBb0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5kZW50ZWRRdWVyeVJlbmRlcmVyIH0gZnJvbSBcIi4uL3JlbmRlcmVyL0luZGVudGVkUXVlcnlSZW5kZXJlclwiO1xuaW1wb3J0IHsgUXVlcnlSZW5kZXJlciB9IGZyb20gXCIuLi9yZW5kZXJlci9RdWVyeVJlbmRlcmVyXCI7XG5pbXBvcnQgeyBTcWxUcmVlTm9kZVZpc2l0b3IgfSBmcm9tIFwiLi4vdmlzaXRvci9TcWxUcmVlTm9kZVZpc2l0b3JcIjtcbmltcG9ydCB7IFNxbFRyZWVOb2RlIH0gZnJvbSBcIi4vQWJzdHJhY3Rpb25zXCI7XG5cbi8vIFJlcHJlc2VudHMgYSBEUk9QIElOREVYIHN0YXRlbWVudFxuZXhwb3J0IGNsYXNzIERyb3BJbmRleFF1ZXJ5IGltcGxlbWVudHMgU3FsVHJlZU5vZGUge1xuXG4gIHByaXZhdGUgX2luZGV4TmFtZTogc3RyaW5nO1xuICBwcml2YXRlIF9pZkV4aXN0czogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKGluZGV4TmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5faW5kZXhOYW1lID0gaW5kZXhOYW1lO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGUoaW5kZXhOYW1lOiBzdHJpbmcpOiBEcm9wSW5kZXhRdWVyeSB7XG4gICAgcmV0dXJuIG5ldyBEcm9wSW5kZXhRdWVyeShpbmRleE5hbWUpO1xuICB9XG5cbiAgcHVibGljIGlmRXhpc3RzKCk6IERyb3BJbmRleFF1ZXJ5IHtcbiAgICB0aGlzLl9pZkV4aXN0cyA9IHRydWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGluZGV4TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9pbmRleE5hbWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc0lmRXhpc3RzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pZkV4aXN0cztcbiAgfVxuXG4gIHB1YmxpYyB0b1NRTChyZW5kZXJlcj86IFF1ZXJ5UmVuZGVyZXIpOiBzdHJpbmcge1xuICAgIGlmICghcmVuZGVyZXIpIHtcbiAgICAgIHJlbmRlcmVyID0gbmV3IEluZGVudGVkUXVlcnlSZW5kZXJlcigyKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYWNjZXB0KHJlbmRlcmVyKTtcbiAgfVxuXG4gIHB1YmxpYyBhY2NlcHQ8VD4odmlzaXRvcjogU3FsVHJlZU5vZGVWaXNpdG9yPFQ+KTogVCB7XG4gICAgcmV0dXJuIHZpc2l0b3IudmlzaXREcm9wSW5kZXhRdWVyeSh0aGlzKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { QueryRenderer } from "../renderer/QueryRenderer";
|
|
2
|
+
import { SqlTreeNodeVisitor } from "../visitor/SqlTreeNodeVisitor";
|
|
3
|
+
import { SqlTreeNode } from "./Abstractions";
|
|
4
|
+
export declare class DropTableQuery implements SqlTreeNode {
|
|
5
|
+
private _tableName;
|
|
6
|
+
private _ifExists;
|
|
7
|
+
constructor(tableName: string);
|
|
8
|
+
static create(tableName: string): DropTableQuery;
|
|
9
|
+
ifExists(): DropTableQuery;
|
|
10
|
+
get tableName(): string;
|
|
11
|
+
get hasIfExists(): boolean;
|
|
12
|
+
toSQL(renderer?: QueryRenderer): string;
|
|
13
|
+
accept<T>(visitor: SqlTreeNodeVisitor<T>): T;
|
|
14
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DropTableQuery = void 0;
|
|
4
|
+
const IndentedQueryRenderer_1 = require("../renderer/IndentedQueryRenderer");
|
|
5
|
+
// Represents a DROP TABLE statement
|
|
6
|
+
class DropTableQuery {
|
|
7
|
+
constructor(tableName) {
|
|
8
|
+
this._ifExists = false;
|
|
9
|
+
this._tableName = tableName;
|
|
10
|
+
}
|
|
11
|
+
static create(tableName) {
|
|
12
|
+
return new DropTableQuery(tableName);
|
|
13
|
+
}
|
|
14
|
+
ifExists() {
|
|
15
|
+
this._ifExists = true;
|
|
16
|
+
return this;
|
|
17
|
+
}
|
|
18
|
+
get tableName() {
|
|
19
|
+
return this._tableName;
|
|
20
|
+
}
|
|
21
|
+
get hasIfExists() {
|
|
22
|
+
return this._ifExists;
|
|
23
|
+
}
|
|
24
|
+
toSQL(renderer) {
|
|
25
|
+
if (!renderer) {
|
|
26
|
+
renderer = new IndentedQueryRenderer_1.IndentedQueryRenderer(2);
|
|
27
|
+
}
|
|
28
|
+
return this.accept(renderer);
|
|
29
|
+
}
|
|
30
|
+
accept(visitor) {
|
|
31
|
+
return visitor.visitDropTableQuery(this);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.DropTableQuery = DropTableQuery;
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHJvcFRhYmxlUXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXN0L0Ryb3BUYWJsZVF1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZFQUEwRTtBQUsxRSxvQ0FBb0M7QUFDcEMsTUFBYSxjQUFjO0lBS3pCLFlBQVksU0FBaUI7UUFGckIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUdqQyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztJQUM5QixDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFpQjtRQUNwQyxPQUFPLElBQUksY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRU0sS0FBSyxDQUFDLFFBQXdCO1FBQ25DLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLFFBQVEsR0FBRyxJQUFJLDZDQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLE1BQU0sQ0FBSSxPQUE4QjtRQUM3QyxPQUFPLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDO0NBQ0Y7QUFwQ0Qsd0NBb0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5kZW50ZWRRdWVyeVJlbmRlcmVyIH0gZnJvbSBcIi4uL3JlbmRlcmVyL0luZGVudGVkUXVlcnlSZW5kZXJlclwiO1xuaW1wb3J0IHsgUXVlcnlSZW5kZXJlciB9IGZyb20gXCIuLi9yZW5kZXJlci9RdWVyeVJlbmRlcmVyXCI7XG5pbXBvcnQgeyBTcWxUcmVlTm9kZVZpc2l0b3IgfSBmcm9tIFwiLi4vdmlzaXRvci9TcWxUcmVlTm9kZVZpc2l0b3JcIjtcbmltcG9ydCB7IFNxbFRyZWVOb2RlIH0gZnJvbSBcIi4vQWJzdHJhY3Rpb25zXCI7XG5cbi8vIFJlcHJlc2VudHMgYSBEUk9QIFRBQkxFIHN0YXRlbWVudFxuZXhwb3J0IGNsYXNzIERyb3BUYWJsZVF1ZXJ5IGltcGxlbWVudHMgU3FsVHJlZU5vZGUge1xuXG4gIHByaXZhdGUgX3RhYmxlTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIF9pZkV4aXN0czogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHRhYmxlTmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fdGFibGVOYW1lID0gdGFibGVOYW1lO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGUodGFibGVOYW1lOiBzdHJpbmcpOiBEcm9wVGFibGVRdWVyeSB7XG4gICAgcmV0dXJuIG5ldyBEcm9wVGFibGVRdWVyeSh0YWJsZU5hbWUpO1xuICB9XG5cbiAgcHVibGljIGlmRXhpc3RzKCk6IERyb3BUYWJsZVF1ZXJ5IHtcbiAgICB0aGlzLl9pZkV4aXN0cyA9IHRydWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRhYmxlTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90YWJsZU5hbWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc0lmRXhpc3RzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pZkV4aXN0cztcbiAgfVxuXG4gIHB1YmxpYyB0b1NRTChyZW5kZXJlcj86IFF1ZXJ5UmVuZGVyZXIpOiBzdHJpbmcge1xuICAgIGlmICghcmVuZGVyZXIpIHtcbiAgICAgIHJlbmRlcmVyID0gbmV3IEluZGVudGVkUXVlcnlSZW5kZXJlcigyKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYWNjZXB0KHJlbmRlcmVyKTtcbiAgfVxuXG4gIHB1YmxpYyBhY2NlcHQ8VD4odmlzaXRvcjogU3FsVHJlZU5vZGVWaXNpdG9yPFQ+KTogVCB7XG4gICAgcmV0dXJuIHZpc2l0b3IudmlzaXREcm9wVGFibGVRdWVyeSh0aGlzKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { SqlTreeNode } from "./Abstractions";
|
|
2
|
+
import { SqlTreeNodeVisitor } from "../visitor/SqlTreeNodeVisitor";
|
|
3
|
+
export declare class DropViewQuery implements SqlTreeNode {
|
|
4
|
+
private _viewName;
|
|
5
|
+
private _ifExists;
|
|
6
|
+
constructor(viewName: string);
|
|
7
|
+
get viewName(): string;
|
|
8
|
+
get hasIfExists(): boolean;
|
|
9
|
+
ifExists(): DropViewQuery;
|
|
10
|
+
accept<T>(visitor: SqlTreeNodeVisitor<T>): T;
|
|
11
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DropViewQuery = void 0;
|
|
4
|
+
class DropViewQuery {
|
|
5
|
+
constructor(viewName) {
|
|
6
|
+
this._ifExists = false;
|
|
7
|
+
this._viewName = viewName;
|
|
8
|
+
}
|
|
9
|
+
get viewName() {
|
|
10
|
+
return this._viewName;
|
|
11
|
+
}
|
|
12
|
+
get hasIfExists() {
|
|
13
|
+
return this._ifExists;
|
|
14
|
+
}
|
|
15
|
+
ifExists() {
|
|
16
|
+
this._ifExists = true;
|
|
17
|
+
return this;
|
|
18
|
+
}
|
|
19
|
+
accept(visitor) {
|
|
20
|
+
return visitor.visitDropViewQuery(this);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.DropViewQuery = DropViewQuery;
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHJvcFZpZXdRdWVyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hc3QvRHJvcFZpZXdRdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxNQUFhLGFBQWE7SUFJeEIsWUFBWSxRQUFnQjtRQUZwQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBR2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sTUFBTSxDQUFJLE9BQThCO1FBQzdDLE9BQU8sT0FBTyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDRjtBQXhCRCxzQ0F3QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTcWxUcmVlTm9kZSB9IGZyb20gXCIuL0Fic3RyYWN0aW9uc1wiO1xuaW1wb3J0IHsgU3FsVHJlZU5vZGVWaXNpdG9yIH0gZnJvbSBcIi4uL3Zpc2l0b3IvU3FsVHJlZU5vZGVWaXNpdG9yXCI7XG5cbmV4cG9ydCBjbGFzcyBEcm9wVmlld1F1ZXJ5IGltcGxlbWVudHMgU3FsVHJlZU5vZGUge1xuICBwcml2YXRlIF92aWV3TmFtZTogc3RyaW5nO1xuICBwcml2YXRlIF9pZkV4aXN0czogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHZpZXdOYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLl92aWV3TmFtZSA9IHZpZXdOYW1lO1xuICB9XG5cbiAgcHVibGljIGdldCB2aWV3TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl92aWV3TmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzSWZFeGlzdHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lmRXhpc3RzO1xuICB9XG5cbiAgcHVibGljIGlmRXhpc3RzKCk6IERyb3BWaWV3UXVlcnkge1xuICAgIHRoaXMuX2lmRXhpc3RzID0gdHJ1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBhY2NlcHQ8VD4odmlzaXRvcjogU3FsVHJlZU5vZGVWaXNpdG9yPFQ+KTogVCB7XG4gICAgcmV0dXJuIHZpc2l0b3IudmlzaXREcm9wVmlld1F1ZXJ5KHRoaXMpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { SqlTreeNodeVisitor } from "../visitor/SqlTreeNodeVisitor";
|
|
2
2
|
import { AliasableExpression, Expression } from "./Abstractions";
|
|
3
3
|
import { FunctionName } from "./FunctionName";
|
|
4
|
+
import { OrderBy } from "./OrderBy";
|
|
5
|
+
import { WindowExpression } from "./WindowExpression";
|
|
4
6
|
export declare class FunctionExpression extends AliasableExpression {
|
|
5
7
|
private _name;
|
|
6
8
|
private _args;
|
|
@@ -10,4 +12,23 @@ export declare class FunctionExpression extends AliasableExpression {
|
|
|
10
12
|
get args(): Expression[];
|
|
11
13
|
get distinct(): boolean;
|
|
12
14
|
accept<T>(visitor: SqlTreeNodeVisitor<T>): T;
|
|
15
|
+
/**
|
|
16
|
+
* Create a window function expression with an OVER clause.
|
|
17
|
+
*
|
|
18
|
+
* Accepts PARTITION_BY (Expression[]) and ORDER_BY (OrderBy) arguments
|
|
19
|
+
* in any order. Multiple ORDER_BY clauses are combined.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* // With ORDER BY only
|
|
24
|
+
* FN('ROW_NUMBER').over(ORDER_BY('created_at'))
|
|
25
|
+
*
|
|
26
|
+
* // With PARTITION BY and ORDER BY
|
|
27
|
+
* FN('RANK').over(PARTITION_BY('category'), ORDER_BY('price', DESC))
|
|
28
|
+
*
|
|
29
|
+
* // Empty OVER clause (window over entire result set)
|
|
30
|
+
* FN('AVG', COLUMN('salary')).over()
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
over(...specs: (Expression[] | OrderBy)[]): WindowExpression;
|
|
13
34
|
}
|