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.
Files changed (179) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +1 -1
  3. package/dist/arrow/aggregates.d.ts +5 -1
  4. package/dist/arrow/aggregates.d.ts.map +1 -1
  5. package/dist/arrow/aggregates.js +23 -1
  6. package/dist/arrow/aggregates.js.map +1 -1
  7. package/dist/arrow/index.d.ts +7 -3
  8. package/dist/arrow/index.d.ts.map +1 -1
  9. package/dist/arrow/index.js +24 -3
  10. package/dist/arrow/index.js.map +1 -1
  11. package/dist/dbs/base-migrator.d.ts +0 -1
  12. package/dist/dbs/base-migrator.d.ts.map +1 -1
  13. package/dist/dbs/base-migrator.js +5 -7
  14. package/dist/dbs/base-migrator.js.map +1 -1
  15. package/dist/dbs/postgres/driver.d.ts.map +1 -1
  16. package/dist/dbs/postgres/driver.js +3 -0
  17. package/dist/dbs/postgres/driver.js.map +1 -1
  18. package/dist/dbs/postgres/query-compiler.d.ts +6 -2
  19. package/dist/dbs/postgres/query-compiler.d.ts.map +1 -1
  20. package/dist/dbs/postgres/query-compiler.js +11 -11
  21. package/dist/dbs/postgres/query-compiler.js.map +1 -1
  22. package/dist/dbs/query-compiler.d.ts +13 -13
  23. package/dist/dbs/query-compiler.d.ts.map +1 -1
  24. package/dist/dbs/query-compiler.js +11 -37
  25. package/dist/dbs/query-compiler.js.map +1 -1
  26. package/dist/dbs/sqlite/index.d.ts +2 -2
  27. package/dist/dbs/sqlite/index.d.ts.map +1 -1
  28. package/dist/dbs/sqlite/index.js +1 -1
  29. package/dist/dbs/sqlite/index.js.map +1 -1
  30. package/dist/dbs/sqlite/query-compiler.d.ts +4 -1
  31. package/dist/dbs/sqlite/query-compiler.d.ts.map +1 -1
  32. package/dist/dbs/sqlite/query-compiler.js +11 -2
  33. package/dist/dbs/sqlite/query-compiler.js.map +1 -1
  34. package/dist/dbs/types.d.ts +5 -11
  35. package/dist/dbs/types.d.ts.map +1 -1
  36. package/dist/dbs/types.js +1 -1
  37. package/dist/dbs/types.js.map +1 -1
  38. package/dist/driver/compile-only.d.ts +8 -0
  39. package/dist/driver/compile-only.d.ts.map +1 -0
  40. package/dist/driver/compile-only.js +26 -0
  41. package/dist/driver/compile-only.js.map +1 -0
  42. package/dist/driver/sqlite.d.ts.map +1 -1
  43. package/dist/driver/sqlite.js +3 -0
  44. package/dist/driver/sqlite.js.map +1 -1
  45. package/dist/entity/entity.d.ts +1 -1
  46. package/dist/entity/entity.d.ts.map +1 -1
  47. package/dist/entity/entity.js +14 -11
  48. package/dist/entity/entity.js.map +1 -1
  49. package/dist/entity/global-driver.d.ts +5 -3
  50. package/dist/entity/global-driver.d.ts.map +1 -1
  51. package/dist/entity/global-driver.js +51 -2
  52. package/dist/entity/global-driver.js.map +1 -1
  53. package/dist/entity/index.d.ts +1 -1
  54. package/dist/entity/index.d.ts.map +1 -1
  55. package/dist/entity/index.js +1 -1
  56. package/dist/entity/index.js.map +1 -1
  57. package/dist/entity/pk-columns.d.ts +0 -2
  58. package/dist/entity/pk-columns.d.ts.map +1 -1
  59. package/dist/entity/pk-columns.js +2 -10
  60. package/dist/entity/pk-columns.js.map +1 -1
  61. package/dist/entity/relations.d.ts +0 -4
  62. package/dist/entity/relations.d.ts.map +1 -1
  63. package/dist/entity/relations.js.map +1 -1
  64. package/dist/index.d.ts +3 -4
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +1 -1
  67. package/dist/index.js.map +1 -1
  68. package/dist/migration/cli.js +120 -117
  69. package/dist/migration/cli.js.map +1 -1
  70. package/dist/migration/index.d.ts +1 -1
  71. package/dist/migration/index.d.ts.map +1 -1
  72. package/dist/migration/runner.d.ts +2 -6
  73. package/dist/migration/runner.d.ts.map +1 -1
  74. package/dist/migration/runner.js +1 -3
  75. package/dist/migration/runner.js.map +1 -1
  76. package/dist/migration/types.d.ts +0 -5
  77. package/dist/migration/types.d.ts.map +1 -1
  78. package/dist/orm/db.d.ts +16 -10
  79. package/dist/orm/db.d.ts.map +1 -1
  80. package/dist/orm/db.js +37 -9
  81. package/dist/orm/db.js.map +1 -1
  82. package/dist/orm/helpers/insert-graph/insert-graph-batch-executor.d.ts +2 -2
  83. package/dist/orm/helpers/insert-graph/insert-graph-batch-executor.d.ts.map +1 -1
  84. package/dist/orm/helpers/insert-graph/insert-graph-batch-executor.js.map +1 -1
  85. package/dist/orm/helpers/insert-graph/insert-graph-executor.d.ts +3 -3
  86. package/dist/orm/helpers/insert-graph/insert-graph-executor.d.ts.map +1 -1
  87. package/dist/orm/helpers/insert-graph/insert-graph-executor.js.map +1 -1
  88. package/dist/orm/helpers/insert-graph/insert-graph-planner.d.ts +3 -3
  89. package/dist/orm/helpers/insert-graph/insert-graph-planner.d.ts.map +1 -1
  90. package/dist/orm/helpers/insert-graph/insert-graph-planner.js +1 -1
  91. package/dist/orm/helpers/insert-graph/insert-graph-planner.js.map +1 -1
  92. package/dist/orm/helpers/insert-graph/insert-graph-sequential-executor.d.ts +2 -2
  93. package/dist/orm/helpers/insert-graph/insert-graph-sequential-executor.d.ts.map +1 -1
  94. package/dist/orm/helpers/insert-graph/insert-graph-sequential-executor.js.map +1 -1
  95. package/dist/orm/helpers/insert-graph/sequence-id-assigner.d.ts +2 -2
  96. package/dist/orm/helpers/insert-graph/sequence-id-assigner.d.ts.map +1 -1
  97. package/dist/orm/helpers/insert-graph/sequence-id-assigner.js.map +1 -1
  98. package/dist/orm/helpers/query-plan/query-plan.d.ts +19 -11
  99. package/dist/orm/helpers/query-plan/query-plan.d.ts.map +1 -1
  100. package/dist/orm/helpers/query-plan/query-plan.js +24 -4
  101. package/dist/orm/helpers/query-plan/query-plan.js.map +1 -1
  102. package/dist/orm/helpers/relations/relation-assembler.d.ts.map +1 -1
  103. package/dist/orm/helpers/relations/relation-assembler.js +14 -5
  104. package/dist/orm/helpers/relations/relation-assembler.js.map +1 -1
  105. package/dist/orm/helpers/relations/relation-fetcher.d.ts +20 -0
  106. package/dist/orm/helpers/relations/relation-fetcher.d.ts.map +1 -1
  107. package/dist/orm/helpers/relations/relation-fetcher.js +106 -23
  108. package/dist/orm/helpers/relations/relation-fetcher.js.map +1 -1
  109. package/dist/orm/index.d.ts +1 -1
  110. package/dist/orm/index.d.ts.map +1 -1
  111. package/dist/orm/index.js +1 -1
  112. package/dist/orm/index.js.map +1 -1
  113. package/dist/orm/insert-builder.d.ts +37 -0
  114. package/dist/orm/insert-builder.d.ts.map +1 -0
  115. package/dist/orm/insert-builder.js +134 -0
  116. package/dist/orm/insert-builder.js.map +1 -0
  117. package/dist/orm/query-builder.d.ts +51 -52
  118. package/dist/orm/query-builder.d.ts.map +1 -1
  119. package/dist/orm/query-builder.js +197 -223
  120. package/dist/orm/query-builder.js.map +1 -1
  121. package/dist/orm/query-execution-context.d.ts +5 -0
  122. package/dist/orm/query-execution-context.d.ts.map +1 -0
  123. package/dist/orm/query-execution-context.js +16 -0
  124. package/dist/orm/query-execution-context.js.map +1 -0
  125. package/dist/orm/query-helpers.d.ts.map +1 -1
  126. package/dist/orm/query-helpers.js +1 -1
  127. package/dist/orm/query-helpers.js.map +1 -1
  128. package/dist/orm/query-state.d.ts +10 -6
  129. package/dist/orm/query-state.d.ts.map +1 -1
  130. package/dist/orm/query-state.js.map +1 -1
  131. package/dist/orm/statement.d.ts +33 -0
  132. package/dist/orm/statement.d.ts.map +1 -0
  133. package/dist/orm/statement.js +31 -0
  134. package/dist/orm/statement.js.map +1 -0
  135. package/dist/parser/group-by.d.ts.map +1 -1
  136. package/dist/parser/group-by.js +2 -1
  137. package/dist/parser/group-by.js.map +1 -1
  138. package/dist/parser/predicate-walk.d.ts.map +1 -1
  139. package/dist/parser/predicate-walk.js +12 -32
  140. package/dist/parser/predicate-walk.js.map +1 -1
  141. package/dist/parser/resolve.js +1 -1
  142. package/dist/parser/resolve.js.map +1 -1
  143. package/dist/parser/select.js +3 -3
  144. package/dist/parser/select.js.map +1 -1
  145. package/dist/schema/column-definition.d.ts +10 -0
  146. package/dist/schema/column-definition.d.ts.map +1 -0
  147. package/dist/schema/column-definition.js +13 -0
  148. package/dist/schema/column-definition.js.map +1 -0
  149. package/dist/transformer/ir-emit.d.ts.map +1 -1
  150. package/dist/transformer/ir-emit.js +3 -0
  151. package/dist/transformer/ir-emit.js.map +1 -1
  152. package/dist/transformer/select-transformer.d.ts.map +1 -1
  153. package/dist/transformer/select-transformer.js +18 -0
  154. package/dist/transformer/select-transformer.js.map +1 -1
  155. package/dist/transformer/ts-aggregates.d.ts.map +1 -1
  156. package/dist/transformer/ts-aggregates.js +9 -14
  157. package/dist/transformer/ts-aggregates.js.map +1 -1
  158. package/dist/transformer/where-transformer.d.ts.map +1 -1
  159. package/dist/transformer/where-transformer.js +15 -24
  160. package/dist/transformer/where-transformer.js.map +1 -1
  161. package/docs/guide/entities-relations.md +12 -3
  162. package/docs/guide/getting-started.md +10 -3
  163. package/docs/public-api.md +6 -6
  164. package/docs/reference/api.md +14 -6
  165. package/docs/reference/architecture.md +11 -3
  166. package/etc/typhex.api.md +59 -59
  167. package/package.json +2 -2
  168. package/dist/dbs/sqlite/driver.d.ts +0 -9
  169. package/dist/dbs/sqlite/driver.d.ts.map +0 -1
  170. package/dist/dbs/sqlite/driver.js +0 -66
  171. package/dist/dbs/sqlite/driver.js.map +0 -1
  172. package/dist/schema/index.d.ts +0 -2
  173. package/dist/schema/index.d.ts.map +0 -1
  174. package/dist/schema/index.js +0 -2
  175. package/dist/schema/index.js.map +0 -1
  176. package/dist/schema/types.d.ts +0 -16
  177. package/dist/schema/types.d.ts.map +0 -1
  178. package/dist/schema/types.js +0 -40
  179. package/dist/schema/types.js.map +0 -1
@@ -1,43 +1,37 @@
1
1
  /**
2
- * Query builder: the single place where all SQL is built and executed.
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 { DEFAULT_ROW_PARAM, QueryPlanBuilder, getQueryCompilerOrThrow, } from "./helpers/query-plan/query-plan.js";
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 shallow copy of this builder with mutable state (params, orderBy) deep-copied,
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 QueryPlanBuilder.build(this.state, operation);
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
- Object.assign(this.state.whereParams, sqlParams);
64
- Object.assign(this.state.subqueryParams, subqueryParams);
65
- this.state.whereIr = resolveWhereIr(predicate, params ? Object.keys(params) : [], Object.keys(subqueryParams));
66
- return this;
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 this.addOrderByIr(colOrIr, typeof second === "object" ? second : null);
71
+ return next.addOrderByIr(colOrIr, typeof second === "object" ? second : null);
71
72
  }
72
73
  const direction = typeof second === "string" ? second : "asc";
73
- return this.addOrderByInput(colOrIr, direction);
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
- this.state.entityJoinHints = [
116
- ...(this.state.entityJoinHints ?? []),
117
+ next.state.entityJoinHints = [
118
+ ...(next.state.entityJoinHints ?? []),
117
119
  { joinType, entity: keysOrFnOrEntity, onIr },
118
120
  ];
119
- return this;
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
- this.state.joinHints = [...(this.state.joinHints ?? []), ...newHints];
133
- return this;
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
- this.state.limitNum = n;
138
- return this;
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
- this.state.offsetNum = n;
143
- return this;
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 paramKeys = this.addInlineParams(params);
191
- this.state.selectIr = resolveSelectIr(columnsOrIr, paramKeys);
192
- return this;
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 = this.state.selectIr ?? { param: DEFAULT_ROW_PARAM, paths: [] };
204
+ const nextSelectIr = next.state.selectIr ?? { param: DEFAULT_ROW_PARAM, paths: [] };
198
205
  const memberPaths = entries.filter((e) => Array.isArray(e));
199
- this.state.selectIr = {
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 this;
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
- /** Update matching rows with `set`, then re-fetch and return the updated row,
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
- await this.update(set);
260
+ const query = this.clone();
261
+ await query.runUpdate(resolveUpdateSet(set), false);
217
262
  const fresh = new QueryBuilder({
218
- ...this.state,
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 single row by primary key (scalar or composite object). */
240
- async findById(id) {
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 row = await this.where(buildFindByIdIr(pkCols, pkToRecord(pkCols, id))).first();
243
- return row ?? null;
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
- /** Execute the query and return all matching rows, with relations loaded
246
- * and the hydration function applied if one is set. */
247
- async toArray() {
248
- const { hydrate, qe } = this.state;
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 compiler = getQueryCompilerOrThrow(this.state);
251
- const { sql, params } = compiler.compilePlan(plan);
252
- if (QueryBuilder.isDebugSqlEnabled)
253
- this.logSql(sql, params);
254
- const rows = (await qe.query(sql, params));
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
- /** Return the first matching row, or undefined if the result set is empty. */
261
- async first() {
262
- const arr = await this.limit(1).toArray();
263
- return arr[0];
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
- /** Execute a COUNT query and return rows the query would produce without limit/offset/orderBy. */
266
- async count() {
267
- const { qe } = this.state;
339
+ compileDelete() {
268
340
  const compiler = getQueryCompilerOrThrow(this.state);
269
- const plan = this.buildPlan({ kind: "select" });
270
- const { sql, params } = compiler.compileResultSize(plan);
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
- async update(setOrFn) {
344
+ update(setOrFn) {
345
+ const query = this.clone();
277
346
  const resolved = resolveUpdateSet(setOrFn);
278
- this.state.updateSetIr = resolved.setIr;
279
- const { qe } = this.state;
280
- const compiler = getQueryCompilerOrThrow(this.state);
281
- const { sql, params } = compiler.compilePlan(this.buildPlan({ kind: "update", ...resolved }));
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
- if (QueryBuilder.isDebugSqlEnabled)
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
- async updateReturning(setOrFn) {
290
- const resolved = resolveUpdateSet(setOrFn);
360
+ compileUpdate(resolved, returning) {
291
361
  this.state.updateSetIr = resolved.setIr;
292
- const { qe, hydrate } = this.state;
293
- const compiler = getQueryCompilerOrThrow(this.state);
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
- /** Execute a DELETE for the current WHERE clause and return the number of affected rows. */
305
- async delete() {
306
- const { qe } = this.state;
307
- const compiler = getQueryCompilerOrThrow(this.state);
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
- * Deferred insert returned by `insert()` / `insertMany()`.
329
- * Extends `QueryBuilder` so it owns its execution logic and has direct access to state.
330
- * Awaitable directly (no conflict handling) or chain `.onConflict(cols).doUpdate()` / `.doNothing()`.
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
- /** Store the conflict target columns; returns `this` for chaining. */
346
- onConflict(columns) {
347
- this._conflictCols = columns;
348
- return this;
376
+ async runDelete() {
377
+ return this.runMutation(this.compileDelete());
349
378
  }
350
- /** `ON CONFLICT (...) DO UPDATE SET ...` — executes the insert. */
351
- doUpdate(updateColumns) {
352
- return this._execute({ conflictColumns: this._conflictCols, action: "update", updateColumns });
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
- /** `ON CONFLICT (...) DO NOTHING` — executes the insert. */
355
- doNothing() {
356
- return this._execute({ conflictColumns: this._conflictCols, action: "nothing" });
385
+ async runDeleteReturning() {
386
+ return this.hydrateRows(await this.queryRows(this.compileDeleteReturning()));
357
387
  }
358
- /** PromiseLike: allows `await insert(row)` without a conflict clause. */
359
- then(res, rej) {
360
- return this._execute().then(res, rej);
388
+ compileDeleteReturning() {
389
+ const { sql, params } = getQueryCompilerOrThrow(this.state).compilePlan(this.buildPlan({ kind: "delete", returning: true }));
390
+ return { sql, params };
361
391
  }
362
- _execute(onConflict) {
363
- return (Array.isArray(this._payload)
364
- ? this._doInsertMany(this._payload, onConflict)
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 _doInsert(row, onConflict) {
368
- const { columnNames, qe, hydrate } = this.state;
369
- const compiler = getQueryCompilerOrThrow(this.state);
370
- const cols = columnNames.filter((c) => row[c] !== undefined);
371
- const params = cols.map((c) => row[c]);
372
- const pkCols = this.state.pkColumns;
373
- this.state.insertIr = undefined;
374
- const compiled = compiler.compilePlan(this.buildPlan({
375
- kind: "insert",
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"}