@simplysm/orm-common 13.0.69 → 13.0.71

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 (204) hide show
  1. package/README.md +54 -1447
  2. package/dist/create-db-context.d.ts +10 -10
  3. package/dist/create-db-context.js +9 -9
  4. package/dist/create-db-context.js.map +1 -1
  5. package/dist/ddl/column-ddl.d.ts +4 -4
  6. package/dist/ddl/initialize.d.ts +17 -17
  7. package/dist/ddl/initialize.js +2 -2
  8. package/dist/ddl/initialize.js.map +1 -1
  9. package/dist/ddl/relation-ddl.d.ts +6 -6
  10. package/dist/ddl/schema-ddl.d.ts +4 -4
  11. package/dist/ddl/table-ddl.d.ts +24 -24
  12. package/dist/ddl/table-ddl.js +4 -4
  13. package/dist/ddl/table-ddl.js.map +1 -1
  14. package/dist/errors/db-transaction-error.d.ts +15 -15
  15. package/dist/errors/db-transaction-error.d.ts.map +1 -1
  16. package/dist/exec/executable.d.ts +23 -23
  17. package/dist/exec/executable.js +3 -3
  18. package/dist/exec/executable.js.map +1 -1
  19. package/dist/exec/queryable.d.ts +160 -160
  20. package/dist/exec/queryable.js +119 -119
  21. package/dist/exec/queryable.js.map +1 -1
  22. package/dist/exec/search-parser.d.ts +37 -37
  23. package/dist/exec/search-parser.d.ts.map +1 -1
  24. package/dist/expr/expr-unit.d.ts +4 -4
  25. package/dist/expr/expr.d.ts +257 -257
  26. package/dist/expr/expr.js +265 -265
  27. package/dist/expr/expr.js.map +1 -1
  28. package/dist/query-builder/base/expr-renderer-base.d.ts +9 -9
  29. package/dist/query-builder/base/expr-renderer-base.js +2 -2
  30. package/dist/query-builder/base/expr-renderer-base.js.map +1 -1
  31. package/dist/query-builder/base/query-builder-base.d.ts +26 -26
  32. package/dist/query-builder/base/query-builder-base.d.ts.map +1 -1
  33. package/dist/query-builder/base/query-builder-base.js +22 -22
  34. package/dist/query-builder/base/query-builder-base.js.map +1 -1
  35. package/dist/query-builder/mssql/mssql-expr-renderer.d.ts +4 -4
  36. package/dist/query-builder/mssql/mssql-expr-renderer.d.ts.map +1 -1
  37. package/dist/query-builder/mssql/mssql-expr-renderer.js +18 -18
  38. package/dist/query-builder/mssql/mssql-expr-renderer.js.map +1 -1
  39. package/dist/query-builder/mssql/mssql-query-builder.d.ts +2 -2
  40. package/dist/query-builder/mssql/mssql-query-builder.d.ts.map +1 -1
  41. package/dist/query-builder/mssql/mssql-query-builder.js +11 -11
  42. package/dist/query-builder/mssql/mssql-query-builder.js.map +1 -1
  43. package/dist/query-builder/mysql/mysql-expr-renderer.d.ts +4 -4
  44. package/dist/query-builder/mysql/mysql-expr-renderer.d.ts.map +1 -1
  45. package/dist/query-builder/mysql/mysql-expr-renderer.js +17 -17
  46. package/dist/query-builder/mysql/mysql-expr-renderer.js.map +1 -1
  47. package/dist/query-builder/mysql/mysql-query-builder.d.ts +8 -8
  48. package/dist/query-builder/mysql/mysql-query-builder.d.ts.map +1 -1
  49. package/dist/query-builder/mysql/mysql-query-builder.js +5 -5
  50. package/dist/query-builder/mysql/mysql-query-builder.js.map +1 -1
  51. package/dist/query-builder/postgresql/postgresql-expr-renderer.d.ts +4 -4
  52. package/dist/query-builder/postgresql/postgresql-expr-renderer.d.ts.map +1 -1
  53. package/dist/query-builder/postgresql/postgresql-expr-renderer.js +17 -17
  54. package/dist/query-builder/postgresql/postgresql-expr-renderer.js.map +1 -1
  55. package/dist/query-builder/postgresql/postgresql-query-builder.d.ts +5 -5
  56. package/dist/query-builder/postgresql/postgresql-query-builder.d.ts.map +1 -1
  57. package/dist/query-builder/postgresql/postgresql-query-builder.js +8 -8
  58. package/dist/query-builder/postgresql/postgresql-query-builder.js.map +1 -1
  59. package/dist/query-builder/query-builder.d.ts +1 -1
  60. package/dist/schema/factory/column-builder.d.ts +79 -79
  61. package/dist/schema/factory/column-builder.js +42 -42
  62. package/dist/schema/factory/index-builder.d.ts +39 -39
  63. package/dist/schema/factory/index-builder.js +26 -26
  64. package/dist/schema/factory/relation-builder.d.ts +99 -99
  65. package/dist/schema/factory/relation-builder.d.ts.map +1 -1
  66. package/dist/schema/factory/relation-builder.js +38 -38
  67. package/dist/schema/procedure-builder.d.ts +49 -49
  68. package/dist/schema/procedure-builder.d.ts.map +1 -1
  69. package/dist/schema/procedure-builder.js +33 -33
  70. package/dist/schema/table-builder.d.ts +59 -59
  71. package/dist/schema/table-builder.d.ts.map +1 -1
  72. package/dist/schema/table-builder.js +43 -43
  73. package/dist/schema/view-builder.d.ts +49 -49
  74. package/dist/schema/view-builder.d.ts.map +1 -1
  75. package/dist/schema/view-builder.js +32 -32
  76. package/dist/types/column.d.ts +22 -22
  77. package/dist/types/column.js +1 -1
  78. package/dist/types/column.js.map +1 -1
  79. package/dist/types/db.d.ts +40 -40
  80. package/dist/types/expr.d.ts +59 -59
  81. package/dist/types/expr.d.ts.map +1 -1
  82. package/dist/types/query-def.d.ts +44 -44
  83. package/dist/types/query-def.d.ts.map +1 -1
  84. package/dist/utils/result-parser.d.ts +11 -11
  85. package/dist/utils/result-parser.js +3 -3
  86. package/dist/utils/result-parser.js.map +1 -1
  87. package/package.json +5 -5
  88. package/src/create-db-context.ts +20 -20
  89. package/src/ddl/column-ddl.ts +4 -4
  90. package/src/ddl/initialize.ts +259 -259
  91. package/src/ddl/relation-ddl.ts +89 -89
  92. package/src/ddl/schema-ddl.ts +4 -4
  93. package/src/ddl/table-ddl.ts +189 -189
  94. package/src/errors/db-transaction-error.ts +13 -13
  95. package/src/exec/executable.ts +25 -25
  96. package/src/exec/queryable.ts +2033 -2033
  97. package/src/exec/search-parser.ts +57 -57
  98. package/src/expr/expr-unit.ts +4 -4
  99. package/src/expr/expr.ts +2140 -2140
  100. package/src/query-builder/base/expr-renderer-base.ts +237 -237
  101. package/src/query-builder/base/query-builder-base.ts +213 -213
  102. package/src/query-builder/mssql/mssql-expr-renderer.ts +607 -607
  103. package/src/query-builder/mssql/mssql-query-builder.ts +650 -650
  104. package/src/query-builder/mysql/mysql-expr-renderer.ts +613 -613
  105. package/src/query-builder/mysql/mysql-query-builder.ts +759 -759
  106. package/src/query-builder/postgresql/postgresql-expr-renderer.ts +611 -611
  107. package/src/query-builder/postgresql/postgresql-query-builder.ts +686 -686
  108. package/src/query-builder/query-builder.ts +19 -19
  109. package/src/schema/factory/column-builder.ts +423 -423
  110. package/src/schema/factory/index-builder.ts +164 -164
  111. package/src/schema/factory/relation-builder.ts +453 -453
  112. package/src/schema/procedure-builder.ts +232 -232
  113. package/src/schema/table-builder.ts +319 -319
  114. package/src/schema/view-builder.ts +221 -221
  115. package/src/types/column.ts +188 -188
  116. package/src/types/db.ts +208 -208
  117. package/src/types/expr.ts +697 -697
  118. package/src/types/query-def.ts +513 -513
  119. package/src/utils/result-parser.ts +458 -458
  120. package/tests/db-context/create-db-context.spec.ts +224 -0
  121. package/tests/db-context/define-db-context.spec.ts +68 -0
  122. package/tests/ddl/basic.expected.ts +341 -0
  123. package/tests/ddl/basic.spec.ts +714 -0
  124. package/tests/ddl/column-builder.expected.ts +310 -0
  125. package/tests/ddl/column-builder.spec.ts +637 -0
  126. package/tests/ddl/index-builder.expected.ts +38 -0
  127. package/tests/ddl/index-builder.spec.ts +202 -0
  128. package/tests/ddl/procedure-builder.expected.ts +52 -0
  129. package/tests/ddl/procedure-builder.spec.ts +234 -0
  130. package/tests/ddl/relation-builder.expected.ts +36 -0
  131. package/tests/ddl/relation-builder.spec.ts +372 -0
  132. package/tests/ddl/table-builder.expected.ts +113 -0
  133. package/tests/ddl/table-builder.spec.ts +433 -0
  134. package/tests/ddl/view-builder.expected.ts +38 -0
  135. package/tests/ddl/view-builder.spec.ts +176 -0
  136. package/tests/dml/delete.expected.ts +96 -0
  137. package/tests/dml/delete.spec.ts +160 -0
  138. package/tests/dml/insert.expected.ts +192 -0
  139. package/tests/dml/insert.spec.ts +288 -0
  140. package/tests/dml/update.expected.ts +176 -0
  141. package/tests/dml/update.spec.ts +318 -0
  142. package/tests/dml/upsert.expected.ts +215 -0
  143. package/tests/dml/upsert.spec.ts +242 -0
  144. package/tests/errors/queryable-errors.spec.ts +177 -0
  145. package/tests/escape.spec.ts +100 -0
  146. package/tests/examples/pivot.expected.ts +211 -0
  147. package/tests/examples/pivot.spec.ts +533 -0
  148. package/tests/examples/sampling.expected.ts +69 -0
  149. package/tests/examples/sampling.spec.ts +105 -0
  150. package/tests/examples/unpivot.expected.ts +120 -0
  151. package/tests/examples/unpivot.spec.ts +226 -0
  152. package/tests/exec/search-parser.spec.ts +283 -0
  153. package/tests/executable/basic.expected.ts +18 -0
  154. package/tests/executable/basic.spec.ts +54 -0
  155. package/tests/expr/comparison.expected.ts +282 -0
  156. package/tests/expr/comparison.spec.ts +400 -0
  157. package/tests/expr/conditional.expected.ts +134 -0
  158. package/tests/expr/conditional.spec.ts +276 -0
  159. package/tests/expr/date.expected.ts +332 -0
  160. package/tests/expr/date.spec.ts +526 -0
  161. package/tests/expr/math.expected.ts +62 -0
  162. package/tests/expr/math.spec.ts +106 -0
  163. package/tests/expr/string.expected.ts +218 -0
  164. package/tests/expr/string.spec.ts +356 -0
  165. package/tests/expr/utility.expected.ts +147 -0
  166. package/tests/expr/utility.spec.ts +182 -0
  167. package/tests/select/basic.expected.ts +322 -0
  168. package/tests/select/basic.spec.ts +502 -0
  169. package/tests/select/filter.expected.ts +357 -0
  170. package/tests/select/filter.spec.ts +1068 -0
  171. package/tests/select/group.expected.ts +169 -0
  172. package/tests/select/group.spec.ts +244 -0
  173. package/tests/select/join.expected.ts +582 -0
  174. package/tests/select/join.spec.ts +805 -0
  175. package/tests/select/order.expected.ts +150 -0
  176. package/tests/select/order.spec.ts +189 -0
  177. package/tests/select/recursive-cte.expected.ts +244 -0
  178. package/tests/select/recursive-cte.spec.ts +514 -0
  179. package/tests/select/result-meta.spec.ts +270 -0
  180. package/tests/select/subquery.expected.ts +363 -0
  181. package/tests/select/subquery.spec.ts +537 -0
  182. package/tests/select/view.expected.ts +155 -0
  183. package/tests/select/view.spec.ts +235 -0
  184. package/tests/select/window.expected.ts +345 -0
  185. package/tests/select/window.spec.ts +618 -0
  186. package/tests/setup/MockExecutor.ts +18 -0
  187. package/tests/setup/TestDbContext.ts +59 -0
  188. package/tests/setup/models/Company.ts +13 -0
  189. package/tests/setup/models/Employee.ts +10 -0
  190. package/tests/setup/models/MonthlySales.ts +11 -0
  191. package/tests/setup/models/Post.ts +16 -0
  192. package/tests/setup/models/Sales.ts +10 -0
  193. package/tests/setup/models/User.ts +19 -0
  194. package/tests/setup/procedure/GetAllUsers.ts +9 -0
  195. package/tests/setup/procedure/GetUserById.ts +12 -0
  196. package/tests/setup/test-utils.ts +72 -0
  197. package/tests/setup/views/ActiveUsers.ts +8 -0
  198. package/tests/setup/views/UserSummary.ts +11 -0
  199. package/tests/types/nullable-queryable-record.spec.ts +145 -0
  200. package/tests/utils/result-parser-perf.spec.ts +210 -0
  201. package/tests/utils/result-parser.spec.ts +701 -0
  202. package/docs/expressions.md +0 -172
  203. package/docs/queries.md +0 -444
  204. package/docs/schema.md +0 -245
@@ -0,0 +1,310 @@
1
+ import { mysql, pgsql, tsql } from "@simplysm/core-common";
2
+ import type { ExpectedSql } from "../setup/test-utils";
3
+
4
+ //#region ========== Data Type Basic Tests ==========
5
+
6
+ export const intType: ExpectedSql = {
7
+ mysql: mysql`
8
+ ALTER TABLE \`TestDb\`.\`User\`
9
+ ADD COLUMN \`age\` INT NOT NULL
10
+ `,
11
+ mssql: tsql`
12
+ ALTER TABLE [TestDb].[TestSchema].[User]
13
+ ADD [age] INT NOT NULL
14
+ `,
15
+ postgresql: pgsql`
16
+ ALTER TABLE "TestSchema"."User"
17
+ ADD COLUMN "age" INTEGER NOT NULL
18
+ `,
19
+ };
20
+
21
+ export const bigintType: ExpectedSql = {
22
+ mysql: mysql`
23
+ ALTER TABLE \`TestDb\`.\`User\`
24
+ ADD COLUMN \`id\` BIGINT NOT NULL
25
+ `,
26
+ mssql: tsql`
27
+ ALTER TABLE [TestDb].[TestSchema].[User]
28
+ ADD [id] BIGINT NOT NULL
29
+ `,
30
+ postgresql: pgsql`
31
+ ALTER TABLE "TestSchema"."User"
32
+ ADD COLUMN "id" BIGINT NOT NULL
33
+ `,
34
+ };
35
+
36
+ export const floatType: ExpectedSql = {
37
+ mysql: mysql`
38
+ ALTER TABLE \`TestDb\`.\`Product\`
39
+ ADD COLUMN \`weight\` FLOAT NOT NULL
40
+ `,
41
+ mssql: tsql`
42
+ ALTER TABLE [TestDb].[TestSchema].[Product]
43
+ ADD [weight] REAL NOT NULL
44
+ `,
45
+ postgresql: pgsql`
46
+ ALTER TABLE "TestSchema"."Product"
47
+ ADD COLUMN "weight" REAL NOT NULL
48
+ `,
49
+ };
50
+
51
+ export const doubleType: ExpectedSql = {
52
+ mysql: mysql`
53
+ ALTER TABLE \`TestDb\`.\`Product\`
54
+ ADD COLUMN \`price\` DOUBLE NOT NULL
55
+ `,
56
+ mssql: tsql`
57
+ ALTER TABLE [TestDb].[TestSchema].[Product]
58
+ ADD [price] FLOAT NOT NULL
59
+ `,
60
+ postgresql: pgsql`
61
+ ALTER TABLE "TestSchema"."Product"
62
+ ADD COLUMN "price" DOUBLE PRECISION NOT NULL
63
+ `,
64
+ };
65
+
66
+ export const decimalType: ExpectedSql = {
67
+ mysql: mysql`
68
+ ALTER TABLE \`TestDb\`.\`Product\`
69
+ ADD COLUMN \`amount\` DECIMAL(10, 2) NOT NULL
70
+ `,
71
+ mssql: tsql`
72
+ ALTER TABLE [TestDb].[TestSchema].[Product]
73
+ ADD [amount] DECIMAL(10, 2) NOT NULL
74
+ `,
75
+ postgresql: pgsql`
76
+ ALTER TABLE "TestSchema"."Product"
77
+ ADD COLUMN "amount" NUMERIC(10, 2) NOT NULL
78
+ `,
79
+ };
80
+
81
+ export const varcharType: ExpectedSql = {
82
+ mysql: mysql`
83
+ ALTER TABLE \`TestDb\`.\`User\`
84
+ ADD COLUMN \`name\` VARCHAR(100) NOT NULL
85
+ `,
86
+ mssql: tsql`
87
+ ALTER TABLE [TestDb].[TestSchema].[User]
88
+ ADD [name] NVARCHAR(100) NOT NULL
89
+ `,
90
+ postgresql: pgsql`
91
+ ALTER TABLE "TestSchema"."User"
92
+ ADD COLUMN "name" VARCHAR(100) NOT NULL
93
+ `,
94
+ };
95
+
96
+ export const charType: ExpectedSql = {
97
+ mysql: mysql`
98
+ ALTER TABLE \`TestDb\`.\`User\`
99
+ ADD COLUMN \`code\` CHAR(10) NOT NULL
100
+ `,
101
+ mssql: tsql`
102
+ ALTER TABLE [TestDb].[TestSchema].[User]
103
+ ADD [code] NCHAR(10) NOT NULL
104
+ `,
105
+ postgresql: pgsql`
106
+ ALTER TABLE "TestSchema"."User"
107
+ ADD COLUMN "code" CHAR(10) NOT NULL
108
+ `,
109
+ };
110
+
111
+ export const textType: ExpectedSql = {
112
+ mysql: mysql`
113
+ ALTER TABLE \`TestDb\`.\`Post\`
114
+ ADD COLUMN \`content\` LONGTEXT NOT NULL
115
+ `,
116
+ mssql: tsql`
117
+ ALTER TABLE [TestDb].[TestSchema].[Post]
118
+ ADD [content] NVARCHAR(MAX) NOT NULL
119
+ `,
120
+ postgresql: pgsql`
121
+ ALTER TABLE "TestSchema"."Post"
122
+ ADD COLUMN "content" TEXT NOT NULL
123
+ `,
124
+ };
125
+
126
+ export const binaryType: ExpectedSql = {
127
+ mysql: mysql`
128
+ ALTER TABLE \`TestDb\`.\`File\`
129
+ ADD COLUMN \`data\` LONGBLOB NOT NULL
130
+ `,
131
+ mssql: tsql`
132
+ ALTER TABLE [TestDb].[TestSchema].[File]
133
+ ADD [data] VARBINARY(MAX) NOT NULL
134
+ `,
135
+ postgresql: pgsql`
136
+ ALTER TABLE "TestSchema"."File"
137
+ ADD COLUMN "data" BYTEA NOT NULL
138
+ `,
139
+ };
140
+
141
+ export const booleanType: ExpectedSql = {
142
+ mysql: mysql`
143
+ ALTER TABLE \`TestDb\`.\`User\`
144
+ ADD COLUMN \`isActive\` BOOLEAN NOT NULL
145
+ `,
146
+ mssql: tsql`
147
+ ALTER TABLE [TestDb].[TestSchema].[User]
148
+ ADD [isActive] BIT NOT NULL
149
+ `,
150
+ postgresql: pgsql`
151
+ ALTER TABLE "TestSchema"."User"
152
+ ADD COLUMN "isActive" BOOLEAN NOT NULL
153
+ `,
154
+ };
155
+
156
+ export const datetimeType: ExpectedSql = {
157
+ mysql: mysql`
158
+ ALTER TABLE \`TestDb\`.\`User\`
159
+ ADD COLUMN \`createdAt\` DATETIME NOT NULL
160
+ `,
161
+ mssql: tsql`
162
+ ALTER TABLE [TestDb].[TestSchema].[User]
163
+ ADD [createdAt] DATETIME2 NOT NULL
164
+ `,
165
+ postgresql: pgsql`
166
+ ALTER TABLE "TestSchema"."User"
167
+ ADD COLUMN "createdAt" TIMESTAMP NOT NULL
168
+ `,
169
+ };
170
+
171
+ export const dateType: ExpectedSql = {
172
+ mysql: mysql`
173
+ ALTER TABLE \`TestDb\`.\`User\`
174
+ ADD COLUMN \`birthDate\` DATE NOT NULL
175
+ `,
176
+ mssql: tsql`
177
+ ALTER TABLE [TestDb].[TestSchema].[User]
178
+ ADD [birthDate] DATE NOT NULL
179
+ `,
180
+ postgresql: pgsql`
181
+ ALTER TABLE "TestSchema"."User"
182
+ ADD COLUMN "birthDate" DATE NOT NULL
183
+ `,
184
+ };
185
+
186
+ export const timeType: ExpectedSql = {
187
+ mysql: mysql`
188
+ ALTER TABLE \`TestDb\`.\`Schedule\`
189
+ ADD COLUMN \`startTime\` TIME NOT NULL
190
+ `,
191
+ mssql: tsql`
192
+ ALTER TABLE [TestDb].[TestSchema].[Schedule]
193
+ ADD [startTime] TIME NOT NULL
194
+ `,
195
+ postgresql: pgsql`
196
+ ALTER TABLE "TestSchema"."Schedule"
197
+ ADD COLUMN "startTime" TIME NOT NULL
198
+ `,
199
+ };
200
+
201
+ export const uuidType: ExpectedSql = {
202
+ mysql: mysql`
203
+ ALTER TABLE \`TestDb\`.\`User\`
204
+ ADD COLUMN \`uuid\` BINARY(16) NOT NULL
205
+ `,
206
+ mssql: tsql`
207
+ ALTER TABLE [TestDb].[TestSchema].[User]
208
+ ADD [uuid] UNIQUEIDENTIFIER NOT NULL
209
+ `,
210
+ postgresql: pgsql`
211
+ ALTER TABLE "TestSchema"."User"
212
+ ADD COLUMN "uuid" UUID NOT NULL
213
+ `,
214
+ };
215
+
216
+ //#endregion
217
+
218
+ //#region ========== Method Combination Tests ==========
219
+
220
+ export const nullableColumn: ExpectedSql = {
221
+ mysql: mysql`
222
+ ALTER TABLE \`TestDb\`.\`User\`
223
+ ADD COLUMN \`nickname\` VARCHAR(100) NULL
224
+ `,
225
+ mssql: tsql`
226
+ ALTER TABLE [TestDb].[TestSchema].[User]
227
+ ADD [nickname] NVARCHAR(100) NULL
228
+ `,
229
+ postgresql: pgsql`
230
+ ALTER TABLE "TestSchema"."User"
231
+ ADD COLUMN "nickname" VARCHAR(100) NULL
232
+ `,
233
+ };
234
+
235
+ export const defaultColumn: ExpectedSql = {
236
+ mysql: mysql`
237
+ ALTER TABLE \`TestDb\`.\`User\`
238
+ ADD COLUMN \`score\` INT NOT NULL DEFAULT 0
239
+ `,
240
+ mssql: tsql`
241
+ ALTER TABLE [TestDb].[TestSchema].[User]
242
+ ADD [score] INT NOT NULL DEFAULT 0
243
+ `,
244
+ postgresql: pgsql`
245
+ ALTER TABLE "TestSchema"."User"
246
+ ADD COLUMN "score" INTEGER NOT NULL DEFAULT 0
247
+ `,
248
+ };
249
+
250
+ export const autoIncrementColumn: ExpectedSql = {
251
+ mysql: mysql`
252
+ ALTER TABLE \`TestDb\`.\`User\`
253
+ ADD COLUMN \`id\` BIGINT NOT NULL AUTO_INCREMENT
254
+ `,
255
+ mssql: tsql`
256
+ ALTER TABLE [TestDb].[TestSchema].[User]
257
+ ADD [id] BIGINT NOT NULL IDENTITY(1,1)
258
+ `,
259
+ postgresql: pgsql`
260
+ ALTER TABLE "TestSchema"."User"
261
+ ADD COLUMN "id" BIGINT NOT NULL GENERATED BY DEFAULT AS IDENTITY
262
+ `,
263
+ };
264
+
265
+ export const descriptionColumn: ExpectedSql = {
266
+ mysql: mysql`
267
+ ALTER TABLE \`TestDb\`.\`User\`
268
+ ADD COLUMN \`name\` VARCHAR(100) NOT NULL
269
+ `,
270
+ mssql: tsql`
271
+ ALTER TABLE [TestDb].[TestSchema].[User]
272
+ ADD [name] NVARCHAR(100) NOT NULL
273
+ `,
274
+ postgresql: pgsql`
275
+ ALTER TABLE "TestSchema"."User"
276
+ ADD COLUMN "name" VARCHAR(100) NOT NULL
277
+ `,
278
+ };
279
+
280
+ export const nullableDefaultColumn: ExpectedSql = {
281
+ mysql: mysql`
282
+ ALTER TABLE \`TestDb\`.\`User\`
283
+ ADD COLUMN \`status\` VARCHAR(50) NULL DEFAULT 'Unknown'
284
+ `,
285
+ mssql: tsql`
286
+ ALTER TABLE [TestDb].[TestSchema].[User]
287
+ ADD [status] NVARCHAR(50) NULL DEFAULT N'Unknown'
288
+ `,
289
+ postgresql: pgsql`
290
+ ALTER TABLE "TestSchema"."User"
291
+ ADD COLUMN "status" VARCHAR(50) NULL DEFAULT 'Unknown'
292
+ `,
293
+ };
294
+
295
+ export const autoIncrementDescColumn: ExpectedSql = {
296
+ mysql: mysql`
297
+ ALTER TABLE \`TestDb\`.\`User\`
298
+ ADD COLUMN \`id\` BIGINT NOT NULL AUTO_INCREMENT
299
+ `,
300
+ mssql: tsql`
301
+ ALTER TABLE [TestDb].[TestSchema].[User]
302
+ ADD [id] BIGINT NOT NULL IDENTITY(1,1)
303
+ `,
304
+ postgresql: pgsql`
305
+ ALTER TABLE "TestSchema"."User"
306
+ ADD COLUMN "id" BIGINT NOT NULL GENERATED BY DEFAULT AS IDENTITY
307
+ `,
308
+ };
309
+
310
+ //#endregion