@shaxpir/squilt 1.0.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/LICENSE +201 -0
- package/README.md +133 -0
- package/dist/ast/Abstractions.d.ts +14 -0
- package/dist/ast/Abstractions.js +11 -0
- package/dist/ast/Alias.d.ts +11 -0
- package/dist/ast/Alias.js +23 -0
- package/dist/ast/BinaryExpression.d.ts +13 -0
- package/dist/ast/BinaryExpression.js +26 -0
- package/dist/ast/CaseExpression.d.ts +14 -0
- package/dist/ast/CaseExpression.js +22 -0
- package/dist/ast/Column.d.ts +17 -0
- package/dist/ast/Column.js +38 -0
- package/dist/ast/Concat.d.ts +8 -0
- package/dist/ast/Concat.js +19 -0
- package/dist/ast/ExistsExpression.d.ts +9 -0
- package/dist/ast/ExistsExpression.js +18 -0
- package/dist/ast/From.d.ts +33 -0
- package/dist/ast/From.js +60 -0
- package/dist/ast/FunctionExpression.d.ts +13 -0
- package/dist/ast/FunctionExpression.js +27 -0
- package/dist/ast/FunctionName.d.ts +1 -0
- package/dist/ast/FunctionName.js +3 -0
- package/dist/ast/InExpression.d.ts +13 -0
- package/dist/ast/InExpression.js +35 -0
- package/dist/ast/InsertQuery.d.ts +17 -0
- package/dist/ast/InsertQuery.js +42 -0
- package/dist/ast/Join.d.ts +21 -0
- package/dist/ast/Join.js +37 -0
- package/dist/ast/Literals.d.ts +31 -0
- package/dist/ast/Literals.js +65 -0
- package/dist/ast/Operator.d.ts +18 -0
- package/dist/ast/Operator.js +23 -0
- package/dist/ast/OrderBy.d.ts +14 -0
- package/dist/ast/OrderBy.js +25 -0
- package/dist/ast/SelectQuery.d.ts +39 -0
- package/dist/ast/SelectQuery.js +109 -0
- package/dist/ast/UnaryExpression.d.ts +11 -0
- package/dist/ast/UnaryExpression.js +22 -0
- package/dist/ast/With.d.ts +11 -0
- package/dist/ast/With.js +21 -0
- package/dist/builder/QueryBuilder.d.ts +8 -0
- package/dist/builder/QueryBuilder.js +20 -0
- package/dist/builder/Shorthand.d.ts +77 -0
- package/dist/builder/Shorthand.js +375 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.js +133 -0
- package/dist/renderer/CompactQueryRenderer.d.ts +45 -0
- package/dist/renderer/CompactQueryRenderer.js +192 -0
- package/dist/renderer/IndentedQueryRenderer.d.ts +51 -0
- package/dist/renderer/IndentedQueryRenderer.js +230 -0
- package/dist/renderer/QueryRenderer.d.ts +8 -0
- package/dist/renderer/QueryRenderer.js +77 -0
- package/dist/validate/CommonQueryValidator.d.ts +50 -0
- package/dist/validate/CommonQueryValidator.js +262 -0
- package/dist/validate/QueryValidator.d.ts +6 -0
- package/dist/validate/QueryValidator.js +3 -0
- package/dist/validate/SQLiteQueryValidator.d.ts +27 -0
- package/dist/validate/SQLiteQueryValidator.js +96 -0
- package/dist/visitor/ParamCollector.d.ts +46 -0
- package/dist/visitor/ParamCollector.js +129 -0
- package/dist/visitor/QueryIdentityTransformer.d.ts +45 -0
- package/dist/visitor/QueryIdentityTransformer.js +173 -0
- package/dist/visitor/QueryParamRewriteTransformer.d.ts +11 -0
- package/dist/visitor/QueryParamRewriteTransformer.js +26 -0
- package/dist/visitor/SqlTreeNodeTransformer.d.ts +5 -0
- package/dist/visitor/SqlTreeNodeTransformer.js +3 -0
- package/dist/visitor/SqlTreeNodeVisitor.d.ts +45 -0
- package/dist/visitor/SqlTreeNodeVisitor.js +47 -0
- package/package.json +36 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SelectQuery = void 0;
|
|
4
|
+
const IndentedQueryRenderer_1 = require("../renderer/IndentedQueryRenderer");
|
|
5
|
+
const Alias_1 = require("./Alias");
|
|
6
|
+
const Column_1 = require("./Column");
|
|
7
|
+
const From_1 = require("./From");
|
|
8
|
+
const Join_1 = require("./Join");
|
|
9
|
+
const OrderBy_1 = require("./OrderBy");
|
|
10
|
+
const With_1 = require("./With");
|
|
11
|
+
// Main entry point for building SELECT queries with a fluent API.
|
|
12
|
+
class SelectQuery {
|
|
13
|
+
constructor() {
|
|
14
|
+
this._fromsAndJoins = [];
|
|
15
|
+
this._columns = [];
|
|
16
|
+
this._where = null;
|
|
17
|
+
this._groupBy = [];
|
|
18
|
+
this._having = null;
|
|
19
|
+
this._with = [];
|
|
20
|
+
this._union = [];
|
|
21
|
+
this._orderBy = [];
|
|
22
|
+
this._offset = null;
|
|
23
|
+
this._limit = null;
|
|
24
|
+
this._distinct = false;
|
|
25
|
+
}
|
|
26
|
+
static create() {
|
|
27
|
+
return new SelectQuery();
|
|
28
|
+
}
|
|
29
|
+
distinct() {
|
|
30
|
+
this._distinct = true;
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
with(nameOrClause, query) {
|
|
34
|
+
if (typeof nameOrClause === 'string' && query) {
|
|
35
|
+
this._with.push(new With_1.With(nameOrClause, query));
|
|
36
|
+
}
|
|
37
|
+
else if (nameOrClause instanceof With_1.With) {
|
|
38
|
+
this._with.push(nameOrClause);
|
|
39
|
+
}
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
from(fromClause) {
|
|
43
|
+
this._fromsAndJoins.push(fromClause);
|
|
44
|
+
return this;
|
|
45
|
+
}
|
|
46
|
+
column(column) {
|
|
47
|
+
this._columns.push(column);
|
|
48
|
+
return this;
|
|
49
|
+
}
|
|
50
|
+
join(typeOrJoin, tableName, alias, on) {
|
|
51
|
+
if (this._fromsAndJoins.length === 0) {
|
|
52
|
+
throw new Error('Cannot add JOIN without a preceding FROM clause');
|
|
53
|
+
}
|
|
54
|
+
const lastClause = this._fromsAndJoins[this._fromsAndJoins.length - 1];
|
|
55
|
+
if (!(lastClause instanceof From_1.From || lastClause instanceof Alias_1.Alias || lastClause instanceof Join_1.Join)) {
|
|
56
|
+
throw new Error('JOIN must follow a FROM, an ALIAS, or another JOIN clause');
|
|
57
|
+
}
|
|
58
|
+
if (!(typeOrJoin instanceof Join_1.Join)) {
|
|
59
|
+
typeOrJoin = new Join_1.Join(typeOrJoin, tableName, alias, on);
|
|
60
|
+
}
|
|
61
|
+
this._fromsAndJoins.push(typeOrJoin);
|
|
62
|
+
return this;
|
|
63
|
+
}
|
|
64
|
+
where(whereClause) {
|
|
65
|
+
this._where = whereClause;
|
|
66
|
+
return this;
|
|
67
|
+
}
|
|
68
|
+
groupBy(...columns) {
|
|
69
|
+
this._groupBy = columns.map(col => (typeof col === 'string' ? new Column_1.Column(col) : col));
|
|
70
|
+
return this;
|
|
71
|
+
}
|
|
72
|
+
having(havingClause) {
|
|
73
|
+
this._having = havingClause;
|
|
74
|
+
return this;
|
|
75
|
+
}
|
|
76
|
+
union(query) {
|
|
77
|
+
this._union.push(query);
|
|
78
|
+
return this;
|
|
79
|
+
}
|
|
80
|
+
orderBy(column, direction) {
|
|
81
|
+
if (typeof column === 'string') {
|
|
82
|
+
column = new Column_1.Column(column);
|
|
83
|
+
}
|
|
84
|
+
this._orderBy.push(new OrderBy_1.OrderBy(column, direction));
|
|
85
|
+
return this;
|
|
86
|
+
}
|
|
87
|
+
offset(offset) {
|
|
88
|
+
this._offset = offset;
|
|
89
|
+
return this;
|
|
90
|
+
}
|
|
91
|
+
limit(limit) {
|
|
92
|
+
this._limit = limit;
|
|
93
|
+
return this;
|
|
94
|
+
}
|
|
95
|
+
toSQL(renderer) {
|
|
96
|
+
if (!renderer) {
|
|
97
|
+
renderer = new IndentedQueryRenderer_1.IndentedQueryRenderer(2);
|
|
98
|
+
}
|
|
99
|
+
return this.accept(renderer);
|
|
100
|
+
}
|
|
101
|
+
accept(visitor) {
|
|
102
|
+
return visitor.visitSelectQuery(this);
|
|
103
|
+
}
|
|
104
|
+
isDistinct() {
|
|
105
|
+
return this._distinct;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
exports.SelectQuery = SelectQuery;
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VsZWN0UXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXN0L1NlbGVjdFF1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZFQUEwRTtBQUkxRSxtQ0FBZ0M7QUFDaEMscUNBQThDO0FBQzlDLGlDQUF3QztBQUN4QyxpQ0FBd0M7QUFDeEMsdUNBQXNEO0FBQ3RELGlDQUE4QjtBQUU5QixrRUFBa0U7QUFDbEUsTUFBYSxXQUFXO0lBQXhCO1FBQ1UsbUJBQWMsR0FBd0IsRUFBRSxDQUFDO1FBQ3pDLGFBQVEsR0FBaUIsRUFBRSxDQUFDO1FBQzVCLFdBQU0sR0FBc0IsSUFBSSxDQUFDO1FBQ2pDLGFBQVEsR0FBYSxFQUFFLENBQUM7UUFDeEIsWUFBTyxHQUFzQixJQUFJLENBQUM7UUFDbEMsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUNuQixXQUFNLEdBQWtCLEVBQUUsQ0FBQztRQUMzQixhQUFRLEdBQWMsRUFBRSxDQUFDO1FBQ3pCLFlBQU8sR0FBbUIsSUFBSSxDQUFDO1FBQy9CLFdBQU0sR0FBbUIsSUFBSSxDQUFDO1FBQzlCLGNBQVMsR0FBWSxLQUFLLENBQUM7SUFxR3JDLENBQUM7SUFuR1EsTUFBTSxDQUFDLE1BQU07UUFDbEIsT0FBTyxJQUFJLFdBQVcsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBSU0sSUFBSSxDQUFDLFlBQTJCLEVBQUUsS0FBbUI7UUFDMUQsSUFBSSxPQUFPLFlBQVksS0FBSyxRQUFRLElBQUksS0FBSyxFQUFFLENBQUM7WUFDOUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDakQsQ0FBQzthQUFNLElBQUksWUFBWSxZQUFZLFdBQUksRUFBRSxDQUFD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QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxLQUFLLENBQUMsUUFBd0I7UUFDbkMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsUUFBUSxHQUFHLElBQUksNkNBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sTUFBTSxDQUFJLE9BQThCO1FBQzdDLE9BQU8sT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7Q0FDRjtBQWhIRCxrQ0FnSEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmRlbnRlZFF1ZXJ5UmVuZGVyZXIgfSBmcm9tIFwiLi4vcmVuZGVyZXIvSW5kZW50ZWRRdWVyeVJlbmRlcmVyXCI7XG5pbXBvcnQgeyBRdWVyeVJlbmRlcmVyIH0gZnJvbSBcIi4uL3JlbmRlcmVyL1F1ZXJ5UmVuZGVyZXJcIjtcbmltcG9ydCB7IFNxbFRyZWVOb2RlVmlzaXRvciB9IGZyb20gXCIuLi92aXNpdG9yL1NxbFRyZWVOb2RlVmlzaXRvclwiO1xuaW1wb3J0IHsgRXhwcmVzc2lvbiwgU3FsVHJlZU5vZGUgfSBmcm9tIFwiLi9BYnN0cmFjdGlvbnNcIjtcbmltcG9ydCB7IEFsaWFzIH0gZnJvbSBcIi4vQWxpYXNcIjtcbmltcG9ydCB7IENvbHVtbiwgQ29sdW1uTGlrZSB9IGZyb20gXCIuL0NvbHVtblwiO1xuaW1wb3J0IHsgRnJvbSwgRnJvbUxpa2UgfSBmcm9tIFwiLi9Gcm9tXCI7XG5pbXBvcnQgeyBKb2luLCBKb2luVHlwZSB9IGZyb20gXCIuL0pvaW5cIjtcbmltcG9ydCB7IE9yZGVyQnksIE9yZGVyQnlEaXJlY3Rpb24gfSBmcm9tIFwiLi9PcmRlckJ5XCI7XG5pbXBvcnQgeyBXaXRoIH0gZnJvbSBcIi4vV2l0aFwiO1xuXG4vLyBNYWluIGVudHJ5IHBvaW50IGZvciBidWlsZGluZyBTRUxFQ1QgcXVlcmllcyB3aXRoIGEgZmx1ZW50IEFQSS5cbmV4cG9ydCBjbGFzcyBTZWxlY3RRdWVyeSBpbXBsZW1lbnRzIFNxbFRyZWVOb2RlIHtcbiAgcHJpdmF0ZSBfZnJvbXNBbmRKb2luczogKEZyb21MaWtlIHwgSm9pbilbXSA9IFtdO1xuICBwcml2YXRlIF9jb2x1bW5zOiBDb2x1bW5MaWtlW10gPSBbXTtcbiAgcHJpdmF0ZSBfd2hlcmU6IEV4cHJlc3Npb24gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfZ3JvdXBCeTogQ29sdW1uW10gPSBbXTtcbiAgcHJpdmF0ZSBfaGF2aW5nOiBFeHByZXNzaW9uIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX3dpdGg6IFdpdGhbXSA9IFtdO1xuICBwcml2YXRlIF91bmlvbjogU2VsZWN0UXVlcnlbXSA9IFtdO1xuICBwcml2YXRlIF9vcmRlckJ5OiBPcmRlckJ5W10gPSBbXTtcbiAgcHJpdmF0ZSBfb2Zmc2V0PzogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2xpbWl0PzogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2Rpc3RpbmN0OiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGUoKTogU2VsZWN0UXVlcnkge1xuICAgIHJldHVybiBuZXcgU2VsZWN0UXVlcnkoKTtcbiAgfVxuXG4gIHB1YmxpYyBkaXN0aW5jdCgpOiBTZWxlY3RRdWVyeSB7XG4gICAgdGhpcy5fZGlzdGluY3QgPSB0cnVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHdpdGgoY2xhdXNlOiBXaXRoKTogU2VsZWN0UXVlcnk7XG4gIHB1YmxpYyB3aXRoKG5hbWU6IHN0cmluZywgcXVlcnk6IFNlbGVjdFF1ZXJ5KTogU2VsZWN0UXVlcnk7XG4gIHB1YmxpYyB3aXRoKG5hbWVPckNsYXVzZTogc3RyaW5nIHwgV2l0aCwgcXVlcnk/OiBTZWxlY3RRdWVyeSk6IFNlbGVjdFF1ZXJ5IHtcbiAgICBpZiAodHlwZW9mIG5hbWVPckNsYXVzZSA9PT0gJ3N0cmluZycgJiYgcXVlcnkpIHtcbiAgICAgIHRoaXMuX3dpdGgucHVzaChuZXcgV2l0aChuYW1lT3JDbGF1c2UsIHF1ZXJ5KSk7XG4gICAgfSBlbHNlIGlmIChuYW1lT3JDbGF1c2UgaW5zdGFuY2VvZiBXaXRoKSB7XG4gICAgICB0aGlzLl93aXRoLnB1c2gobmFtZU9yQ2xhdXNlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZnJvbShmcm9tQ2xhdXNlOiBGcm9tTGlrZSk6IFNlbGVjdFF1ZXJ5IHtcbiAgICB0aGlzLl9mcm9tc0FuZEpvaW5zLnB1c2goZnJvbUNsYXVzZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgY29sdW1uKGNvbHVtbjogQ29sdW1uTGlrZSk6IFNlbGVjdFF1ZXJ5IHtcbiAgICB0aGlzLl9jb2x1bW5zLnB1c2goY29sdW1uKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBqb2luKGpvaW46IEpvaW4pOiBTZWxlY3RRdWVyeTtcbiAgcHVibGljIGpvaW4odHlwZTogSm9pblR5cGUsIHRhYmxlTmFtZTogc3RyaW5nLCBhbGlhczogc3RyaW5nLCBvbjogRXhwcmVzc2lvbik6IFNlbGVjdFF1ZXJ5O1xuICBwdWJsaWMgam9pbih0eXBlT3JKb2luOiBKb2luIHwgSm9pblR5cGUsIHRhYmxlTmFtZT86IHN0cmluZywgYWxpYXM/OiBzdHJpbmcsIG9uPzogRXhwcmVzc2lvbik6IFNlbGVjdFF1ZXJ5IHtcbiAgICBpZiAodGhpcy5fZnJvbXNBbmRKb2lucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGFkZCBKT0lOIHdpdGhvdXQgYSBwcmVjZWRpbmcgRlJPTSBjbGF1c2UnKTtcbiAgICB9XG4gICAgY29uc3QgbGFzdENsYXVzZSA9IHRoaXMuX2Zyb21zQW5kSm9pbnNbdGhpcy5fZnJvbXNBbmRKb2lucy5sZW5ndGggLSAxXTtcbiAgICBpZiAoIShsYXN0Q2xhdXNlIGluc3RhbmNlb2YgRnJvbSB8fCBsYXN0Q2xhdXNlIGluc3RhbmNlb2YgQWxpYXMgfHwgbGFzdENsYXVzZSBpbnN0YW5jZW9mIEpvaW4pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0pPSU4gbXVzdCBmb2xsb3cgYSBGUk9NLCBhbiBBTElBUywgb3IgYW5vdGhlciBKT0lOIGNsYXVzZScpO1xuICAgIH1cbiAgICBpZiAoISh0eXBlT3JKb2luIGluc3RhbmNlb2YgSm9pbikpIHtcbiAgICAgIHR5cGVPckpvaW4gPSBuZXcgSm9pbih0eXBlT3JKb2luLCB0YWJsZU5hbWUhLCBhbGlhcyEsIG9uISk7XG4gICAgfVxuICAgIHRoaXMuX2Zyb21zQW5kSm9pbnMucHVzaCh0eXBlT3JKb2luKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyB3aGVyZSh3aGVyZUNsYXVzZTogRXhwcmVzc2lvbik6IFNlbGVjdFF1ZXJ5IHtcbiAgICB0aGlzLl93aGVyZSA9IHdoZXJlQ2xhdXNlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGdyb3VwQnkoLi4uY29sdW1uczogKHN0cmluZ3xDb2x1bW4pW10pOiBTZWxlY3RRdWVyeSB7XG4gICAgdGhpcy5fZ3JvdXBCeSA9IGNvbHVtbnMubWFwKGNvbCA9PiAodHlwZW9mIGNvbCA9PT0gJ3N0cmluZycgPyBuZXcgQ29sdW1uKGNvbCkgOiBjb2wpKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBoYXZpbmcoaGF2aW5nQ2xhdXNlOiBFeHByZXNzaW9uKTogU2VsZWN0UXVlcnkge1xuICAgIHRoaXMuX2hhdmluZyA9IGhhdmluZ0NsYXVzZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyB1bmlvbihxdWVyeTogU2VsZWN0UXVlcnkpOiBTZWxlY3RRdWVyeSB7XG4gICAgdGhpcy5fdW5pb24ucHVzaChxdWVyeSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgb3JkZXJCeShjb2x1bW46IHN0cmluZ3xFeHByZXNzaW9uLCBkaXJlY3Rpb246IE9yZGVyQnlEaXJlY3Rpb24pOiBTZWxlY3RRdWVyeSB7XG4gICAgaWYgKHR5cGVvZiBjb2x1bW4gPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb2x1bW4gPSBuZXcgQ29sdW1uKGNvbHVtbik7XG4gICAgfVxuICAgIHRoaXMuX29yZGVyQnkucHVzaChuZXcgT3JkZXJCeShjb2x1bW4sIGRpcmVjdGlvbikpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIG9mZnNldChvZmZzZXQ6IG51bWJlcik6IFNlbGVjdFF1ZXJ5IHtcbiAgICB0aGlzLl9vZmZzZXQgPSBvZmZzZXQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgbGltaXQobGltaXQ6IG51bWJlcik6IFNlbGVjdFF1ZXJ5IHtcbiAgICB0aGlzLl9saW1pdCA9IGxpbWl0O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHRvU1FMKHJlbmRlcmVyPzogUXVlcnlSZW5kZXJlcik6IHN0cmluZyB7XG4gICAgaWYgKCFyZW5kZXJlcikge1xuICAgICAgcmVuZGVyZXIgPSBuZXcgSW5kZW50ZWRRdWVyeVJlbmRlcmVyKDIpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hY2NlcHQocmVuZGVyZXIpO1xuICB9XG5cbiAgcHVibGljIGFjY2VwdDxUPih2aXNpdG9yOiBTcWxUcmVlTm9kZVZpc2l0b3I8VD4pOiBUIHtcbiAgICByZXR1cm4gdmlzaXRvci52aXNpdFNlbGVjdFF1ZXJ5KHRoaXMpO1xuICB9XG5cbiAgcHVibGljIGlzRGlzdGluY3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc3RpbmN0O1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { SqlTreeNodeVisitor } from "../visitor/SqlTreeNodeVisitor";
|
|
2
|
+
import { AliasableExpression, Expression } from "./Abstractions";
|
|
3
|
+
import { Operator } from "./Operator";
|
|
4
|
+
export declare class UnaryExpression extends AliasableExpression {
|
|
5
|
+
private _operator;
|
|
6
|
+
private _operand;
|
|
7
|
+
constructor(operator: Operator, operand: Expression);
|
|
8
|
+
get operator(): Operator;
|
|
9
|
+
get operand(): Expression;
|
|
10
|
+
accept<T>(visitor: SqlTreeNodeVisitor<T>): T;
|
|
11
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UnaryExpression = void 0;
|
|
4
|
+
const Abstractions_1 = require("./Abstractions");
|
|
5
|
+
class UnaryExpression extends Abstractions_1.AliasableExpression {
|
|
6
|
+
constructor(operator, operand) {
|
|
7
|
+
super();
|
|
8
|
+
this._operator = operator;
|
|
9
|
+
this._operand = operand;
|
|
10
|
+
}
|
|
11
|
+
get operator() {
|
|
12
|
+
return this._operator;
|
|
13
|
+
}
|
|
14
|
+
get operand() {
|
|
15
|
+
return this._operand;
|
|
16
|
+
}
|
|
17
|
+
accept(visitor) {
|
|
18
|
+
return visitor.visitUnaryExpression(this);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.UnaryExpression = UnaryExpression;
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVW5hcnlFeHByZXNzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FzdC9VbmFyeUV4cHJlc3Npb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaURBQWlFO0FBR2pFLE1BQWEsZUFBZ0IsU0FBUSxrQ0FBbUI7SUFLdEQsWUFBWSxRQUFrQixFQUFFLE9BQW1CO1FBQ2pELEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVNLE1BQU0sQ0FBSSxPQUE4QjtRQUM3QyxPQUFPLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0NBQ0Y7QUF0QkQsMENBc0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3FsVHJlZU5vZGVWaXNpdG9yIH0gZnJvbSBcIi4uL3Zpc2l0b3IvU3FsVHJlZU5vZGVWaXNpdG9yXCI7XG5pbXBvcnQgeyBBbGlhc2FibGVFeHByZXNzaW9uLCBFeHByZXNzaW9uIH0gZnJvbSBcIi4vQWJzdHJhY3Rpb25zXCI7XG5pbXBvcnQgeyBPcGVyYXRvciB9IGZyb20gXCIuL09wZXJhdG9yXCI7XG5cbmV4cG9ydCBjbGFzcyBVbmFyeUV4cHJlc3Npb24gZXh0ZW5kcyBBbGlhc2FibGVFeHByZXNzaW9uIHtcblxuICBwcml2YXRlIF9vcGVyYXRvcjogT3BlcmF0b3I7XG4gIHByaXZhdGUgX29wZXJhbmQ6IEV4cHJlc3Npb247XG5cbiAgY29uc3RydWN0b3Iob3BlcmF0b3I6IE9wZXJhdG9yLCBvcGVyYW5kOiBFeHByZXNzaW9uKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9vcGVyYXRvciA9IG9wZXJhdG9yO1xuICAgIHRoaXMuX29wZXJhbmQgPSBvcGVyYW5kO1xuICB9XG5cbiAgcHVibGljIGdldCBvcGVyYXRvcigpOiBPcGVyYXRvciB7XG4gICAgcmV0dXJuIHRoaXMuX29wZXJhdG9yO1xuICB9XG5cbiAgcHVibGljIGdldCBvcGVyYW5kKCk6IEV4cHJlc3Npb24ge1xuICAgIHJldHVybiB0aGlzLl9vcGVyYW5kO1xuICB9XG5cbiAgcHVibGljIGFjY2VwdDxUPih2aXNpdG9yOiBTcWxUcmVlTm9kZVZpc2l0b3I8VD4pOiBUIHtcbiAgICByZXR1cm4gdmlzaXRvci52aXNpdFVuYXJ5RXhwcmVzc2lvbih0aGlzKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { SqlTreeNodeVisitor } from "../visitor/SqlTreeNodeVisitor";
|
|
2
|
+
import { SqlTreeNode } from "./Abstractions";
|
|
3
|
+
import { SelectQuery } from "./SelectQuery";
|
|
4
|
+
export declare class With implements SqlTreeNode {
|
|
5
|
+
private _name;
|
|
6
|
+
private _query;
|
|
7
|
+
constructor(name: string, query: SelectQuery);
|
|
8
|
+
get name(): string;
|
|
9
|
+
get query(): SelectQuery;
|
|
10
|
+
accept<T>(visitor: SqlTreeNodeVisitor<T>): T;
|
|
11
|
+
}
|
package/dist/ast/With.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.With = void 0;
|
|
4
|
+
// Represents a WITH clause (common table expression) with a name and subquery
|
|
5
|
+
class With {
|
|
6
|
+
constructor(name, query) {
|
|
7
|
+
this._name = name;
|
|
8
|
+
this._query = query;
|
|
9
|
+
}
|
|
10
|
+
get name() {
|
|
11
|
+
return this._name;
|
|
12
|
+
}
|
|
13
|
+
get query() {
|
|
14
|
+
return this._query;
|
|
15
|
+
}
|
|
16
|
+
accept(visitor) {
|
|
17
|
+
return visitor.visitWithClause(this);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.With = With;
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2l0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hc3QvV2l0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSw4RUFBOEU7QUFDOUUsTUFBYSxJQUFJO0lBS2YsWUFBWSxJQUFZLEVBQUUsS0FBa0I7UUFDMUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFTSxNQUFNLENBQUksT0FBOEI7UUFDN0MsT0FBTyxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Q0FDRjtBQXJCRCxvQkFxQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTcWxUcmVlTm9kZVZpc2l0b3IgfSBmcm9tIFwiLi4vdmlzaXRvci9TcWxUcmVlTm9kZVZpc2l0b3JcIjtcbmltcG9ydCB7IFNxbFRyZWVOb2RlIH0gZnJvbSBcIi4vQWJzdHJhY3Rpb25zXCI7XG5pbXBvcnQgeyBTZWxlY3RRdWVyeSB9IGZyb20gXCIuL1NlbGVjdFF1ZXJ5XCI7XG5cbi8vIFJlcHJlc2VudHMgYSBXSVRIIGNsYXVzZSAoY29tbW9uIHRhYmxlIGV4cHJlc3Npb24pIHdpdGggYSBuYW1lIGFuZCBzdWJxdWVyeVxuZXhwb3J0IGNsYXNzIFdpdGggaW1wbGVtZW50cyBTcWxUcmVlTm9kZSB7XG5cbiAgcHJpdmF0ZSBfbmFtZTogc3RyaW5nO1xuICBwcml2YXRlIF9xdWVyeTogU2VsZWN0UXVlcnk7XG5cbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCBxdWVyeTogU2VsZWN0UXVlcnkpIHtcbiAgICB0aGlzLl9uYW1lID0gbmFtZTtcbiAgICB0aGlzLl9xdWVyeSA9IHF1ZXJ5O1xuICB9XG5cbiAgcHVibGljIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX25hbWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHF1ZXJ5KCk6IFNlbGVjdFF1ZXJ5IHtcbiAgICByZXR1cm4gdGhpcy5fcXVlcnk7XG4gIH1cblxuICBwdWJsaWMgYWNjZXB0PFQ+KHZpc2l0b3I6IFNxbFRyZWVOb2RlVmlzaXRvcjxUPik6IFQge1xuICAgIHJldHVybiB2aXNpdG9yLnZpc2l0V2l0aENsYXVzZSh0aGlzKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { SelectQuery } from "../ast/SelectQuery";
|
|
2
|
+
import { InsertQuery } from "../ast/InsertQuery";
|
|
3
|
+
import { SqlTreeNode } from "../ast/Abstractions";
|
|
4
|
+
export declare class QueryBuilder {
|
|
5
|
+
static select(): SelectQuery;
|
|
6
|
+
static insertInto(tableName: string): InsertQuery;
|
|
7
|
+
static clone(node: SqlTreeNode): SqlTreeNode;
|
|
8
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.QueryBuilder = void 0;
|
|
4
|
+
const SelectQuery_1 = require("../ast/SelectQuery");
|
|
5
|
+
const InsertQuery_1 = require("../ast/InsertQuery");
|
|
6
|
+
const QueryIdentityTransformer_1 = require("../visitor/QueryIdentityTransformer");
|
|
7
|
+
class QueryBuilder {
|
|
8
|
+
static select() {
|
|
9
|
+
return new SelectQuery_1.SelectQuery();
|
|
10
|
+
}
|
|
11
|
+
static insertInto(tableName) {
|
|
12
|
+
return new InsertQuery_1.InsertQuery(tableName);
|
|
13
|
+
}
|
|
14
|
+
static clone(node) {
|
|
15
|
+
const transformer = new QueryIdentityTransformer_1.QueryIdentityTransformer();
|
|
16
|
+
return transformer.transform(node);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.QueryBuilder = QueryBuilder;
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUXVlcnlCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2J1aWxkZXIvUXVlcnlCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9EQUFpRDtBQUNqRCxvREFBaUQ7QUFFakQsa0ZBQStFO0FBRS9FLE1BQWEsWUFBWTtJQUVoQixNQUFNLENBQUMsTUFBTTtRQUNsQixPQUFPLElBQUkseUJBQVcsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTSxNQUFNLENBQUMsVUFBVSxDQUFDLFNBQWlCO1FBQ3hDLE9BQU8sSUFBSSx5QkFBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxNQUFNLENBQUMsS0FBSyxDQUFDLElBQWdCO1FBQ2xDLE1BQU0sV0FBVyxHQUFHLElBQUksbURBQXdCLEVBQUUsQ0FBQztRQUNuRCxPQUFPLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNGO0FBZEQsb0NBY0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWxlY3RRdWVyeSB9IGZyb20gXCIuLi9hc3QvU2VsZWN0UXVlcnlcIjtcbmltcG9ydCB7IEluc2VydFF1ZXJ5IH0gZnJvbSBcIi4uL2FzdC9JbnNlcnRRdWVyeVwiO1xuaW1wb3J0IHsgU3FsVHJlZU5vZGUgfSBmcm9tIFwiLi4vYXN0L0Fic3RyYWN0aW9uc1wiO1xuaW1wb3J0IHsgUXVlcnlJZGVudGl0eVRyYW5zZm9ybWVyIH0gZnJvbSBcIi4uL3Zpc2l0b3IvUXVlcnlJZGVudGl0eVRyYW5zZm9ybWVyXCI7XG5cbmV4cG9ydCBjbGFzcyBRdWVyeUJ1aWxkZXIge1xuXG4gIHB1YmxpYyBzdGF0aWMgc2VsZWN0KCk6IFNlbGVjdFF1ZXJ5IHtcbiAgICByZXR1cm4gbmV3IFNlbGVjdFF1ZXJ5KCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGluc2VydEludG8odGFibGVOYW1lOiBzdHJpbmcpOiBJbnNlcnRRdWVyeSB7XG4gICAgcmV0dXJuIG5ldyBJbnNlcnRRdWVyeSh0YWJsZU5hbWUpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjbG9uZShub2RlOlNxbFRyZWVOb2RlKTpTcWxUcmVlTm9kZSB7XG4gICAgY29uc3QgdHJhbnNmb3JtZXIgPSBuZXcgUXVlcnlJZGVudGl0eVRyYW5zZm9ybWVyKCk7XG4gICAgcmV0dXJuIHRyYW5zZm9ybWVyLnRyYW5zZm9ybShub2RlKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { AliasableExpression, Expression } from "../ast/Abstractions";
|
|
2
|
+
import { Alias } from "../ast/Alias";
|
|
3
|
+
import { BinaryExpression } from "../ast/BinaryExpression";
|
|
4
|
+
import { CaseExpression } from "../ast/CaseExpression";
|
|
5
|
+
import { Column, ColumnLike } from "../ast/Column";
|
|
6
|
+
import { Concat } from "../ast/Concat";
|
|
7
|
+
import { ExistsExpression } from "../ast/ExistsExpression";
|
|
8
|
+
import { From, FromLike } from "../ast/From";
|
|
9
|
+
import { FunctionExpression } from "../ast/FunctionExpression";
|
|
10
|
+
import { FunctionName } from "../ast/FunctionName";
|
|
11
|
+
import { InExpression } from "../ast/InExpression";
|
|
12
|
+
import { InsertQuery } from "../ast/InsertQuery";
|
|
13
|
+
import { Join } from "../ast/Join";
|
|
14
|
+
import { Param } from "../ast/Literals";
|
|
15
|
+
import { OrderBy, OrderByDirection } from "../ast/OrderBy";
|
|
16
|
+
import { SelectQuery } from "../ast/SelectQuery";
|
|
17
|
+
import { UnaryExpression } from "../ast/UnaryExpression";
|
|
18
|
+
import { With } from "../ast/With";
|
|
19
|
+
type PrimitiveValue = string | number | boolean | null;
|
|
20
|
+
type LazyExpression = Expression | PrimitiveValue;
|
|
21
|
+
type LazyCaseItem = {
|
|
22
|
+
WHEN?: LazyExpression;
|
|
23
|
+
THEN?: LazyExpression;
|
|
24
|
+
ELSE?: LazyExpression;
|
|
25
|
+
};
|
|
26
|
+
type LazyFrom = string | From | Alias<From> | SelectQuery;
|
|
27
|
+
type LazyColumn = ColumnLike | PrimitiveValue;
|
|
28
|
+
export declare function VAL(val: PrimitiveValue): AliasableExpression;
|
|
29
|
+
export declare function EQ(left: LazyExpression, right: LazyExpression): BinaryExpression;
|
|
30
|
+
export declare function NOT_EQ(left: LazyExpression, right: LazyExpression): BinaryExpression;
|
|
31
|
+
export declare function NOT(expr: LazyExpression): UnaryExpression;
|
|
32
|
+
export declare function GT(left: LazyExpression, right: LazyExpression): BinaryExpression;
|
|
33
|
+
export declare function LT(left: LazyExpression, right: LazyExpression): BinaryExpression;
|
|
34
|
+
export declare function GTE(left: LazyExpression, right: LazyExpression): BinaryExpression;
|
|
35
|
+
export declare function LTE(left: LazyExpression, right: LazyExpression): BinaryExpression;
|
|
36
|
+
export declare function LIKE(left: LazyExpression, right: LazyExpression): BinaryExpression;
|
|
37
|
+
export declare function IS_NULL(expr: LazyExpression): UnaryExpression;
|
|
38
|
+
export declare function IS_NOT_NULL(expr: LazyExpression): UnaryExpression;
|
|
39
|
+
export declare function PLUS(left: LazyExpression, right?: LazyExpression): AliasableExpression;
|
|
40
|
+
export declare function MINUS(left: LazyExpression, right?: LazyExpression): AliasableExpression;
|
|
41
|
+
export declare function MULTIPLY(left: LazyExpression, right: LazyExpression): BinaryExpression;
|
|
42
|
+
export declare function DIVIDE(left: LazyExpression, right: LazyExpression): BinaryExpression;
|
|
43
|
+
export declare function AND(...args: LazyExpression[]): AliasableExpression;
|
|
44
|
+
export declare function OR(...args: LazyExpression[]): AliasableExpression;
|
|
45
|
+
export declare function EXISTS(subquery: SelectQuery): ExistsExpression;
|
|
46
|
+
export declare function COLUMN(arg1: string, arg2?: string): Column;
|
|
47
|
+
export declare function SELECT(...args: (FromLike | Join | LazyColumn)[]): SelectQuery;
|
|
48
|
+
export declare function SELECT_DISTINCT(...args: (FromLike | Join | LazyColumn)[]): SelectQuery;
|
|
49
|
+
export declare function FROM(arg1: LazyFrom, arg2?: string): From | Alias<From>;
|
|
50
|
+
export declare function UNION(...queries: SelectQuery[]): SelectQuery;
|
|
51
|
+
export declare function JOIN(tableName: string, alias: string, on: LazyExpression): Join;
|
|
52
|
+
export declare function LEFT_JOIN(tableName: string, alias: string, on: LazyExpression): Join;
|
|
53
|
+
export declare function CROSS_JOIN(tableName: string, alias: string): Join;
|
|
54
|
+
export declare function ABS(column: Expression): FunctionExpression;
|
|
55
|
+
export declare function COUNT(column: Column | FunctionExpression | AliasableExpression): FunctionExpression;
|
|
56
|
+
export declare function SUM(column: Column | FunctionExpression | AliasableExpression): FunctionExpression;
|
|
57
|
+
export declare function FN(name: FunctionName, ...args: LazyExpression[]): FunctionExpression;
|
|
58
|
+
export declare function FN_DISTINCT(name: FunctionName, ...args: LazyExpression[]): FunctionExpression;
|
|
59
|
+
export declare function CONCAT(...args: LazyExpression[]): Concat;
|
|
60
|
+
export declare function PARAM(name?: string): Param;
|
|
61
|
+
export declare function INSERT(tableName: string, columns: string[], values: LazyExpression[]): InsertQuery;
|
|
62
|
+
export declare function INSERT_OR_REPLACE(database: string, table: string, columns: string[], values: LazyExpression[]): InsertQuery;
|
|
63
|
+
export declare function INSERT_OR_REPLACE(tableName: string, columns: string[], values: LazyExpression[]): InsertQuery;
|
|
64
|
+
export declare function IN(left: LazyExpression, ...values: LazyExpression[]): InExpression;
|
|
65
|
+
export declare function IN(left: LazyExpression, values: SelectQuery): InExpression;
|
|
66
|
+
export declare function IN(left: LazyExpression[], values: LazyExpression[][]): InExpression;
|
|
67
|
+
export declare function IN(left: LazyExpression[], values: SelectQuery): InExpression;
|
|
68
|
+
export declare function NOT_IN(left: LazyExpression, ...values: LazyExpression[]): InExpression;
|
|
69
|
+
export declare function NOT_IN(left: LazyExpression, values: SelectQuery): InExpression;
|
|
70
|
+
export declare function NOT_IN(left: LazyExpression[], values: LazyExpression[][]): InExpression;
|
|
71
|
+
export declare function NOT_IN(left: LazyExpression[], values: SelectQuery): InExpression;
|
|
72
|
+
export declare function GROUP_BY(...columns: (Column | string)[]): Column[];
|
|
73
|
+
export declare function HAVING(expr: LazyExpression): Expression;
|
|
74
|
+
export declare function ORDER_BY(column: Column | string, direction?: OrderByDirection): OrderBy;
|
|
75
|
+
export declare function CASE(lazyCases: LazyCaseItem[]): CaseExpression;
|
|
76
|
+
export declare function WITH(name: string, query: SelectQuery): With;
|
|
77
|
+
export {};
|