typhex 0.1.0-alpha.1 → 0.1.0-alpha.2
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/CHANGELOG.md +11 -0
- package/README.md +1 -1
- package/dist/arrow/aggregates.d.ts +5 -1
- package/dist/arrow/aggregates.d.ts.map +1 -1
- package/dist/arrow/aggregates.js +23 -1
- package/dist/arrow/aggregates.js.map +1 -1
- package/dist/arrow/index.d.ts +7 -3
- package/dist/arrow/index.d.ts.map +1 -1
- package/dist/arrow/index.js +24 -3
- package/dist/arrow/index.js.map +1 -1
- package/dist/dbs/base-migrator.d.ts +0 -1
- package/dist/dbs/base-migrator.d.ts.map +1 -1
- package/dist/dbs/base-migrator.js +5 -7
- package/dist/dbs/base-migrator.js.map +1 -1
- package/dist/dbs/postgres/driver.d.ts.map +1 -1
- package/dist/dbs/postgres/driver.js +3 -0
- package/dist/dbs/postgres/driver.js.map +1 -1
- package/dist/dbs/postgres/query-compiler.d.ts +6 -2
- package/dist/dbs/postgres/query-compiler.d.ts.map +1 -1
- package/dist/dbs/postgres/query-compiler.js +11 -11
- package/dist/dbs/postgres/query-compiler.js.map +1 -1
- package/dist/dbs/query-compiler.d.ts +13 -13
- package/dist/dbs/query-compiler.d.ts.map +1 -1
- package/dist/dbs/query-compiler.js +11 -37
- package/dist/dbs/query-compiler.js.map +1 -1
- package/dist/dbs/sqlite/index.d.ts +2 -2
- package/dist/dbs/sqlite/index.d.ts.map +1 -1
- package/dist/dbs/sqlite/index.js +1 -1
- package/dist/dbs/sqlite/index.js.map +1 -1
- package/dist/dbs/sqlite/query-compiler.d.ts +4 -1
- package/dist/dbs/sqlite/query-compiler.d.ts.map +1 -1
- package/dist/dbs/sqlite/query-compiler.js +11 -2
- package/dist/dbs/sqlite/query-compiler.js.map +1 -1
- package/dist/dbs/types.d.ts +5 -11
- package/dist/dbs/types.d.ts.map +1 -1
- package/dist/dbs/types.js +1 -1
- package/dist/dbs/types.js.map +1 -1
- package/dist/driver/compile-only.d.ts +8 -0
- package/dist/driver/compile-only.d.ts.map +1 -0
- package/dist/driver/compile-only.js +26 -0
- package/dist/driver/compile-only.js.map +1 -0
- package/dist/driver/sqlite.d.ts.map +1 -1
- package/dist/driver/sqlite.js +3 -0
- package/dist/driver/sqlite.js.map +1 -1
- package/dist/entity/entity.d.ts +1 -1
- package/dist/entity/entity.d.ts.map +1 -1
- package/dist/entity/entity.js +14 -11
- package/dist/entity/entity.js.map +1 -1
- package/dist/entity/global-driver.d.ts +5 -3
- package/dist/entity/global-driver.d.ts.map +1 -1
- package/dist/entity/global-driver.js +51 -2
- package/dist/entity/global-driver.js.map +1 -1
- package/dist/entity/index.d.ts +1 -1
- package/dist/entity/index.d.ts.map +1 -1
- package/dist/entity/index.js +1 -1
- package/dist/entity/index.js.map +1 -1
- package/dist/entity/pk-columns.d.ts +0 -2
- package/dist/entity/pk-columns.d.ts.map +1 -1
- package/dist/entity/pk-columns.js +2 -10
- package/dist/entity/pk-columns.js.map +1 -1
- package/dist/entity/relations.d.ts +0 -4
- package/dist/entity/relations.d.ts.map +1 -1
- package/dist/entity/relations.js.map +1 -1
- package/dist/index.d.ts +3 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/migration/cli.js +120 -117
- package/dist/migration/cli.js.map +1 -1
- package/dist/migration/index.d.ts +1 -1
- package/dist/migration/index.d.ts.map +1 -1
- package/dist/migration/runner.d.ts +2 -6
- package/dist/migration/runner.d.ts.map +1 -1
- package/dist/migration/runner.js +1 -3
- package/dist/migration/runner.js.map +1 -1
- package/dist/migration/types.d.ts +0 -5
- package/dist/migration/types.d.ts.map +1 -1
- package/dist/orm/db.d.ts +16 -10
- package/dist/orm/db.d.ts.map +1 -1
- package/dist/orm/db.js +37 -9
- package/dist/orm/db.js.map +1 -1
- package/dist/orm/helpers/insert-graph/insert-graph-batch-executor.d.ts +2 -2
- package/dist/orm/helpers/insert-graph/insert-graph-batch-executor.d.ts.map +1 -1
- package/dist/orm/helpers/insert-graph/insert-graph-batch-executor.js.map +1 -1
- package/dist/orm/helpers/insert-graph/insert-graph-executor.d.ts +3 -3
- package/dist/orm/helpers/insert-graph/insert-graph-executor.d.ts.map +1 -1
- package/dist/orm/helpers/insert-graph/insert-graph-executor.js.map +1 -1
- package/dist/orm/helpers/insert-graph/insert-graph-planner.d.ts +3 -3
- package/dist/orm/helpers/insert-graph/insert-graph-planner.d.ts.map +1 -1
- package/dist/orm/helpers/insert-graph/insert-graph-planner.js +1 -1
- package/dist/orm/helpers/insert-graph/insert-graph-planner.js.map +1 -1
- package/dist/orm/helpers/insert-graph/insert-graph-sequential-executor.d.ts +2 -2
- package/dist/orm/helpers/insert-graph/insert-graph-sequential-executor.d.ts.map +1 -1
- package/dist/orm/helpers/insert-graph/insert-graph-sequential-executor.js.map +1 -1
- package/dist/orm/helpers/insert-graph/sequence-id-assigner.d.ts +2 -2
- package/dist/orm/helpers/insert-graph/sequence-id-assigner.d.ts.map +1 -1
- package/dist/orm/helpers/insert-graph/sequence-id-assigner.js.map +1 -1
- package/dist/orm/helpers/query-plan/query-plan.d.ts +19 -11
- package/dist/orm/helpers/query-plan/query-plan.d.ts.map +1 -1
- package/dist/orm/helpers/query-plan/query-plan.js +24 -4
- package/dist/orm/helpers/query-plan/query-plan.js.map +1 -1
- package/dist/orm/helpers/relations/relation-assembler.d.ts.map +1 -1
- package/dist/orm/helpers/relations/relation-assembler.js +14 -5
- package/dist/orm/helpers/relations/relation-assembler.js.map +1 -1
- package/dist/orm/helpers/relations/relation-fetcher.d.ts +20 -0
- package/dist/orm/helpers/relations/relation-fetcher.d.ts.map +1 -1
- package/dist/orm/helpers/relations/relation-fetcher.js +106 -23
- package/dist/orm/helpers/relations/relation-fetcher.js.map +1 -1
- package/dist/orm/index.d.ts +1 -1
- package/dist/orm/index.d.ts.map +1 -1
- package/dist/orm/index.js +1 -1
- package/dist/orm/index.js.map +1 -1
- package/dist/orm/insert-builder.d.ts +37 -0
- package/dist/orm/insert-builder.d.ts.map +1 -0
- package/dist/orm/insert-builder.js +134 -0
- package/dist/orm/insert-builder.js.map +1 -0
- package/dist/orm/query-builder.d.ts +51 -52
- package/dist/orm/query-builder.d.ts.map +1 -1
- package/dist/orm/query-builder.js +197 -223
- package/dist/orm/query-builder.js.map +1 -1
- package/dist/orm/query-execution-context.d.ts +5 -0
- package/dist/orm/query-execution-context.d.ts.map +1 -0
- package/dist/orm/query-execution-context.js +16 -0
- package/dist/orm/query-execution-context.js.map +1 -0
- package/dist/orm/query-helpers.d.ts.map +1 -1
- package/dist/orm/query-helpers.js +1 -1
- package/dist/orm/query-helpers.js.map +1 -1
- package/dist/orm/query-state.d.ts +10 -6
- package/dist/orm/query-state.d.ts.map +1 -1
- package/dist/orm/query-state.js.map +1 -1
- package/dist/orm/statement.d.ts +33 -0
- package/dist/orm/statement.d.ts.map +1 -0
- package/dist/orm/statement.js +31 -0
- package/dist/orm/statement.js.map +1 -0
- package/dist/parser/group-by.d.ts.map +1 -1
- package/dist/parser/group-by.js +2 -1
- package/dist/parser/group-by.js.map +1 -1
- package/dist/parser/predicate-walk.d.ts.map +1 -1
- package/dist/parser/predicate-walk.js +12 -32
- package/dist/parser/predicate-walk.js.map +1 -1
- package/dist/parser/resolve.js +1 -1
- package/dist/parser/resolve.js.map +1 -1
- package/dist/parser/select.js +3 -3
- package/dist/parser/select.js.map +1 -1
- package/dist/schema/column-definition.d.ts +10 -0
- package/dist/schema/column-definition.d.ts.map +1 -0
- package/dist/schema/column-definition.js +13 -0
- package/dist/schema/column-definition.js.map +1 -0
- package/dist/transformer/ir-emit.d.ts.map +1 -1
- package/dist/transformer/ir-emit.js +3 -0
- package/dist/transformer/ir-emit.js.map +1 -1
- package/dist/transformer/select-transformer.d.ts.map +1 -1
- package/dist/transformer/select-transformer.js +18 -0
- package/dist/transformer/select-transformer.js.map +1 -1
- package/dist/transformer/ts-aggregates.d.ts.map +1 -1
- package/dist/transformer/ts-aggregates.js +9 -14
- package/dist/transformer/ts-aggregates.js.map +1 -1
- package/dist/transformer/where-transformer.d.ts.map +1 -1
- package/dist/transformer/where-transformer.js +15 -24
- package/dist/transformer/where-transformer.js.map +1 -1
- package/docs/guide/entities-relations.md +12 -3
- package/docs/guide/getting-started.md +10 -3
- package/docs/public-api.md +6 -6
- package/docs/reference/api.md +14 -6
- package/docs/reference/architecture.md +11 -3
- package/etc/typhex.api.md +59 -59
- package/package.json +2 -2
- package/dist/dbs/sqlite/driver.d.ts +0 -9
- package/dist/dbs/sqlite/driver.d.ts.map +0 -1
- package/dist/dbs/sqlite/driver.js +0 -66
- package/dist/dbs/sqlite/driver.js.map +0 -1
- package/dist/schema/index.d.ts +0 -2
- package/dist/schema/index.d.ts.map +0 -1
- package/dist/schema/index.js +0 -2
- package/dist/schema/index.js.map +0 -1
- package/dist/schema/types.d.ts +0 -16
- package/dist/schema/types.d.ts.map +0 -1
- package/dist/schema/types.js +0 -40
- package/dist/schema/types.js.map +0 -1
|
@@ -1,43 +1,37 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Query
|
|
3
|
-
* Provides both query (select, count) and mutation (insert, update, delete)
|
|
4
|
-
* methods. All methods that hit the database return Promises
|
|
5
|
-
* (except insert, which is synchronous to support save()).
|
|
2
|
+
* Query clauses and terminals for selecting and mutating entity rows.
|
|
6
3
|
*/
|
|
7
4
|
import { isIrOrderBy, } from "../ir/types.js";
|
|
8
5
|
import { resolveWhereIr, resolveHavingIr, resolveJoinOnIr, resolveOrderBy, resolveSelectIr, resolveGroupByPaths, resolveJoinKeys, resolveUpdateSet, } from "../parser/resolve.js";
|
|
9
6
|
import { RelationResolver } from "./helpers/relations/relation-resolver.js";
|
|
7
|
+
import { RelationFetchCompiler } from "./helpers/relations/relation-fetcher.js";
|
|
10
8
|
import { buildFindByIdIr, pkToRecord } from "./query-helpers.js";
|
|
11
|
-
import {
|
|
9
|
+
import { getQueryCompilerOrThrow } from "./helpers/query-plan/query-plan.js";
|
|
12
10
|
import { InsertGraphPlanner } from "./helpers/insert-graph/insert-graph-planner.js";
|
|
13
11
|
import { QueryState } from "./query-state.js";
|
|
12
|
+
import { DEFAULT_ROW_PARAM } from "../arrow/constants.js";
|
|
13
|
+
import { buildQueryPlan, logSql } from "./query-execution-context.js";
|
|
14
|
+
import { InsertBuilder } from "./insert-builder.js";
|
|
15
|
+
import { Statement } from "./statement.js";
|
|
16
|
+
export { InsertBuilder } from "./insert-builder.js";
|
|
17
|
+
export { Statement } from "./statement.js";
|
|
14
18
|
/** C = entity; T = row shape; Ctes = registered CTE names → row types; FromKind = table vs CTE read. */
|
|
15
19
|
export class QueryBuilder {
|
|
16
|
-
/** @internal */
|
|
17
|
-
static isDebugSqlEnabled = (() => {
|
|
18
|
-
const debugFlag = process?.env?.TYPHEX_DEBUG;
|
|
19
|
-
return debugFlag === "1" || debugFlag === "true" || debugFlag === "yes";
|
|
20
|
-
})();
|
|
21
20
|
/** @internal */
|
|
22
21
|
state;
|
|
23
22
|
/** @internal */
|
|
24
23
|
constructor(state) {
|
|
25
24
|
this.state = state instanceof QueryState ? state : new QueryState(state);
|
|
26
25
|
}
|
|
27
|
-
/** Return a
|
|
28
|
-
* so chained calls do not mutate the original. */
|
|
26
|
+
/** Return a copy of this builder whose mutable query state is independent. */
|
|
29
27
|
clone() {
|
|
30
28
|
return new QueryBuilder(this.state.clone());
|
|
31
29
|
}
|
|
32
|
-
/** @internal — Print the SQL and parameters to stdout when TYPHEX_DEBUG is enabled. */
|
|
33
|
-
logSql(sql, params) {
|
|
34
|
-
console.log("[typhex]", sql);
|
|
35
|
-
if (params.length > 0)
|
|
36
|
-
console.log("[typhex] params:", params);
|
|
37
|
-
}
|
|
38
|
-
/** @internal */
|
|
39
30
|
buildPlan(operation) {
|
|
40
|
-
return
|
|
31
|
+
return buildQueryPlan(this.state, operation);
|
|
32
|
+
}
|
|
33
|
+
logSql(sql, params) {
|
|
34
|
+
logSql(sql, params);
|
|
41
35
|
}
|
|
42
36
|
requirePkColumns(context) {
|
|
43
37
|
if (this.state.pkColumns.length === 0) {
|
|
@@ -50,7 +44,7 @@ export class QueryBuilder {
|
|
|
50
44
|
const subqueryParams = {};
|
|
51
45
|
for (const [key, value] of Object.entries(params ?? {})) {
|
|
52
46
|
if (value instanceof QueryBuilder) {
|
|
53
|
-
subqueryParams[key] = { state: value.state };
|
|
47
|
+
subqueryParams[key] = { state: value.state.clone() };
|
|
54
48
|
}
|
|
55
49
|
else {
|
|
56
50
|
sqlParams[key] = value;
|
|
@@ -59,18 +53,25 @@ export class QueryBuilder {
|
|
|
59
53
|
return { sqlParams, subqueryParams };
|
|
60
54
|
}
|
|
61
55
|
where(predicate, params) {
|
|
56
|
+
const next = this.clone();
|
|
62
57
|
const { sqlParams, subqueryParams } = QueryBuilder.splitParams(params);
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
58
|
+
const previousWhere = next.state.whereIr;
|
|
59
|
+
next.state.whereIr = resolveWhereIr(predicate, params ? Object.keys(params) : [], Object.keys(subqueryParams));
|
|
60
|
+
next.state.whereParams = sqlParams;
|
|
61
|
+
next.replacePredicateSubqueries(previousWhere, subqueryParams, [
|
|
62
|
+
next.state.havingIr,
|
|
63
|
+
next.state.orderBy,
|
|
64
|
+
next.state.selectIr,
|
|
65
|
+
]);
|
|
66
|
+
return next;
|
|
67
67
|
}
|
|
68
68
|
orderBy(colOrIr, second = "asc") {
|
|
69
|
+
const next = this.clone();
|
|
69
70
|
if (isIrOrderBy(colOrIr)) {
|
|
70
|
-
return
|
|
71
|
+
return next.addOrderByIr(colOrIr, typeof second === "object" ? second : null);
|
|
71
72
|
}
|
|
72
73
|
const direction = typeof second === "string" ? second : "asc";
|
|
73
|
-
return
|
|
74
|
+
return next.addOrderByInput(colOrIr, direction);
|
|
74
75
|
}
|
|
75
76
|
addOrderByIr(ir, params) {
|
|
76
77
|
this.addInlineParams(params);
|
|
@@ -107,16 +108,17 @@ export class QueryBuilder {
|
|
|
107
108
|
return this.addJoin(keysOrFnOrEntity, onFn, "full");
|
|
108
109
|
}
|
|
109
110
|
addJoin(keysOrFnOrEntity, onFn, joinType) {
|
|
111
|
+
const next = this.clone();
|
|
110
112
|
if (QueryBuilder.isEntityClass(keysOrFnOrEntity)) {
|
|
111
113
|
if (!onFn) {
|
|
112
114
|
throw new Error(`${joinType}Join(entity): ON callback is required`);
|
|
113
115
|
}
|
|
114
116
|
const onIr = resolveJoinOnIr(joinType, onFn);
|
|
115
|
-
|
|
116
|
-
...(
|
|
117
|
+
next.state.entityJoinHints = [
|
|
118
|
+
...(next.state.entityJoinHints ?? []),
|
|
117
119
|
{ joinType, entity: keysOrFnOrEntity, onIr },
|
|
118
120
|
];
|
|
119
|
-
return
|
|
121
|
+
return next;
|
|
120
122
|
}
|
|
121
123
|
return this.addJoinHints(keysOrFnOrEntity, joinType);
|
|
122
124
|
}
|
|
@@ -127,20 +129,23 @@ export class QueryBuilder {
|
|
|
127
129
|
return typeof cls.table?._table === "string";
|
|
128
130
|
}
|
|
129
131
|
addJoinHints(keysOrFn, joinType) {
|
|
132
|
+
const next = this.clone();
|
|
130
133
|
const relationKeys = resolveJoinKeys(keysOrFn);
|
|
131
134
|
const newHints = relationKeys.map((k) => ({ relationKey: k, joinType }));
|
|
132
|
-
|
|
133
|
-
return
|
|
135
|
+
next.state.joinHints = [...(next.state.joinHints ?? []), ...newHints];
|
|
136
|
+
return next;
|
|
134
137
|
}
|
|
135
138
|
/** Set the maximum number of rows to return. */
|
|
136
139
|
limit(n) {
|
|
137
|
-
|
|
138
|
-
|
|
140
|
+
const next = this.clone();
|
|
141
|
+
next.state.limitNum = n;
|
|
142
|
+
return next;
|
|
139
143
|
}
|
|
140
144
|
/** Set the number of rows to skip before returning results. */
|
|
141
145
|
offset(n) {
|
|
142
|
-
|
|
143
|
-
|
|
146
|
+
const next = this.clone();
|
|
147
|
+
next.state.offsetNum = n;
|
|
148
|
+
return next;
|
|
144
149
|
}
|
|
145
150
|
withCte(name, subqueryOrBuild) {
|
|
146
151
|
const next = this.clone();
|
|
@@ -187,35 +192,75 @@ export class QueryBuilder {
|
|
|
187
192
|
return next;
|
|
188
193
|
}
|
|
189
194
|
select(columnsOrIr, params = null) {
|
|
190
|
-
const
|
|
191
|
-
|
|
192
|
-
|
|
195
|
+
const next = this.clone();
|
|
196
|
+
const paramKeys = next.addInlineParams(params);
|
|
197
|
+
next.state.selectIr = resolveSelectIr(columnsOrIr, paramKeys);
|
|
198
|
+
return next;
|
|
193
199
|
}
|
|
194
200
|
/** Adds a GROUP BY clause. Accepts column names, index numbers, or an arrow function selecting group-by fields. */
|
|
195
201
|
groupBy(columnOrFn, ...rest) {
|
|
202
|
+
const next = this.clone();
|
|
196
203
|
const entries = resolveGroupByPaths(columnOrFn, ...rest);
|
|
197
|
-
const nextSelectIr =
|
|
204
|
+
const nextSelectIr = next.state.selectIr ?? { param: DEFAULT_ROW_PARAM, paths: [] };
|
|
198
205
|
const memberPaths = entries.filter((e) => Array.isArray(e));
|
|
199
|
-
|
|
206
|
+
next.state.selectIr = {
|
|
200
207
|
...nextSelectIr,
|
|
201
208
|
paths: nextSelectIr.paths.length > 0 ? nextSelectIr.paths : memberPaths,
|
|
202
209
|
groupBy: entries,
|
|
203
210
|
};
|
|
204
|
-
return
|
|
211
|
+
return next;
|
|
205
212
|
}
|
|
206
213
|
having(predicate, params) {
|
|
214
|
+
const next = this.clone();
|
|
207
215
|
const { sqlParams, subqueryParams } = QueryBuilder.splitParams(params);
|
|
216
|
+
const previousHaving = next.state.havingIr;
|
|
217
|
+
next.state.havingIr = resolveHavingIr(predicate, params ? Object.keys(params) : [], Object.keys(subqueryParams));
|
|
218
|
+
next.state.havingParams = sqlParams;
|
|
219
|
+
next.replacePredicateSubqueries(previousHaving, subqueryParams, [
|
|
220
|
+
next.state.whereIr,
|
|
221
|
+
next.state.orderBy,
|
|
222
|
+
next.state.selectIr,
|
|
223
|
+
]);
|
|
224
|
+
return next;
|
|
225
|
+
}
|
|
226
|
+
replacePredicateSubqueries(previousPredicate, subqueryParams, otherIr) {
|
|
227
|
+
const previousKeys = QueryBuilder.collectSubqueryRefs(previousPredicate);
|
|
228
|
+
const retainedKeys = QueryBuilder.collectSubqueryRefs(otherIr);
|
|
229
|
+
for (const key of previousKeys) {
|
|
230
|
+
if (!retainedKeys.has(key))
|
|
231
|
+
delete this.state.subqueryParams[key];
|
|
232
|
+
}
|
|
208
233
|
Object.assign(this.state.subqueryParams, subqueryParams);
|
|
209
|
-
this.state.havingIr = resolveHavingIr(predicate, params ? Object.keys(params) : [], Object.keys(subqueryParams));
|
|
210
|
-
this.state.havingParams = sqlParams;
|
|
211
|
-
return this;
|
|
212
234
|
}
|
|
213
|
-
|
|
235
|
+
static collectSubqueryRefs(value, refs = new Set()) {
|
|
236
|
+
if (Array.isArray(value)) {
|
|
237
|
+
for (const item of value)
|
|
238
|
+
QueryBuilder.collectSubqueryRefs(item, refs);
|
|
239
|
+
return refs;
|
|
240
|
+
}
|
|
241
|
+
if (value == null || typeof value !== "object")
|
|
242
|
+
return refs;
|
|
243
|
+
const node = value;
|
|
244
|
+
if (node.kind === "const")
|
|
245
|
+
return refs;
|
|
246
|
+
if (node.kind === "subqueryRef") {
|
|
247
|
+
if (typeof node.key === "string")
|
|
248
|
+
refs.add(node.key);
|
|
249
|
+
return refs;
|
|
250
|
+
}
|
|
251
|
+
for (const [key, child] of Object.entries(node)) {
|
|
252
|
+
if (key !== "whereParams")
|
|
253
|
+
QueryBuilder.collectSubqueryRefs(child, refs);
|
|
254
|
+
}
|
|
255
|
+
return refs;
|
|
256
|
+
}
|
|
257
|
+
/** Partial update: SET the given columns, then re-fetch and return the row,
|
|
214
258
|
* or null if no matching row is found after the update. */
|
|
215
259
|
async patch(set) {
|
|
216
|
-
|
|
260
|
+
const query = this.clone();
|
|
261
|
+
await query.runUpdate(resolveUpdateSet(set), false);
|
|
217
262
|
const fresh = new QueryBuilder({
|
|
218
|
-
...
|
|
263
|
+
...query.state,
|
|
219
264
|
orderBy: [],
|
|
220
265
|
limitNum: null,
|
|
221
266
|
offsetNum: null,
|
|
@@ -227,207 +272,136 @@ export class QueryBuilder {
|
|
|
227
272
|
}
|
|
228
273
|
/** Insert a single row. Awaitable directly, or chain `.onConflict(cols).doUpdate()` / `.doNothing()`. */
|
|
229
274
|
insert(row) {
|
|
230
|
-
return new InsertBuilder(this.state, row);
|
|
275
|
+
return new InsertBuilder(this.state.clone(), row, (inserted) => this.fetchInsertedRow(inserted));
|
|
231
276
|
}
|
|
232
277
|
/** Insert multiple rows in one statement. Awaitable directly, or chain `.onConflict(cols).doUpdate()` / `.doNothing()`. */
|
|
233
278
|
insertMany(rows) {
|
|
234
|
-
return new InsertBuilder(this.state, rows);
|
|
279
|
+
return new InsertBuilder(this.state.clone(), rows, (inserted) => this.fetchInsertedRow(inserted));
|
|
280
|
+
}
|
|
281
|
+
async fetchInsertedRow(row) {
|
|
282
|
+
const pkColumns = this.requirePkColumns("insert");
|
|
283
|
+
return new QueryBuilder(this.state.clone())
|
|
284
|
+
.where(buildFindByIdIr(pkColumns, row))
|
|
285
|
+
.first();
|
|
235
286
|
}
|
|
236
287
|
async insertGraph(input) {
|
|
237
|
-
return new InsertGraphPlanner(this.state, input).execute();
|
|
288
|
+
return new InsertGraphPlanner(this.state.clone(), input).execute();
|
|
238
289
|
}
|
|
239
|
-
/** Select
|
|
240
|
-
|
|
290
|
+
/** Select one row by primary key.
|
|
291
|
+
* Await to execute, or call `toSql()` to compile without executing. */
|
|
292
|
+
findById(id) {
|
|
241
293
|
const pkCols = this.requirePkColumns("findById");
|
|
242
|
-
const
|
|
243
|
-
return
|
|
294
|
+
const query = this.where(buildFindByIdIr(pkCols, pkToRecord(pkCols, id))).limit(1);
|
|
295
|
+
return new Statement(async () => (await query.runSelect())[0] ?? null, () => query.compileSelect());
|
|
296
|
+
}
|
|
297
|
+
/** All matching rows, with relations loaded and hydration applied.
|
|
298
|
+
* Await to execute, or call `toSql()` to compile without executing. */
|
|
299
|
+
toArray() {
|
|
300
|
+
const query = this.clone();
|
|
301
|
+
return new Statement(() => query.runSelect(), () => query.compileSelect());
|
|
302
|
+
}
|
|
303
|
+
/** The first matching row, or undefined if the result set is empty.
|
|
304
|
+
* Await to execute, or call `toSql()` to compile without executing. */
|
|
305
|
+
first() {
|
|
306
|
+
const query = this.limit(1);
|
|
307
|
+
return new Statement(async () => (await query.runSelect())[0], () => query.compileSelect());
|
|
308
|
+
}
|
|
309
|
+
/** The COUNT of rows the query would produce without limit/offset/orderBy.
|
|
310
|
+
* Await to execute, or call `toSql()` to compile without executing. */
|
|
311
|
+
count() {
|
|
312
|
+
const query = this.clone();
|
|
313
|
+
return new Statement(() => query.runCount(), () => query.compileCount());
|
|
314
|
+
}
|
|
315
|
+
async runSelect() {
|
|
316
|
+
const plan = this.buildPlan({ kind: "select" });
|
|
317
|
+
const compiled = getQueryCompilerOrThrow(this.state).compilePlan(plan);
|
|
318
|
+
const rows = await this.queryRows(compiled);
|
|
319
|
+
await new RelationResolver(plan, this.state.qe, rows).resolve();
|
|
320
|
+
return this.hydrateRows(rows);
|
|
244
321
|
}
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
322
|
+
async runCount() {
|
|
323
|
+
const rows = (await this.queryRows(this.compileCount()));
|
|
324
|
+
return Number(rows[0]?.c ?? 0);
|
|
325
|
+
}
|
|
326
|
+
compileSelect() {
|
|
249
327
|
const plan = this.buildPlan({ kind: "select" });
|
|
250
|
-
const
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
await new RelationResolver(plan, qe, rows).resolve();
|
|
256
|
-
if (!hydrate)
|
|
257
|
-
return rows;
|
|
258
|
-
return Promise.all(rows.map((r) => hydrate(r)));
|
|
328
|
+
const { sql, params } = getQueryCompilerOrThrow(this.state).compilePlan(plan);
|
|
329
|
+
if (plan.relationFetches.length === 0)
|
|
330
|
+
return { sql, params };
|
|
331
|
+
const relationFetches = new RelationFetchCompiler(this.state.qe, plan.relationFetches, plan.skipLoadFor).compile();
|
|
332
|
+
return relationFetches.length > 0 ? { sql, params, relationFetches } : { sql, params };
|
|
259
333
|
}
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
const
|
|
263
|
-
return
|
|
334
|
+
compileCount() {
|
|
335
|
+
const compiler = getQueryCompilerOrThrow(this.state);
|
|
336
|
+
const { sql, params } = compiler.compileResultSize(this.buildPlan({ kind: "select" }));
|
|
337
|
+
return { sql, params };
|
|
264
338
|
}
|
|
265
|
-
|
|
266
|
-
async count() {
|
|
267
|
-
const { qe } = this.state;
|
|
339
|
+
compileDelete() {
|
|
268
340
|
const compiler = getQueryCompilerOrThrow(this.state);
|
|
269
|
-
const
|
|
270
|
-
|
|
271
|
-
if (QueryBuilder.isDebugSqlEnabled)
|
|
272
|
-
this.logSql(sql, params);
|
|
273
|
-
const rows = (await qe.query(sql, params));
|
|
274
|
-
return Number(rows[0]?.c ?? 0);
|
|
341
|
+
const { sql, params } = compiler.compilePlan(this.buildPlan({ kind: "delete" }));
|
|
342
|
+
return { sql, params };
|
|
275
343
|
}
|
|
276
|
-
|
|
344
|
+
update(setOrFn) {
|
|
345
|
+
const query = this.clone();
|
|
277
346
|
const resolved = resolveUpdateSet(setOrFn);
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
const { sql, params } =
|
|
347
|
+
return new Statement(() => query.runUpdate(resolved, false), () => query.compileUpdate(resolved, false));
|
|
348
|
+
}
|
|
349
|
+
async runUpdate(resolved, returning) {
|
|
350
|
+
const { sql, params } = this.compileUpdate(resolved, returning);
|
|
351
|
+
if (returning) {
|
|
352
|
+
if (!sql)
|
|
353
|
+
return [];
|
|
354
|
+
return this.hydrateRows(await this.queryRows({ sql, params }));
|
|
355
|
+
}
|
|
282
356
|
if (!sql)
|
|
283
357
|
return 0;
|
|
284
|
-
|
|
285
|
-
this.logSql(sql, params);
|
|
286
|
-
const result = await qe.run(sql, params);
|
|
287
|
-
return result.changes;
|
|
358
|
+
return this.runMutation({ sql, params });
|
|
288
359
|
}
|
|
289
|
-
|
|
290
|
-
const resolved = resolveUpdateSet(setOrFn);
|
|
360
|
+
compileUpdate(resolved, returning) {
|
|
291
361
|
this.state.updateSetIr = resolved.setIr;
|
|
292
|
-
const {
|
|
293
|
-
|
|
294
|
-
const { sql, params } = compiler.compilePlan(this.buildPlan({ kind: "update", ...resolved, returning: true }));
|
|
295
|
-
if (!sql)
|
|
296
|
-
return [];
|
|
297
|
-
if (QueryBuilder.isDebugSqlEnabled)
|
|
298
|
-
this.logSql(sql, params);
|
|
299
|
-
const rows = (await qe.query(sql, params));
|
|
300
|
-
if (!hydrate)
|
|
301
|
-
return rows;
|
|
302
|
-
return Promise.all(rows.map((r) => hydrate(r)));
|
|
362
|
+
const { sql, params } = getQueryCompilerOrThrow(this.state).compilePlan(this.buildPlan({ kind: "update", ...resolved, returning }));
|
|
363
|
+
return { sql, params };
|
|
303
364
|
}
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
const
|
|
307
|
-
|
|
308
|
-
const { sql, params } = compiler.compilePlan(this.buildPlan({ kind: "delete" }));
|
|
309
|
-
if (QueryBuilder.isDebugSqlEnabled)
|
|
310
|
-
this.logSql(sql, params);
|
|
311
|
-
const result = await qe.run(sql, params);
|
|
312
|
-
return result.changes;
|
|
313
|
-
}
|
|
314
|
-
/** DELETE ... RETURNING * (when supported). */
|
|
315
|
-
async deleteReturning() {
|
|
316
|
-
const { qe, hydrate } = this.state;
|
|
317
|
-
const compiler = getQueryCompilerOrThrow(this.state);
|
|
318
|
-
const { sql, params } = compiler.compilePlan(this.buildPlan({ kind: "delete", returning: true }));
|
|
319
|
-
if (QueryBuilder.isDebugSqlEnabled)
|
|
320
|
-
this.logSql(sql, params);
|
|
321
|
-
const rows = (await qe.query(sql, params));
|
|
322
|
-
if (!hydrate)
|
|
323
|
-
return rows;
|
|
324
|
-
return Promise.all(rows.map((r) => hydrate(r)));
|
|
365
|
+
updateReturning(setOrFn) {
|
|
366
|
+
const query = this.clone();
|
|
367
|
+
const resolved = resolveUpdateSet(setOrFn);
|
|
368
|
+
return new Statement(() => query.runUpdate(resolved, true), () => query.compileUpdate(resolved, true));
|
|
325
369
|
}
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
*
|
|
332
|
-
* @example
|
|
333
|
-
* await qb.insert(row);
|
|
334
|
-
* await qb.insert(row).onConflict(["sku"]).doUpdate();
|
|
335
|
-
* await qb.insertMany(rows).onConflict(["sku"]).doNothing();
|
|
336
|
-
*/
|
|
337
|
-
export class InsertBuilder extends QueryBuilder {
|
|
338
|
-
_conflictCols;
|
|
339
|
-
_payload;
|
|
340
|
-
/** @internal */
|
|
341
|
-
constructor(state, payload) {
|
|
342
|
-
super(state);
|
|
343
|
-
this._payload = payload;
|
|
370
|
+
/** DELETE for the current WHERE clause; resolves to the number of affected rows.
|
|
371
|
+
* Await to execute, or call `toSql()` to compile without executing. */
|
|
372
|
+
delete() {
|
|
373
|
+
const query = this.clone();
|
|
374
|
+
return new Statement(() => query.runDelete(), () => query.compileDelete());
|
|
344
375
|
}
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
this._conflictCols = columns;
|
|
348
|
-
return this;
|
|
376
|
+
async runDelete() {
|
|
377
|
+
return this.runMutation(this.compileDelete());
|
|
349
378
|
}
|
|
350
|
-
/**
|
|
351
|
-
|
|
352
|
-
|
|
379
|
+
/** DELETE ... RETURNING * (when supported).
|
|
380
|
+
* Await to execute, or call `toSql()` to compile without executing. */
|
|
381
|
+
deleteReturning() {
|
|
382
|
+
const query = this.clone();
|
|
383
|
+
return new Statement(() => query.runDeleteReturning(), () => query.compileDeleteReturning());
|
|
353
384
|
}
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
return this._execute({ conflictColumns: this._conflictCols, action: "nothing" });
|
|
385
|
+
async runDeleteReturning() {
|
|
386
|
+
return this.hydrateRows(await this.queryRows(this.compileDeleteReturning()));
|
|
357
387
|
}
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
return
|
|
388
|
+
compileDeleteReturning() {
|
|
389
|
+
const { sql, params } = getQueryCompilerOrThrow(this.state).compilePlan(this.buildPlan({ kind: "delete", returning: true }));
|
|
390
|
+
return { sql, params };
|
|
361
391
|
}
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
: this._doInsert(this._payload, onConflict));
|
|
392
|
+
async queryRows(compiled) {
|
|
393
|
+
this.logSql(compiled.sql, compiled.params);
|
|
394
|
+
return this.state.qe.query(compiled.sql, compiled.params);
|
|
366
395
|
}
|
|
367
|
-
async
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
const
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
columns: cols,
|
|
377
|
-
values: params,
|
|
378
|
-
pk: pkCols,
|
|
379
|
-
onConflict,
|
|
380
|
-
}));
|
|
381
|
-
if (QueryBuilder.isDebugSqlEnabled)
|
|
382
|
-
this.logSql(compiled.sql, compiled.params);
|
|
383
|
-
if (compiled.returningRow) {
|
|
384
|
-
const rows = (await qe.query(compiled.sql, compiled.params));
|
|
385
|
-
const raw = rows[0];
|
|
386
|
-
if (raw == null)
|
|
387
|
-
throw new Error("insert: RETURNING returned no row");
|
|
388
|
-
if (hydrate)
|
|
389
|
-
return (await hydrate(raw));
|
|
390
|
-
return raw;
|
|
391
|
-
}
|
|
392
|
-
const result = await qe.run(compiled.sql, compiled.params);
|
|
393
|
-
if (pkCols.length === 0)
|
|
394
|
-
return undefined;
|
|
395
|
-
// For single auto-increment PKs use lastID; for composite PKs all values are in `row`.
|
|
396
|
-
const pkRow = pkCols.length === 1 && result.lastID != null ? { ...row, [pkCols[0]]: result.lastID } : row;
|
|
397
|
-
const whereIr = buildFindByIdIr(pkCols, pkRow);
|
|
398
|
-
const inst = await this.clone().where(whereIr).first();
|
|
399
|
-
if (!inst)
|
|
400
|
-
throw new Error("insert: insert succeeded but row not found");
|
|
401
|
-
return inst;
|
|
402
|
-
}
|
|
403
|
-
async _doInsertMany(rows, onConflict) {
|
|
404
|
-
if (rows.length === 0)
|
|
405
|
-
return [];
|
|
406
|
-
const { columnNames, qe, hydrate } = this.state;
|
|
407
|
-
const compiler = getQueryCompilerOrThrow(this.state);
|
|
408
|
-
const pkCols = this.state.pkColumns;
|
|
409
|
-
// Collect columns in entity-defined order, keeping any column present in at least one row.
|
|
410
|
-
const cols = columnNames.filter((c) => rows.some((r) => r[c] !== undefined));
|
|
411
|
-
const paramRows = rows.map((r) => cols.map((c) => r[c] ?? null));
|
|
412
|
-
this.state.insertIr = undefined;
|
|
413
|
-
const compiled = compiler.compilePlan(this.buildPlan({
|
|
414
|
-
kind: "insertMany",
|
|
415
|
-
columns: cols,
|
|
416
|
-
rows: paramRows,
|
|
417
|
-
pk: pkCols,
|
|
418
|
-
onConflict,
|
|
419
|
-
}));
|
|
420
|
-
if (QueryBuilder.isDebugSqlEnabled)
|
|
421
|
-
this.logSql(compiled.sql, compiled.params);
|
|
422
|
-
if (compiled.returningRow) {
|
|
423
|
-
const returned = (await qe.query(compiled.sql, compiled.params));
|
|
424
|
-
const hydratedRows = [];
|
|
425
|
-
for (const raw of returned)
|
|
426
|
-
hydratedRows.push(hydrate ? (await hydrate(raw)) : raw);
|
|
427
|
-
return hydratedRows;
|
|
428
|
-
}
|
|
429
|
-
await qe.run(compiled.sql, compiled.params);
|
|
430
|
-
return [];
|
|
396
|
+
async runMutation(compiled) {
|
|
397
|
+
this.logSql(compiled.sql, compiled.params);
|
|
398
|
+
return (await this.state.qe.run(compiled.sql, compiled.params)).changes;
|
|
399
|
+
}
|
|
400
|
+
hydrateRows(rows) {
|
|
401
|
+
const { hydrate } = this.state;
|
|
402
|
+
if (!hydrate)
|
|
403
|
+
return Promise.resolve(rows);
|
|
404
|
+
return Promise.all(rows.map((row) => hydrate(row)));
|
|
431
405
|
}
|
|
432
406
|
}
|
|
433
407
|
//# sourceMappingURL=query-builder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../src/orm/query-builder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../src/orm/query-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { QueryOperation } from "../dbs/types.js";
|
|
2
|
+
import type { QueryState } from "./query-state.js";
|
|
3
|
+
export declare function buildQueryPlan<T>(state: QueryState<T>, operation: QueryOperation): import("./helpers/query-plan/query-plan.js").QueryPlan;
|
|
4
|
+
export declare function logSql(sql: string, params: unknown[]): void;
|
|
5
|
+
//# sourceMappingURL=query-execution-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-execution-context.d.ts","sourceRoot":"","sources":["../../src/orm/query-execution-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAOnD,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,cAAc,0DAEhF;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAI3D"}
|