kysely 0.11.4 → 0.13.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.
Files changed (262) hide show
  1. package/README.md +35 -11
  2. package/dist/cjs/dialect/dialect-adapter-base.d.ts +36 -0
  3. package/dist/cjs/dialect/mysql/mysql-adapter.d.ts +38 -2
  4. package/dist/cjs/dialect/mysql/mysql-adapter.js +2 -1
  5. package/dist/cjs/dialect/mysql/mysql-dialect.d.ts +16 -0
  6. package/dist/cjs/dialect/mysql/mysql-driver.d.ts +29 -0
  7. package/dist/cjs/dialect/mysql/mysql-introspector.d.ts +3 -0
  8. package/dist/cjs/dialect/postgres/postgres-adapter.d.ts +38 -2
  9. package/dist/cjs/dialect/postgres/postgres-adapter.js +2 -1
  10. package/dist/cjs/dialect/postgres/postgres-dialect.d.ts +16 -0
  11. package/dist/cjs/dialect/postgres/postgres-driver.d.ts +29 -0
  12. package/dist/cjs/dialect/postgres/postgres-introspector.d.ts +3 -0
  13. package/dist/cjs/dialect/sqlite/sqlite-adapter.d.ts +38 -2
  14. package/dist/cjs/dialect/sqlite/sqlite-dialect.d.ts +16 -0
  15. package/dist/cjs/dialect/sqlite/sqlite-driver.d.ts +29 -0
  16. package/dist/cjs/dialect/sqlite/sqlite-introspector.d.ts +3 -0
  17. package/dist/cjs/driver/default-connection-provider.d.ts +4 -0
  18. package/dist/cjs/driver/runtime-driver.d.ts +29 -0
  19. package/dist/cjs/driver/single-connection-provider.d.ts +4 -0
  20. package/dist/cjs/dynamic/dynamic-reference-builder.d.ts +1 -0
  21. package/dist/cjs/dynamic/dynamic-reference-builder.js +9 -1
  22. package/dist/cjs/dynamic/dynamic.d.ts +6 -7
  23. package/dist/cjs/dynamic/dynamic.js +6 -7
  24. package/dist/cjs/index.d.ts +15 -4
  25. package/dist/cjs/index.js +12 -1
  26. package/dist/cjs/kysely.d.ts +170 -11
  27. package/dist/cjs/kysely.js +69 -9
  28. package/dist/cjs/migration/migration.d.ts +156 -13
  29. package/dist/cjs/migration/migration.js +256 -135
  30. package/dist/cjs/operation-node/column-definition-node.d.ts +6 -5
  31. package/dist/cjs/operation-node/column-definition-node.js +0 -4
  32. package/dist/cjs/operation-node/common-table-expression-name-node.d.ts +15 -0
  33. package/dist/cjs/operation-node/common-table-expression-name-node.js +23 -0
  34. package/dist/cjs/operation-node/common-table-expression-node.d.ts +3 -3
  35. package/dist/cjs/operation-node/create-table-node.d.ts +6 -2
  36. package/dist/cjs/operation-node/create-table-node.js +6 -6
  37. package/dist/cjs/operation-node/create-view-node.d.ts +1 -0
  38. package/dist/cjs/operation-node/insert-query-node.d.ts +4 -4
  39. package/dist/cjs/operation-node/operation-node-transformer.d.ts +4 -0
  40. package/dist/cjs/operation-node/operation-node-transformer.js +22 -2
  41. package/dist/cjs/operation-node/operation-node-visitor.d.ts +4 -0
  42. package/dist/cjs/operation-node/operation-node-visitor.js +2 -0
  43. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  44. package/dist/cjs/operation-node/query-node.d.ts +0 -2
  45. package/dist/cjs/operation-node/query-node.js +0 -10
  46. package/dist/cjs/operation-node/values-node.d.ts +15 -0
  47. package/dist/cjs/operation-node/values-node.js +18 -0
  48. package/dist/cjs/operation-node/with-node.d.ts +3 -1
  49. package/dist/cjs/operation-node/with-node.js +2 -1
  50. package/dist/cjs/package.json +1 -3
  51. package/dist/cjs/parser/complex-expression-parser.d.ts +9 -0
  52. package/dist/cjs/parser/complex-expression-parser.js +25 -0
  53. package/dist/cjs/parser/filter-parser.d.ts +13 -4
  54. package/dist/cjs/parser/filter-parser.js +21 -24
  55. package/dist/cjs/parser/insert-values-parser.d.ts +5 -9
  56. package/dist/cjs/parser/insert-values-parser.js +27 -41
  57. package/dist/cjs/parser/order-by-parser.d.ts +1 -1
  58. package/dist/cjs/parser/parse-context.d.ts +22 -8
  59. package/dist/cjs/parser/parse-context.js +10 -10
  60. package/dist/cjs/parser/reference-parser.d.ts +8 -7
  61. package/dist/cjs/parser/reference-parser.js +8 -17
  62. package/dist/cjs/parser/returning-parser.d.ts +1 -5
  63. package/dist/cjs/parser/select-parser.d.ts +12 -14
  64. package/dist/cjs/parser/select-parser.js +5 -9
  65. package/dist/cjs/parser/table-parser.d.ts +9 -11
  66. package/dist/cjs/parser/table-parser.js +2 -8
  67. package/dist/cjs/parser/union-parser.d.ts +2 -2
  68. package/dist/cjs/parser/union-parser.js +1 -6
  69. package/dist/cjs/parser/update-set-parser.d.ts +2 -8
  70. package/dist/cjs/parser/update-set-parser.js +6 -26
  71. package/dist/cjs/parser/value-parser.d.ts +9 -6
  72. package/dist/cjs/parser/value-parser.js +7 -30
  73. package/dist/cjs/parser/with-parser.d.ts +36 -6
  74. package/dist/cjs/parser/with-parser.js +13 -2
  75. package/dist/cjs/plugin/camel-case/camel-case-plugin.d.ts +36 -2
  76. package/dist/cjs/plugin/immediate-value.ts/immediate-value-plugin.d.ts +34 -0
  77. package/dist/cjs/plugin/immediate-value.ts/immediate-value-plugin.js +2 -2
  78. package/dist/cjs/plugin/with-schema/with-schema-plugin.d.ts +34 -0
  79. package/dist/cjs/plugin/with-schema/with-schema-transformer.js +8 -0
  80. package/dist/cjs/query-builder/delete-query-builder.d.ts +647 -0
  81. package/dist/cjs/query-builder/delete-query-builder.js +185 -0
  82. package/dist/cjs/query-builder/expression-builder.d.ts +8 -6
  83. package/dist/cjs/query-builder/expression-builder.js +3 -3
  84. package/dist/cjs/query-builder/function-builder.d.ts +2 -1
  85. package/dist/cjs/query-builder/function-builder.js +2 -1
  86. package/dist/cjs/query-builder/having-interface.d.ts +49 -0
  87. package/dist/cjs/query-builder/having-interface.js +2 -0
  88. package/dist/cjs/query-builder/insert-query-builder.d.ts +504 -0
  89. package/dist/cjs/query-builder/insert-query-builder.js +256 -0
  90. package/dist/cjs/query-builder/insert-result.d.ts +3 -2
  91. package/dist/cjs/query-builder/insert-result.js +3 -2
  92. package/dist/cjs/query-builder/join-builder.d.ts +19 -20
  93. package/dist/cjs/query-builder/join-builder.js +12 -12
  94. package/dist/cjs/query-builder/join-interface.d.ts +130 -0
  95. package/dist/cjs/query-builder/join-interface.js +2 -0
  96. package/dist/cjs/query-builder/no-result-error.d.ts +9 -0
  97. package/dist/cjs/query-builder/no-result-error.js +14 -0
  98. package/dist/cjs/query-builder/returning-interface.d.ts +73 -0
  99. package/dist/cjs/query-builder/returning-interface.js +2 -0
  100. package/dist/cjs/query-builder/{query-builder.d.ts → select-query-builder.d.ts} +145 -651
  101. package/dist/cjs/query-builder/select-query-builder.js +571 -0
  102. package/dist/cjs/query-builder/update-query-builder.d.ts +735 -0
  103. package/dist/cjs/query-builder/update-query-builder.js +279 -0
  104. package/dist/cjs/query-builder/where-interface.d.ts +378 -0
  105. package/dist/cjs/query-builder/where-interface.js +2 -0
  106. package/dist/cjs/query-compiler/default-query-compiler.d.ts +4 -0
  107. package/dist/cjs/query-compiler/default-query-compiler.js +37 -6
  108. package/dist/cjs/query-creator.d.ts +69 -43
  109. package/dist/cjs/query-creator.js +66 -29
  110. package/dist/cjs/query-executor/default-query-executor.d.ts +19 -0
  111. package/dist/cjs/query-executor/noop-query-executor.d.ts +19 -0
  112. package/dist/cjs/query-executor/query-executor.d.ts +1 -1
  113. package/dist/cjs/query-executor/query-executor.js +1 -1
  114. package/dist/cjs/raw-builder/raw-builder.d.ts +2 -0
  115. package/dist/cjs/raw-builder/raw-builder.js +7 -1
  116. package/dist/cjs/schema/alter-table-builder.d.ts +230 -2
  117. package/dist/cjs/schema/alter-table-builder.js +12 -0
  118. package/dist/cjs/schema/column-definition-builder.d.ts +147 -20
  119. package/dist/cjs/schema/column-definition-builder.js +4 -1
  120. package/dist/cjs/schema/create-index-builder.d.ts +2 -1
  121. package/dist/cjs/schema/create-index-builder.js +2 -1
  122. package/dist/cjs/schema/create-table-builder.d.ts +26 -9
  123. package/dist/cjs/schema/create-table-builder.js +42 -9
  124. package/dist/cjs/schema/create-view-builder.d.ts +17 -3
  125. package/dist/cjs/schema/create-view-builder.js +25 -16
  126. package/dist/cjs/schema/schema.d.ts +18 -11
  127. package/dist/cjs/schema/schema.js +18 -11
  128. package/dist/cjs/util/log.d.ts +3 -2
  129. package/dist/cjs/util/log.js +8 -15
  130. package/dist/cjs/util/type-utils.d.ts +7 -7
  131. package/dist/esm/dialect/dialect-adapter-base.d.ts +36 -0
  132. package/dist/esm/dialect/mysql/mysql-adapter.d.ts +38 -2
  133. package/dist/esm/dialect/mysql/mysql-adapter.js +2 -1
  134. package/dist/esm/dialect/mysql/mysql-dialect.d.ts +16 -0
  135. package/dist/esm/dialect/mysql/mysql-driver.d.ts +29 -0
  136. package/dist/esm/dialect/mysql/mysql-introspector.d.ts +3 -0
  137. package/dist/esm/dialect/postgres/postgres-adapter.d.ts +38 -2
  138. package/dist/esm/dialect/postgres/postgres-adapter.js +2 -1
  139. package/dist/esm/dialect/postgres/postgres-dialect.d.ts +16 -0
  140. package/dist/esm/dialect/postgres/postgres-driver.d.ts +29 -0
  141. package/dist/esm/dialect/postgres/postgres-introspector.d.ts +3 -0
  142. package/dist/esm/dialect/sqlite/sqlite-adapter.d.ts +38 -2
  143. package/dist/esm/dialect/sqlite/sqlite-dialect.d.ts +16 -0
  144. package/dist/esm/dialect/sqlite/sqlite-driver.d.ts +29 -0
  145. package/dist/esm/dialect/sqlite/sqlite-introspector.d.ts +3 -0
  146. package/dist/esm/driver/default-connection-provider.d.ts +4 -0
  147. package/dist/esm/driver/runtime-driver.d.ts +29 -0
  148. package/dist/esm/driver/single-connection-provider.d.ts +4 -0
  149. package/dist/esm/dynamic/dynamic-reference-builder.d.ts +1 -0
  150. package/dist/esm/dynamic/dynamic-reference-builder.js +7 -0
  151. package/dist/esm/dynamic/dynamic.d.ts +6 -7
  152. package/dist/esm/dynamic/dynamic.js +6 -7
  153. package/dist/esm/index.d.ts +15 -4
  154. package/dist/esm/index.js +12 -1
  155. package/dist/esm/kysely.d.ts +170 -11
  156. package/dist/esm/kysely.js +69 -9
  157. package/dist/esm/migration/migration.d.ts +156 -13
  158. package/dist/esm/migration/migration.js +255 -134
  159. package/dist/esm/operation-node/column-definition-node.d.ts +6 -5
  160. package/dist/esm/operation-node/column-definition-node.js +0 -4
  161. package/dist/esm/operation-node/common-table-expression-name-node.d.ts +15 -0
  162. package/dist/esm/operation-node/common-table-expression-name-node.js +20 -0
  163. package/dist/esm/operation-node/common-table-expression-node.d.ts +3 -3
  164. package/dist/esm/operation-node/create-table-node.d.ts +6 -2
  165. package/dist/esm/operation-node/create-table-node.js +6 -6
  166. package/dist/esm/operation-node/create-view-node.d.ts +1 -0
  167. package/dist/esm/operation-node/insert-query-node.d.ts +4 -4
  168. package/dist/esm/operation-node/operation-node-transformer.d.ts +4 -0
  169. package/dist/esm/operation-node/operation-node-transformer.js +22 -2
  170. package/dist/esm/operation-node/operation-node-visitor.d.ts +4 -0
  171. package/dist/esm/operation-node/operation-node-visitor.js +2 -0
  172. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  173. package/dist/esm/operation-node/query-node.d.ts +0 -2
  174. package/dist/esm/operation-node/query-node.js +0 -10
  175. package/dist/esm/operation-node/values-node.d.ts +15 -0
  176. package/dist/esm/operation-node/values-node.js +15 -0
  177. package/dist/esm/operation-node/with-node.d.ts +3 -1
  178. package/dist/esm/operation-node/with-node.js +2 -1
  179. package/dist/esm/package.json +1 -3
  180. package/dist/esm/parser/complex-expression-parser.d.ts +9 -0
  181. package/dist/esm/parser/complex-expression-parser.js +20 -0
  182. package/dist/esm/parser/filter-parser.d.ts +13 -4
  183. package/dist/esm/parser/filter-parser.js +21 -24
  184. package/dist/esm/parser/insert-values-parser.d.ts +5 -9
  185. package/dist/esm/parser/insert-values-parser.js +27 -40
  186. package/dist/esm/parser/order-by-parser.d.ts +1 -1
  187. package/dist/esm/parser/parse-context.d.ts +22 -8
  188. package/dist/esm/parser/parse-context.js +10 -10
  189. package/dist/esm/parser/reference-parser.d.ts +8 -7
  190. package/dist/esm/parser/reference-parser.js +9 -18
  191. package/dist/esm/parser/returning-parser.d.ts +1 -5
  192. package/dist/esm/parser/select-parser.d.ts +12 -14
  193. package/dist/esm/parser/select-parser.js +6 -10
  194. package/dist/esm/parser/table-parser.d.ts +9 -11
  195. package/dist/esm/parser/table-parser.js +3 -9
  196. package/dist/esm/parser/union-parser.d.ts +2 -2
  197. package/dist/esm/parser/union-parser.js +1 -6
  198. package/dist/esm/parser/update-set-parser.d.ts +2 -8
  199. package/dist/esm/parser/update-set-parser.js +5 -24
  200. package/dist/esm/parser/value-parser.d.ts +9 -6
  201. package/dist/esm/parser/value-parser.js +8 -31
  202. package/dist/esm/parser/with-parser.d.ts +36 -6
  203. package/dist/esm/parser/with-parser.js +13 -2
  204. package/dist/esm/plugin/camel-case/camel-case-plugin.d.ts +36 -2
  205. package/dist/esm/plugin/immediate-value.ts/immediate-value-plugin.d.ts +34 -0
  206. package/dist/esm/plugin/immediate-value.ts/immediate-value-plugin.js +2 -2
  207. package/dist/esm/plugin/with-schema/with-schema-plugin.d.ts +34 -0
  208. package/dist/esm/plugin/with-schema/with-schema-transformer.js +8 -0
  209. package/dist/esm/query-builder/delete-query-builder.d.ts +647 -0
  210. package/dist/esm/query-builder/delete-query-builder.js +181 -0
  211. package/dist/esm/query-builder/expression-builder.d.ts +8 -6
  212. package/dist/esm/query-builder/expression-builder.js +3 -3
  213. package/dist/esm/query-builder/function-builder.d.ts +2 -1
  214. package/dist/esm/query-builder/function-builder.js +2 -1
  215. package/dist/esm/query-builder/having-interface.d.ts +49 -0
  216. package/dist/esm/query-builder/having-interface.js +1 -0
  217. package/dist/esm/query-builder/insert-query-builder.d.ts +504 -0
  218. package/dist/esm/query-builder/insert-query-builder.js +252 -0
  219. package/dist/esm/query-builder/insert-result.d.ts +3 -2
  220. package/dist/esm/query-builder/insert-result.js +3 -2
  221. package/dist/esm/query-builder/join-builder.d.ts +19 -20
  222. package/dist/esm/query-builder/join-builder.js +12 -12
  223. package/dist/esm/query-builder/join-interface.d.ts +130 -0
  224. package/dist/esm/query-builder/join-interface.js +1 -0
  225. package/dist/esm/query-builder/no-result-error.d.ts +9 -0
  226. package/dist/esm/query-builder/no-result-error.js +10 -0
  227. package/dist/esm/query-builder/returning-interface.d.ts +73 -0
  228. package/dist/esm/query-builder/returning-interface.js +1 -0
  229. package/dist/esm/query-builder/{query-builder.d.ts → select-query-builder.d.ts} +145 -651
  230. package/dist/esm/query-builder/select-query-builder.js +566 -0
  231. package/dist/esm/query-builder/update-query-builder.d.ts +735 -0
  232. package/dist/esm/query-builder/update-query-builder.js +275 -0
  233. package/dist/esm/query-builder/where-interface.d.ts +378 -0
  234. package/dist/esm/query-builder/where-interface.js +1 -0
  235. package/dist/esm/query-compiler/default-query-compiler.d.ts +4 -0
  236. package/dist/esm/query-compiler/default-query-compiler.js +37 -6
  237. package/dist/esm/query-creator.d.ts +69 -43
  238. package/dist/esm/query-creator.js +66 -29
  239. package/dist/esm/query-executor/default-query-executor.d.ts +19 -0
  240. package/dist/esm/query-executor/noop-query-executor.d.ts +19 -0
  241. package/dist/esm/query-executor/query-executor.d.ts +1 -1
  242. package/dist/esm/query-executor/query-executor.js +1 -1
  243. package/dist/esm/raw-builder/raw-builder.d.ts +2 -0
  244. package/dist/esm/raw-builder/raw-builder.js +7 -1
  245. package/dist/esm/schema/alter-table-builder.d.ts +230 -2
  246. package/dist/esm/schema/alter-table-builder.js +12 -0
  247. package/dist/esm/schema/column-definition-builder.d.ts +147 -20
  248. package/dist/esm/schema/column-definition-builder.js +4 -1
  249. package/dist/esm/schema/create-index-builder.d.ts +2 -1
  250. package/dist/esm/schema/create-index-builder.js +2 -1
  251. package/dist/esm/schema/create-table-builder.d.ts +26 -9
  252. package/dist/esm/schema/create-table-builder.js +43 -10
  253. package/dist/esm/schema/create-view-builder.d.ts +17 -3
  254. package/dist/esm/schema/create-view-builder.js +25 -16
  255. package/dist/esm/schema/schema.d.ts +18 -11
  256. package/dist/esm/schema/schema.js +18 -11
  257. package/dist/esm/util/log.d.ts +3 -2
  258. package/dist/esm/util/log.js +7 -14
  259. package/dist/esm/util/type-utils.d.ts +7 -7
  260. package/package.json +10 -8
  261. package/dist/cjs/query-builder/query-builder.js +0 -1067
  262. package/dist/esm/query-builder/query-builder.js +0 -1061
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DefaultQueryCompiler = void 0;
4
+ const insert_query_node_js_1 = require("../operation-node/insert-query-node.js");
4
5
  const operation_node_visitor_js_1 = require("../operation-node/operation-node-visitor.js");
5
6
  const query_node_js_1 = require("../operation-node/query-node.js");
6
7
  const raw_node_js_1 = require("../operation-node/raw-node.js");
@@ -27,9 +28,10 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
27
28
  return this.#sql;
28
29
  }
29
30
  visitSelectQuery(node) {
30
- const wrapInParens = this.nodeStack.length !== 1 &&
31
+ const wrapInParens = this.parentNode !== undefined &&
31
32
  !create_view_node_js_1.CreateViewNode.is(this.parentNode) &&
32
- !union_node_js_1.UnionNode.is(this.parentNode);
33
+ !union_node_js_1.UnionNode.is(this.parentNode) &&
34
+ !insert_query_node_js_1.InsertQueryNode.is(this.parentNode);
33
35
  if (wrapInParens) {
34
36
  this.append('(');
35
37
  }
@@ -146,8 +148,8 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
146
148
  this.append(')');
147
149
  }
148
150
  if (node.values) {
149
- this.append(' values ');
150
- this.compileList(node.values);
151
+ this.append(' ');
152
+ this.visitNode(node.values);
151
153
  }
152
154
  if (node.onConflict) {
153
155
  this.append(' ');
@@ -165,6 +167,10 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
165
167
  this.append(')');
166
168
  }
167
169
  }
170
+ visitValues(node) {
171
+ this.append('values ');
172
+ this.compileList(node.values);
173
+ }
168
174
  visitDeleteQuery(node) {
169
175
  const isSubQuery = this.nodeStack.find(query_node_js_1.QueryNode.is) !== node;
170
176
  if (isSubQuery) {
@@ -297,7 +303,11 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
297
303
  this.visitNode(node.table);
298
304
  }
299
305
  visitCreateTable(node) {
300
- this.append('create table ');
306
+ this.append('create ');
307
+ if (node.temporary) {
308
+ this.append('temporary ');
309
+ }
310
+ this.append('table ');
301
311
  if (node.ifNotExists) {
302
312
  this.append('if not exists ');
303
313
  }
@@ -305,11 +315,18 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
305
315
  this.append(' (');
306
316
  this.compileList([...node.columns, ...(node.constraints ?? [])]);
307
317
  this.append(')');
318
+ if (node.onCommit) {
319
+ this.append(' on commit ');
320
+ this.append(node.onCommit);
321
+ }
308
322
  }
309
323
  visitColumnDefinition(node) {
310
324
  this.visitNode(node.column);
311
325
  this.append(' ');
312
326
  this.visitNode(node.dataType);
327
+ if (node.unsigned) {
328
+ this.append(' unsigned');
329
+ }
313
330
  if (node.generatedAlwaysAs) {
314
331
  this.append(' ');
315
332
  this.visitNode(node.generatedAlwaysAs);
@@ -318,7 +335,7 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
318
335
  this.append(' ');
319
336
  this.visitNode(node.defaultTo);
320
337
  }
321
- if (!node.nullable) {
338
+ if (node.notNull) {
322
339
  this.append(' not null');
323
340
  }
324
341
  if (node.unique) {
@@ -559,6 +576,9 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
559
576
  }
560
577
  visitWith(node) {
561
578
  this.append('with ');
579
+ if (node.recursive) {
580
+ this.append('recursive ');
581
+ }
562
582
  this.compileList(node.expressions);
563
583
  }
564
584
  visitCommonTableExpression(node) {
@@ -566,6 +586,14 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
566
586
  this.append(' as ');
567
587
  this.visitNode(node.expression);
568
588
  }
589
+ visitCommonTableExpressionName(node) {
590
+ this.visitNode(node.table);
591
+ if (node.columns) {
592
+ this.append('(');
593
+ this.compileList(node.columns);
594
+ this.append(')');
595
+ }
596
+ }
569
597
  visitAlterTable(node) {
570
598
  this.append('alter table ');
571
599
  this.visitNode(node.table);
@@ -667,6 +695,9 @@ class DefaultQueryCompiler extends operation_node_visitor_js_1.OperationNodeVisi
667
695
  if (node.materialized) {
668
696
  this.append('materialized ');
669
697
  }
698
+ if (node.temporary) {
699
+ this.append('temporary ');
700
+ }
670
701
  this.append('view ');
671
702
  if (node.ifNotExists) {
672
703
  this.append('if not exists ');
@@ -1,8 +1,11 @@
1
- import { QueryBuilder } from './query-builder/query-builder.js';
2
- import { QueryBuilderWithTable, TableExpression, TableReference } from './parser/table-parser.js';
1
+ import { SelectQueryBuilder } from './query-builder/select-query-builder.js';
2
+ import { InsertQueryBuilder } from './query-builder/insert-query-builder.js';
3
+ import { DeleteQueryBuilder } from './query-builder/delete-query-builder.js';
4
+ import { UpdateQueryBuilder } from './query-builder/update-query-builder.js';
5
+ import { TableExpression, TableExpressionDatabase, TableExpressionTables, TableReference } from './parser/table-parser.js';
3
6
  import { QueryExecutor } from './query-executor/query-executor.js';
4
7
  import { RawBuilder } from './raw-builder/raw-builder.js';
5
- import { CommonTableExpression, QueryCreatorWithCommonTableExpression } from './parser/with-parser.js';
8
+ import { CommonTableExpression, QueryCreatorWithCommonTableExpression, RecursiveCommonTableExpression } from './parser/with-parser.js';
6
9
  import { WithNode } from './operation-node/with-node.js';
7
10
  import { ParseContext } from './parser/parse-context.js';
8
11
  import { InsertResult } from './query-builder/insert-result.js';
@@ -16,7 +19,8 @@ export declare class QueryCreator<DB> {
16
19
  *
17
20
  * The tables passed to this method are built as the query's `from` clause.
18
21
  *
19
- * @example
22
+ * ### Examples
23
+ *
20
24
  * Create a select query for one table:
21
25
  *
22
26
  * ```ts
@@ -29,12 +33,11 @@ export declare class QueryCreator<DB> {
29
33
  * select * from "person"
30
34
  * ```
31
35
  *
32
- * @example
33
36
  * Create a select query for one table with an alias:
34
37
  *
35
38
  * ```ts
36
39
  * const persons = await db.selectFrom('person as p')
37
- * .select(['p.id', 'p.first_name'])
40
+ * .select(['p.id', 'first_name'])
38
41
  * .execute()
39
42
  *
40
43
  * console.log(persons[0].id)
@@ -43,15 +46,14 @@ export declare class QueryCreator<DB> {
43
46
  * The generated SQL (PostgreSQL):
44
47
  *
45
48
  * ```sql
46
- * select "p"."id", "p"."first_name" from "person" as "p"
49
+ * select "p"."id", "first_name" from "person" as "p"
47
50
  * ```
48
51
  *
49
- * @example
50
52
  * Create a select query from a subquery:
51
53
  *
52
54
  * ```ts
53
55
  * const persons = await db.selectFrom(
54
- * db.selectFrom('person').select('person.id as identifier').as('p')
56
+ * (eb) => eb.selectFrom('person').select('person.id as identifier').as('p')
55
57
  * )
56
58
  * .select('p.identifier')
57
59
  * .execute()
@@ -68,12 +70,11 @@ export declare class QueryCreator<DB> {
68
70
  * ) as p
69
71
  * ```
70
72
  *
71
- * @example
72
73
  * Create a select query from raw sql:
73
74
  *
74
75
  * ```ts
75
76
  * const items = await db.selectFrom(
76
- * db.raw<{ one: number }>('(select 1 as one)').as('q')
77
+ * db.raw<{ one: number }>('(select 1 as one)').as('q')
77
78
  * )
78
79
  * .select('q.one')
79
80
  * .execute()
@@ -94,7 +95,6 @@ export declare class QueryCreator<DB> {
94
95
  * raw segment / query so that Kysely can figure out what columns are
95
96
  * available for the query.
96
97
  *
97
- * @example
98
98
  * The `selectFrom` method also accepts an array for multiple tables. All
99
99
  * the above examples can also be used in an array.
100
100
  *
@@ -102,7 +102,7 @@ export declare class QueryCreator<DB> {
102
102
  * const items = await db.selectFrom([
103
103
  * 'person as p',
104
104
  * db.selectFrom('pet').select('pet.species').as('a'),
105
- * db.raw<{ one: number }>('(select 1 as one)').as('q')
105
+ * db.raw<{ one: number }>('(select 1 as one)').as('q')
106
106
  * ])
107
107
  * .select(['p.id', 'a.species', 'q.one'])
108
108
  * .execute()
@@ -118,20 +118,21 @@ export declare class QueryCreator<DB> {
118
118
  * (select 1 as one) as "q"
119
119
  * ```
120
120
  */
121
- selectFrom<F extends TableExpression<DB, keyof DB>>(from: F[]): QueryBuilderWithTable<DB, never, {}, F>;
122
- selectFrom<F extends TableExpression<DB, keyof DB>>(from: F): QueryBuilderWithTable<DB, never, {}, F>;
121
+ selectFrom<TE extends TableExpression<DB, keyof DB>>(from: TE[]): SelectQueryBuilder<TableExpressionDatabase<DB, TE>, TableExpressionTables<DB, never, TE>, {}>;
122
+ selectFrom<TE extends TableExpression<DB, keyof DB>>(from: TE): SelectQueryBuilder<TableExpressionDatabase<DB, TE>, TableExpressionTables<DB, never, TE>, {}>;
123
123
  /**
124
124
  * Creates an insert query.
125
125
  *
126
126
  * The return value of this query is an instance of {@link InsertResult}. {@link InsertResult}
127
- * has the {@link InsertResult.insertId | insertId} field that holds the auto incremented id of
127
+ * has the {@link InsertResult.insertId | insertId} field that holds the auto incremented id of
128
128
  * the inserted row if the db returned one.
129
129
  *
130
- * See the {@link QueryBuilder.values | values} method for more info and examples. Also see
131
- * the {@link QueryBuilder.returning | returning} method for a way to return columns
130
+ * See the {@link InsertQueryBuilder.values | values} method for more info and examples. Also see
131
+ * the {@link ReturningInterface.returning | returning} method for a way to return columns
132
132
  * on supported databases like PostgreSQL.
133
133
  *
134
- * @example
134
+ * ### Examples
135
+ *
135
136
  * ```ts
136
137
  * const result = await db
137
138
  * .insertInto('person')
@@ -145,11 +146,10 @@ export declare class QueryCreator<DB> {
145
146
  * console.log(result.insertId)
146
147
  * ```
147
148
  *
148
- * @example
149
149
  * Some databases like PostgreSQL support the `returning` method:
150
150
  *
151
151
  * ```ts
152
- * const { id } = await db
152
+ * const { id } = await db
153
153
  * .insertInto('person')
154
154
  * .values({
155
155
  * id: db.generated,
@@ -160,16 +160,17 @@ export declare class QueryCreator<DB> {
160
160
  * .executeTakeFirst()
161
161
  * ```
162
162
  */
163
- insertInto<T extends keyof DB & string>(table: T): QueryBuilder<DB, T, InsertResult>;
163
+ insertInto<T extends keyof DB & string>(table: T): InsertQueryBuilder<DB, T, InsertResult>;
164
164
  /**
165
165
  * Creates a delete query.
166
166
  *
167
- * See the {@link QueryBuilder.where} method for examples on how to specify
167
+ * See the {@link WhereInterface.where} method for examples on how to specify
168
168
  * a where clause for the delete operation.
169
169
  *
170
170
  * The return value of the query is an instance of {@link DeleteResult}.
171
171
  *
172
- * @example
172
+ * ### Examples
173
+ *
173
174
  * ```ts
174
175
  * const result = await db
175
176
  * .deleteFrom('person')
@@ -179,19 +180,20 @@ export declare class QueryCreator<DB> {
179
180
  * console.log(result.numDeletedRows)
180
181
  * ```
181
182
  */
182
- deleteFrom<TR extends TableReference<DB>>(table: TR): QueryBuilderWithTable<DB, never, DeleteResult, TR>;
183
+ deleteFrom<TR extends TableReference<DB>>(table: TR): DeleteQueryBuilder<TableExpressionDatabase<DB, TR>, TableExpressionTables<DB, never, TR>, DeleteResult>;
183
184
  /**
184
185
  * Creates an update query.
185
186
  *
186
- * See the {@link QueryBuilder.where} method for examples on how to specify
187
+ * See the {@link WhereInterface.where} method for examples on how to specify
187
188
  * a where clause for the update operation.
188
189
  *
189
- * See the {@link QueryBuilder.set} method for examples on how to
190
+ * See the {@link UpdateQueryBuilder.set} method for examples on how to
190
191
  * specify the updates.
191
192
  *
192
193
  * The return value of the query is an {@link UpdateResult}.
193
194
  *
194
- * @example
195
+ * ### Examples
196
+ *
195
197
  * ```ts
196
198
  * const result = await db
197
199
  * .updateTable('person')
@@ -202,11 +204,12 @@ export declare class QueryCreator<DB> {
202
204
  * console.log(result.numUpdatedRows)
203
205
  * ```
204
206
  */
205
- updateTable<TR extends TableReference<DB>>(table: TR): QueryBuilderWithTable<DB, never, UpdateResult, TR>;
207
+ updateTable<TR extends TableReference<DB>>(table: TR): UpdateQueryBuilder<TableExpressionDatabase<DB, TR>, TableExpressionTables<DB, never, TR>, UpdateResult>;
206
208
  /**
207
- * Creates a `with` query (common table expressions).
209
+ * Creates a `with` query (Common Table Expression).
210
+ *
211
+ * ### Examples
208
212
  *
209
- * @example
210
213
  * ```ts
211
214
  * await db
212
215
  * .with('jennifers', (db) => db
@@ -224,8 +227,32 @@ export declare class QueryCreator<DB> {
224
227
  * .selectAll()
225
228
  * .execute()
226
229
  * ```
230
+ *
231
+ * The CTE name can optionally specify column names in addition to
232
+ * a name. In that case Kysely requires the expression to retun
233
+ * rows with the same columns.
234
+ *
235
+ * ```ts
236
+ * await db
237
+ * .with('jennifers(id, age)', (db) => db
238
+ * .selectFrom('person')
239
+ * .where('first_name', '=', 'Jennifer')
240
+ * // This is ok since we return columns with the same
241
+ * // names as specified by `jennifers(id, age)`.
242
+ * .select(['id', 'age'])
243
+ * )
244
+ * .selectFrom('jennifers')
245
+ * .selectAll()
246
+ * .execute()
247
+ * ```
227
248
  */
228
- with<N extends string, E extends CommonTableExpression<DB>>(name: N, expression: E): QueryCreatorWithCommonTableExpression<DB, N, E>;
249
+ with<N extends string, E extends CommonTableExpression<DB, N>>(name: N, expression: E): QueryCreatorWithCommonTableExpression<DB, N, E>;
250
+ /**
251
+ * Creates a recursive `with` query (Common Table Expression).
252
+ *
253
+ * See the {@link with} method for examples and more documentation.
254
+ */
255
+ withRecursive<N extends string, E extends RecursiveCommonTableExpression<DB, N>>(name: N, expression: E): QueryCreatorWithCommonTableExpression<DB, N, E>;
229
256
  /**
230
257
  * Sets the schema to be used for all table references that don't explicitly
231
258
  * specify a schema.
@@ -233,7 +260,8 @@ export declare class QueryCreator<DB> {
233
260
  * This only affects the query created through the builder returned from
234
261
  * this method and doesn't modify the `db` instance.
235
262
  *
236
- * @example
263
+ * ### Examples
264
+ *
237
265
  * ```
238
266
  * await db.withSchema('mammals')
239
267
  * .selectFrom('pet')
@@ -250,7 +278,6 @@ export declare class QueryCreator<DB> {
250
278
  * on "public"."person"."id" = "mammals"."pet"."owner_id"
251
279
  * ```
252
280
  *
253
- * @example
254
281
  * `withSchema` is smart enough to not add schema for aliases,
255
282
  * common table expressions or other places where the schema
256
283
  * doesn't belong to:
@@ -288,14 +315,8 @@ export declare class QueryCreator<DB> {
288
315
  * Raw builder instances can be passed to pretty much anywhere: `select`, `where`,
289
316
  * `*Join`, `groupBy`, `orderBy` etc. Just try it. If the method accepts it, it works.
290
317
  *
291
- * @param sql - The raw SQL. Special strings `?` and `??` can be used as parameter
292
- * placeholders. `?` for values and `??` for identifiers such as column names
293
- * or `column.table` references.
294
- *
295
- * @param params - The parameters that will be bound to the `?` and `??` placeholders in
296
- * the sql string.
318
+ * ### Examples
297
319
  *
298
- * @example
299
320
  * Example of using `raw` in a select statement:
300
321
  *
301
322
  * ```ts
@@ -349,7 +370,6 @@ export declare class QueryCreator<DB> {
349
370
  * array, never to the SQL string directly. But if the column names or values are trusted
350
371
  * and known at compile time, there is no reason to use parameters.
351
372
  *
352
- * @example
353
373
  * Example of using `raw` in `where`:
354
374
  *
355
375
  * ```ts
@@ -375,7 +395,6 @@ export declare class QueryCreator<DB> {
375
395
  * years. The number of years in this example is an untrusted user input, and therefore we use
376
396
  * a `?` placeholder for it.
377
397
  *
378
- * @example
379
398
  * Example of creating a completely raw query from scratch:
380
399
  *
381
400
  * ```ts
@@ -387,6 +406,13 @@ export declare class QueryCreator<DB> {
387
406
  * this case we know the resulting items will be of type `Person` se specify that.
388
407
  * The result of `execute()` method is always an array. In this case the type of
389
408
  * the `persons` variable is `Person[]`.
409
+ *
410
+ * @param sql - The raw SQL. Special strings `?` and `??` can be used as parameter
411
+ * placeholders. `?` for values and `??` for identifiers such as column names
412
+ * or `column.table` references.
413
+ *
414
+ * @param params - The parameters that will be bound to the `?` and `??` placeholders in
415
+ * the sql string.
390
416
  */
391
417
  raw<T = unknown>(sql: string, parameters?: any[]): RawBuilder<T>;
392
418
  }
@@ -1,7 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.QueryCreator = void 0;
4
- const query_builder_js_1 = require("./query-builder/query-builder.js");
4
+ const select_query_builder_js_1 = require("./query-builder/select-query-builder.js");
5
+ const insert_query_builder_js_1 = require("./query-builder/insert-query-builder.js");
6
+ const delete_query_builder_js_1 = require("./query-builder/delete-query-builder.js");
7
+ const update_query_builder_js_1 = require("./query-builder/update-query-builder.js");
5
8
  const delete_query_node_js_1 = require("./operation-node/delete-query-node.js");
6
9
  const insert_query_node_js_1 = require("./operation-node/insert-query-node.js");
7
10
  const select_query_node_js_1 = require("./operation-node/select-query-node.js");
@@ -19,7 +22,7 @@ class QueryCreator {
19
22
  this.#props = (0, object_utils_js_1.freeze)(props);
20
23
  }
21
24
  selectFrom(from) {
22
- return new query_builder_js_1.QueryBuilder({
25
+ return new select_query_builder_js_1.SelectQueryBuilder({
23
26
  queryId: (0, query_id_js_1.createQueryId)(),
24
27
  executor: this.#props.executor,
25
28
  parseContext: this.#props.parseContext,
@@ -30,14 +33,15 @@ class QueryCreator {
30
33
  * Creates an insert query.
31
34
  *
32
35
  * The return value of this query is an instance of {@link InsertResult}. {@link InsertResult}
33
- * has the {@link InsertResult.insertId | insertId} field that holds the auto incremented id of
36
+ * has the {@link InsertResult.insertId | insertId} field that holds the auto incremented id of
34
37
  * the inserted row if the db returned one.
35
38
  *
36
- * See the {@link QueryBuilder.values | values} method for more info and examples. Also see
37
- * the {@link QueryBuilder.returning | returning} method for a way to return columns
39
+ * See the {@link InsertQueryBuilder.values | values} method for more info and examples. Also see
40
+ * the {@link ReturningInterface.returning | returning} method for a way to return columns
38
41
  * on supported databases like PostgreSQL.
39
42
  *
40
- * @example
43
+ * ### Examples
44
+ *
41
45
  * ```ts
42
46
  * const result = await db
43
47
  * .insertInto('person')
@@ -51,11 +55,10 @@ class QueryCreator {
51
55
  * console.log(result.insertId)
52
56
  * ```
53
57
  *
54
- * @example
55
58
  * Some databases like PostgreSQL support the `returning` method:
56
59
  *
57
60
  * ```ts
58
- * const { id } = await db
61
+ * const { id } = await db
59
62
  * .insertInto('person')
60
63
  * .values({
61
64
  * id: db.generated,
@@ -67,7 +70,7 @@ class QueryCreator {
67
70
  * ```
68
71
  */
69
72
  insertInto(table) {
70
- return new query_builder_js_1.QueryBuilder({
73
+ return new insert_query_builder_js_1.InsertQueryBuilder({
71
74
  queryId: (0, query_id_js_1.createQueryId)(),
72
75
  executor: this.#props.executor,
73
76
  parseContext: this.#props.parseContext,
@@ -77,12 +80,13 @@ class QueryCreator {
77
80
  /**
78
81
  * Creates a delete query.
79
82
  *
80
- * See the {@link QueryBuilder.where} method for examples on how to specify
83
+ * See the {@link WhereInterface.where} method for examples on how to specify
81
84
  * a where clause for the delete operation.
82
85
  *
83
86
  * The return value of the query is an instance of {@link DeleteResult}.
84
87
  *
85
- * @example
88
+ * ### Examples
89
+ *
86
90
  * ```ts
87
91
  * const result = await db
88
92
  * .deleteFrom('person')
@@ -93,7 +97,7 @@ class QueryCreator {
93
97
  * ```
94
98
  */
95
99
  deleteFrom(table) {
96
- return new query_builder_js_1.QueryBuilder({
100
+ return new delete_query_builder_js_1.DeleteQueryBuilder({
97
101
  queryId: (0, query_id_js_1.createQueryId)(),
98
102
  executor: this.#props.executor,
99
103
  parseContext: this.#props.parseContext,
@@ -103,15 +107,16 @@ class QueryCreator {
103
107
  /**
104
108
  * Creates an update query.
105
109
  *
106
- * See the {@link QueryBuilder.where} method for examples on how to specify
110
+ * See the {@link WhereInterface.where} method for examples on how to specify
107
111
  * a where clause for the update operation.
108
112
  *
109
- * See the {@link QueryBuilder.set} method for examples on how to
113
+ * See the {@link UpdateQueryBuilder.set} method for examples on how to
110
114
  * specify the updates.
111
115
  *
112
116
  * The return value of the query is an {@link UpdateResult}.
113
117
  *
114
- * @example
118
+ * ### Examples
119
+ *
115
120
  * ```ts
116
121
  * const result = await db
117
122
  * .updateTable('person')
@@ -123,7 +128,7 @@ class QueryCreator {
123
128
  * ```
124
129
  */
125
130
  updateTable(table) {
126
- return new query_builder_js_1.QueryBuilder({
131
+ return new update_query_builder_js_1.UpdateQueryBuilder({
127
132
  queryId: (0, query_id_js_1.createQueryId)(),
128
133
  executor: this.#props.executor,
129
134
  parseContext: this.#props.parseContext,
@@ -131,9 +136,10 @@ class QueryCreator {
131
136
  });
132
137
  }
133
138
  /**
134
- * Creates a `with` query (common table expressions).
139
+ * Creates a `with` query (Common Table Expression).
140
+ *
141
+ * ### Examples
135
142
  *
136
- * @example
137
143
  * ```ts
138
144
  * await db
139
145
  * .with('jennifers', (db) => db
@@ -151,6 +157,24 @@ class QueryCreator {
151
157
  * .selectAll()
152
158
  * .execute()
153
159
  * ```
160
+ *
161
+ * The CTE name can optionally specify column names in addition to
162
+ * a name. In that case Kysely requires the expression to retun
163
+ * rows with the same columns.
164
+ *
165
+ * ```ts
166
+ * await db
167
+ * .with('jennifers(id, age)', (db) => db
168
+ * .selectFrom('person')
169
+ * .where('first_name', '=', 'Jennifer')
170
+ * // This is ok since we return columns with the same
171
+ * // names as specified by `jennifers(id, age)`.
172
+ * .select(['id', 'age'])
173
+ * )
174
+ * .selectFrom('jennifers')
175
+ * .selectAll()
176
+ * .execute()
177
+ * ```
154
178
  */
155
179
  with(name, expression) {
156
180
  const cte = (0, with_parser_js_1.parseCommonTableExpression)(this.#props.parseContext, name, expression);
@@ -161,6 +185,20 @@ class QueryCreator {
161
185
  : with_node_js_1.WithNode.create(cte),
162
186
  });
163
187
  }
188
+ /**
189
+ * Creates a recursive `with` query (Common Table Expression).
190
+ *
191
+ * See the {@link with} method for examples and more documentation.
192
+ */
193
+ withRecursive(name, expression) {
194
+ const cte = (0, with_parser_js_1.parseCommonTableExpression)(this.#props.parseContext, name, expression);
195
+ return new QueryCreator({
196
+ ...this.#props,
197
+ withNode: this.#props.withNode
198
+ ? with_node_js_1.WithNode.cloneWithExpression(this.#props.withNode, cte)
199
+ : with_node_js_1.WithNode.create(cte, { recursive: true }),
200
+ });
201
+ }
164
202
  /**
165
203
  * Sets the schema to be used for all table references that don't explicitly
166
204
  * specify a schema.
@@ -168,7 +206,8 @@ class QueryCreator {
168
206
  * This only affects the query created through the builder returned from
169
207
  * this method and doesn't modify the `db` instance.
170
208
  *
171
- * @example
209
+ * ### Examples
210
+ *
172
211
  * ```
173
212
  * await db.withSchema('mammals')
174
213
  * .selectFrom('pet')
@@ -185,7 +224,6 @@ class QueryCreator {
185
224
  * on "public"."person"."id" = "mammals"."pet"."owner_id"
186
225
  * ```
187
226
  *
188
- * @example
189
227
  * `withSchema` is smart enough to not add schema for aliases,
190
228
  * common table expressions or other places where the schema
191
229
  * doesn't belong to:
@@ -228,14 +266,8 @@ class QueryCreator {
228
266
  * Raw builder instances can be passed to pretty much anywhere: `select`, `where`,
229
267
  * `*Join`, `groupBy`, `orderBy` etc. Just try it. If the method accepts it, it works.
230
268
  *
231
- * @param sql - The raw SQL. Special strings `?` and `??` can be used as parameter
232
- * placeholders. `?` for values and `??` for identifiers such as column names
233
- * or `column.table` references.
269
+ * ### Examples
234
270
  *
235
- * @param params - The parameters that will be bound to the `?` and `??` placeholders in
236
- * the sql string.
237
- *
238
- * @example
239
271
  * Example of using `raw` in a select statement:
240
272
  *
241
273
  * ```ts
@@ -289,7 +321,6 @@ class QueryCreator {
289
321
  * array, never to the SQL string directly. But if the column names or values are trusted
290
322
  * and known at compile time, there is no reason to use parameters.
291
323
  *
292
- * @example
293
324
  * Example of using `raw` in `where`:
294
325
  *
295
326
  * ```ts
@@ -315,7 +346,6 @@ class QueryCreator {
315
346
  * years. The number of years in this example is an untrusted user input, and therefore we use
316
347
  * a `?` placeholder for it.
317
348
  *
318
- * @example
319
349
  * Example of creating a completely raw query from scratch:
320
350
  *
321
351
  * ```ts
@@ -327,6 +357,13 @@ class QueryCreator {
327
357
  * this case we know the resulting items will be of type `Person` se specify that.
328
358
  * The result of `execute()` method is always an array. In this case the type of
329
359
  * the `persons` variable is `Person[]`.
360
+ *
361
+ * @param sql - The raw SQL. Special strings `?` and `??` can be used as parameter
362
+ * placeholders. `?` for values and `??` for identifiers such as column names
363
+ * or `column.table` references.
364
+ *
365
+ * @param params - The parameters that will be bound to the `?` and `??` placeholders in
366
+ * the sql string.
330
367
  */
331
368
  raw(sql, parameters) {
332
369
  return new raw_builder_js_1.RawBuilder({
@@ -7,10 +7,29 @@ import { QueryExecutor } from './query-executor.js';
7
7
  export declare class DefaultQueryExecutor extends QueryExecutor {
8
8
  #private;
9
9
  constructor(compiler: QueryCompiler, connectionProvider: ConnectionProvider, plugins?: KyselyPlugin[]);
10
+ /**
11
+ * Compiles the transformed query into SQL. You usually want to pass
12
+ * the output of {@link transformQuery} into this method but you can
13
+ * compile any query using this method.
14
+ */
10
15
  compileQuery(node: RootOperationNode): CompiledQuery;
11
16
  protected executeQueryImpl<R>(compiledQuery: CompiledQuery): Promise<QueryResult<R>>;
17
+ /**
18
+ * Returns a copy of this executor with a plugin added as the
19
+ * last plugin.
20
+ */
12
21
  withPlugin(plugin: KyselyPlugin): DefaultQueryExecutor;
22
+ /**
23
+ * Returns a copy of this executor with a plugin added as the
24
+ * first plugin.
25
+ */
13
26
  withPluginAtFront(plugin: KyselyPlugin): DefaultQueryExecutor;
27
+ /**
28
+ * Returns a copy of this executor with a new connection provider.
29
+ */
14
30
  withConnectionProvider(connectionProvider: ConnectionProvider): QueryExecutor;
31
+ /**
32
+ * Returns a copy of this executor without any plugins.
33
+ */
15
34
  withoutPlugins(): QueryExecutor;
16
35
  }