kysely 0.27.3 → 0.27.5

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 (301) hide show
  1. package/.renovaterc.json +3 -0
  2. package/CONTRIBUTING.md +2 -2
  3. package/README.md +7 -7
  4. package/deno.check.d.ts +86 -0
  5. package/deno.check.json +21 -0
  6. package/dist/cjs/dialect/dialect-adapter-base.d.ts +13 -3
  7. package/dist/cjs/dialect/dialect-adapter-base.js +4 -1
  8. package/dist/cjs/dialect/dialect-adapter.d.ts +16 -2
  9. package/dist/cjs/dialect/mssql/mssql-adapter.d.ts +12 -7
  10. package/dist/cjs/dialect/mssql/mssql-adapter.js +2 -4
  11. package/dist/cjs/dialect/mssql/mssql-dialect-config.d.ts +83 -55
  12. package/dist/cjs/dialect/mssql/mssql-driver.d.ts +1 -0
  13. package/dist/cjs/dialect/mssql/mssql-driver.js +114 -48
  14. package/dist/cjs/dialect/mysql/mysql-adapter.d.ts +11 -2
  15. package/dist/cjs/dialect/mysql/mysql-dialect-config.d.ts +4 -0
  16. package/dist/cjs/dialect/mysql/mysql-driver.js +3 -0
  17. package/dist/cjs/dialect/postgres/postgres-adapter.d.ts +11 -2
  18. package/dist/cjs/dialect/postgres/postgres-dialect-config.d.ts +10 -3
  19. package/dist/cjs/dialect/postgres/postgres-driver.js +3 -0
  20. package/dist/cjs/dialect/postgres/postgres-introspector.js +5 -1
  21. package/dist/cjs/dialect/sqlite/sqlite-adapter.d.ts +11 -2
  22. package/dist/cjs/driver/database-connection.d.ts +3 -1
  23. package/dist/cjs/driver/dummy-driver.d.ts +13 -12
  24. package/dist/cjs/driver/dummy-driver.js +13 -12
  25. package/dist/cjs/dynamic/dynamic-reference-builder.js +2 -2
  26. package/dist/cjs/dynamic/dynamic.d.ts +7 -7
  27. package/dist/cjs/dynamic/dynamic.js +7 -7
  28. package/dist/cjs/expression/expression-builder.d.ts +153 -62
  29. package/dist/cjs/expression/expression-builder.js +2 -3
  30. package/dist/cjs/expression/expression-wrapper.d.ts +92 -23
  31. package/dist/cjs/expression/expression.d.ts +40 -5
  32. package/dist/cjs/expression/expression.js +2 -3
  33. package/dist/cjs/helpers/mssql.d.ts +74 -14
  34. package/dist/cjs/helpers/mssql.js +77 -18
  35. package/dist/cjs/helpers/mysql.d.ts +17 -13
  36. package/dist/cjs/helpers/mysql.js +20 -17
  37. package/dist/cjs/helpers/postgres.d.ts +11 -8
  38. package/dist/cjs/helpers/postgres.js +14 -12
  39. package/dist/cjs/helpers/sqlite.d.ts +41 -16
  40. package/dist/cjs/helpers/sqlite.js +44 -20
  41. package/dist/cjs/index.d.ts +28 -21
  42. package/dist/cjs/index.js +28 -21
  43. package/dist/cjs/kysely.d.ts +100 -42
  44. package/dist/cjs/kysely.js +63 -39
  45. package/dist/cjs/migration/file-migration-provider.d.ts +2 -2
  46. package/dist/cjs/migration/file-migration-provider.js +2 -2
  47. package/dist/cjs/migration/migrator.d.ts +82 -14
  48. package/dist/cjs/migration/migrator.js +82 -14
  49. package/dist/cjs/operation-node/aggregate-function-node.d.ts +4 -0
  50. package/dist/cjs/operation-node/aggregate-function-node.js +9 -0
  51. package/dist/cjs/operation-node/alter-column-node.d.ts +1 -1
  52. package/dist/cjs/operation-node/case-node.d.ts +1 -1
  53. package/dist/cjs/operation-node/column-definition-node.d.ts +1 -0
  54. package/dist/cjs/operation-node/data-type-node.d.ts +2 -2
  55. package/dist/cjs/operation-node/data-type-node.js +17 -3
  56. package/dist/cjs/operation-node/delete-query-node.d.ts +3 -0
  57. package/dist/cjs/operation-node/foreign-key-constraint-node.d.ts +4 -4
  58. package/dist/cjs/operation-node/having-node.d.ts +1 -1
  59. package/dist/cjs/operation-node/insert-query-node.d.ts +3 -0
  60. package/dist/cjs/operation-node/merge-query-node.d.ts +3 -0
  61. package/dist/cjs/operation-node/on-node.d.ts +1 -1
  62. package/dist/cjs/operation-node/operation-node-source.js +1 -2
  63. package/dist/cjs/operation-node/operation-node-transformer.d.ts +11 -3
  64. package/dist/cjs/operation-node/operation-node-transformer.js +26 -3
  65. package/dist/cjs/operation-node/operation-node-visitor.d.ts +2 -0
  66. package/dist/cjs/operation-node/operation-node-visitor.js +1 -0
  67. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  68. package/dist/cjs/operation-node/operator-node.d.ts +3 -3
  69. package/dist/cjs/operation-node/operator-node.js +8 -6
  70. package/dist/cjs/operation-node/output-node.d.ts +13 -0
  71. package/dist/cjs/operation-node/output-node.js +26 -0
  72. package/dist/cjs/operation-node/query-node.d.ts +15 -6
  73. package/dist/cjs/operation-node/query-node.js +17 -0
  74. package/dist/cjs/operation-node/select-query-node.d.ts +1 -1
  75. package/dist/cjs/operation-node/select-query-node.js +6 -8
  76. package/dist/cjs/operation-node/update-query-node.d.ts +3 -0
  77. package/dist/cjs/operation-node/where-node.d.ts +1 -1
  78. package/dist/cjs/parser/binary-operation-parser.js +5 -6
  79. package/dist/cjs/parser/data-type-parser.js +1 -2
  80. package/dist/cjs/parser/default-value-parser.js +1 -2
  81. package/dist/cjs/parser/expression-parser.js +3 -4
  82. package/dist/cjs/parser/fetch-parser.js +1 -2
  83. package/dist/cjs/parser/group-by-parser.js +1 -2
  84. package/dist/cjs/parser/identifier-parser.js +1 -2
  85. package/dist/cjs/parser/insert-values-parser.js +1 -2
  86. package/dist/cjs/parser/join-parser.js +1 -2
  87. package/dist/cjs/parser/merge-parser.js +2 -3
  88. package/dist/cjs/parser/on-commit-action-parse.js +1 -2
  89. package/dist/cjs/parser/on-modify-action-parser.js +1 -2
  90. package/dist/cjs/parser/order-by-parser.js +3 -4
  91. package/dist/cjs/parser/parse-utils.js +4 -5
  92. package/dist/cjs/parser/partition-by-parser.js +1 -2
  93. package/dist/cjs/parser/reference-parser.js +8 -9
  94. package/dist/cjs/parser/returning-parser.d.ts +4 -3
  95. package/dist/cjs/parser/select-parser.js +2 -3
  96. package/dist/cjs/parser/set-operation-parser.js +1 -2
  97. package/dist/cjs/parser/table-parser.js +4 -5
  98. package/dist/cjs/parser/top-parser.js +1 -2
  99. package/dist/cjs/parser/unary-operation-parser.js +3 -4
  100. package/dist/cjs/parser/update-set-parser.js +2 -3
  101. package/dist/cjs/parser/value-parser.js +4 -5
  102. package/dist/cjs/parser/with-parser.js +1 -2
  103. package/dist/cjs/plugin/camel-case/camel-case-plugin.d.ts +54 -27
  104. package/dist/cjs/plugin/camel-case/camel-case-plugin.js +26 -21
  105. package/dist/cjs/plugin/camel-case/camel-case.js +2 -3
  106. package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.d.ts +29 -7
  107. package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
  108. package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-transformer.js +2 -2
  109. package/dist/cjs/plugin/immediate-value/immediate-value-plugin.d.ts +28 -6
  110. package/dist/cjs/plugin/kysely-plugin.d.ts +28 -6
  111. package/dist/cjs/plugin/noop-plugin.d.ts +28 -6
  112. package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.d.ts +80 -9
  113. package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.js +53 -14
  114. package/dist/cjs/plugin/with-schema/with-schema-plugin.d.ts +28 -6
  115. package/dist/cjs/query-builder/aggregate-function-builder.d.ts +43 -1
  116. package/dist/cjs/query-builder/aggregate-function-builder.js +30 -0
  117. package/dist/cjs/query-builder/delete-query-builder.d.ts +219 -43
  118. package/dist/cjs/query-builder/delete-query-builder.js +95 -31
  119. package/dist/cjs/query-builder/function-module.d.ts +40 -93
  120. package/dist/cjs/query-builder/function-module.js +1 -2
  121. package/dist/cjs/query-builder/insert-query-builder.d.ts +326 -67
  122. package/dist/cjs/query-builder/insert-query-builder.js +212 -61
  123. package/dist/cjs/query-builder/insert-result.d.ts +10 -5
  124. package/dist/cjs/query-builder/insert-result.js +10 -5
  125. package/dist/cjs/query-builder/json-path-builder.d.ts +33 -9
  126. package/dist/cjs/query-builder/json-path-builder.js +8 -5
  127. package/dist/cjs/query-builder/merge-query-builder.d.ts +312 -10
  128. package/dist/cjs/query-builder/merge-query-builder.js +98 -7
  129. package/dist/cjs/query-builder/no-result-error.js +2 -2
  130. package/dist/cjs/query-builder/on-conflict-builder.d.ts +53 -20
  131. package/dist/cjs/query-builder/on-conflict-builder.js +41 -16
  132. package/dist/cjs/query-builder/output-interface.d.ts +138 -0
  133. package/dist/cjs/query-builder/output-interface.js +2 -0
  134. package/dist/cjs/query-builder/returning-interface.d.ts +7 -5
  135. package/dist/cjs/query-builder/select-query-builder-expression.d.ts +8 -0
  136. package/dist/cjs/query-builder/select-query-builder.d.ts +370 -73
  137. package/dist/cjs/query-builder/select-query-builder.js +14 -9
  138. package/dist/cjs/query-builder/update-query-builder.d.ts +225 -31
  139. package/dist/cjs/query-builder/update-query-builder.js +96 -17
  140. package/dist/cjs/query-builder/update-result.d.ts +9 -0
  141. package/dist/cjs/query-builder/update-result.js +9 -0
  142. package/dist/cjs/query-builder/where-interface.d.ts +6 -2
  143. package/dist/cjs/query-compiler/default-query-compiler.d.ts +2 -0
  144. package/dist/cjs/query-compiler/default-query-compiler.js +45 -1
  145. package/dist/cjs/query-creator.d.ts +122 -21
  146. package/dist/cjs/query-creator.js +56 -3
  147. package/dist/cjs/raw-builder/raw-builder.d.ts +29 -7
  148. package/dist/cjs/raw-builder/raw-builder.js +1 -2
  149. package/dist/cjs/raw-builder/sql.d.ts +31 -12
  150. package/dist/cjs/schema/alter-column-builder.d.ts +17 -3
  151. package/dist/cjs/schema/alter-column-builder.js +20 -3
  152. package/dist/cjs/schema/alter-table-add-index-builder.d.ts +44 -10
  153. package/dist/cjs/schema/alter-table-add-index-builder.js +27 -10
  154. package/dist/cjs/schema/alter-table-builder.js +1 -2
  155. package/dist/cjs/schema/column-definition-builder.d.ts +286 -24
  156. package/dist/cjs/schema/column-definition-builder.js +288 -24
  157. package/dist/cjs/schema/create-table-builder.d.ts +86 -33
  158. package/dist/cjs/schema/create-table-builder.js +86 -33
  159. package/dist/cjs/util/assert.js +2 -3
  160. package/dist/cjs/util/column-type.d.ts +5 -9
  161. package/dist/cjs/util/compilable.js +1 -2
  162. package/dist/cjs/util/json-object-args.js +1 -2
  163. package/dist/cjs/util/log-once.js +1 -2
  164. package/dist/cjs/util/object-utils.js +38 -26
  165. package/dist/cjs/util/performance-now.js +1 -2
  166. package/dist/cjs/util/prevent-await.js +1 -2
  167. package/dist/cjs/util/query-id.js +1 -2
  168. package/dist/cjs/util/random-string.js +1 -2
  169. package/dist/cjs/util/require-all-props.d.ts +4 -2
  170. package/dist/cjs/util/require-all-props.js +5 -4
  171. package/dist/cjs/util/stack-trace-utils.js +1 -2
  172. package/dist/cjs/util/streamable.d.ts +1 -1
  173. package/dist/cjs/util/type-utils.d.ts +4 -2
  174. package/dist/esm/dialect/dialect-adapter-base.d.ts +13 -3
  175. package/dist/esm/dialect/dialect-adapter-base.js +4 -1
  176. package/dist/esm/dialect/dialect-adapter.d.ts +16 -2
  177. package/dist/esm/dialect/mssql/mssql-adapter.d.ts +12 -7
  178. package/dist/esm/dialect/mssql/mssql-adapter.js +2 -4
  179. package/dist/esm/dialect/mssql/mssql-dialect-config.d.ts +83 -55
  180. package/dist/esm/dialect/mssql/mssql-driver.d.ts +1 -0
  181. package/dist/esm/dialect/mssql/mssql-driver.js +114 -48
  182. package/dist/esm/dialect/mysql/mysql-adapter.d.ts +11 -2
  183. package/dist/esm/dialect/mysql/mysql-dialect-config.d.ts +4 -0
  184. package/dist/esm/dialect/mysql/mysql-driver.js +3 -0
  185. package/dist/esm/dialect/postgres/postgres-adapter.d.ts +11 -2
  186. package/dist/esm/dialect/postgres/postgres-dialect-config.d.ts +10 -3
  187. package/dist/esm/dialect/postgres/postgres-driver.js +3 -0
  188. package/dist/esm/dialect/postgres/postgres-introspector.js +5 -1
  189. package/dist/esm/dialect/sqlite/sqlite-adapter.d.ts +11 -2
  190. package/dist/esm/driver/database-connection.d.ts +3 -1
  191. package/dist/esm/driver/dummy-driver.d.ts +13 -12
  192. package/dist/esm/driver/dummy-driver.js +13 -12
  193. package/dist/esm/dynamic/dynamic.d.ts +7 -7
  194. package/dist/esm/dynamic/dynamic.js +7 -7
  195. package/dist/esm/expression/expression-builder.d.ts +153 -62
  196. package/dist/esm/expression/expression-wrapper.d.ts +92 -23
  197. package/dist/esm/expression/expression.d.ts +40 -5
  198. package/dist/esm/helpers/mssql.d.ts +74 -14
  199. package/dist/esm/helpers/mssql.js +74 -14
  200. package/dist/esm/helpers/mysql.d.ts +17 -13
  201. package/dist/esm/helpers/mysql.js +17 -13
  202. package/dist/esm/helpers/postgres.d.ts +11 -8
  203. package/dist/esm/helpers/postgres.js +11 -8
  204. package/dist/esm/helpers/sqlite.d.ts +41 -16
  205. package/dist/esm/helpers/sqlite.js +41 -16
  206. package/dist/esm/index.d.ts +28 -21
  207. package/dist/esm/index.js +28 -21
  208. package/dist/esm/kysely.d.ts +100 -42
  209. package/dist/esm/kysely.js +61 -37
  210. package/dist/esm/migration/file-migration-provider.d.ts +2 -2
  211. package/dist/esm/migration/file-migration-provider.js +2 -2
  212. package/dist/esm/migration/migrator.d.ts +82 -14
  213. package/dist/esm/migration/migrator.js +82 -14
  214. package/dist/esm/operation-node/aggregate-function-node.d.ts +4 -0
  215. package/dist/esm/operation-node/aggregate-function-node.js +9 -0
  216. package/dist/esm/operation-node/alter-column-node.d.ts +1 -1
  217. package/dist/esm/operation-node/case-node.d.ts +1 -1
  218. package/dist/esm/operation-node/column-definition-node.d.ts +1 -0
  219. package/dist/esm/operation-node/data-type-node.d.ts +2 -2
  220. package/dist/esm/operation-node/data-type-node.js +15 -1
  221. package/dist/esm/operation-node/delete-query-node.d.ts +3 -0
  222. package/dist/esm/operation-node/foreign-key-constraint-node.d.ts +4 -4
  223. package/dist/esm/operation-node/having-node.d.ts +1 -1
  224. package/dist/esm/operation-node/insert-query-node.d.ts +3 -0
  225. package/dist/esm/operation-node/merge-query-node.d.ts +3 -0
  226. package/dist/esm/operation-node/on-node.d.ts +1 -1
  227. package/dist/esm/operation-node/operation-node-transformer.d.ts +11 -3
  228. package/dist/esm/operation-node/operation-node-transformer.js +26 -3
  229. package/dist/esm/operation-node/operation-node-visitor.d.ts +2 -0
  230. package/dist/esm/operation-node/operation-node-visitor.js +1 -0
  231. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  232. package/dist/esm/operation-node/operator-node.d.ts +3 -3
  233. package/dist/esm/operation-node/operator-node.js +2 -0
  234. package/dist/esm/operation-node/output-node.d.ts +13 -0
  235. package/dist/esm/operation-node/output-node.js +24 -0
  236. package/dist/esm/operation-node/query-node.d.ts +15 -6
  237. package/dist/esm/operation-node/query-node.js +17 -0
  238. package/dist/esm/operation-node/select-query-node.d.ts +1 -1
  239. package/dist/esm/operation-node/select-query-node.js +6 -8
  240. package/dist/esm/operation-node/update-query-node.d.ts +3 -0
  241. package/dist/esm/operation-node/where-node.d.ts +1 -1
  242. package/dist/esm/parser/returning-parser.d.ts +4 -3
  243. package/dist/esm/plugin/camel-case/camel-case-plugin.d.ts +54 -27
  244. package/dist/esm/plugin/camel-case/camel-case-plugin.js +26 -21
  245. package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.d.ts +29 -7
  246. package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
  247. package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-transformer.js +2 -2
  248. package/dist/esm/plugin/immediate-value/immediate-value-plugin.d.ts +28 -6
  249. package/dist/esm/plugin/kysely-plugin.d.ts +28 -6
  250. package/dist/esm/plugin/noop-plugin.d.ts +28 -6
  251. package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.d.ts +80 -9
  252. package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.js +53 -14
  253. package/dist/esm/plugin/with-schema/with-schema-plugin.d.ts +28 -6
  254. package/dist/esm/query-builder/aggregate-function-builder.d.ts +43 -1
  255. package/dist/esm/query-builder/aggregate-function-builder.js +30 -0
  256. package/dist/esm/query-builder/delete-query-builder.d.ts +219 -43
  257. package/dist/esm/query-builder/delete-query-builder.js +95 -31
  258. package/dist/esm/query-builder/function-module.d.ts +40 -93
  259. package/dist/esm/query-builder/insert-query-builder.d.ts +326 -67
  260. package/dist/esm/query-builder/insert-query-builder.js +212 -61
  261. package/dist/esm/query-builder/insert-result.d.ts +10 -5
  262. package/dist/esm/query-builder/insert-result.js +10 -5
  263. package/dist/esm/query-builder/json-path-builder.d.ts +33 -9
  264. package/dist/esm/query-builder/json-path-builder.js +8 -5
  265. package/dist/esm/query-builder/merge-query-builder.d.ts +312 -10
  266. package/dist/esm/query-builder/merge-query-builder.js +98 -7
  267. package/dist/esm/query-builder/on-conflict-builder.d.ts +53 -20
  268. package/dist/esm/query-builder/on-conflict-builder.js +41 -16
  269. package/dist/esm/query-builder/output-interface.d.ts +138 -0
  270. package/dist/esm/query-builder/output-interface.js +2 -0
  271. package/dist/esm/query-builder/returning-interface.d.ts +7 -5
  272. package/dist/esm/query-builder/select-query-builder-expression.d.ts +8 -0
  273. package/dist/esm/query-builder/select-query-builder.d.ts +370 -73
  274. package/dist/esm/query-builder/select-query-builder.js +13 -7
  275. package/dist/esm/query-builder/update-query-builder.d.ts +225 -31
  276. package/dist/esm/query-builder/update-query-builder.js +96 -17
  277. package/dist/esm/query-builder/update-result.d.ts +9 -0
  278. package/dist/esm/query-builder/update-result.js +9 -0
  279. package/dist/esm/query-builder/where-interface.d.ts +6 -2
  280. package/dist/esm/query-compiler/default-query-compiler.d.ts +2 -0
  281. package/dist/esm/query-compiler/default-query-compiler.js +45 -1
  282. package/dist/esm/query-creator.d.ts +122 -21
  283. package/dist/esm/query-creator.js +56 -3
  284. package/dist/esm/raw-builder/raw-builder.d.ts +29 -7
  285. package/dist/esm/raw-builder/sql.d.ts +31 -12
  286. package/dist/esm/schema/alter-column-builder.d.ts +17 -3
  287. package/dist/esm/schema/alter-column-builder.js +20 -3
  288. package/dist/esm/schema/alter-table-add-index-builder.d.ts +44 -10
  289. package/dist/esm/schema/alter-table-add-index-builder.js +27 -10
  290. package/dist/esm/schema/alter-table-builder.js +1 -2
  291. package/dist/esm/schema/column-definition-builder.d.ts +286 -24
  292. package/dist/esm/schema/column-definition-builder.js +288 -24
  293. package/dist/esm/schema/create-table-builder.d.ts +86 -33
  294. package/dist/esm/schema/create-table-builder.js +86 -33
  295. package/dist/esm/util/column-type.d.ts +5 -9
  296. package/dist/esm/util/object-utils.js +18 -5
  297. package/dist/esm/util/require-all-props.d.ts +4 -2
  298. package/dist/esm/util/require-all-props.js +4 -2
  299. package/dist/esm/util/streamable.d.ts +1 -1
  300. package/dist/esm/util/type-utils.d.ts +4 -2
  301. package/package.json +30 -24
@@ -22,6 +22,23 @@ class ColumnDefinitionBuilder {
22
22
  *
23
23
  * Some dialects like PostgreSQL don't support this. On PostgreSQL
24
24
  * you can use the `serial` or `bigserial` data type instead.
25
+ *
26
+ * ### Examples
27
+ *
28
+ * ```ts
29
+ * await db.schema
30
+ * .createTable('person')
31
+ * .addColumn('id', 'integer', col => col.autoIncrement().primaryKey())
32
+ * .execute()
33
+ * ```
34
+ *
35
+ * The generated SQL (MySQL):
36
+ *
37
+ * ```sql
38
+ * create table `person` (
39
+ * `id` integer primary key auto_increment
40
+ * )
41
+ * ```
25
42
  */
26
43
  autoIncrement() {
27
44
  return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { autoIncrement: true }));
@@ -32,6 +49,23 @@ class ColumnDefinitionBuilder {
32
49
  * This only works on some dialects like MS SQL Server (MSSQL).
33
50
  *
34
51
  * For PostgreSQL's `generated always as identity` use {@link generatedAlwaysAsIdentity}.
52
+ *
53
+ * ### Examples
54
+ *
55
+ * ```ts
56
+ * await db.schema
57
+ * .createTable('person')
58
+ * .addColumn('id', 'integer', col => col.identity().primaryKey())
59
+ * .execute()
60
+ * ```
61
+ *
62
+ * The generated SQL (MSSQL):
63
+ *
64
+ * ```sql
65
+ * create table "person" (
66
+ * "id" integer identity primary key
67
+ * )
68
+ * ```
35
69
  */
36
70
  identity() {
37
71
  return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { identity: true }));
@@ -41,6 +75,22 @@ class ColumnDefinitionBuilder {
41
75
  *
42
76
  * If you want to specify a composite primary key use the
43
77
  * {@link CreateTableBuilder.addPrimaryKeyConstraint} method.
78
+ *
79
+ * ### Examples
80
+ *
81
+ * ```ts
82
+ * await db.schema
83
+ * .createTable('person')
84
+ * .addColumn('id', 'integer', col => col.primaryKey())
85
+ * .execute()
86
+ * ```
87
+ *
88
+ * The generated SQL (MySQL):
89
+ *
90
+ * ```sql
91
+ * create table `person` (
92
+ * `id` integer primary key
93
+ * )
44
94
  */
45
95
  primaryKey() {
46
96
  return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { primaryKey: true }));
@@ -55,7 +105,18 @@ class ColumnDefinitionBuilder {
55
105
  * ### Examples
56
106
  *
57
107
  * ```ts
58
- * col.references('person.id')
108
+ * await db.schema
109
+ * .createTable('pet')
110
+ * .addColumn('owner_id', 'integer', (col) => col.references('person.id'))
111
+ * .execute()
112
+ * ```
113
+ *
114
+ * The generated SQL (PostgreSQL):
115
+ *
116
+ * ```sql
117
+ * create table "pet" (
118
+ * "owner_id" integer references "person" ("id")
119
+ * )
59
120
  * ```
60
121
  */
61
122
  references(ref) {
@@ -79,7 +140,22 @@ class ColumnDefinitionBuilder {
79
140
  * ### Examples
80
141
  *
81
142
  * ```ts
82
- * col.references('person.id').onDelete('cascade')
143
+ * await db.schema
144
+ * .createTable('pet')
145
+ * .addColumn(
146
+ * 'owner_id',
147
+ * 'integer',
148
+ * (col) => col.references('person.id').onDelete('cascade')
149
+ * )
150
+ * .execute()
151
+ * ```
152
+ *
153
+ * The generated SQL (PostgreSQL):
154
+ *
155
+ * ```sql
156
+ * create table "pet" (
157
+ * "owner_id" integer references "person" ("id") on delete cascade
158
+ * )
83
159
  * ```
84
160
  */
85
161
  onDelete(onDelete) {
@@ -93,10 +169,29 @@ class ColumnDefinitionBuilder {
93
169
  /**
94
170
  * Adds an `on update` constraint for the foreign key column.
95
171
  *
172
+ * If your database engine doesn't support foreign key constraints in the
173
+ * column definition (like MySQL 5) you need to call the table level
174
+ * {@link CreateTableBuilder.addForeignKeyConstraint} method instead.
175
+ *
96
176
  * ### Examples
97
177
  *
98
178
  * ```ts
99
- * col.references('person.id').onUpdate('cascade')
179
+ * await db.schema
180
+ * .createTable('pet')
181
+ * .addColumn(
182
+ * 'owner_id',
183
+ * 'integer',
184
+ * (col) => col.references('person.id').onUpdate('cascade')
185
+ * )
186
+ * .execute()
187
+ * ```
188
+ *
189
+ * The generated SQL (PostgreSQL):
190
+ *
191
+ * ```sql
192
+ * create table "pet" (
193
+ * "owner_id" integer references "person" ("id") on update cascade
194
+ * )
100
195
  * ```
101
196
  */
102
197
  onUpdate(onUpdate) {
@@ -109,12 +204,46 @@ class ColumnDefinitionBuilder {
109
204
  }
110
205
  /**
111
206
  * Adds a unique constraint for the column.
207
+ *
208
+ * ### Examples
209
+ *
210
+ * ```ts
211
+ * await db.schema
212
+ * .createTable('person')
213
+ * .addColumn('email', 'varchar(255)', col => col.unique())
214
+ * .execute()
215
+ * ```
216
+ *
217
+ * The generated SQL (MySQL):
218
+ *
219
+ * ```sql
220
+ * create table `person` (
221
+ * `email` varchar(255) unique
222
+ * )
223
+ * ```
112
224
  */
113
225
  unique() {
114
226
  return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { unique: true }));
115
227
  }
116
228
  /**
117
229
  * Adds a `not null` constraint for the column.
230
+ *
231
+ * ### Examples
232
+ *
233
+ * ```ts
234
+ * await db.schema
235
+ * .createTable('person')
236
+ * .addColumn('first_name', 'varchar(255)', col => col.notNull())
237
+ * .execute()
238
+ * ```
239
+ *
240
+ * The generated SQL (MySQL):
241
+ *
242
+ * ```sql
243
+ * create table `person` (
244
+ * `first_name` varchar(255) not null
245
+ * )
246
+ * ```
118
247
  */
119
248
  notNull() {
120
249
  return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { notNull: true }));
@@ -123,6 +252,23 @@ class ColumnDefinitionBuilder {
123
252
  * Adds a `unsigned` modifier for the column.
124
253
  *
125
254
  * This only works on some dialects like MySQL.
255
+ *
256
+ * ### Examples
257
+ *
258
+ * ```ts
259
+ * await db.schema
260
+ * .createTable('person')
261
+ * .addColumn('age', 'integer', col => col.unsigned())
262
+ * .execute()
263
+ * ```
264
+ *
265
+ * The generated SQL (MySQL):
266
+ *
267
+ * ```sql
268
+ * create table `person` (
269
+ * `age` integer unsigned
270
+ * )
271
+ * ```
126
272
  */
127
273
  unsigned() {
128
274
  return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { unsigned: true }));
@@ -133,27 +279,43 @@ class ColumnDefinitionBuilder {
133
279
  * ### Examples
134
280
  *
135
281
  * ```ts
136
- * db.schema
282
+ * await db.schema
137
283
  * .createTable('pet')
138
284
  * .addColumn('number_of_legs', 'integer', (col) => col.defaultTo(4))
139
285
  * .execute()
140
286
  * ```
141
287
  *
288
+ * The generated SQL (MySQL):
289
+ *
290
+ * ```sql
291
+ * create table `pet` (
292
+ * `number_of_legs` integer default 4
293
+ * )
294
+ * ```
295
+ *
142
296
  * Values passed to `defaultTo` are interpreted as value literals by default. You can define
143
297
  * an arbitrary SQL expression using the {@link sql} template tag:
144
298
  *
145
299
  * ```ts
146
300
  * import { sql } from 'kysely'
147
301
  *
148
- * db.schema
302
+ * await db.schema
149
303
  * .createTable('pet')
150
304
  * .addColumn(
151
- * 'number_of_legs',
152
- * 'integer',
153
- * (col) => col.defaultTo(sql`any SQL here`)
305
+ * 'created_at',
306
+ * 'timestamp',
307
+ * (col) => col.defaultTo(sql`CURRENT_TIMESTAMP`)
154
308
  * )
155
309
  * .execute()
156
310
  * ```
311
+ *
312
+ * The generated SQL (MySQL):
313
+ *
314
+ * ```sql
315
+ * create table `pet` (
316
+ * `created_at` timestamp default CURRENT_TIMESTAMP
317
+ * )
318
+ * ```
157
319
  */
158
320
  defaultTo(value) {
159
321
  return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
@@ -168,13 +330,21 @@ class ColumnDefinitionBuilder {
168
330
  * ```ts
169
331
  * import { sql } from 'kysely'
170
332
  *
171
- * db.schema
333
+ * await db.schema
172
334
  * .createTable('pet')
173
335
  * .addColumn('number_of_legs', 'integer', (col) =>
174
336
  * col.check(sql`number_of_legs < 5`)
175
337
  * )
176
338
  * .execute()
177
339
  * ```
340
+ *
341
+ * The generated SQL (MySQL):
342
+ *
343
+ * ```sql
344
+ * create table `pet` (
345
+ * `number_of_legs` integer check (number_of_legs < 5)
346
+ * )
347
+ * ```
178
348
  */
179
349
  check(expression) {
180
350
  return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
@@ -189,13 +359,21 @@ class ColumnDefinitionBuilder {
189
359
  * ```ts
190
360
  * import { sql } from 'kysely'
191
361
  *
192
- * db.schema
362
+ * await db.schema
193
363
  * .createTable('person')
194
364
  * .addColumn('full_name', 'varchar(255)',
195
365
  * (col) => col.generatedAlwaysAs(sql`concat(first_name, ' ', last_name)`)
196
366
  * )
197
367
  * .execute()
198
368
  * ```
369
+ *
370
+ * The generated SQL (MySQL):
371
+ *
372
+ * ```sql
373
+ * create table `person` (
374
+ * `full_name` varchar(255) generated always as (concat(first_name, ' ', last_name))
375
+ * )
376
+ * ```
199
377
  */
200
378
  generatedAlwaysAs(expression) {
201
379
  return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
@@ -208,6 +386,23 @@ class ColumnDefinitionBuilder {
208
386
  * This only works on some dialects like PostgreSQL.
209
387
  *
210
388
  * For MS SQL Server (MSSQL)'s identity column use {@link identity}.
389
+ *
390
+ * ### Examples
391
+ *
392
+ * ```ts
393
+ * await db.schema
394
+ * .createTable('person')
395
+ * .addColumn('id', 'integer', col => col.generatedAlwaysAsIdentity().primaryKey())
396
+ * .execute()
397
+ * ```
398
+ *
399
+ * The generated SQL (PostgreSQL):
400
+ *
401
+ * ```sql
402
+ * create table "person" (
403
+ * "id" integer generated always as identity primary key
404
+ * )
405
+ * ```
211
406
  */
212
407
  generatedAlwaysAsIdentity() {
213
408
  return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
@@ -216,6 +411,27 @@ class ColumnDefinitionBuilder {
216
411
  }
217
412
  /**
218
413
  * Adds the `generated by default as identity` specifier on supported dialects.
414
+ *
415
+ * This only works on some dialects like PostgreSQL.
416
+ *
417
+ * For MS SQL Server (MSSQL)'s identity column use {@link identity}.
418
+ *
419
+ * ### Examples
420
+ *
421
+ * ```ts
422
+ * await db.schema
423
+ * .createTable('person')
424
+ * .addColumn('id', 'integer', col => col.generatedByDefaultAsIdentity().primaryKey())
425
+ * .execute()
426
+ * ```
427
+ *
428
+ * The generated SQL (PostgreSQL):
429
+ *
430
+ * ```sql
431
+ * create table "person" (
432
+ * "id" integer generated by default as identity primary key
433
+ * )
434
+ * ```
219
435
  */
220
436
  generatedByDefaultAsIdentity() {
221
437
  return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, {
@@ -229,14 +445,24 @@ class ColumnDefinitionBuilder {
229
445
  * ### Examples
230
446
  *
231
447
  * ```ts
232
- * db.schema
448
+ * import { sql } from 'kysely'
449
+ *
450
+ * await db.schema
233
451
  * .createTable('person')
234
452
  * .addColumn('full_name', 'varchar(255)', (col) => col
235
- * .generatedAlwaysAs("concat(first_name, ' ', last_name)")
453
+ * .generatedAlwaysAs(sql`concat(first_name, ' ', last_name)`)
236
454
  * .stored()
237
455
  * )
238
456
  * .execute()
239
457
  * ```
458
+ *
459
+ * The generated SQL (MySQL):
460
+ *
461
+ * ```sql
462
+ * create table `person` (
463
+ * `full_name` varchar(255) generated always as (concat(first_name, ' ', last_name)) stored
464
+ * )
465
+ * ```
240
466
  */
241
467
  stored() {
242
468
  if (!this.#node.generated) {
@@ -254,10 +480,17 @@ class ColumnDefinitionBuilder {
254
480
  * ### Examples
255
481
  *
256
482
  * ```ts
257
- * db.schema.createTable('person')
258
- * .addColumn('id', 'integer', col => col.primaryKey())
259
- * .addColumn('first_name', 'varchar(36)', col => col.modifyFront(sql`collate utf8mb4_general_ci`).notNull())
260
- * .execute()
483
+ * import { sql } from 'kysely'
484
+ *
485
+ * await db.schema
486
+ * .createTable('person')
487
+ * .addColumn('id', 'integer', col => col.primaryKey())
488
+ * .addColumn(
489
+ * 'first_name',
490
+ * 'varchar(36)',
491
+ * (col) => col.modifyFront(sql`collate utf8mb4_general_ci`).notNull()
492
+ * )
493
+ * .execute()
261
494
  * ```
262
495
  *
263
496
  * The generated SQL (MySQL):
@@ -281,10 +514,11 @@ class ColumnDefinitionBuilder {
281
514
  * ### Examples
282
515
  *
283
516
  * ```ts
284
- * db.schema.createTable('person')
285
- * .addColumn('id', 'integer', col => col.primaryKey())
286
- * .addColumn('first_name', 'varchar(30)', col => col.unique().nullsNotDistinct())
287
- * .execute()
517
+ * db.schema
518
+ * .createTable('person')
519
+ * .addColumn('id', 'integer', col => col.primaryKey())
520
+ * .addColumn('first_name', 'varchar(30)', col => col.unique().nullsNotDistinct())
521
+ * .execute()
288
522
  * ```
289
523
  *
290
524
  * The generated SQL (PostgreSQL):
@@ -299,16 +533,46 @@ class ColumnDefinitionBuilder {
299
533
  nullsNotDistinct() {
300
534
  return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { nullsNotDistinct: true }));
301
535
  }
536
+ /**
537
+ * Adds `if not exists` specifier. This only works for PostgreSQL.
538
+ *
539
+ * ### Examples
540
+ *
541
+ * ```ts
542
+ * await db.schema
543
+ * .alterTable('person')
544
+ * .addColumn('email', 'varchar(255)', col => col.unique().ifNotExists())
545
+ * .execute()
546
+ * ```
547
+ *
548
+ * The generated SQL (PostgreSQL):
549
+ *
550
+ * ```sql
551
+ * alter table "person" add column if not exists "email" varchar(255) unique
552
+ * ```
553
+ */
554
+ ifNotExists() {
555
+ return new ColumnDefinitionBuilder(column_definition_node_js_1.ColumnDefinitionNode.cloneWith(this.#node, { ifNotExists: true }));
556
+ }
302
557
  /**
303
558
  * This can be used to add any additional SQL to the end of the column definition.
304
559
  *
305
560
  * ### Examples
306
561
  *
307
562
  * ```ts
308
- * db.schema.createTable('person')
309
- * .addColumn('id', 'integer', col => col.primaryKey())
310
- * .addColumn('age', 'integer', col => col.unsigned().notNull().modifyEnd(sql`comment ${sql.lit('it is not polite to ask a woman her age')}`))
311
- * .execute()
563
+ * import { sql } from 'kysely'
564
+ *
565
+ * await db.schema
566
+ * .createTable('person')
567
+ * .addColumn('id', 'integer', col => col.primaryKey())
568
+ * .addColumn(
569
+ * 'age',
570
+ * 'integer',
571
+ * col => col.unsigned()
572
+ * .notNull()
573
+ * .modifyEnd(sql`comment ${sql.lit('it is not polite to ask a woman her age')}`)
574
+ * )
575
+ * .execute()
312
576
  * ```
313
577
  *
314
578
  * The generated SQL (MySQL):