kysely 0.27.4 → 0.27.6

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 (222) hide show
  1. package/.renovaterc.json +3 -0
  2. package/CODE_OF_CONDUCT.md +183 -0
  3. package/CONTRIBUTING.md +121 -23
  4. package/FUNDING.md +25 -0
  5. package/README.md +13 -2
  6. package/deno.check.d.ts +86 -0
  7. package/deno.check.json +21 -0
  8. package/dist/cjs/dialect/dialect-adapter-base.d.ts +11 -2
  9. package/dist/cjs/dialect/dialect-adapter.d.ts +11 -2
  10. package/dist/cjs/dialect/mssql/mssql-adapter.d.ts +11 -2
  11. package/dist/cjs/dialect/mssql/mssql-dialect-config.d.ts +37 -29
  12. package/dist/cjs/dialect/mssql/mssql-driver.js +20 -13
  13. package/dist/cjs/dialect/mysql/mysql-adapter.d.ts +11 -2
  14. package/dist/cjs/dialect/mysql/mysql-dialect-config.d.ts +4 -0
  15. package/dist/cjs/dialect/mysql/mysql-driver.js +3 -0
  16. package/dist/cjs/dialect/postgres/postgres-adapter.d.ts +11 -2
  17. package/dist/cjs/dialect/postgres/postgres-dialect-config.d.ts +10 -3
  18. package/dist/cjs/dialect/postgres/postgres-driver.js +3 -0
  19. package/dist/cjs/dialect/postgres/postgres-introspector.js +5 -1
  20. package/dist/cjs/dialect/sqlite/sqlite-adapter.d.ts +11 -2
  21. package/dist/cjs/dialect/sqlite/sqlite-introspector.js +66 -44
  22. package/dist/cjs/driver/dummy-driver.d.ts +13 -12
  23. package/dist/cjs/driver/dummy-driver.js +13 -12
  24. package/dist/cjs/dynamic/dynamic.d.ts +6 -6
  25. package/dist/cjs/dynamic/dynamic.js +6 -6
  26. package/dist/cjs/expression/expression-builder.d.ts +154 -61
  27. package/dist/cjs/expression/expression-wrapper.d.ts +92 -23
  28. package/dist/cjs/expression/expression.d.ts +40 -5
  29. package/dist/cjs/helpers/mssql.d.ts +74 -14
  30. package/dist/cjs/helpers/mssql.js +74 -14
  31. package/dist/cjs/helpers/mysql.d.ts +14 -10
  32. package/dist/cjs/helpers/mysql.js +14 -10
  33. package/dist/cjs/helpers/postgres.d.ts +7 -4
  34. package/dist/cjs/helpers/postgres.js +7 -4
  35. package/dist/cjs/helpers/sqlite.d.ts +41 -16
  36. package/dist/cjs/helpers/sqlite.js +41 -16
  37. package/dist/cjs/kysely.d.ts +99 -41
  38. package/dist/cjs/kysely.js +60 -36
  39. package/dist/cjs/migration/file-migration-provider.d.ts +2 -2
  40. package/dist/cjs/migration/file-migration-provider.js +2 -2
  41. package/dist/cjs/migration/migrator.d.ts +90 -15
  42. package/dist/cjs/migration/migrator.js +95 -17
  43. package/dist/cjs/operation-node/aggregate-function-node.d.ts +4 -0
  44. package/dist/cjs/operation-node/aggregate-function-node.js +9 -0
  45. package/dist/cjs/operation-node/data-type-node.d.ts +1 -1
  46. package/dist/cjs/operation-node/data-type-node.js +12 -0
  47. package/dist/cjs/operation-node/delete-query-node.d.ts +1 -0
  48. package/dist/cjs/operation-node/insert-query-node.d.ts +1 -0
  49. package/dist/cjs/operation-node/merge-query-node.d.ts +1 -0
  50. package/dist/cjs/operation-node/operation-node-transformer.d.ts +9 -3
  51. package/dist/cjs/operation-node/operation-node-transformer.js +14 -3
  52. package/dist/cjs/operation-node/query-node.d.ts +4 -0
  53. package/dist/cjs/operation-node/query-node.js +8 -0
  54. package/dist/cjs/operation-node/select-query-node.d.ts +0 -1
  55. package/dist/cjs/operation-node/select-query-node.js +0 -8
  56. package/dist/cjs/operation-node/update-query-node.d.ts +1 -0
  57. package/dist/cjs/parser/insert-values-parser.js +3 -1
  58. package/dist/cjs/plugin/camel-case/camel-case-plugin.d.ts +52 -25
  59. package/dist/cjs/plugin/camel-case/camel-case-plugin.js +24 -19
  60. package/dist/cjs/plugin/camel-case/camel-case.js +4 -1
  61. package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.d.ts +29 -7
  62. package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
  63. package/dist/cjs/plugin/deduplicate-joins/deduplicate-joins-transformer.js +2 -2
  64. package/dist/cjs/plugin/immediate-value/immediate-value-plugin.d.ts +28 -6
  65. package/dist/cjs/plugin/kysely-plugin.d.ts +28 -6
  66. package/dist/cjs/plugin/noop-plugin.d.ts +28 -6
  67. package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.d.ts +62 -9
  68. package/dist/cjs/plugin/parse-json-results/parse-json-results-plugin.js +34 -3
  69. package/dist/cjs/plugin/with-schema/with-schema-plugin.d.ts +28 -6
  70. package/dist/cjs/plugin/with-schema/with-schema-transformer.d.ts +4 -0
  71. package/dist/cjs/plugin/with-schema/with-schema-transformer.js +26 -0
  72. package/dist/cjs/query-builder/aggregate-function-builder.d.ts +43 -1
  73. package/dist/cjs/query-builder/aggregate-function-builder.js +30 -0
  74. package/dist/cjs/query-builder/delete-query-builder.d.ts +137 -45
  75. package/dist/cjs/query-builder/delete-query-builder.js +76 -26
  76. package/dist/cjs/query-builder/function-module.d.ts +35 -88
  77. package/dist/cjs/query-builder/insert-query-builder.d.ts +239 -65
  78. package/dist/cjs/query-builder/insert-query-builder.js +188 -52
  79. package/dist/cjs/query-builder/insert-result.d.ts +10 -5
  80. package/dist/cjs/query-builder/insert-result.js +10 -5
  81. package/dist/cjs/query-builder/json-path-builder.d.ts +33 -9
  82. package/dist/cjs/query-builder/json-path-builder.js +8 -5
  83. package/dist/cjs/query-builder/merge-query-builder.d.ts +159 -21
  84. package/dist/cjs/query-builder/merge-query-builder.js +68 -6
  85. package/dist/cjs/query-builder/on-conflict-builder.d.ts +51 -18
  86. package/dist/cjs/query-builder/on-conflict-builder.js +41 -16
  87. package/dist/cjs/query-builder/output-interface.d.ts +50 -7
  88. package/dist/cjs/query-builder/returning-interface.d.ts +5 -5
  89. package/dist/cjs/query-builder/select-query-builder-expression.d.ts +8 -0
  90. package/dist/cjs/query-builder/select-query-builder.d.ts +295 -63
  91. package/dist/cjs/query-builder/select-query-builder.js +7 -7
  92. package/dist/cjs/query-builder/update-query-builder.d.ts +138 -29
  93. package/dist/cjs/query-builder/update-query-builder.js +75 -10
  94. package/dist/cjs/query-builder/update-result.d.ts +2 -2
  95. package/dist/cjs/query-builder/update-result.js +2 -2
  96. package/dist/cjs/query-builder/where-interface.d.ts +5 -1
  97. package/dist/cjs/query-compiler/default-query-compiler.js +20 -0
  98. package/dist/cjs/query-creator.d.ts +66 -18
  99. package/dist/cjs/query-creator.js +2 -2
  100. package/dist/cjs/raw-builder/raw-builder.d.ts +29 -7
  101. package/dist/cjs/raw-builder/sql.d.ts +27 -8
  102. package/dist/cjs/schema/alter-column-builder.d.ts +17 -3
  103. package/dist/cjs/schema/alter-column-builder.js +17 -3
  104. package/dist/cjs/schema/alter-table-add-index-builder.d.ts +43 -9
  105. package/dist/cjs/schema/alter-table-add-index-builder.js +26 -9
  106. package/dist/cjs/schema/column-definition-builder.d.ts +283 -26
  107. package/dist/cjs/schema/column-definition-builder.js +283 -26
  108. package/dist/cjs/schema/create-table-builder.d.ts +86 -33
  109. package/dist/cjs/schema/create-table-builder.js +86 -33
  110. package/dist/cjs/util/column-type.d.ts +5 -9
  111. package/dist/cjs/util/require-all-props.d.ts +4 -2
  112. package/dist/cjs/util/require-all-props.js +4 -2
  113. package/dist/cjs/util/streamable.d.ts +1 -1
  114. package/dist/cjs/util/type-utils.d.ts +4 -2
  115. package/dist/esm/dialect/dialect-adapter-base.d.ts +11 -2
  116. package/dist/esm/dialect/dialect-adapter.d.ts +11 -2
  117. package/dist/esm/dialect/mssql/mssql-adapter.d.ts +11 -2
  118. package/dist/esm/dialect/mssql/mssql-dialect-config.d.ts +37 -29
  119. package/dist/esm/dialect/mssql/mssql-driver.js +20 -13
  120. package/dist/esm/dialect/mysql/mysql-adapter.d.ts +11 -2
  121. package/dist/esm/dialect/mysql/mysql-dialect-config.d.ts +4 -0
  122. package/dist/esm/dialect/mysql/mysql-driver.js +3 -0
  123. package/dist/esm/dialect/postgres/postgres-adapter.d.ts +11 -2
  124. package/dist/esm/dialect/postgres/postgres-dialect-config.d.ts +10 -3
  125. package/dist/esm/dialect/postgres/postgres-driver.js +3 -0
  126. package/dist/esm/dialect/postgres/postgres-introspector.js +5 -1
  127. package/dist/esm/dialect/sqlite/sqlite-adapter.d.ts +11 -2
  128. package/dist/esm/dialect/sqlite/sqlite-introspector.js +66 -44
  129. package/dist/esm/driver/dummy-driver.d.ts +13 -12
  130. package/dist/esm/driver/dummy-driver.js +13 -12
  131. package/dist/esm/dynamic/dynamic.d.ts +6 -6
  132. package/dist/esm/dynamic/dynamic.js +6 -6
  133. package/dist/esm/expression/expression-builder.d.ts +154 -61
  134. package/dist/esm/expression/expression-wrapper.d.ts +92 -23
  135. package/dist/esm/expression/expression.d.ts +40 -5
  136. package/dist/esm/helpers/mssql.d.ts +74 -14
  137. package/dist/esm/helpers/mssql.js +74 -14
  138. package/dist/esm/helpers/mysql.d.ts +14 -10
  139. package/dist/esm/helpers/mysql.js +14 -10
  140. package/dist/esm/helpers/postgres.d.ts +7 -4
  141. package/dist/esm/helpers/postgres.js +7 -4
  142. package/dist/esm/helpers/sqlite.d.ts +41 -16
  143. package/dist/esm/helpers/sqlite.js +41 -16
  144. package/dist/esm/kysely.d.ts +99 -41
  145. package/dist/esm/kysely.js +60 -36
  146. package/dist/esm/migration/file-migration-provider.d.ts +2 -2
  147. package/dist/esm/migration/file-migration-provider.js +2 -2
  148. package/dist/esm/migration/migrator.d.ts +90 -15
  149. package/dist/esm/migration/migrator.js +95 -17
  150. package/dist/esm/operation-node/aggregate-function-node.d.ts +4 -0
  151. package/dist/esm/operation-node/aggregate-function-node.js +9 -0
  152. package/dist/esm/operation-node/data-type-node.d.ts +1 -1
  153. package/dist/esm/operation-node/data-type-node.js +12 -0
  154. package/dist/esm/operation-node/delete-query-node.d.ts +1 -0
  155. package/dist/esm/operation-node/insert-query-node.d.ts +1 -0
  156. package/dist/esm/operation-node/merge-query-node.d.ts +1 -0
  157. package/dist/esm/operation-node/operation-node-transformer.d.ts +9 -3
  158. package/dist/esm/operation-node/operation-node-transformer.js +14 -3
  159. package/dist/esm/operation-node/query-node.d.ts +4 -0
  160. package/dist/esm/operation-node/query-node.js +8 -0
  161. package/dist/esm/operation-node/select-query-node.d.ts +0 -1
  162. package/dist/esm/operation-node/select-query-node.js +0 -8
  163. package/dist/esm/operation-node/update-query-node.d.ts +1 -0
  164. package/dist/esm/parser/insert-values-parser.js +3 -1
  165. package/dist/esm/plugin/camel-case/camel-case-plugin.d.ts +52 -25
  166. package/dist/esm/plugin/camel-case/camel-case-plugin.js +24 -19
  167. package/dist/esm/plugin/camel-case/camel-case.js +4 -1
  168. package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.d.ts +29 -7
  169. package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-plugin.js +1 -1
  170. package/dist/esm/plugin/deduplicate-joins/deduplicate-joins-transformer.js +2 -2
  171. package/dist/esm/plugin/immediate-value/immediate-value-plugin.d.ts +28 -6
  172. package/dist/esm/plugin/kysely-plugin.d.ts +28 -6
  173. package/dist/esm/plugin/noop-plugin.d.ts +28 -6
  174. package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.d.ts +62 -9
  175. package/dist/esm/plugin/parse-json-results/parse-json-results-plugin.js +34 -3
  176. package/dist/esm/plugin/with-schema/with-schema-plugin.d.ts +28 -6
  177. package/dist/esm/plugin/with-schema/with-schema-transformer.d.ts +4 -0
  178. package/dist/esm/plugin/with-schema/with-schema-transformer.js +26 -0
  179. package/dist/esm/query-builder/aggregate-function-builder.d.ts +43 -1
  180. package/dist/esm/query-builder/aggregate-function-builder.js +30 -0
  181. package/dist/esm/query-builder/delete-query-builder.d.ts +137 -45
  182. package/dist/esm/query-builder/delete-query-builder.js +76 -26
  183. package/dist/esm/query-builder/function-module.d.ts +35 -88
  184. package/dist/esm/query-builder/insert-query-builder.d.ts +239 -65
  185. package/dist/esm/query-builder/insert-query-builder.js +188 -52
  186. package/dist/esm/query-builder/insert-result.d.ts +10 -5
  187. package/dist/esm/query-builder/insert-result.js +10 -5
  188. package/dist/esm/query-builder/json-path-builder.d.ts +33 -9
  189. package/dist/esm/query-builder/json-path-builder.js +8 -5
  190. package/dist/esm/query-builder/merge-query-builder.d.ts +159 -21
  191. package/dist/esm/query-builder/merge-query-builder.js +68 -6
  192. package/dist/esm/query-builder/on-conflict-builder.d.ts +51 -18
  193. package/dist/esm/query-builder/on-conflict-builder.js +41 -16
  194. package/dist/esm/query-builder/output-interface.d.ts +50 -7
  195. package/dist/esm/query-builder/returning-interface.d.ts +5 -5
  196. package/dist/esm/query-builder/select-query-builder-expression.d.ts +8 -0
  197. package/dist/esm/query-builder/select-query-builder.d.ts +295 -63
  198. package/dist/esm/query-builder/select-query-builder.js +7 -7
  199. package/dist/esm/query-builder/update-query-builder.d.ts +138 -29
  200. package/dist/esm/query-builder/update-query-builder.js +75 -10
  201. package/dist/esm/query-builder/update-result.d.ts +2 -2
  202. package/dist/esm/query-builder/update-result.js +2 -2
  203. package/dist/esm/query-builder/where-interface.d.ts +5 -1
  204. package/dist/esm/query-compiler/default-query-compiler.js +20 -0
  205. package/dist/esm/query-creator.d.ts +66 -18
  206. package/dist/esm/query-creator.js +2 -2
  207. package/dist/esm/raw-builder/raw-builder.d.ts +29 -7
  208. package/dist/esm/raw-builder/sql.d.ts +27 -8
  209. package/dist/esm/schema/alter-column-builder.d.ts +17 -3
  210. package/dist/esm/schema/alter-column-builder.js +17 -3
  211. package/dist/esm/schema/alter-table-add-index-builder.d.ts +43 -9
  212. package/dist/esm/schema/alter-table-add-index-builder.js +26 -9
  213. package/dist/esm/schema/column-definition-builder.d.ts +283 -26
  214. package/dist/esm/schema/column-definition-builder.js +283 -26
  215. package/dist/esm/schema/create-table-builder.d.ts +86 -33
  216. package/dist/esm/schema/create-table-builder.js +86 -33
  217. package/dist/esm/util/column-type.d.ts +5 -9
  218. package/dist/esm/util/require-all-props.d.ts +4 -2
  219. package/dist/esm/util/require-all-props.js +4 -2
  220. package/dist/esm/util/streamable.d.ts +1 -1
  221. package/dist/esm/util/type-utils.d.ts +4 -2
  222. package/package.json +28 -23
@@ -12,6 +12,23 @@ export declare class ColumnDefinitionBuilder implements OperationNodeSource {
12
12
  *
13
13
  * Some dialects like PostgreSQL don't support this. On PostgreSQL
14
14
  * you can use the `serial` or `bigserial` data type instead.
15
+ *
16
+ * ### Examples
17
+ *
18
+ * ```ts
19
+ * await db.schema
20
+ * .createTable('person')
21
+ * .addColumn('id', 'integer', col => col.autoIncrement().primaryKey())
22
+ * .execute()
23
+ * ```
24
+ *
25
+ * The generated SQL (MySQL):
26
+ *
27
+ * ```sql
28
+ * create table `person` (
29
+ * `id` integer primary key auto_increment
30
+ * )
31
+ * ```
15
32
  */
16
33
  autoIncrement(): ColumnDefinitionBuilder;
17
34
  /**
@@ -20,6 +37,23 @@ export declare class ColumnDefinitionBuilder implements OperationNodeSource {
20
37
  * This only works on some dialects like MS SQL Server (MSSQL).
21
38
  *
22
39
  * For PostgreSQL's `generated always as identity` use {@link generatedAlwaysAsIdentity}.
40
+ *
41
+ * ### Examples
42
+ *
43
+ * ```ts
44
+ * await db.schema
45
+ * .createTable('person')
46
+ * .addColumn('id', 'integer', col => col.identity().primaryKey())
47
+ * .execute()
48
+ * ```
49
+ *
50
+ * The generated SQL (MSSQL):
51
+ *
52
+ * ```sql
53
+ * create table "person" (
54
+ * "id" integer identity primary key
55
+ * )
56
+ * ```
23
57
  */
24
58
  identity(): ColumnDefinitionBuilder;
25
59
  /**
@@ -27,6 +61,22 @@ export declare class ColumnDefinitionBuilder implements OperationNodeSource {
27
61
  *
28
62
  * If you want to specify a composite primary key use the
29
63
  * {@link CreateTableBuilder.addPrimaryKeyConstraint} method.
64
+ *
65
+ * ### Examples
66
+ *
67
+ * ```ts
68
+ * await db.schema
69
+ * .createTable('person')
70
+ * .addColumn('id', 'integer', col => col.primaryKey())
71
+ * .execute()
72
+ * ```
73
+ *
74
+ * The generated SQL (MySQL):
75
+ *
76
+ * ```sql
77
+ * create table `person` (
78
+ * `id` integer primary key
79
+ * )
30
80
  */
31
81
  primaryKey(): ColumnDefinitionBuilder;
32
82
  /**
@@ -39,7 +89,18 @@ export declare class ColumnDefinitionBuilder implements OperationNodeSource {
39
89
  * ### Examples
40
90
  *
41
91
  * ```ts
42
- * col.references('person.id')
92
+ * await db.schema
93
+ * .createTable('pet')
94
+ * .addColumn('owner_id', 'integer', (col) => col.references('person.id'))
95
+ * .execute()
96
+ * ```
97
+ *
98
+ * The generated SQL (PostgreSQL):
99
+ *
100
+ * ```sql
101
+ * create table "pet" (
102
+ * "owner_id" integer references "person" ("id")
103
+ * )
43
104
  * ```
44
105
  */
45
106
  references(ref: string): ColumnDefinitionBuilder;
@@ -53,32 +114,117 @@ export declare class ColumnDefinitionBuilder implements OperationNodeSource {
53
114
  * ### Examples
54
115
  *
55
116
  * ```ts
56
- * col.references('person.id').onDelete('cascade')
117
+ * await db.schema
118
+ * .createTable('pet')
119
+ * .addColumn(
120
+ * 'owner_id',
121
+ * 'integer',
122
+ * (col) => col.references('person.id').onDelete('cascade')
123
+ * )
124
+ * .execute()
125
+ * ```
126
+ *
127
+ * The generated SQL (PostgreSQL):
128
+ *
129
+ * ```sql
130
+ * create table "pet" (
131
+ * "owner_id" integer references "person" ("id") on delete cascade
132
+ * )
57
133
  * ```
58
134
  */
59
135
  onDelete(onDelete: OnModifyForeignAction): ColumnDefinitionBuilder;
60
136
  /**
61
137
  * Adds an `on update` constraint for the foreign key column.
62
138
  *
139
+ * If your database engine doesn't support foreign key constraints in the
140
+ * column definition (like MySQL 5) you need to call the table level
141
+ * {@link CreateTableBuilder.addForeignKeyConstraint} method instead.
142
+ *
63
143
  * ### Examples
64
144
  *
65
145
  * ```ts
66
- * col.references('person.id').onUpdate('cascade')
146
+ * await db.schema
147
+ * .createTable('pet')
148
+ * .addColumn(
149
+ * 'owner_id',
150
+ * 'integer',
151
+ * (col) => col.references('person.id').onUpdate('cascade')
152
+ * )
153
+ * .execute()
154
+ * ```
155
+ *
156
+ * The generated SQL (PostgreSQL):
157
+ *
158
+ * ```sql
159
+ * create table "pet" (
160
+ * "owner_id" integer references "person" ("id") on update cascade
161
+ * )
67
162
  * ```
68
163
  */
69
164
  onUpdate(onUpdate: OnModifyForeignAction): ColumnDefinitionBuilder;
70
165
  /**
71
166
  * Adds a unique constraint for the column.
167
+ *
168
+ * ### Examples
169
+ *
170
+ * ```ts
171
+ * await db.schema
172
+ * .createTable('person')
173
+ * .addColumn('email', 'varchar(255)', col => col.unique())
174
+ * .execute()
175
+ * ```
176
+ *
177
+ * The generated SQL (MySQL):
178
+ *
179
+ * ```sql
180
+ * create table `person` (
181
+ * `email` varchar(255) unique
182
+ * )
183
+ * ```
72
184
  */
73
185
  unique(): ColumnDefinitionBuilder;
74
186
  /**
75
187
  * Adds a `not null` constraint for the column.
188
+ *
189
+ * ### Examples
190
+ *
191
+ * ```ts
192
+ * await db.schema
193
+ * .createTable('person')
194
+ * .addColumn('first_name', 'varchar(255)', col => col.notNull())
195
+ * .execute()
196
+ * ```
197
+ *
198
+ * The generated SQL (MySQL):
199
+ *
200
+ * ```sql
201
+ * create table `person` (
202
+ * `first_name` varchar(255) not null
203
+ * )
204
+ * ```
76
205
  */
77
206
  notNull(): ColumnDefinitionBuilder;
78
207
  /**
79
208
  * Adds a `unsigned` modifier for the column.
80
209
  *
81
210
  * This only works on some dialects like MySQL.
211
+ *
212
+ * ### Examples
213
+ *
214
+ * ```ts
215
+ * await db.schema
216
+ * .createTable('person')
217
+ * .addColumn('age', 'integer', col => col.unsigned())
218
+ * .execute()
219
+ * ```
220
+ *
221
+ * The generated SQL (MySQL):
222
+ *
223
+ * ```sql
224
+ * create table `person` (
225
+ * `age` integer unsigned
226
+ * )
227
+ * ```
82
228
  */
83
229
  unsigned(): ColumnDefinitionBuilder;
84
230
  /**
@@ -87,27 +233,43 @@ export declare class ColumnDefinitionBuilder implements OperationNodeSource {
87
233
  * ### Examples
88
234
  *
89
235
  * ```ts
90
- * db.schema
236
+ * await db.schema
91
237
  * .createTable('pet')
92
238
  * .addColumn('number_of_legs', 'integer', (col) => col.defaultTo(4))
93
239
  * .execute()
94
240
  * ```
95
241
  *
242
+ * The generated SQL (MySQL):
243
+ *
244
+ * ```sql
245
+ * create table `pet` (
246
+ * `number_of_legs` integer default 4
247
+ * )
248
+ * ```
249
+ *
96
250
  * Values passed to `defaultTo` are interpreted as value literals by default. You can define
97
251
  * an arbitrary SQL expression using the {@link sql} template tag:
98
252
  *
99
253
  * ```ts
100
254
  * import { sql } from 'kysely'
101
255
  *
102
- * db.schema
256
+ * await db.schema
103
257
  * .createTable('pet')
104
258
  * .addColumn(
105
- * 'number_of_legs',
106
- * 'integer',
107
- * (col) => col.defaultTo(sql`any SQL here`)
259
+ * 'created_at',
260
+ * 'timestamp',
261
+ * (col) => col.defaultTo(sql`CURRENT_TIMESTAMP`)
108
262
  * )
109
263
  * .execute()
110
264
  * ```
265
+ *
266
+ * The generated SQL (MySQL):
267
+ *
268
+ * ```sql
269
+ * create table `pet` (
270
+ * `created_at` timestamp default CURRENT_TIMESTAMP
271
+ * )
272
+ * ```
111
273
  */
112
274
  defaultTo(value: DefaultValueExpression): ColumnDefinitionBuilder;
113
275
  /**
@@ -118,13 +280,21 @@ export declare class ColumnDefinitionBuilder implements OperationNodeSource {
118
280
  * ```ts
119
281
  * import { sql } from 'kysely'
120
282
  *
121
- * db.schema
283
+ * await db.schema
122
284
  * .createTable('pet')
123
285
  * .addColumn('number_of_legs', 'integer', (col) =>
124
286
  * col.check(sql`number_of_legs < 5`)
125
287
  * )
126
288
  * .execute()
127
289
  * ```
290
+ *
291
+ * The generated SQL (MySQL):
292
+ *
293
+ * ```sql
294
+ * create table `pet` (
295
+ * `number_of_legs` integer check (number_of_legs < 5)
296
+ * )
297
+ * ```
128
298
  */
129
299
  check(expression: Expression<any>): ColumnDefinitionBuilder;
130
300
  /**
@@ -135,13 +305,21 @@ export declare class ColumnDefinitionBuilder implements OperationNodeSource {
135
305
  * ```ts
136
306
  * import { sql } from 'kysely'
137
307
  *
138
- * db.schema
308
+ * await db.schema
139
309
  * .createTable('person')
140
310
  * .addColumn('full_name', 'varchar(255)',
141
311
  * (col) => col.generatedAlwaysAs(sql`concat(first_name, ' ', last_name)`)
142
312
  * )
143
313
  * .execute()
144
314
  * ```
315
+ *
316
+ * The generated SQL (MySQL):
317
+ *
318
+ * ```sql
319
+ * create table `person` (
320
+ * `full_name` varchar(255) generated always as (concat(first_name, ' ', last_name))
321
+ * )
322
+ * ```
145
323
  */
146
324
  generatedAlwaysAs(expression: Expression<any>): ColumnDefinitionBuilder;
147
325
  /**
@@ -150,10 +328,48 @@ export declare class ColumnDefinitionBuilder implements OperationNodeSource {
150
328
  * This only works on some dialects like PostgreSQL.
151
329
  *
152
330
  * For MS SQL Server (MSSQL)'s identity column use {@link identity}.
331
+ *
332
+ * ### Examples
333
+ *
334
+ * ```ts
335
+ * await db.schema
336
+ * .createTable('person')
337
+ * .addColumn('id', 'integer', col => col.generatedAlwaysAsIdentity().primaryKey())
338
+ * .execute()
339
+ * ```
340
+ *
341
+ * The generated SQL (PostgreSQL):
342
+ *
343
+ * ```sql
344
+ * create table "person" (
345
+ * "id" integer generated always as identity primary key
346
+ * )
347
+ * ```
153
348
  */
154
349
  generatedAlwaysAsIdentity(): ColumnDefinitionBuilder;
155
350
  /**
156
351
  * Adds the `generated by default as identity` specifier on supported dialects.
352
+ *
353
+ * This only works on some dialects like PostgreSQL.
354
+ *
355
+ * For MS SQL Server (MSSQL)'s identity column use {@link identity}.
356
+ *
357
+ * ### Examples
358
+ *
359
+ * ```ts
360
+ * await db.schema
361
+ * .createTable('person')
362
+ * .addColumn('id', 'integer', col => col.generatedByDefaultAsIdentity().primaryKey())
363
+ * .execute()
364
+ * ```
365
+ *
366
+ * The generated SQL (PostgreSQL):
367
+ *
368
+ * ```sql
369
+ * create table "person" (
370
+ * "id" integer generated by default as identity primary key
371
+ * )
372
+ * ```
157
373
  */
158
374
  generatedByDefaultAsIdentity(): ColumnDefinitionBuilder;
159
375
  /**
@@ -163,14 +379,24 @@ export declare class ColumnDefinitionBuilder implements OperationNodeSource {
163
379
  * ### Examples
164
380
  *
165
381
  * ```ts
166
- * db.schema
382
+ * import { sql } from 'kysely'
383
+ *
384
+ * await db.schema
167
385
  * .createTable('person')
168
386
  * .addColumn('full_name', 'varchar(255)', (col) => col
169
- * .generatedAlwaysAs("concat(first_name, ' ', last_name)")
387
+ * .generatedAlwaysAs(sql`concat(first_name, ' ', last_name)`)
170
388
  * .stored()
171
389
  * )
172
390
  * .execute()
173
391
  * ```
392
+ *
393
+ * The generated SQL (MySQL):
394
+ *
395
+ * ```sql
396
+ * create table `person` (
397
+ * `full_name` varchar(255) generated always as (concat(first_name, ' ', last_name)) stored
398
+ * )
399
+ * ```
174
400
  */
175
401
  stored(): ColumnDefinitionBuilder;
176
402
  /**
@@ -179,10 +405,17 @@ export declare class ColumnDefinitionBuilder implements OperationNodeSource {
179
405
  * ### Examples
180
406
  *
181
407
  * ```ts
182
- * db.schema.createTable('person')
183
- * .addColumn('id', 'integer', col => col.primaryKey())
184
- * .addColumn('first_name', 'varchar(36)', col => col.modifyFront(sql`collate utf8mb4_general_ci`).notNull())
185
- * .execute()
408
+ * import { sql } from 'kysely'
409
+ *
410
+ * await db.schema
411
+ * .createTable('person')
412
+ * .addColumn('id', 'integer', col => col.primaryKey())
413
+ * .addColumn(
414
+ * 'first_name',
415
+ * 'varchar(36)',
416
+ * (col) => col.modifyFront(sql`collate utf8mb4_general_ci`).notNull()
417
+ * )
418
+ * .execute()
186
419
  * ```
187
420
  *
188
421
  * The generated SQL (MySQL):
@@ -204,10 +437,11 @@ export declare class ColumnDefinitionBuilder implements OperationNodeSource {
204
437
  * ### Examples
205
438
  *
206
439
  * ```ts
207
- * db.schema.createTable('person')
208
- * .addColumn('id', 'integer', col => col.primaryKey())
209
- * .addColumn('first_name', 'varchar(30)', col => col.unique().nullsNotDistinct())
210
- * .execute()
440
+ * db.schema
441
+ * .createTable('person')
442
+ * .addColumn('id', 'integer', col => col.primaryKey())
443
+ * .addColumn('first_name', 'varchar(30)', col => col.unique().nullsNotDistinct())
444
+ * .execute()
211
445
  * ```
212
446
  *
213
447
  * The generated SQL (PostgreSQL):
@@ -221,8 +455,22 @@ export declare class ColumnDefinitionBuilder implements OperationNodeSource {
221
455
  */
222
456
  nullsNotDistinct(): ColumnDefinitionBuilder;
223
457
  /**
224
- * Adds `if not exists` specifier.
225
- * This only works for PostgreSQL.
458
+ * Adds `if not exists` specifier. This only works for PostgreSQL.
459
+ *
460
+ * ### Examples
461
+ *
462
+ * ```ts
463
+ * await db.schema
464
+ * .alterTable('person')
465
+ * .addColumn('email', 'varchar(255)', col => col.unique().ifNotExists())
466
+ * .execute()
467
+ * ```
468
+ *
469
+ * The generated SQL (PostgreSQL):
470
+ *
471
+ * ```sql
472
+ * alter table "person" add column if not exists "email" varchar(255) unique
473
+ * ```
226
474
  */
227
475
  ifNotExists(): ColumnDefinitionBuilder;
228
476
  /**
@@ -231,10 +479,19 @@ export declare class ColumnDefinitionBuilder implements OperationNodeSource {
231
479
  * ### Examples
232
480
  *
233
481
  * ```ts
234
- * db.schema.createTable('person')
235
- * .addColumn('id', 'integer', col => col.primaryKey())
236
- * .addColumn('age', 'integer', col => col.unsigned().notNull().modifyEnd(sql`comment ${sql.lit('it is not polite to ask a woman her age')}`))
237
- * .execute()
482
+ * import { sql } from 'kysely'
483
+ *
484
+ * await db.schema
485
+ * .createTable('person')
486
+ * .addColumn('id', 'integer', col => col.primaryKey())
487
+ * .addColumn(
488
+ * 'age',
489
+ * 'integer',
490
+ * col => col.unsigned()
491
+ * .notNull()
492
+ * .modifyEnd(sql`comment ${sql.lit('it is not polite to ask a woman her age')}`)
493
+ * )
494
+ * .execute()
238
495
  * ```
239
496
  *
240
497
  * The generated SQL (MySQL):