kysely 0.11.3 → 0.12.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/dialect/dialect-adapter-base.d.ts +36 -0
  3. package/dist/cjs/dialect/mysql/mysql-adapter.d.ts +36 -0
  4. package/dist/cjs/dialect/mysql/mysql-dialect.d.ts +16 -0
  5. package/dist/cjs/dialect/mysql/mysql-driver.d.ts +29 -0
  6. package/dist/cjs/dialect/mysql/mysql-introspector.d.ts +3 -0
  7. package/dist/cjs/dialect/postgres/postgres-adapter.d.ts +36 -0
  8. package/dist/cjs/dialect/postgres/postgres-dialect.d.ts +16 -0
  9. package/dist/cjs/dialect/postgres/postgres-driver.d.ts +29 -0
  10. package/dist/cjs/dialect/postgres/postgres-introspector.d.ts +3 -0
  11. package/dist/cjs/dialect/sqlite/sqlite-adapter.d.ts +36 -0
  12. package/dist/cjs/dialect/sqlite/sqlite-adapter.js +6 -2
  13. package/dist/cjs/dialect/sqlite/sqlite-dialect.d.ts +16 -0
  14. package/dist/cjs/dialect/sqlite/sqlite-driver.d.ts +29 -0
  15. package/dist/cjs/dialect/sqlite/sqlite-introspector.d.ts +3 -0
  16. package/dist/cjs/driver/default-connection-provider.d.ts +4 -0
  17. package/dist/cjs/driver/runtime-driver.d.ts +29 -0
  18. package/dist/cjs/driver/single-connection-provider.d.ts +4 -0
  19. package/dist/cjs/dynamic/dynamic-reference-builder.d.ts +1 -0
  20. package/dist/cjs/dynamic/dynamic-reference-builder.js +9 -1
  21. package/dist/cjs/dynamic/dynamic.d.ts +6 -7
  22. package/dist/cjs/dynamic/dynamic.js +6 -7
  23. package/dist/cjs/index.d.ts +14 -3
  24. package/dist/cjs/index.js +12 -1
  25. package/dist/cjs/kysely.d.ts +170 -11
  26. package/dist/cjs/kysely.js +69 -9
  27. package/dist/cjs/migration/migration.d.ts +2 -2
  28. package/dist/cjs/operation-node/common-table-expression-name-node.d.ts +15 -0
  29. package/dist/cjs/operation-node/common-table-expression-name-node.js +23 -0
  30. package/dist/cjs/operation-node/common-table-expression-node.d.ts +3 -3
  31. package/dist/cjs/operation-node/create-table-node.d.ts +6 -2
  32. package/dist/cjs/operation-node/create-table-node.js +6 -6
  33. package/dist/cjs/operation-node/create-view-node.d.ts +1 -0
  34. package/dist/cjs/operation-node/insert-query-node.d.ts +4 -4
  35. package/dist/cjs/operation-node/operation-node-transformer.d.ts +4 -0
  36. package/dist/cjs/operation-node/operation-node-transformer.js +20 -1
  37. package/dist/cjs/operation-node/operation-node-visitor.d.ts +4 -0
  38. package/dist/cjs/operation-node/operation-node-visitor.js +2 -0
  39. package/dist/cjs/operation-node/operation-node.d.ts +1 -1
  40. package/dist/cjs/operation-node/query-node.d.ts +0 -2
  41. package/dist/cjs/operation-node/query-node.js +0 -10
  42. package/dist/cjs/operation-node/values-node.d.ts +15 -0
  43. package/dist/cjs/operation-node/values-node.js +18 -0
  44. package/dist/cjs/operation-node/with-node.d.ts +3 -1
  45. package/dist/cjs/operation-node/with-node.js +2 -1
  46. package/dist/cjs/package.json +1 -3
  47. package/dist/cjs/parser/complex-expression-parser.d.ts +9 -0
  48. package/dist/cjs/parser/complex-expression-parser.js +25 -0
  49. package/dist/cjs/parser/filter-parser.d.ts +13 -4
  50. package/dist/cjs/parser/filter-parser.js +21 -24
  51. package/dist/cjs/parser/insert-values-parser.d.ts +7 -10
  52. package/dist/cjs/parser/insert-values-parser.js +31 -39
  53. package/dist/cjs/parser/order-by-parser.d.ts +1 -1
  54. package/dist/cjs/parser/parse-context.d.ts +22 -8
  55. package/dist/cjs/parser/parse-context.js +10 -10
  56. package/dist/cjs/parser/reference-parser.d.ts +8 -7
  57. package/dist/cjs/parser/reference-parser.js +8 -17
  58. package/dist/cjs/parser/returning-parser.d.ts +1 -5
  59. package/dist/cjs/parser/select-parser.d.ts +12 -14
  60. package/dist/cjs/parser/select-parser.js +5 -9
  61. package/dist/cjs/parser/table-parser.d.ts +9 -11
  62. package/dist/cjs/parser/table-parser.js +2 -8
  63. package/dist/cjs/parser/union-parser.d.ts +2 -2
  64. package/dist/cjs/parser/union-parser.js +1 -6
  65. package/dist/cjs/parser/update-set-parser.d.ts +2 -8
  66. package/dist/cjs/parser/update-set-parser.js +6 -26
  67. package/dist/cjs/parser/value-parser.d.ts +9 -6
  68. package/dist/cjs/parser/value-parser.js +7 -30
  69. package/dist/cjs/parser/with-parser.d.ts +36 -6
  70. package/dist/cjs/parser/with-parser.js +13 -2
  71. package/dist/cjs/plugin/camel-case/camel-case-plugin.d.ts +34 -0
  72. package/dist/cjs/plugin/immediate-value.ts/immediate-value-plugin.d.ts +34 -0
  73. package/dist/cjs/plugin/immediate-value.ts/immediate-value-plugin.js +2 -2
  74. package/dist/cjs/plugin/with-schema/with-schema-plugin.d.ts +34 -0
  75. package/dist/cjs/plugin/with-schema/with-schema-transformer.js +8 -0
  76. package/dist/cjs/query-builder/delete-query-builder.d.ts +647 -0
  77. package/dist/cjs/query-builder/delete-query-builder.js +185 -0
  78. package/dist/cjs/query-builder/expression-builder.d.ts +8 -6
  79. package/dist/cjs/query-builder/expression-builder.js +3 -3
  80. package/dist/cjs/query-builder/function-builder.d.ts +2 -1
  81. package/dist/cjs/query-builder/function-builder.js +2 -1
  82. package/dist/cjs/query-builder/having-interface.d.ts +49 -0
  83. package/dist/cjs/query-builder/having-interface.js +2 -0
  84. package/dist/cjs/query-builder/insert-query-builder.d.ts +504 -0
  85. package/dist/cjs/query-builder/insert-query-builder.js +256 -0
  86. package/dist/cjs/query-builder/insert-result.d.ts +3 -2
  87. package/dist/cjs/query-builder/insert-result.js +3 -2
  88. package/dist/cjs/query-builder/join-builder.d.ts +19 -20
  89. package/dist/cjs/query-builder/join-builder.js +12 -12
  90. package/dist/cjs/query-builder/join-interface.d.ts +130 -0
  91. package/dist/cjs/query-builder/join-interface.js +2 -0
  92. package/dist/cjs/query-builder/no-result-error.d.ts +9 -0
  93. package/dist/cjs/query-builder/no-result-error.js +14 -0
  94. package/dist/cjs/query-builder/returning-interface.d.ts +73 -0
  95. package/dist/cjs/query-builder/returning-interface.js +2 -0
  96. package/dist/cjs/query-builder/{query-builder.d.ts → select-query-builder.d.ts} +145 -634
  97. package/dist/cjs/query-builder/select-query-builder.js +571 -0
  98. package/dist/cjs/query-builder/update-query-builder.d.ts +735 -0
  99. package/dist/cjs/query-builder/update-query-builder.js +279 -0
  100. package/dist/cjs/query-builder/where-interface.d.ts +378 -0
  101. package/dist/cjs/query-builder/where-interface.js +2 -0
  102. package/dist/cjs/query-compiler/default-query-compiler.d.ts +4 -0
  103. package/dist/cjs/query-compiler/default-query-compiler.js +33 -5
  104. package/dist/cjs/query-creator.d.ts +69 -43
  105. package/dist/cjs/query-creator.js +66 -29
  106. package/dist/cjs/query-executor/default-query-executor.d.ts +19 -0
  107. package/dist/cjs/query-executor/noop-query-executor.d.ts +19 -0
  108. package/dist/cjs/query-executor/query-executor.d.ts +1 -1
  109. package/dist/cjs/query-executor/query-executor.js +1 -1
  110. package/dist/cjs/raw-builder/raw-builder.d.ts +2 -0
  111. package/dist/cjs/raw-builder/raw-builder.js +7 -1
  112. package/dist/cjs/schema/alter-table-builder.d.ts +218 -2
  113. package/dist/cjs/schema/column-definition-builder.d.ts +135 -20
  114. package/dist/cjs/schema/create-index-builder.d.ts +2 -1
  115. package/dist/cjs/schema/create-index-builder.js +2 -1
  116. package/dist/cjs/schema/create-table-builder.d.ts +26 -9
  117. package/dist/cjs/schema/create-table-builder.js +42 -9
  118. package/dist/cjs/schema/create-view-builder.d.ts +17 -3
  119. package/dist/cjs/schema/create-view-builder.js +25 -16
  120. package/dist/cjs/schema/schema.d.ts +18 -11
  121. package/dist/cjs/schema/schema.js +18 -11
  122. package/dist/cjs/util/log.d.ts +3 -2
  123. package/dist/cjs/util/log.js +8 -15
  124. package/dist/cjs/util/type-utils.d.ts +7 -7
  125. package/dist/esm/dialect/dialect-adapter-base.d.ts +36 -0
  126. package/dist/esm/dialect/mysql/mysql-adapter.d.ts +36 -0
  127. package/dist/esm/dialect/mysql/mysql-dialect.d.ts +16 -0
  128. package/dist/esm/dialect/mysql/mysql-driver.d.ts +29 -0
  129. package/dist/esm/dialect/mysql/mysql-introspector.d.ts +3 -0
  130. package/dist/esm/dialect/postgres/postgres-adapter.d.ts +36 -0
  131. package/dist/esm/dialect/postgres/postgres-dialect.d.ts +16 -0
  132. package/dist/esm/dialect/postgres/postgres-driver.d.ts +29 -0
  133. package/dist/esm/dialect/postgres/postgres-introspector.d.ts +3 -0
  134. package/dist/esm/dialect/sqlite/sqlite-adapter.d.ts +36 -0
  135. package/dist/esm/dialect/sqlite/sqlite-adapter.js +6 -2
  136. package/dist/esm/dialect/sqlite/sqlite-dialect.d.ts +16 -0
  137. package/dist/esm/dialect/sqlite/sqlite-driver.d.ts +29 -0
  138. package/dist/esm/dialect/sqlite/sqlite-introspector.d.ts +3 -0
  139. package/dist/esm/driver/default-connection-provider.d.ts +4 -0
  140. package/dist/esm/driver/runtime-driver.d.ts +29 -0
  141. package/dist/esm/driver/single-connection-provider.d.ts +4 -0
  142. package/dist/esm/dynamic/dynamic-reference-builder.d.ts +1 -0
  143. package/dist/esm/dynamic/dynamic-reference-builder.js +7 -0
  144. package/dist/esm/dynamic/dynamic.d.ts +6 -7
  145. package/dist/esm/dynamic/dynamic.js +6 -7
  146. package/dist/esm/index.d.ts +14 -3
  147. package/dist/esm/index.js +12 -1
  148. package/dist/esm/kysely.d.ts +170 -11
  149. package/dist/esm/kysely.js +69 -9
  150. package/dist/esm/migration/migration.d.ts +2 -2
  151. package/dist/esm/operation-node/common-table-expression-name-node.d.ts +15 -0
  152. package/dist/esm/operation-node/common-table-expression-name-node.js +20 -0
  153. package/dist/esm/operation-node/common-table-expression-node.d.ts +3 -3
  154. package/dist/esm/operation-node/create-table-node.d.ts +6 -2
  155. package/dist/esm/operation-node/create-table-node.js +6 -6
  156. package/dist/esm/operation-node/create-view-node.d.ts +1 -0
  157. package/dist/esm/operation-node/insert-query-node.d.ts +4 -4
  158. package/dist/esm/operation-node/operation-node-transformer.d.ts +4 -0
  159. package/dist/esm/operation-node/operation-node-transformer.js +20 -1
  160. package/dist/esm/operation-node/operation-node-visitor.d.ts +4 -0
  161. package/dist/esm/operation-node/operation-node-visitor.js +2 -0
  162. package/dist/esm/operation-node/operation-node.d.ts +1 -1
  163. package/dist/esm/operation-node/query-node.d.ts +0 -2
  164. package/dist/esm/operation-node/query-node.js +0 -10
  165. package/dist/esm/operation-node/values-node.d.ts +15 -0
  166. package/dist/esm/operation-node/values-node.js +15 -0
  167. package/dist/esm/operation-node/with-node.d.ts +3 -1
  168. package/dist/esm/operation-node/with-node.js +2 -1
  169. package/dist/esm/package.json +1 -3
  170. package/dist/esm/parser/complex-expression-parser.d.ts +9 -0
  171. package/dist/esm/parser/complex-expression-parser.js +20 -0
  172. package/dist/esm/parser/filter-parser.d.ts +13 -4
  173. package/dist/esm/parser/filter-parser.js +21 -24
  174. package/dist/esm/parser/insert-values-parser.d.ts +7 -10
  175. package/dist/esm/parser/insert-values-parser.js +31 -38
  176. package/dist/esm/parser/order-by-parser.d.ts +1 -1
  177. package/dist/esm/parser/parse-context.d.ts +22 -8
  178. package/dist/esm/parser/parse-context.js +10 -10
  179. package/dist/esm/parser/reference-parser.d.ts +8 -7
  180. package/dist/esm/parser/reference-parser.js +9 -18
  181. package/dist/esm/parser/returning-parser.d.ts +1 -5
  182. package/dist/esm/parser/select-parser.d.ts +12 -14
  183. package/dist/esm/parser/select-parser.js +6 -10
  184. package/dist/esm/parser/table-parser.d.ts +9 -11
  185. package/dist/esm/parser/table-parser.js +3 -9
  186. package/dist/esm/parser/union-parser.d.ts +2 -2
  187. package/dist/esm/parser/union-parser.js +1 -6
  188. package/dist/esm/parser/update-set-parser.d.ts +2 -8
  189. package/dist/esm/parser/update-set-parser.js +5 -24
  190. package/dist/esm/parser/value-parser.d.ts +9 -6
  191. package/dist/esm/parser/value-parser.js +8 -31
  192. package/dist/esm/parser/with-parser.d.ts +36 -6
  193. package/dist/esm/parser/with-parser.js +13 -2
  194. package/dist/esm/plugin/camel-case/camel-case-plugin.d.ts +34 -0
  195. package/dist/esm/plugin/immediate-value.ts/immediate-value-plugin.d.ts +34 -0
  196. package/dist/esm/plugin/immediate-value.ts/immediate-value-plugin.js +2 -2
  197. package/dist/esm/plugin/with-schema/with-schema-plugin.d.ts +34 -0
  198. package/dist/esm/plugin/with-schema/with-schema-transformer.js +8 -0
  199. package/dist/esm/query-builder/delete-query-builder.d.ts +647 -0
  200. package/dist/esm/query-builder/delete-query-builder.js +181 -0
  201. package/dist/esm/query-builder/expression-builder.d.ts +8 -6
  202. package/dist/esm/query-builder/expression-builder.js +3 -3
  203. package/dist/esm/query-builder/function-builder.d.ts +2 -1
  204. package/dist/esm/query-builder/function-builder.js +2 -1
  205. package/dist/esm/query-builder/having-interface.d.ts +49 -0
  206. package/dist/esm/query-builder/having-interface.js +1 -0
  207. package/dist/esm/query-builder/insert-query-builder.d.ts +504 -0
  208. package/dist/esm/query-builder/insert-query-builder.js +252 -0
  209. package/dist/esm/query-builder/insert-result.d.ts +3 -2
  210. package/dist/esm/query-builder/insert-result.js +3 -2
  211. package/dist/esm/query-builder/join-builder.d.ts +19 -20
  212. package/dist/esm/query-builder/join-builder.js +12 -12
  213. package/dist/esm/query-builder/join-interface.d.ts +130 -0
  214. package/dist/esm/query-builder/join-interface.js +1 -0
  215. package/dist/esm/query-builder/no-result-error.d.ts +9 -0
  216. package/dist/esm/query-builder/no-result-error.js +10 -0
  217. package/dist/esm/query-builder/returning-interface.d.ts +73 -0
  218. package/dist/esm/query-builder/returning-interface.js +1 -0
  219. package/dist/esm/query-builder/{query-builder.d.ts → select-query-builder.d.ts} +145 -634
  220. package/dist/esm/query-builder/select-query-builder.js +566 -0
  221. package/dist/esm/query-builder/update-query-builder.d.ts +735 -0
  222. package/dist/esm/query-builder/update-query-builder.js +275 -0
  223. package/dist/esm/query-builder/where-interface.d.ts +378 -0
  224. package/dist/esm/query-builder/where-interface.js +1 -0
  225. package/dist/esm/query-compiler/default-query-compiler.d.ts +4 -0
  226. package/dist/esm/query-compiler/default-query-compiler.js +33 -5
  227. package/dist/esm/query-creator.d.ts +69 -43
  228. package/dist/esm/query-creator.js +66 -29
  229. package/dist/esm/query-executor/default-query-executor.d.ts +19 -0
  230. package/dist/esm/query-executor/noop-query-executor.d.ts +19 -0
  231. package/dist/esm/query-executor/query-executor.d.ts +1 -1
  232. package/dist/esm/query-executor/query-executor.js +1 -1
  233. package/dist/esm/raw-builder/raw-builder.d.ts +2 -0
  234. package/dist/esm/raw-builder/raw-builder.js +7 -1
  235. package/dist/esm/schema/alter-table-builder.d.ts +218 -2
  236. package/dist/esm/schema/column-definition-builder.d.ts +135 -20
  237. package/dist/esm/schema/create-index-builder.d.ts +2 -1
  238. package/dist/esm/schema/create-index-builder.js +2 -1
  239. package/dist/esm/schema/create-table-builder.d.ts +26 -9
  240. package/dist/esm/schema/create-table-builder.js +43 -10
  241. package/dist/esm/schema/create-view-builder.d.ts +17 -3
  242. package/dist/esm/schema/create-view-builder.js +25 -16
  243. package/dist/esm/schema/schema.d.ts +18 -11
  244. package/dist/esm/schema/schema.js +18 -11
  245. package/dist/esm/util/log.d.ts +3 -2
  246. package/dist/esm/util/log.js +7 -14
  247. package/dist/esm/util/type-utils.d.ts +7 -7
  248. package/package.json +10 -8
  249. package/dist/cjs/query-builder/query-builder.js +0 -1067
  250. package/dist/esm/query-builder/query-builder.js +0 -1061
@@ -1,7 +1,7 @@
1
1
  import { freeze } from '../util/object-utils.js';
2
2
  /**
3
3
  * This class abstracts away the details of how to compile a query into SQL
4
- * and execute it. Instead of passing around all those details, {@link QueryBuilder}
4
+ * and execute it. Instead of passing around all those details, {@link SelectQueryBuilder}
5
5
  * and other classes that execute queries can just pass around and instance of
6
6
  * `QueryExecutor`.
7
7
  */
@@ -5,6 +5,7 @@ import { RawNode } from '../operation-node/raw-node.js';
5
5
  import { CompiledQuery } from '../query-compiler/compiled-query.js';
6
6
  import { QueryExecutor } from '../query-executor/query-executor.js';
7
7
  import { QueryId } from '../util/query-id.js';
8
+ import { KyselyPlugin } from '../plugin/kysely-plugin.js';
8
9
  export declare class RawBuilder<O = unknown> implements OperationNodeSource {
9
10
  #private;
10
11
  constructor(props: RawBuilderProps);
@@ -16,6 +17,7 @@ export declare class RawBuilder<O = unknown> implements OperationNodeSource {
16
17
  * of this `RawBuilder` with a new output type.
17
18
  */
18
19
  castTo<T>(): RawBuilder<T>;
20
+ withPlugin(plugin: KyselyPlugin): RawBuilder<O>;
19
21
  toOperationNode(): RawNode;
20
22
  compile(): CompiledQuery;
21
23
  execute(): Promise<QueryResult<O>>;
@@ -24,6 +24,12 @@ export class RawBuilder {
24
24
  ...this.#props,
25
25
  });
26
26
  }
27
+ withPlugin(plugin) {
28
+ return new RawBuilder({
29
+ ...this.#props,
30
+ executor: this.#props.executor.withPlugin(plugin),
31
+ });
32
+ }
27
33
  toOperationNode() {
28
34
  const parameterPlaceholderRegex = /(\?\??)/g;
29
35
  const sql = this.#props.sql;
@@ -41,7 +47,7 @@ export class RawBuilder {
41
47
  if (match.index > 0 && sql[match.index - 1] === '\\') {
42
48
  continue;
43
49
  }
44
- sqlFragments.push(sql.slice(sqlIdx, match.index).replaceAll('\\?', '?'));
50
+ sqlFragments.push(sql.slice(sqlIdx, match.index).replace(/\\\?/g, '?'));
45
51
  argNodes.push(parseRawArg(str, parameters[paramIdx]));
46
52
  sqlIdx = match.index + str.length;
47
53
  ++paramIdx;
@@ -60,19 +60,127 @@ export declare class AlterTableExecutor implements OperationNodeSource, Compilab
60
60
  }
61
61
  export interface AlterTableExecutorProps extends AlterTableBuilderProps {
62
62
  }
63
- export declare class AlterTableAddColumnBuilder implements ColumnDefinitionBuilderInterface<AlterTableAddColumnBuilder>, OperationNodeSource, Compilable {
63
+ export declare class AlterTableAddColumnBuilder implements ColumnDefinitionBuilderInterface, OperationNodeSource, Compilable {
64
64
  #private;
65
65
  constructor(props: AlterTableAddColumnBuilderProps);
66
+ /**
67
+ * Adds `auto_increment` or `autoincrement` to the column definition
68
+ * depending on the dialect.
69
+ *
70
+ * Some dialects like PostgreSQL don't support this. On PostgreSQL
71
+ * you can use the `serial` or `bigserial` data type instead.
72
+ */
66
73
  autoIncrement(): AlterTableAddColumnBuilder;
74
+ /**
75
+ * Makes the column the primary key.
76
+ *
77
+ * If you want to specify a composite primary key use the
78
+ * {@link TableBuilder.addPrimaryKeyConstraint} method.
79
+ */
67
80
  primaryKey(): AlterTableAddColumnBuilder;
81
+ /**
82
+ * Adds a foreign key constraint for the column.
83
+ *
84
+ * If your database engine doesn't support foreign key constraints in the
85
+ * column definition (like MySQL 5) you need to call the table level
86
+ * {@link TableBuilder.addForeignKeyConstraint} method instead.
87
+ *
88
+ * ### Examples
89
+ *
90
+ * ```ts
91
+ * col.references('person.id')
92
+ * ```
93
+ */
68
94
  references(ref: string): AlterTableAddColumnBuilder;
95
+ /**
96
+ * Adds an `on delete` constraint for the foreign key column.
97
+ *
98
+ * If your database engine doesn't support foreign key constraints in the
99
+ * column definition (like MySQL 5) you need to call the table level
100
+ * {@link TableBuilder.addForeignKeyConstraint} method instead.
101
+ *
102
+ * ### Examples
103
+ *
104
+ * ```ts
105
+ * col.references('person.id').onDelete('cascade')
106
+ * ```
107
+ */
69
108
  onDelete(onDelete: OnModifyForeignAction): AlterTableAddColumnBuilder;
109
+ /**
110
+ * Adds an `on update` constraint for the foreign key column.
111
+ *
112
+ * ### Examples
113
+ *
114
+ * ```ts
115
+ * col.references('person.id').onUpdate('cascade')
116
+ * ```
117
+ */
70
118
  onUpdate(onDelete: OnModifyForeignAction): AlterTableAddColumnBuilder;
119
+ /**
120
+ * Adds a unique constraint for the column.
121
+ */
71
122
  unique(): AlterTableAddColumnBuilder;
123
+ /**
124
+ * Adds a `not null` constraint for the column.
125
+ */
72
126
  notNull(): AlterTableAddColumnBuilder;
127
+ /**
128
+ * Adds a default value constraint for the column.
129
+ *
130
+ * ### Examples
131
+ *
132
+ * ```ts
133
+ * db.schema
134
+ * .createTable('pet')
135
+ * .addColumn('number_of_legs', 'integer', (col) => col.defaultTo(4))
136
+ * .execute()
137
+ * ```
138
+ */
73
139
  defaultTo(value: PrimitiveValue | AnyRawBuilder): AlterTableAddColumnBuilder;
140
+ /**
141
+ * Adds a check constraint for the column.
142
+ *
143
+ * ### Examples
144
+ *
145
+ * ```ts
146
+ * db.schema
147
+ * .createTable('pet')
148
+ * .addColumn('number_of_legs', 'integer', (col) => col.check('number_of_legs < 5'))
149
+ * .execute()
150
+ * ```
151
+ */
74
152
  check(sql: string): AlterTableAddColumnBuilder;
153
+ /**
154
+ * Makes the column a generated column using a `generated always as` statement.
155
+ *
156
+ * ### Examples
157
+ *
158
+ * ```ts
159
+ * db.schema
160
+ * .createTable('person')
161
+ * .addColumn('full_name', 'varchar(255)',
162
+ * (col) => col.generatedAlwaysAs("concat(first_name, ' ', last_name)")
163
+ * )
164
+ * .execute()
165
+ * ```
166
+ */
75
167
  generatedAlwaysAs(sql: string): AlterTableAddColumnBuilder;
168
+ /**
169
+ * Makes a generated column stored instead of virtual. This method can only
170
+ * be used with {@link generatedAlwaysAs}
171
+ *
172
+ * ### Examples
173
+ *
174
+ * ```ts
175
+ * db.schema
176
+ * .createTable('person')
177
+ * .addColumn('full_name', 'varchar(255)', (col) => col
178
+ * .generatedAlwaysAs("concat(first_name, ' ', last_name)")
179
+ * .stored()
180
+ * )
181
+ * .execute()
182
+ * ```
183
+ */
76
184
  stored(): AlterTableAddColumnBuilder;
77
185
  toOperationNode(): AlterTableNode;
78
186
  compile(): CompiledQuery;
@@ -81,19 +189,127 @@ export declare class AlterTableAddColumnBuilder implements ColumnDefinitionBuild
81
189
  export interface AlterTableAddColumnBuilderProps extends AlterTableBuilderProps {
82
190
  readonly columnBuilder: ColumnDefinitionBuilder;
83
191
  }
84
- export declare class AlterTableModifyColumnBuilder implements ColumnDefinitionBuilderInterface<AlterTableModifyColumnBuilder>, OperationNodeSource, Compilable {
192
+ export declare class AlterTableModifyColumnBuilder implements ColumnDefinitionBuilderInterface, OperationNodeSource, Compilable {
85
193
  #private;
86
194
  constructor(props: AlterTableModifyColumnBuilderProps);
195
+ /**
196
+ * Adds `auto_increment` or `autoincrement` to the column definition
197
+ * depending on the dialect.
198
+ *
199
+ * Some dialects like PostgreSQL don't support this. On PostgreSQL
200
+ * you can use the `serial` or `bigserial` data type instead.
201
+ */
87
202
  autoIncrement(): AlterTableModifyColumnBuilder;
203
+ /**
204
+ * Makes the column the primary key.
205
+ *
206
+ * If you want to specify a composite primary key use the
207
+ * {@link TableBuilder.addPrimaryKeyConstraint} method.
208
+ */
88
209
  primaryKey(): AlterTableModifyColumnBuilder;
210
+ /**
211
+ * Adds a foreign key constraint for the column.
212
+ *
213
+ * If your database engine doesn't support foreign key constraints in the
214
+ * column definition (like MySQL 5) you need to call the table level
215
+ * {@link TableBuilder.addForeignKeyConstraint} method instead.
216
+ *
217
+ * ### Examples
218
+ *
219
+ * ```ts
220
+ * col.references('person.id')
221
+ * ```
222
+ */
89
223
  references(ref: string): AlterTableModifyColumnBuilder;
224
+ /**
225
+ * Adds an `on delete` constraint for the foreign key column.
226
+ *
227
+ * If your database engine doesn't support foreign key constraints in the
228
+ * column definition (like MySQL 5) you need to call the table level
229
+ * {@link TableBuilder.addForeignKeyConstraint} method instead.
230
+ *
231
+ * ### Examples
232
+ *
233
+ * ```ts
234
+ * col.references('person.id').onDelete('cascade')
235
+ * ```
236
+ */
90
237
  onDelete(onDelete: OnModifyForeignAction): AlterTableModifyColumnBuilder;
238
+ /**
239
+ * Adds an `on update` constraint for the foreign key column.
240
+ *
241
+ * ### Examples
242
+ *
243
+ * ```ts
244
+ * col.references('person.id').onUpdate('cascade')
245
+ * ```
246
+ */
91
247
  onUpdate(onUpdate: OnModifyForeignAction): AlterTableModifyColumnBuilder;
248
+ /**
249
+ * Adds a unique constraint for the column.
250
+ */
92
251
  unique(): AlterTableModifyColumnBuilder;
252
+ /**
253
+ * Adds a `not null` constraint for the column.
254
+ */
93
255
  notNull(): AlterTableModifyColumnBuilder;
256
+ /**
257
+ * Adds a default value constraint for the column.
258
+ *
259
+ * ### Examples
260
+ *
261
+ * ```ts
262
+ * db.schema
263
+ * .createTable('pet')
264
+ * .addColumn('number_of_legs', 'integer', (col) => col.defaultTo(4))
265
+ * .execute()
266
+ * ```
267
+ */
94
268
  defaultTo(value: PrimitiveValue | AnyRawBuilder): AlterTableModifyColumnBuilder;
269
+ /**
270
+ * Adds a check constraint for the column.
271
+ *
272
+ * ### Examples
273
+ *
274
+ * ```ts
275
+ * db.schema
276
+ * .createTable('pet')
277
+ * .addColumn('number_of_legs', 'integer', (col) => col.check('number_of_legs < 5'))
278
+ * .execute()
279
+ * ```
280
+ */
95
281
  check(sql: string): AlterTableModifyColumnBuilder;
282
+ /**
283
+ * Makes the column a generated column using a `generated always as` statement.
284
+ *
285
+ * ### Examples
286
+ *
287
+ * ```ts
288
+ * db.schema
289
+ * .createTable('person')
290
+ * .addColumn('full_name', 'varchar(255)',
291
+ * (col) => col.generatedAlwaysAs("concat(first_name, ' ', last_name)")
292
+ * )
293
+ * .execute()
294
+ * ```
295
+ */
96
296
  generatedAlwaysAs(sql: string): AlterTableModifyColumnBuilder;
297
+ /**
298
+ * Makes a generated column stored instead of virtual. This method can only
299
+ * be used with {@link generatedAlwaysAs}
300
+ *
301
+ * ### Examples
302
+ *
303
+ * ```ts
304
+ * db.schema
305
+ * .createTable('person')
306
+ * .addColumn('full_name', 'varchar(255)', (col) => col
307
+ * .generatedAlwaysAs("concat(first_name, ' ', last_name)")
308
+ * .stored()
309
+ * )
310
+ * .execute()
311
+ * ```
312
+ */
97
313
  stored(): AlterTableModifyColumnBuilder;
98
314
  toOperationNode(): AlterTableNode;
99
315
  compile(): CompiledQuery;
@@ -4,7 +4,7 @@ import { PrimitiveValue } from '../util/object-utils.js';
4
4
  import { ColumnDefinitionNode } from '../operation-node/column-definition-node.js';
5
5
  import { AnyRawBuilder } from '../util/type-utils.js';
6
6
  import { DefaultValueExpression } from '../parser/default-value-parser.js';
7
- export interface ColumnDefinitionBuilderInterface<R> {
7
+ export interface ColumnDefinitionBuilderInterface {
8
8
  /**
9
9
  * Adds `auto_increment` or `autoincrement` to the column definition
10
10
  * depending on the dialect.
@@ -12,14 +12,14 @@ export interface ColumnDefinitionBuilderInterface<R> {
12
12
  * Some dialects like PostgreSQL don't support this. On PostgreSQL
13
13
  * you can use the `serial` or `bigserial` data type instead.
14
14
  */
15
- autoIncrement(): R;
15
+ autoIncrement(): ColumnDefinitionBuilderInterface;
16
16
  /**
17
17
  * Makes the column the primary key.
18
18
  *
19
19
  * If you want to specify a composite primary key use the
20
20
  * {@link TableBuilder.addPrimaryKeyConstraint} method.
21
21
  */
22
- primaryKey(): R;
22
+ primaryKey(): ColumnDefinitionBuilderInterface;
23
23
  /**
24
24
  * Adds a foreign key constraint for the column.
25
25
  *
@@ -27,12 +27,13 @@ export interface ColumnDefinitionBuilderInterface<R> {
27
27
  * column definition (like MySQL 5) you need to call the table level
28
28
  * {@link TableBuilder.addForeignKeyConstraint} method instead.
29
29
  *
30
- * @example
30
+ * ### Examples
31
+ *
31
32
  * ```ts
32
33
  * col.references('person.id')
33
34
  * ```
34
35
  */
35
- references(ref: string): R;
36
+ references(ref: string): ColumnDefinitionBuilderInterface;
36
37
  /**
37
38
  * Adds an `on delete` constraint for the foreign key column.
38
39
  *
@@ -40,33 +41,36 @@ export interface ColumnDefinitionBuilderInterface<R> {
40
41
  * column definition (like MySQL 5) you need to call the table level
41
42
  * {@link TableBuilder.addForeignKeyConstraint} method instead.
42
43
  *
43
- * @example
44
+ * ### Examples
45
+ *
44
46
  * ```ts
45
47
  * col.references('person.id').onDelete('cascade')
46
48
  * ```
47
49
  */
48
- onDelete(onDelete: OnModifyForeignAction): R;
50
+ onDelete(onDelete: OnModifyForeignAction): ColumnDefinitionBuilderInterface;
49
51
  /**
50
52
  * Adds an `on update` constraint for the foreign key column.
51
53
  *
52
- * @example
54
+ * ### Examples
55
+ *
53
56
  * ```ts
54
57
  * col.references('person.id').onUpdate('cascade')
55
58
  * ```
56
59
  */
57
- onUpdate(onUpdate: OnModifyForeignAction): R;
60
+ onUpdate(onUpdate: OnModifyForeignAction): ColumnDefinitionBuilderInterface;
58
61
  /**
59
62
  * Adds a unique constraint for the column.
60
63
  */
61
- unique(): R;
64
+ unique(): ColumnDefinitionBuilderInterface;
62
65
  /**
63
66
  * Adds a `not null` constraint for the column.
64
67
  */
65
- notNull(): R;
68
+ notNull(): ColumnDefinitionBuilderInterface;
66
69
  /**
67
70
  * Adds a default value constraint for the column.
68
71
  *
69
- * @example
72
+ * ### Examples
73
+ *
70
74
  * ```ts
71
75
  * db.schema
72
76
  * .createTable('pet')
@@ -74,11 +78,12 @@ export interface ColumnDefinitionBuilderInterface<R> {
74
78
  * .execute()
75
79
  * ```
76
80
  */
77
- defaultTo(value: PrimitiveValue | AnyRawBuilder): R;
81
+ defaultTo(value: PrimitiveValue | AnyRawBuilder): ColumnDefinitionBuilderInterface;
78
82
  /**
79
83
  * Adds a check constraint for the column.
80
84
  *
81
- * @example
85
+ * ### Examples
86
+ *
82
87
  * ```ts
83
88
  * db.schema
84
89
  * .createTable('pet')
@@ -86,11 +91,12 @@ export interface ColumnDefinitionBuilderInterface<R> {
86
91
  * .execute()
87
92
  * ```
88
93
  */
89
- check(sql: string): R;
94
+ check(sql: string): ColumnDefinitionBuilderInterface;
90
95
  /**
91
96
  * Makes the column a generated column using a `generated always as` statement.
92
97
  *
93
- * @example
98
+ * ### Examples
99
+ *
94
100
  * ```ts
95
101
  * db.schema
96
102
  * .createTable('person')
@@ -100,12 +106,13 @@ export interface ColumnDefinitionBuilderInterface<R> {
100
106
  * .execute()
101
107
  * ```
102
108
  */
103
- generatedAlwaysAs(sql: string): R;
109
+ generatedAlwaysAs(sql: string): ColumnDefinitionBuilderInterface;
104
110
  /**
105
111
  * Makes a generated column stored instead of virtual. This method can only
106
112
  * be used with {@link generatedAlwaysAs}
107
113
  *
108
- * @example
114
+ * ### Examples
115
+ *
109
116
  * ```ts
110
117
  * db.schema
111
118
  * .createTable('person')
@@ -116,21 +123,129 @@ export interface ColumnDefinitionBuilderInterface<R> {
116
123
  * .execute()
117
124
  * ```
118
125
  */
119
- stored(): R;
126
+ stored(): ColumnDefinitionBuilderInterface;
120
127
  }
121
- export declare class ColumnDefinitionBuilder implements ColumnDefinitionBuilderInterface<ColumnDefinitionBuilder>, OperationNodeSource {
128
+ export declare class ColumnDefinitionBuilder implements ColumnDefinitionBuilderInterface, OperationNodeSource {
122
129
  #private;
123
130
  constructor(node: ColumnDefinitionNode);
131
+ /**
132
+ * Adds `auto_increment` or `autoincrement` to the column definition
133
+ * depending on the dialect.
134
+ *
135
+ * Some dialects like PostgreSQL don't support this. On PostgreSQL
136
+ * you can use the `serial` or `bigserial` data type instead.
137
+ */
124
138
  autoIncrement(): ColumnDefinitionBuilder;
139
+ /**
140
+ * Makes the column the primary key.
141
+ *
142
+ * If you want to specify a composite primary key use the
143
+ * {@link TableBuilder.addPrimaryKeyConstraint} method.
144
+ */
125
145
  primaryKey(): ColumnDefinitionBuilder;
146
+ /**
147
+ * Adds a foreign key constraint for the column.
148
+ *
149
+ * If your database engine doesn't support foreign key constraints in the
150
+ * column definition (like MySQL 5) you need to call the table level
151
+ * {@link TableBuilder.addForeignKeyConstraint} method instead.
152
+ *
153
+ * ### Examples
154
+ *
155
+ * ```ts
156
+ * col.references('person.id')
157
+ * ```
158
+ */
126
159
  references(ref: string): ColumnDefinitionBuilder;
160
+ /**
161
+ * Adds an `on delete` constraint for the foreign key column.
162
+ *
163
+ * If your database engine doesn't support foreign key constraints in the
164
+ * column definition (like MySQL 5) you need to call the table level
165
+ * {@link TableBuilder.addForeignKeyConstraint} method instead.
166
+ *
167
+ * ### Examples
168
+ *
169
+ * ```ts
170
+ * col.references('person.id').onDelete('cascade')
171
+ * ```
172
+ */
127
173
  onDelete(onDelete: OnModifyForeignAction): ColumnDefinitionBuilder;
174
+ /**
175
+ * Adds an `on update` constraint for the foreign key column.
176
+ *
177
+ * ### Examples
178
+ *
179
+ * ```ts
180
+ * col.references('person.id').onUpdate('cascade')
181
+ * ```
182
+ */
128
183
  onUpdate(onUpdate: OnModifyForeignAction): ColumnDefinitionBuilder;
184
+ /**
185
+ * Adds a unique constraint for the column.
186
+ */
129
187
  unique(): ColumnDefinitionBuilder;
188
+ /**
189
+ * Adds a `not null` constraint for the column.
190
+ */
130
191
  notNull(): ColumnDefinitionBuilder;
192
+ /**
193
+ * Adds a default value constraint for the column.
194
+ *
195
+ * ### Examples
196
+ *
197
+ * ```ts
198
+ * db.schema
199
+ * .createTable('pet')
200
+ * .addColumn('number_of_legs', 'integer', (col) => col.defaultTo(4))
201
+ * .execute()
202
+ * ```
203
+ */
131
204
  defaultTo(value: DefaultValueExpression): ColumnDefinitionBuilder;
205
+ /**
206
+ * Adds a check constraint for the column.
207
+ *
208
+ * ### Examples
209
+ *
210
+ * ```ts
211
+ * db.schema
212
+ * .createTable('pet')
213
+ * .addColumn('number_of_legs', 'integer', (col) => col.check('number_of_legs < 5'))
214
+ * .execute()
215
+ * ```
216
+ */
132
217
  check(sql: string): ColumnDefinitionBuilder;
218
+ /**
219
+ * Makes the column a generated column using a `generated always as` statement.
220
+ *
221
+ * ### Examples
222
+ *
223
+ * ```ts
224
+ * db.schema
225
+ * .createTable('person')
226
+ * .addColumn('full_name', 'varchar(255)',
227
+ * (col) => col.generatedAlwaysAs("concat(first_name, ' ', last_name)")
228
+ * )
229
+ * .execute()
230
+ * ```
231
+ */
133
232
  generatedAlwaysAs(sql: string): ColumnDefinitionBuilder;
233
+ /**
234
+ * Makes a generated column stored instead of virtual. This method can only
235
+ * be used with {@link generatedAlwaysAs}
236
+ *
237
+ * ### Examples
238
+ *
239
+ * ```ts
240
+ * db.schema
241
+ * .createTable('person')
242
+ * .addColumn('full_name', 'varchar(255)', (col) => col
243
+ * .generatedAlwaysAs("concat(first_name, ' ', last_name)")
244
+ * .stored()
245
+ * )
246
+ * .execute()
247
+ * ```
248
+ */
134
249
  stored(): ColumnDefinitionBuilder;
135
250
  toOperationNode(): ColumnDefinitionNode;
136
251
  }
@@ -30,7 +30,8 @@ export declare class CreateIndexBuilder implements OperationNodeSource, Compilab
30
30
  /**
31
31
  * Specifies an arbitrary expression for the index.
32
32
  *
33
- * @example
33
+ * ### Examples
34
+ *
34
35
  * ```ts
35
36
  * await db.schema
36
37
  * .createIndex('person_first_name_index')
@@ -61,7 +61,8 @@ export class CreateIndexBuilder {
61
61
  /**
62
62
  * Specifies an arbitrary expression for the index.
63
63
  *
64
- * @example
64
+ * ### Examples
65
+ *
65
66
  * ```ts
66
67
  * await db.schema
67
68
  * .createIndex('person_first_name_index')
@@ -1,4 +1,4 @@
1
- import { CreateTableNode } from '../operation-node/create-table-node.js';
1
+ import { CreateTableNode, OnCommitAction } from '../operation-node/create-table-node.js';
2
2
  import { OperationNodeSource } from '../operation-node/operation-node-source.js';
3
3
  import { CompiledQuery } from '../query-compiler/compiled-query.js';
4
4
  import { Compilable } from '../util/compilable.js';
@@ -13,6 +13,19 @@ import { DataTypeExpression } from '../parser/data-type-parser.js';
13
13
  export declare class CreateTableBuilder<TB extends string, C extends string = never> implements OperationNodeSource, Compilable {
14
14
  #private;
15
15
  constructor(props: CreateTableBuilderProps);
16
+ /**
17
+ * Adds the "temporary" modifier.
18
+ *
19
+ * Use this to create a temporary table.
20
+ */
21
+ temporary(): CreateTableBuilder<TB, C>;
22
+ /**
23
+ * Adds an "on commit" statement.
24
+ *
25
+ * This can be used in conjunction with temporary tables on supported databases
26
+ * like PostgreSQL.
27
+ */
28
+ onCommit(onCommit: OnCommitAction): CreateTableBuilder<TB, C>;
16
29
  /**
17
30
  * Adds the "if not exists" modifier.
18
31
  *
@@ -22,7 +35,8 @@ export declare class CreateTableBuilder<TB extends string, C extends string = ne
22
35
  /**
23
36
  * Adds a column to the table.
24
37
  *
25
- * @example
38
+ * ### Examples
39
+ *
26
40
  * ```ts
27
41
  * await db.schema
28
42
  * .createTable('person')
@@ -42,7 +56,6 @@ export declare class CreateTableBuilder<TB extends string, C extends string = ne
42
56
  * foreign key constraints need to be defined in at the level of the `create table`
43
57
  * query. See the next example:
44
58
  *
45
- * @example
46
59
  * ```ts
47
60
  * .addColumn('parent_id', 'integer')
48
61
  * .addForeignKeyConstraint(
@@ -55,7 +68,6 @@ export declare class CreateTableBuilder<TB extends string, C extends string = ne
55
68
  * keyword and you need to define an autoincrementing column for example using
56
69
  * `serial`:
57
70
  *
58
- * @example
59
71
  * ```ts
60
72
  * await db.schema
61
73
  * .createTable('person')
@@ -69,7 +81,8 @@ export declare class CreateTableBuilder<TB extends string, C extends string = ne
69
81
  * The constraint name can be anything you want, but it must be unique
70
82
  * across the whole database.
71
83
  *
72
- * @example
84
+ * ### Examples
85
+ *
73
86
  * ```ts
74
87
  * addPrimaryKeyConstraint('primary_key', ['first_name', 'last_name'])
75
88
  * ```
@@ -81,7 +94,8 @@ export declare class CreateTableBuilder<TB extends string, C extends string = ne
81
94
  * The constraint name can be anything you want, but it must be unique
82
95
  * across the whole database.
83
96
  *
84
- * @example
97
+ * ### Examples
98
+ *
85
99
  * ```ts
86
100
  * addUniqueConstraint('first_name_last_name_unique', ['first_name', 'last_name'])
87
101
  * ```
@@ -93,7 +107,8 @@ export declare class CreateTableBuilder<TB extends string, C extends string = ne
93
107
  * The constraint name can be anything you want, but it must be unique
94
108
  * across the whole database.
95
109
  *
96
- * @example
110
+ * ### Examples
111
+ *
97
112
  * ```ts
98
113
  * addCheckConstraint('check_legs', 'number_of_legs < 5')
99
114
  * ```
@@ -105,7 +120,8 @@ export declare class CreateTableBuilder<TB extends string, C extends string = ne
105
120
  * The constraint name can be anything you want, but it must be unique
106
121
  * across the whole database.
107
122
  *
108
- * @example
123
+ * ### Examples
124
+ *
109
125
  * ```ts
110
126
  * addForeignKeyConstraint(
111
127
  * 'owner_id_foreign',
@@ -115,7 +131,8 @@ export declare class CreateTableBuilder<TB extends string, C extends string = ne
115
131
  * )
116
132
  * ```
117
133
  *
118
- * @example
134
+ * Add constraintfor multiple columns:
135
+ *
119
136
  * ```ts
120
137
  * addForeignKeyConstraint(
121
138
  * 'owner_id_foreign',