kysely 0.27.5 → 0.28.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 (371) hide show
  1. package/CODE_OF_CONDUCT.md +183 -0
  2. package/FUNDING.md +25 -0
  3. package/README.md +182 -3
  4. package/deno.check.d.ts +7 -0
  5. package/dist/cjs/dialect/mssql/mssql-dialect-config.d.ts +26 -16
  6. package/dist/cjs/dialect/mssql/mssql-driver.d.ts +6 -3
  7. package/dist/cjs/dialect/mssql/mssql-driver.js +33 -19
  8. package/dist/cjs/dialect/mssql/mssql-query-compiler.d.ts +2 -0
  9. package/dist/cjs/dialect/mssql/mssql-query-compiler.js +11 -0
  10. package/dist/cjs/dialect/mysql/mysql-driver.d.ts +4 -0
  11. package/dist/cjs/dialect/mysql/mysql-driver.js +27 -12
  12. package/dist/cjs/dialect/postgres/postgres-driver.d.ts +4 -0
  13. package/dist/cjs/dialect/postgres/postgres-driver.js +28 -18
  14. package/dist/cjs/dialect/postgres/postgres-introspector.js +7 -17
  15. package/dist/cjs/dialect/sqlite/sqlite-driver.d.ts +4 -0
  16. package/dist/cjs/dialect/sqlite/sqlite-driver.js +19 -13
  17. package/dist/cjs/dialect/sqlite/sqlite-introspector.js +66 -44
  18. package/dist/cjs/dialect/sqlite/sqlite-query-compiler.d.ts +2 -0
  19. package/dist/cjs/dialect/sqlite/sqlite-query-compiler.js +4 -0
  20. package/dist/cjs/driver/database-connection.d.ts +0 -4
  21. package/dist/cjs/driver/driver.d.ts +17 -0
  22. package/dist/cjs/driver/driver.js +13 -1
  23. package/dist/cjs/driver/dummy-driver.d.ts +3 -0
  24. package/dist/cjs/driver/dummy-driver.js +9 -0
  25. package/dist/cjs/driver/runtime-driver.d.ts +4 -0
  26. package/dist/cjs/driver/runtime-driver.js +43 -3
  27. package/dist/cjs/expression/expression-builder.d.ts +9 -10
  28. package/dist/cjs/helpers/postgres.d.ts +48 -0
  29. package/dist/cjs/helpers/postgres.js +50 -0
  30. package/dist/cjs/index.d.ts +13 -2
  31. package/dist/cjs/index.js +13 -2
  32. package/dist/cjs/kysely.d.ts +339 -2
  33. package/dist/cjs/kysely.js +465 -11
  34. package/dist/cjs/migration/migrator.d.ts +16 -1
  35. package/dist/cjs/migration/migrator.js +14 -4
  36. package/dist/cjs/operation-node/aggregate-function-node.d.ts +2 -1
  37. package/dist/cjs/operation-node/aggregate-function-node.js +4 -3
  38. package/dist/cjs/operation-node/alter-table-node.d.ts +3 -1
  39. package/dist/cjs/operation-node/collate-node.d.ts +13 -0
  40. package/dist/cjs/operation-node/collate-node.js +19 -0
  41. package/dist/cjs/operation-node/constraint-node.d.ts +1 -1
  42. package/dist/cjs/operation-node/create-type-node.d.ts +1 -1
  43. package/dist/cjs/operation-node/create-type-node.js +1 -1
  44. package/dist/cjs/operation-node/delete-query-node.d.ts +8 -2
  45. package/dist/cjs/operation-node/delete-query-node.js +11 -15
  46. package/dist/cjs/operation-node/foreign-key-constraint-node.d.ts +4 -0
  47. package/dist/cjs/operation-node/insert-query-node.d.ts +3 -0
  48. package/dist/cjs/operation-node/join-node.d.ts +1 -1
  49. package/dist/cjs/operation-node/merge-query-node.d.ts +2 -0
  50. package/dist/cjs/operation-node/operation-node-transformer.d.ts +106 -97
  51. package/dist/cjs/operation-node/operation-node-transformer.js +352 -312
  52. package/dist/cjs/operation-node/operation-node-visitor.d.ts +9 -1
  53. package/dist/cjs/operation-node/operation-node-visitor.js +4 -0
  54. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  55. package/dist/cjs/operation-node/or-action-node.d.ts +12 -0
  56. package/dist/cjs/operation-node/or-action-node.js +18 -0
  57. package/dist/cjs/operation-node/order-by-item-node.d.ts +5 -0
  58. package/dist/cjs/operation-node/order-by-item-node.js +6 -0
  59. package/dist/cjs/operation-node/primary-key-constraint-node.d.ts +29 -0
  60. package/dist/cjs/operation-node/{primary-constraint-node.js → primary-key-constraint-node.js} +11 -2
  61. package/dist/cjs/operation-node/query-node.d.ts +7 -0
  62. package/dist/cjs/operation-node/query-node.js +15 -0
  63. package/dist/cjs/operation-node/refresh-materialized-view-node.d.ts +17 -0
  64. package/dist/cjs/operation-node/refresh-materialized-view-node.js +25 -0
  65. package/dist/cjs/operation-node/rename-constraint-node.d.ts +14 -0
  66. package/dist/cjs/operation-node/rename-constraint-node.js +20 -0
  67. package/dist/cjs/operation-node/select-query-node.d.ts +8 -2
  68. package/dist/cjs/operation-node/select-query-node.js +11 -15
  69. package/dist/cjs/operation-node/unique-constraint-node.d.ts +2 -0
  70. package/dist/cjs/operation-node/update-query-node.d.ts +3 -4
  71. package/dist/cjs/operation-node/update-query-node.js +5 -2
  72. package/dist/cjs/parser/collate-parser.d.ts +1 -0
  73. package/dist/cjs/parser/collate-parser.js +2 -0
  74. package/dist/cjs/parser/delete-from-parser.d.ts +5 -0
  75. package/dist/cjs/parser/delete-from-parser.js +2 -0
  76. package/dist/cjs/parser/insert-values-parser.js +3 -1
  77. package/dist/cjs/parser/join-parser.d.ts +1 -1
  78. package/dist/cjs/parser/join-parser.js +7 -1
  79. package/dist/cjs/parser/merge-into-parser.d.ts +5 -0
  80. package/dist/cjs/parser/merge-into-parser.js +2 -0
  81. package/dist/cjs/parser/order-by-parser.d.ts +18 -5
  82. package/dist/cjs/parser/order-by-parser.js +24 -14
  83. package/dist/cjs/parser/savepoint-parser.d.ts +4 -0
  84. package/dist/cjs/parser/savepoint-parser.js +11 -0
  85. package/dist/cjs/parser/select-from-parser.d.ts +4 -0
  86. package/dist/cjs/parser/select-from-parser.js +2 -0
  87. package/dist/cjs/parser/table-parser.d.ts +2 -5
  88. package/dist/cjs/parser/update-parser.d.ts +5 -0
  89. package/dist/cjs/parser/update-parser.js +2 -0
  90. package/dist/cjs/parser/update-set-parser.d.ts +7 -4
  91. package/dist/cjs/plugin/camel-case/camel-case-plugin.js +1 -1
  92. package/dist/cjs/plugin/camel-case/camel-case-transformer.d.ts +2 -1
  93. package/dist/cjs/plugin/camel-case/camel-case-transformer.js +2 -2
  94. package/dist/cjs/plugin/camel-case/camel-case.js +4 -1
  95. package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
  96. package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-transformer.d.ts +4 -3
  97. package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-transformer.js +6 -6
  98. package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists-plugin.d.ts +211 -0
  99. package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists-plugin.js +162 -0
  100. package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists-transformer.d.ts +8 -0
  101. package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists-transformer.js +29 -0
  102. package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists.d.ts +44 -0
  103. package/dist/cjs/plugin/handle-empty-in-lists/handle-empty-in-lists.js +66 -0
  104. package/dist/cjs/plugin/immediate-value/immediate-value-plugin.js +1 -1
  105. package/dist/cjs/plugin/immediate-value/immediate-value-transformer.d.ts +2 -0
  106. package/dist/cjs/plugin/immediate-value/immediate-value-transformer.js +6 -4
  107. package/dist/cjs/plugin/with-schema/with-schema-plugin.js +1 -1
  108. package/dist/cjs/plugin/with-schema/with-schema-transformer.d.ts +8 -3
  109. package/dist/cjs/plugin/with-schema/with-schema-transformer.js +45 -14
  110. package/dist/cjs/query-builder/aggregate-function-builder.d.ts +83 -5
  111. package/dist/cjs/query-builder/aggregate-function-builder.js +15 -27
  112. package/dist/cjs/query-builder/cte-builder.js +0 -2
  113. package/dist/cjs/query-builder/delete-query-builder.d.ts +36 -47
  114. package/dist/cjs/query-builder/delete-query-builder.js +12 -78
  115. package/dist/cjs/query-builder/function-module.d.ts +31 -4
  116. package/dist/cjs/query-builder/insert-query-builder.d.ts +161 -6
  117. package/dist/cjs/query-builder/insert-query-builder.js +197 -10
  118. package/dist/cjs/query-builder/join-builder.js +0 -2
  119. package/dist/cjs/query-builder/merge-query-builder.d.ts +145 -3
  120. package/dist/cjs/query-builder/merge-query-builder.js +28 -7
  121. package/dist/cjs/query-builder/on-conflict-builder.js +0 -4
  122. package/dist/cjs/query-builder/order-by-interface.d.ts +176 -0
  123. package/dist/cjs/query-builder/order-by-interface.js +2 -0
  124. package/dist/cjs/query-builder/order-by-item-builder.d.ts +43 -0
  125. package/dist/cjs/query-builder/order-by-item-builder.js +75 -0
  126. package/dist/cjs/query-builder/over-builder.d.ts +43 -6
  127. package/dist/cjs/query-builder/over-builder.js +8 -25
  128. package/dist/cjs/query-builder/returning-interface.d.ts +20 -3
  129. package/dist/cjs/query-builder/select-query-builder.d.ts +279 -98
  130. package/dist/cjs/query-builder/select-query-builder.js +26 -26
  131. package/dist/cjs/query-builder/update-query-builder.d.ts +88 -9
  132. package/dist/cjs/query-builder/update-query-builder.js +17 -15
  133. package/dist/cjs/query-compiler/compiled-query.d.ts +2 -0
  134. package/dist/cjs/query-compiler/compiled-query.js +2 -0
  135. package/dist/cjs/query-compiler/default-query-compiler.d.ts +17 -2
  136. package/dist/cjs/query-compiler/default-query-compiler.js +97 -2
  137. package/dist/cjs/query-compiler/query-compiler.d.ts +4 -2
  138. package/dist/cjs/query-creator.d.ts +23 -25
  139. package/dist/cjs/query-creator.js +280 -8
  140. package/dist/cjs/query-executor/default-query-executor.d.ts +2 -1
  141. package/dist/cjs/query-executor/default-query-executor.js +2 -2
  142. package/dist/cjs/query-executor/query-executor-base.js +7 -25
  143. package/dist/cjs/raw-builder/raw-builder.js +0 -3
  144. package/dist/cjs/raw-builder/sql.d.ts +4 -4
  145. package/dist/cjs/raw-builder/sql.js +1 -1
  146. package/dist/cjs/schema/alter-column-builder.js +0 -3
  147. package/dist/cjs/schema/alter-table-add-foreign-key-constraint-builder.d.ts +4 -0
  148. package/dist/cjs/schema/alter-table-add-foreign-key-constraint-builder.js +24 -2
  149. package/dist/cjs/schema/alter-table-add-index-builder.js +0 -2
  150. package/dist/cjs/schema/alter-table-builder.d.ts +7 -3
  151. package/dist/cjs/schema/alter-table-builder.js +21 -10
  152. package/dist/cjs/schema/alter-table-drop-constraint-builder.js +0 -2
  153. package/dist/cjs/schema/alter-table-executor.js +0 -2
  154. package/dist/cjs/schema/check-constraint-builder.d.ts +13 -0
  155. package/dist/cjs/schema/check-constraint-builder.js +20 -0
  156. package/dist/cjs/schema/column-definition-builder.js +0 -2
  157. package/dist/cjs/schema/create-index-builder.js +1 -3
  158. package/dist/cjs/schema/create-schema-builder.js +0 -2
  159. package/dist/cjs/schema/create-table-builder.d.ts +5 -4
  160. package/dist/cjs/schema/create-table-builder.js +9 -7
  161. package/dist/cjs/schema/create-type-builder.d.ts +1 -1
  162. package/dist/cjs/schema/create-type-builder.js +0 -2
  163. package/dist/cjs/schema/create-view-builder.js +0 -2
  164. package/dist/cjs/schema/drop-index-builder.js +0 -2
  165. package/dist/cjs/schema/drop-schema-builder.js +0 -2
  166. package/dist/cjs/schema/drop-table-builder.js +0 -2
  167. package/dist/cjs/schema/drop-type-builder.js +0 -2
  168. package/dist/cjs/schema/drop-view-builder.js +0 -2
  169. package/dist/cjs/schema/foreign-key-constraint-builder.d.ts +9 -0
  170. package/dist/cjs/schema/foreign-key-constraint-builder.js +16 -2
  171. package/dist/cjs/schema/primary-key-constraint-builder.d.ts +17 -0
  172. package/dist/cjs/schema/primary-key-constraint-builder.js +37 -0
  173. package/dist/cjs/schema/refresh-materialized-view-builder.d.ts +47 -0
  174. package/dist/cjs/schema/refresh-materialized-view-builder.js +75 -0
  175. package/dist/cjs/schema/schema.d.ts +14 -0
  176. package/dist/cjs/schema/schema.js +21 -0
  177. package/dist/cjs/schema/unique-constraint-builder.d.ts +10 -1
  178. package/dist/cjs/schema/unique-constraint-builder.js +26 -5
  179. package/dist/cjs/util/infer-result.d.ts +1 -1
  180. package/dist/cjs/util/log.d.ts +1 -0
  181. package/dist/cjs/util/log.js +3 -2
  182. package/dist/cjs/util/provide-controlled-connection.d.ts +7 -0
  183. package/dist/cjs/util/provide-controlled-connection.js +24 -0
  184. package/dist/esm/dialect/mssql/mssql-dialect-config.d.ts +26 -16
  185. package/dist/esm/dialect/mssql/mssql-driver.d.ts +6 -3
  186. package/dist/esm/dialect/mssql/mssql-driver.js +33 -19
  187. package/dist/esm/dialect/mssql/mssql-query-compiler.d.ts +2 -0
  188. package/dist/esm/dialect/mssql/mssql-query-compiler.js +11 -0
  189. package/dist/esm/dialect/mysql/mysql-driver.d.ts +4 -0
  190. package/dist/esm/dialect/mysql/mysql-driver.js +27 -12
  191. package/dist/esm/dialect/postgres/postgres-driver.d.ts +4 -0
  192. package/dist/esm/dialect/postgres/postgres-driver.js +28 -18
  193. package/dist/esm/dialect/postgres/postgres-introspector.js +7 -17
  194. package/dist/esm/dialect/sqlite/sqlite-driver.d.ts +4 -0
  195. package/dist/esm/dialect/sqlite/sqlite-driver.js +19 -13
  196. package/dist/esm/dialect/sqlite/sqlite-introspector.js +66 -44
  197. package/dist/esm/dialect/sqlite/sqlite-query-compiler.d.ts +2 -0
  198. package/dist/esm/dialect/sqlite/sqlite-query-compiler.js +4 -0
  199. package/dist/esm/driver/database-connection.d.ts +0 -4
  200. package/dist/esm/driver/driver.d.ts +17 -0
  201. package/dist/esm/driver/driver.js +11 -0
  202. package/dist/esm/driver/dummy-driver.d.ts +3 -0
  203. package/dist/esm/driver/dummy-driver.js +9 -0
  204. package/dist/esm/driver/runtime-driver.d.ts +4 -0
  205. package/dist/esm/driver/runtime-driver.js +43 -3
  206. package/dist/esm/expression/expression-builder.d.ts +9 -10
  207. package/dist/esm/helpers/postgres.d.ts +48 -0
  208. package/dist/esm/helpers/postgres.js +49 -0
  209. package/dist/esm/index.d.ts +13 -2
  210. package/dist/esm/index.js +11 -1
  211. package/dist/esm/kysely.d.ts +339 -2
  212. package/dist/esm/kysely.js +461 -10
  213. package/dist/esm/migration/migrator.d.ts +16 -1
  214. package/dist/esm/migration/migrator.js +14 -4
  215. package/dist/esm/operation-node/aggregate-function-node.d.ts +2 -1
  216. package/dist/esm/operation-node/aggregate-function-node.js +4 -3
  217. package/dist/esm/operation-node/alter-table-node.d.ts +3 -1
  218. package/dist/esm/operation-node/collate-node.d.ts +13 -0
  219. package/dist/esm/operation-node/collate-node.js +17 -0
  220. package/dist/esm/operation-node/constraint-node.d.ts +1 -1
  221. package/dist/esm/operation-node/create-type-node.d.ts +1 -1
  222. package/dist/esm/operation-node/create-type-node.js +1 -1
  223. package/dist/esm/operation-node/delete-query-node.d.ts +8 -2
  224. package/dist/esm/operation-node/delete-query-node.js +11 -15
  225. package/dist/esm/operation-node/foreign-key-constraint-node.d.ts +4 -0
  226. package/dist/esm/operation-node/insert-query-node.d.ts +3 -0
  227. package/dist/esm/operation-node/join-node.d.ts +1 -1
  228. package/dist/esm/operation-node/merge-query-node.d.ts +2 -0
  229. package/dist/esm/operation-node/operation-node-transformer.d.ts +106 -97
  230. package/dist/esm/operation-node/operation-node-transformer.js +352 -312
  231. package/dist/esm/operation-node/operation-node-visitor.d.ts +9 -1
  232. package/dist/esm/operation-node/operation-node-visitor.js +4 -0
  233. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  234. package/dist/esm/operation-node/or-action-node.d.ts +12 -0
  235. package/dist/esm/operation-node/or-action-node.js +16 -0
  236. package/dist/esm/operation-node/order-by-item-node.d.ts +5 -0
  237. package/dist/esm/operation-node/order-by-item-node.js +6 -0
  238. package/dist/esm/operation-node/primary-key-constraint-node.d.ts +29 -0
  239. package/dist/esm/operation-node/{primary-constraint-node.js → primary-key-constraint-node.js} +11 -2
  240. package/dist/esm/operation-node/query-node.d.ts +7 -0
  241. package/dist/esm/operation-node/query-node.js +15 -0
  242. package/dist/esm/operation-node/refresh-materialized-view-node.d.ts +17 -0
  243. package/dist/esm/operation-node/refresh-materialized-view-node.js +23 -0
  244. package/dist/esm/operation-node/rename-constraint-node.d.ts +14 -0
  245. package/dist/esm/operation-node/rename-constraint-node.js +18 -0
  246. package/dist/esm/operation-node/select-query-node.d.ts +8 -2
  247. package/dist/esm/operation-node/select-query-node.js +11 -15
  248. package/dist/esm/operation-node/unique-constraint-node.d.ts +2 -0
  249. package/dist/esm/operation-node/update-query-node.d.ts +3 -4
  250. package/dist/esm/operation-node/update-query-node.js +5 -2
  251. package/dist/esm/parser/collate-parser.d.ts +1 -0
  252. package/dist/esm/parser/collate-parser.js +2 -0
  253. package/dist/esm/parser/delete-from-parser.d.ts +5 -0
  254. package/dist/esm/parser/delete-from-parser.js +2 -0
  255. package/dist/esm/parser/insert-values-parser.js +3 -1
  256. package/dist/esm/parser/join-parser.d.ts +1 -1
  257. package/dist/esm/parser/join-parser.js +7 -1
  258. package/dist/esm/parser/merge-into-parser.d.ts +5 -0
  259. package/dist/esm/parser/merge-into-parser.js +2 -0
  260. package/dist/esm/parser/order-by-parser.d.ts +18 -5
  261. package/dist/esm/parser/order-by-parser.js +27 -17
  262. package/dist/esm/parser/savepoint-parser.d.ts +4 -0
  263. package/dist/esm/parser/savepoint-parser.js +9 -0
  264. package/dist/esm/parser/select-from-parser.d.ts +4 -0
  265. package/dist/esm/parser/select-from-parser.js +2 -0
  266. package/dist/esm/parser/table-parser.d.ts +2 -5
  267. package/dist/esm/parser/update-parser.d.ts +5 -0
  268. package/dist/esm/parser/update-parser.js +2 -0
  269. package/dist/esm/parser/update-set-parser.d.ts +7 -4
  270. package/dist/esm/plugin/camel-case/camel-case-plugin.js +1 -1
  271. package/dist/esm/plugin/camel-case/camel-case-transformer.d.ts +2 -1
  272. package/dist/esm/plugin/camel-case/camel-case-transformer.js +2 -2
  273. package/dist/esm/plugin/camel-case/camel-case.js +4 -1
  274. package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
  275. package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-transformer.d.ts +4 -3
  276. package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-transformer.js +6 -6
  277. package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists-plugin.d.ts +211 -0
  278. package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists-plugin.js +159 -0
  279. package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists-transformer.d.ts +8 -0
  280. package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists-transformer.js +26 -0
  281. package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists.d.ts +44 -0
  282. package/dist/esm/plugin/handle-empty-in-lists/handle-empty-in-lists.js +63 -0
  283. package/dist/esm/plugin/immediate-value/immediate-value-plugin.js +1 -1
  284. package/dist/esm/plugin/immediate-value/immediate-value-transformer.d.ts +2 -0
  285. package/dist/esm/plugin/immediate-value/immediate-value-transformer.js +6 -4
  286. package/dist/esm/plugin/with-schema/with-schema-plugin.js +1 -1
  287. package/dist/esm/plugin/with-schema/with-schema-transformer.d.ts +8 -3
  288. package/dist/esm/plugin/with-schema/with-schema-transformer.js +45 -14
  289. package/dist/esm/query-builder/aggregate-function-builder.d.ts +83 -5
  290. package/dist/esm/query-builder/aggregate-function-builder.js +15 -27
  291. package/dist/esm/query-builder/cte-builder.js +0 -2
  292. package/dist/esm/query-builder/delete-query-builder.d.ts +36 -47
  293. package/dist/esm/query-builder/delete-query-builder.js +12 -78
  294. package/dist/esm/query-builder/function-module.d.ts +31 -4
  295. package/dist/esm/query-builder/insert-query-builder.d.ts +161 -6
  296. package/dist/esm/query-builder/insert-query-builder.js +197 -10
  297. package/dist/esm/query-builder/join-builder.js +0 -2
  298. package/dist/esm/query-builder/merge-query-builder.d.ts +145 -3
  299. package/dist/esm/query-builder/merge-query-builder.js +29 -8
  300. package/dist/esm/query-builder/on-conflict-builder.js +0 -4
  301. package/dist/esm/query-builder/order-by-interface.d.ts +176 -0
  302. package/dist/esm/query-builder/order-by-interface.js +2 -0
  303. package/dist/esm/query-builder/order-by-item-builder.d.ts +43 -0
  304. package/dist/esm/query-builder/order-by-item-builder.js +72 -0
  305. package/dist/esm/query-builder/over-builder.d.ts +43 -6
  306. package/dist/esm/query-builder/over-builder.js +8 -25
  307. package/dist/esm/query-builder/returning-interface.d.ts +20 -3
  308. package/dist/esm/query-builder/select-query-builder.d.ts +279 -98
  309. package/dist/esm/query-builder/select-query-builder.js +26 -26
  310. package/dist/esm/query-builder/update-query-builder.d.ts +88 -9
  311. package/dist/esm/query-builder/update-query-builder.js +17 -15
  312. package/dist/esm/query-compiler/compiled-query.d.ts +2 -0
  313. package/dist/esm/query-compiler/compiled-query.js +2 -0
  314. package/dist/esm/query-compiler/default-query-compiler.d.ts +17 -2
  315. package/dist/esm/query-compiler/default-query-compiler.js +97 -2
  316. package/dist/esm/query-compiler/query-compiler.d.ts +4 -2
  317. package/dist/esm/query-creator.d.ts +23 -25
  318. package/dist/esm/query-creator.js +281 -9
  319. package/dist/esm/query-executor/default-query-executor.d.ts +2 -1
  320. package/dist/esm/query-executor/default-query-executor.js +2 -2
  321. package/dist/esm/query-executor/query-executor-base.js +7 -25
  322. package/dist/esm/raw-builder/raw-builder.js +0 -3
  323. package/dist/esm/raw-builder/sql.d.ts +4 -4
  324. package/dist/esm/raw-builder/sql.js +1 -1
  325. package/dist/esm/schema/alter-column-builder.js +0 -3
  326. package/dist/esm/schema/alter-table-add-foreign-key-constraint-builder.d.ts +4 -0
  327. package/dist/esm/schema/alter-table-add-foreign-key-constraint-builder.js +24 -2
  328. package/dist/esm/schema/alter-table-add-index-builder.js +0 -2
  329. package/dist/esm/schema/alter-table-builder.d.ts +7 -3
  330. package/dist/esm/schema/alter-table-builder.js +22 -11
  331. package/dist/esm/schema/alter-table-drop-constraint-builder.js +0 -2
  332. package/dist/esm/schema/alter-table-executor.js +0 -2
  333. package/dist/esm/schema/check-constraint-builder.d.ts +13 -0
  334. package/dist/esm/schema/check-constraint-builder.js +17 -0
  335. package/dist/esm/schema/column-definition-builder.js +0 -2
  336. package/dist/esm/schema/create-index-builder.js +1 -3
  337. package/dist/esm/schema/create-schema-builder.js +0 -2
  338. package/dist/esm/schema/create-table-builder.d.ts +5 -4
  339. package/dist/esm/schema/create-table-builder.js +10 -8
  340. package/dist/esm/schema/create-type-builder.d.ts +1 -1
  341. package/dist/esm/schema/create-type-builder.js +0 -2
  342. package/dist/esm/schema/create-view-builder.js +0 -2
  343. package/dist/esm/schema/drop-index-builder.js +0 -2
  344. package/dist/esm/schema/drop-schema-builder.js +0 -2
  345. package/dist/esm/schema/drop-table-builder.js +0 -2
  346. package/dist/esm/schema/drop-type-builder.js +0 -2
  347. package/dist/esm/schema/drop-view-builder.js +0 -2
  348. package/dist/esm/schema/foreign-key-constraint-builder.d.ts +9 -0
  349. package/dist/esm/schema/foreign-key-constraint-builder.js +16 -2
  350. package/dist/esm/schema/primary-key-constraint-builder.d.ts +17 -0
  351. package/dist/esm/schema/primary-key-constraint-builder.js +34 -0
  352. package/dist/esm/schema/refresh-materialized-view-builder.d.ts +47 -0
  353. package/dist/esm/schema/refresh-materialized-view-builder.js +72 -0
  354. package/dist/esm/schema/schema.d.ts +14 -0
  355. package/dist/esm/schema/schema.js +21 -0
  356. package/dist/esm/schema/unique-constraint-builder.d.ts +10 -1
  357. package/dist/esm/schema/unique-constraint-builder.js +26 -5
  358. package/dist/esm/util/infer-result.d.ts +1 -1
  359. package/dist/esm/util/log.d.ts +1 -0
  360. package/dist/esm/util/log.js +3 -2
  361. package/dist/esm/util/provide-controlled-connection.d.ts +7 -0
  362. package/dist/esm/util/provide-controlled-connection.js +22 -0
  363. package/outdated-typescript.d.ts +5 -0
  364. package/package.json +16 -2
  365. package/CONTRIBUTING.md +0 -70
  366. package/dist/cjs/operation-node/primary-constraint-node.d.ts +0 -15
  367. package/dist/cjs/util/prevent-await.d.ts +0 -1
  368. package/dist/cjs/util/prevent-await.js +0 -13
  369. package/dist/esm/operation-node/primary-constraint-node.d.ts +0 -15
  370. package/dist/esm/util/prevent-await.d.ts +0 -1
  371. package/dist/esm/util/prevent-await.js +0 -11
@@ -12,11 +12,11 @@ import { QueryExecutor } from '../query-executor/query-executor.js';
12
12
  import { QueryId } from '../util/query-id.js';
13
13
  import { KyselyPlugin } from '../plugin/kysely-plugin.js';
14
14
  import { WhereInterface } from './where-interface.js';
15
- import { ReturningInterface } from './returning-interface.js';
15
+ import { MultiTableReturningInterface } from './returning-interface.js';
16
16
  import { NoResultErrorConstructor } from './no-result-error.js';
17
17
  import { DeleteResult } from './delete-result.js';
18
18
  import { DeleteQueryNode } from '../operation-node/delete-query-node.js';
19
- import { OrderByDirectionExpression, OrderByExpression } from '../parser/order-by-parser.js';
19
+ import { OrderByExpression, OrderByModifiers, DirectedOrderByStringReference } from '../parser/order-by-parser.js';
20
20
  import { Explainable, ExplainFormat } from '../util/explainable.js';
21
21
  import { AliasedExpression, Expression } from '../expression/expression.js';
22
22
  import { ComparisonOperatorExpression, OperandValueExpressionOrList } from '../parser/binary-operation-parser.js';
@@ -25,7 +25,8 @@ import { Streamable } from '../util/streamable.js';
25
25
  import { ExpressionOrFactory } from '../parser/expression-parser.js';
26
26
  import { ValueExpression } from '../parser/value-parser.js';
27
27
  import { OutputCallback, OutputExpression, OutputInterface, SelectExpressionFromOutputCallback, SelectExpressionFromOutputExpression } from './output-interface.js';
28
- export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements WhereInterface<DB, TB>, ReturningInterface<DB, TB, O>, OutputInterface<DB, TB, O, 'deleted'>, OperationNodeSource, Compilable<O>, Explainable, Streamable<O> {
28
+ import { OrderByInterface } from './order-by-interface.js';
29
+ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements WhereInterface<DB, TB>, MultiTableReturningInterface<DB, TB, O>, OutputInterface<DB, TB, O, 'deleted'>, OrderByInterface<DB, TB, {}>, OperationNodeSource, Compilable<O>, Explainable, Streamable<O> {
29
30
  #private;
30
31
  constructor(props: DeleteQueryBuilderProps);
31
32
  /**
@@ -650,7 +651,7 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
650
651
  * Allows you to return data from modified rows.
651
652
  *
652
653
  * On supported databases like PostgreSQL, this method can be chained to
653
- * `insert`, `update` and `delete` queries to return data.
654
+ * `insert`, `update`, `delete` and `merge` queries to return data.
654
655
  *
655
656
  * Note that on SQLite you need to give aliases for the expressions to avoid
656
657
  * [this bug](https://sqlite.org/forum/forumpost/033daf0b32) in SQLite.
@@ -802,8 +803,8 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
802
803
  */
803
804
  returningAll<T extends TB>(tables: ReadonlyArray<T>): DeleteQueryBuilder<DB, TB, ReturningAllRow<DB, T, O>>;
804
805
  /**
805
- * Adds a `returning *` to an insert/update/delete query on databases
806
- * that support `returning` such as PostgreSQL.
806
+ * Adds a `returning *` or `returning table.*` to an insert/update/delete/merge
807
+ * query on databases that support `returning` such as PostgreSQL.
807
808
  *
808
809
  * Also see the {@link returning} method.
809
810
  */
@@ -975,61 +976,49 @@ export declare class DeleteQueryBuilder<DB, TB extends keyof DB, O> implements W
975
976
  */
976
977
  clearLimit(): DeleteQueryBuilder<DB, TB, O>;
977
978
  /**
978
- * Clears the `order by` clause from the query.
979
- *
980
- * ### Examples
981
- *
982
- * ```ts
983
- * await db.deleteFrom('pet')
984
- * .returningAll()
985
- * .where('name', '=', 'Max')
986
- * .orderBy('id')
987
- * .clearOrderBy()
988
- * .execute()
989
- * ```
990
- *
991
- * The generated SQL(PostgreSQL):
992
- *
993
- * ```sql
994
- * delete from "pet" where "name" = "Max" returning *
995
- * ```
979
+ * @description This is only supported by some dialects like MySQL or SQLite with `SQLITE_ENABLE_UPDATE_DELETE_LIMIT`.
996
980
  */
997
- clearOrderBy(): DeleteQueryBuilder<DB, TB, O>;
981
+ orderBy<OE extends OrderByExpression<DB, TB, {}>>(expr: OE, modifiers?: OrderByModifiers): DeleteQueryBuilder<DB, TB, O>;
998
982
  /**
999
- * Adds an `order by` clause to the query.
1000
- *
1001
- * `orderBy` calls are additive. To order by multiple columns, call `orderBy`
1002
- * multiple times.
1003
- *
1004
- * The first argument is the expression to order by and the second is the
1005
- * order (`asc` or `desc`).
1006
- *
1007
- * An `order by` clause in a delete query is only supported by some dialects
1008
- * like MySQL.
983
+ * @description This is only supported by some dialects like MySQL or SQLite with `SQLITE_ENABLE_UPDATE_DELETE_LIMIT`.
984
+ * @deprecated It does ~2-2.6x more compile-time instantiations compared to multiple chained `orderBy(expr, modifiers?)` calls (in `order by` clauses with reasonable item counts), and has broken autocompletion.
985
+ */
986
+ orderBy<OE extends OrderByExpression<DB, TB, {}> | DirectedOrderByStringReference<DB, TB, {}>>(exprs: ReadonlyArray<OE>): DeleteQueryBuilder<DB, TB, O>;
987
+ /**
988
+ * @description This is only supported by some dialects like MySQL or SQLite with `SQLITE_ENABLE_UPDATE_DELETE_LIMIT`.
989
+ * @deprecated It does ~2.9x more compile-time instantiations compared to a `orderBy(expr, direction)` call.
990
+ */
991
+ orderBy<OE extends DirectedOrderByStringReference<DB, TB, {}>>(expr: OE): DeleteQueryBuilder<DB, TB, O>;
992
+ /**
993
+ * @description This is only supported by some dialects like MySQL or SQLite with `SQLITE_ENABLE_UPDATE_DELETE_LIMIT`.
994
+ * @deprecated Use `orderBy(expr, (ob) => ...)` instead.
995
+ */
996
+ orderBy<OE extends OrderByExpression<DB, TB, {}>>(expr: OE, modifiers: Expression<any>): DeleteQueryBuilder<DB, TB, O>;
997
+ /**
998
+ * Clears the `order by` clause from the query.
1009
999
  *
1010
- * See {@link SelectQueryBuilder.orderBy} for more examples.
1000
+ * See {@link orderBy} for adding an `order by` clause or item to a query.
1011
1001
  *
1012
1002
  * ### Examples
1013
1003
  *
1014
- * Delete 5 oldest items in a table:
1015
- *
1016
1004
  * ```ts
1017
- * await db
1018
- * .deleteFrom('pet')
1019
- * .orderBy('created_at')
1020
- * .limit(5)
1005
+ * const query = db
1006
+ * .selectFrom('person')
1007
+ * .selectAll()
1008
+ * .orderBy('id', 'desc')
1009
+ *
1010
+ * const results = await query
1011
+ * .clearOrderBy()
1021
1012
  * .execute()
1022
1013
  * ```
1023
1014
  *
1024
- * The generated SQL (MySQL):
1015
+ * The generated SQL (PostgreSQL):
1025
1016
  *
1026
1017
  * ```sql
1027
- * delete from `pet`
1028
- * order by `created_at`
1029
- * limit ?
1018
+ * select * from "person"
1030
1019
  * ```
1031
1020
  */
1032
- orderBy(orderBy: OrderByExpression<DB, TB, O>, direction?: OrderByDirectionExpression): DeleteQueryBuilder<DB, TB, O>;
1021
+ clearOrderBy(): DeleteQueryBuilder<DB, TB, O>;
1033
1022
  /**
1034
1023
  * Adds a limit clause to the query.
1035
1024
  *
@@ -5,7 +5,6 @@ const join_parser_js_1 = require("../parser/join-parser.js");
5
5
  const table_parser_js_1 = require("../parser/table-parser.js");
6
6
  const select_parser_js_1 = require("../parser/select-parser.js");
7
7
  const query_node_js_1 = require("../operation-node/query-node.js");
8
- const prevent_await_js_1 = require("../util/prevent-await.js");
9
8
  const object_utils_js_1 = require("../util/object-utils.js");
10
9
  const no_result_error_js_1 = require("./no-result-error.js");
11
10
  const delete_result_js_1 = require("./delete-result.js");
@@ -90,27 +89,21 @@ class DeleteQueryBuilder {
90
89
  });
91
90
  }
92
91
  innerJoin(...args) {
93
- return new DeleteQueryBuilder({
94
- ...this.#props,
95
- queryNode: query_node_js_1.QueryNode.cloneWithJoin(this.#props.queryNode, (0, join_parser_js_1.parseJoin)('InnerJoin', args)),
96
- });
92
+ return this.#join('InnerJoin', args);
97
93
  }
98
94
  leftJoin(...args) {
99
- return new DeleteQueryBuilder({
100
- ...this.#props,
101
- queryNode: query_node_js_1.QueryNode.cloneWithJoin(this.#props.queryNode, (0, join_parser_js_1.parseJoin)('LeftJoin', args)),
102
- });
95
+ return this.#join('LeftJoin', args);
103
96
  }
104
97
  rightJoin(...args) {
105
- return new DeleteQueryBuilder({
106
- ...this.#props,
107
- queryNode: query_node_js_1.QueryNode.cloneWithJoin(this.#props.queryNode, (0, join_parser_js_1.parseJoin)('RightJoin', args)),
108
- });
98
+ return this.#join('RightJoin', args);
109
99
  }
110
100
  fullJoin(...args) {
101
+ return this.#join('FullJoin', args);
102
+ }
103
+ #join(joinType, args) {
111
104
  return new DeleteQueryBuilder({
112
105
  ...this.#props,
113
- queryNode: query_node_js_1.QueryNode.cloneWithJoin(this.#props.queryNode, (0, join_parser_js_1.parseJoin)('FullJoin', args)),
106
+ queryNode: query_node_js_1.QueryNode.cloneWithJoin(this.#props.queryNode, (0, join_parser_js_1.parseJoin)(joinType, args)),
114
107
  });
115
108
  }
116
109
  returning(selection) {
@@ -188,70 +181,16 @@ class DeleteQueryBuilder {
188
181
  queryNode: delete_query_node_js_1.DeleteQueryNode.cloneWithoutLimit(this.#props.queryNode),
189
182
  });
190
183
  }
191
- /**
192
- * Clears the `order by` clause from the query.
193
- *
194
- * ### Examples
195
- *
196
- * ```ts
197
- * await db.deleteFrom('pet')
198
- * .returningAll()
199
- * .where('name', '=', 'Max')
200
- * .orderBy('id')
201
- * .clearOrderBy()
202
- * .execute()
203
- * ```
204
- *
205
- * The generated SQL(PostgreSQL):
206
- *
207
- * ```sql
208
- * delete from "pet" where "name" = "Max" returning *
209
- * ```
210
- */
211
- clearOrderBy() {
184
+ orderBy(...args) {
212
185
  return new DeleteQueryBuilder({
213
186
  ...this.#props,
214
- queryNode: delete_query_node_js_1.DeleteQueryNode.cloneWithoutOrderBy(this.#props.queryNode),
187
+ queryNode: query_node_js_1.QueryNode.cloneWithOrderByItems(this.#props.queryNode, (0, order_by_parser_js_1.parseOrderBy)(args)),
215
188
  });
216
189
  }
217
- /**
218
- * Adds an `order by` clause to the query.
219
- *
220
- * `orderBy` calls are additive. To order by multiple columns, call `orderBy`
221
- * multiple times.
222
- *
223
- * The first argument is the expression to order by and the second is the
224
- * order (`asc` or `desc`).
225
- *
226
- * An `order by` clause in a delete query is only supported by some dialects
227
- * like MySQL.
228
- *
229
- * See {@link SelectQueryBuilder.orderBy} for more examples.
230
- *
231
- * ### Examples
232
- *
233
- * Delete 5 oldest items in a table:
234
- *
235
- * ```ts
236
- * await db
237
- * .deleteFrom('pet')
238
- * .orderBy('created_at')
239
- * .limit(5)
240
- * .execute()
241
- * ```
242
- *
243
- * The generated SQL (MySQL):
244
- *
245
- * ```sql
246
- * delete from `pet`
247
- * order by `created_at`
248
- * limit ?
249
- * ```
250
- */
251
- orderBy(orderBy, direction) {
190
+ clearOrderBy() {
252
191
  return new DeleteQueryBuilder({
253
192
  ...this.#props,
254
- queryNode: delete_query_node_js_1.DeleteQueryNode.cloneWithOrderByItems(this.#props.queryNode, (0, order_by_parser_js_1.parseOrderBy)([orderBy, direction])),
193
+ queryNode: query_node_js_1.QueryNode.cloneWithoutOrderBy(this.#props.queryNode),
255
194
  });
256
195
  }
257
196
  /**
@@ -519,11 +458,7 @@ class DeleteQueryBuilder {
519
458
  (query.output && adapter.supportsOutput)) {
520
459
  return result.rows;
521
460
  }
522
- return [
523
- new delete_result_js_1.DeleteResult(
524
- // TODO: remove numUpdatedOrDeletedRows.
525
- result.numAffectedRows ?? result.numUpdatedOrDeletedRows ?? BigInt(0)),
526
- ];
461
+ return [new delete_result_js_1.DeleteResult(result.numAffectedRows ?? BigInt(0))];
527
462
  }
528
463
  /**
529
464
  * Executes the query and returns the first result or undefined if
@@ -567,4 +502,3 @@ class DeleteQueryBuilder {
567
502
  }
568
503
  }
569
504
  exports.DeleteQueryBuilder = DeleteQueryBuilder;
570
- (0, prevent_await_js_1.preventAwait)(DeleteQueryBuilder, "don't await DeleteQueryBuilder instances directly. To execute the query you need to call `execute` or `executeTakeFirst`.");
@@ -393,7 +393,7 @@ export interface FunctionModule<DB, TB extends keyof DB> {
393
393
  * .execute()
394
394
  * ```
395
395
  */
396
- max<O extends number | string | bigint | null = never, RE extends ReferenceExpression<DB, TB> = ReferenceExpression<DB, TB>>(expr: RE): AggregateFunctionBuilder<DB, TB, IsNever<O> extends true ? ExtractTypeFromReferenceExpression<DB, TB, RE, number | string | bigint> : O>;
396
+ max<O extends number | string | Date | bigint | null = never, RE extends ReferenceExpression<DB, TB> = ReferenceExpression<DB, TB>>(expr: RE): AggregateFunctionBuilder<DB, TB, IsNever<O> extends true ? ExtractTypeFromReferenceExpression<DB, TB, RE, number | string | Date | bigint> : O>;
397
397
  /**
398
398
  * Calls the `min` function for the column or expression given as the argument.
399
399
  *
@@ -432,7 +432,7 @@ export interface FunctionModule<DB, TB extends keyof DB> {
432
432
  * .execute()
433
433
  * ```
434
434
  */
435
- min<O extends number | string | bigint | null = never, RE extends ReferenceExpression<DB, TB> = ReferenceExpression<DB, TB>>(expr: RE): AggregateFunctionBuilder<DB, TB, IsNever<O> extends true ? ExtractTypeFromReferenceExpression<DB, TB, RE, number | string | bigint> : O>;
435
+ min<O extends number | string | Date | bigint | null = never, RE extends ReferenceExpression<DB, TB> = ReferenceExpression<DB, TB>>(expr: RE): AggregateFunctionBuilder<DB, TB, IsNever<O> extends true ? ExtractTypeFromReferenceExpression<DB, TB, RE, number | string | Date | bigint> : O>;
436
436
  /**
437
437
  * Calls the `sum` function for the column or expression given as the argument.
438
438
  *
@@ -518,9 +518,13 @@ export interface FunctionModule<DB, TB extends keyof DB> {
518
518
  any<T>(subquery: SelectQueryBuilderExpression<Record<string, T>>): ExpressionWrapper<DB, TB, T>;
519
519
  any<T>(expr: Expression<ReadonlyArray<T>>): ExpressionWrapper<DB, TB, T>;
520
520
  /**
521
- * Creates a json_agg function call.
521
+ * Creates a `json_agg` function call.
522
522
  *
523
- * This function is only available on PostgreSQL.
523
+ * This is only supported by some dialects like PostgreSQL.
524
+ *
525
+ * ### Examples
526
+ *
527
+ * You can use it on table expressions:
524
528
  *
525
529
  * ```ts
526
530
  * await db.selectFrom('person')
@@ -538,8 +542,31 @@ export interface FunctionModule<DB, TB extends keyof DB> {
538
542
  * inner join "pet" on "pet"."owner_id" = "person"."id"
539
543
  * group by "person"."first_name"
540
544
  * ```
545
+ *
546
+ * or on columns:
547
+ *
548
+ * ```ts
549
+ * await db.selectFrom('person')
550
+ * .innerJoin('pet', 'pet.owner_id', 'person.id')
551
+ * .select((eb) => [
552
+ * 'first_name',
553
+ * eb.fn.jsonAgg('pet.name').as('pet_names'),
554
+ * ])
555
+ * .groupBy('person.first_name')
556
+ * .execute()
557
+ * ```
558
+ *
559
+ * The generated SQL (PostgreSQL):
560
+ *
561
+ * ```sql
562
+ * select "first_name", json_agg("pet"."name") AS "pet_names"
563
+ * from "person"
564
+ * inner join "pet" ON "pet"."owner_id" = "person"."id"
565
+ * group by "person"."first_name"
566
+ * ```
541
567
  */
542
568
  jsonAgg<T extends (TB & string) | Expression<unknown>>(table: T): AggregateFunctionBuilder<DB, TB, T extends TB ? Selectable<DB[T]>[] : T extends Expression<infer O> ? O[] : never>;
569
+ jsonAgg<RE extends StringReference<DB, TB>>(column: RE): AggregateFunctionBuilder<DB, TB, ExtractTypeFromStringReference<DB, TB, RE>[] | null>;
543
570
  /**
544
571
  * Creates a to_json function call.
545
572
  *
@@ -307,15 +307,18 @@ export declare class InsertQueryBuilder<DB, TB extends keyof DB, O> implements R
307
307
  /**
308
308
  * Changes an `insert into` query to an `insert ignore into` query.
309
309
  *
310
+ * This is only supported by some dialects like MySQL.
311
+ *
312
+ * To avoid a footgun, when invoked with the SQLite dialect, this method will
313
+ * be handled like {@link orIgnore}. See also, {@link orAbort}, {@link orFail},
314
+ * {@link orReplace}, and {@link orRollback}.
315
+ *
310
316
  * If you use the ignore modifier, ignorable errors that occur while executing the
311
317
  * insert statement are ignored. For example, without ignore, a row that duplicates
312
318
  * an existing unique index or primary key value in the table causes a duplicate-key
313
319
  * error and the statement is aborted. With ignore, the row is discarded and no error
314
320
  * occurs.
315
321
  *
316
- * This is only supported on some dialects like MySQL. On most dialects you should
317
- * use the {@link onConflict} method.
318
- *
319
322
  * ### Examples
320
323
  *
321
324
  * ```ts
@@ -332,10 +335,162 @@ export declare class InsertQueryBuilder<DB, TB extends keyof DB, O> implements R
332
335
  * The generated SQL (MySQL):
333
336
  *
334
337
  * ```sql
335
- * insert ignore into `person` ("first_name", "last_name", "gender") values (?, ?, ?)
338
+ * insert ignore into `person` (`first_name`, `last_name`, `gender`) values (?, ?, ?)
339
+ * ```
340
+ *
341
+ * The generated SQL (SQLite):
342
+ *
343
+ * ```sql
344
+ * insert or ignore into "person" ("first_name", "last_name", "gender") values (?, ?, ?)
336
345
  * ```
337
346
  */
338
347
  ignore(): InsertQueryBuilder<DB, TB, O>;
348
+ /**
349
+ * Changes an `insert into` query to an `insert or ignore into` query.
350
+ *
351
+ * This is only supported by some dialects like SQLite.
352
+ *
353
+ * To avoid a footgun, when invoked with the MySQL dialect, this method will
354
+ * be handled like {@link ignore}.
355
+ *
356
+ * See also, {@link orAbort}, {@link orFail}, {@link orReplace}, and {@link orRollback}.
357
+ *
358
+ * ### Examples
359
+ *
360
+ * ```ts
361
+ * await db.insertInto('person')
362
+ * .orIgnore()
363
+ * .values({
364
+ * first_name: 'John',
365
+ * last_name: 'Doe',
366
+ * gender: 'female',
367
+ * })
368
+ * .execute()
369
+ * ```
370
+ *
371
+ * The generated SQL (SQLite):
372
+ *
373
+ * ```sql
374
+ * insert or ignore into "person" ("first_name", "last_name", "gender") values (?, ?, ?)
375
+ * ```
376
+ *
377
+ * The generated SQL (MySQL):
378
+ *
379
+ * ```sql
380
+ * insert ignore into `person` (`first_name`, `last_name`, `gender`) values (?, ?, ?)
381
+ * ```
382
+ */
383
+ orIgnore(): InsertQueryBuilder<DB, TB, O>;
384
+ /**
385
+ * Changes an `insert into` query to an `insert or abort into` query.
386
+ *
387
+ * This is only supported by some dialects like SQLite.
388
+ *
389
+ * See also, {@link orIgnore}, {@link orFail}, {@link orReplace}, and {@link orRollback}.
390
+ *
391
+ * ### Examples
392
+ *
393
+ * ```ts
394
+ * await db.insertInto('person')
395
+ * .orAbort()
396
+ * .values({
397
+ * first_name: 'John',
398
+ * last_name: 'Doe',
399
+ * gender: 'female',
400
+ * })
401
+ * .execute()
402
+ * ```
403
+ *
404
+ * The generated SQL (SQLite):
405
+ *
406
+ * ```sql
407
+ * insert or abort into "person" ("first_name", "last_name", "gender") values (?, ?, ?)
408
+ * ```
409
+ */
410
+ orAbort(): InsertQueryBuilder<DB, TB, O>;
411
+ /**
412
+ * Changes an `insert into` query to an `insert or fail into` query.
413
+ *
414
+ * This is only supported by some dialects like SQLite.
415
+ *
416
+ * See also, {@link orIgnore}, {@link orAbort}, {@link orReplace}, and {@link orRollback}.
417
+ *
418
+ * ### Examples
419
+ *
420
+ * ```ts
421
+ * await db.insertInto('person')
422
+ * .orFail()
423
+ * .values({
424
+ * first_name: 'John',
425
+ * last_name: 'Doe',
426
+ * gender: 'female',
427
+ * })
428
+ * .execute()
429
+ * ```
430
+ *
431
+ * The generated SQL (SQLite):
432
+ *
433
+ * ```sql
434
+ * insert or fail into "person" ("first_name", "last_name", "gender") values (?, ?, ?)
435
+ * ```
436
+ */
437
+ orFail(): InsertQueryBuilder<DB, TB, O>;
438
+ /**
439
+ * Changes an `insert into` query to an `insert or replace into` query.
440
+ *
441
+ * This is only supported by some dialects like SQLite.
442
+ *
443
+ * You can also use {@link Kysely.replaceInto} to achieve the same result.
444
+ *
445
+ * See also, {@link orIgnore}, {@link orAbort}, {@link orFail}, and {@link orRollback}.
446
+ *
447
+ * ### Examples
448
+ *
449
+ * ```ts
450
+ * await db.insertInto('person')
451
+ * .orReplace()
452
+ * .values({
453
+ * first_name: 'John',
454
+ * last_name: 'Doe',
455
+ * gender: 'female',
456
+ * })
457
+ * .execute()
458
+ * ```
459
+ *
460
+ * The generated SQL (SQLite):
461
+ *
462
+ * ```sql
463
+ * insert or replace into "person" ("first_name", "last_name", "gender") values (?, ?, ?)
464
+ * ```
465
+ */
466
+ orReplace(): InsertQueryBuilder<DB, TB, O>;
467
+ /**
468
+ * Changes an `insert into` query to an `insert or rollback into` query.
469
+ *
470
+ * This is only supported by some dialects like SQLite.
471
+ *
472
+ * See also, {@link orIgnore}, {@link orAbort}, {@link orFail}, and {@link orReplace}.
473
+ *
474
+ * ### Examples
475
+ *
476
+ * ```ts
477
+ * await db.insertInto('person')
478
+ * .orRollback()
479
+ * .values({
480
+ * first_name: 'John',
481
+ * last_name: 'Doe',
482
+ * gender: 'female',
483
+ * })
484
+ * .execute()
485
+ * ```
486
+ *
487
+ * The generated SQL (SQLite):
488
+ *
489
+ * ```sql
490
+ * insert or rollback into "person" ("first_name", "last_name", "gender") values (?, ?, ?)
491
+ * ```
492
+ */
493
+ orRollback(): InsertQueryBuilder<DB, TB, O>;
339
494
  /**
340
495
  * Changes an `insert into` query to an `insert top into` query.
341
496
  *
@@ -595,7 +750,7 @@ export declare class InsertQueryBuilder<DB, TB extends keyof DB, O> implements R
595
750
  * Allows you to return data from modified rows.
596
751
  *
597
752
  * On supported databases like PostgreSQL, this method can be chained to
598
- * `insert`, `update` and `delete` queries to return data.
753
+ * `insert`, `update`, `delete` and `merge` queries to return data.
599
754
  *
600
755
  * Note that on SQLite you need to give aliases for the expressions to avoid
601
756
  * [this bug](https://sqlite.org/forum/forumpost/033daf0b32) in SQLite.
@@ -654,7 +809,7 @@ export declare class InsertQueryBuilder<DB, TB extends keyof DB, O> implements R
654
809
  returning<CB extends SelectCallback<DB, TB>>(callback: CB): InsertQueryBuilder<DB, TB, ReturningCallbackRow<DB, TB, O, CB>>;
655
810
  returning<SE extends SelectExpression<DB, TB>>(selection: SE): InsertQueryBuilder<DB, TB, ReturningRow<DB, TB, O, SE>>;
656
811
  /**
657
- * Adds a `returning *` to an insert/update/delete query on databases
812
+ * Adds a `returning *` to an insert/update/delete/merge query on databases
658
813
  * that support `returning` such as PostgreSQL.
659
814
  *
660
815
  * Also see the {@link returning} method.