@simplysm/orm-common 13.0.75 → 13.0.77
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.
- package/README.md +575 -50
- package/dist/create-db-context.d.ts +1 -1
- package/dist/create-db-context.d.ts.map +1 -1
- package/dist/create-db-context.js +34 -27
- package/dist/create-db-context.js.map +1 -1
- package/dist/ddl/initialize.js +4 -4
- package/dist/ddl/initialize.js.map +1 -1
- package/dist/ddl/relation-ddl.d.ts +7 -7
- package/dist/ddl/relation-ddl.d.ts.map +1 -1
- package/dist/ddl/relation-ddl.js +18 -18
- package/dist/ddl/relation-ddl.js.map +1 -1
- package/dist/ddl/schema-ddl.d.ts +1 -1
- package/dist/ddl/schema-ddl.d.ts.map +1 -1
- package/dist/ddl/schema-ddl.js +2 -2
- package/dist/ddl/schema-ddl.js.map +1 -1
- package/dist/ddl/table-ddl.js +2 -2
- package/dist/ddl/table-ddl.js.map +1 -1
- package/dist/exec/queryable.d.ts +24 -24
- package/dist/exec/queryable.d.ts.map +1 -1
- package/dist/exec/queryable.js +37 -37
- package/dist/exec/queryable.js.map +1 -1
- package/dist/expr/expr-unit.js +1 -1
- package/dist/expr/expr-unit.js.map +1 -1
- package/dist/expr/expr.d.ts +9 -9
- package/dist/expr/expr.d.ts.map +1 -1
- package/dist/expr/expr.js +10 -10
- package/dist/expr/expr.js.map +1 -1
- package/dist/query-builder/base/expr-renderer-base.d.ts +2 -2
- package/dist/query-builder/base/expr-renderer-base.d.ts.map +1 -1
- package/dist/query-builder/base/query-builder-base.d.ts +7 -15
- package/dist/query-builder/base/query-builder-base.d.ts.map +1 -1
- package/dist/query-builder/base/query-builder-base.js +2 -2
- package/dist/query-builder/base/query-builder-base.js.map +1 -1
- package/dist/query-builder/mssql/mssql-expr-renderer.d.ts +4 -4
- package/dist/query-builder/mssql/mssql-expr-renderer.d.ts.map +1 -1
- package/dist/query-builder/mssql/mssql-expr-renderer.js +8 -8
- package/dist/query-builder/mssql/mssql-expr-renderer.js.map +1 -1
- package/dist/query-builder/mssql/mssql-query-builder.d.ts +7 -7
- package/dist/query-builder/mssql/mssql-query-builder.d.ts.map +1 -1
- package/dist/query-builder/mssql/mssql-query-builder.js +7 -7
- package/dist/query-builder/mssql/mssql-query-builder.js.map +1 -1
- package/dist/query-builder/mysql/mysql-expr-renderer.d.ts +4 -4
- package/dist/query-builder/mysql/mysql-expr-renderer.d.ts.map +1 -1
- package/dist/query-builder/mysql/mysql-expr-renderer.js +9 -9
- package/dist/query-builder/mysql/mysql-expr-renderer.js.map +1 -1
- package/dist/query-builder/mysql/mysql-query-builder.d.ts +7 -7
- package/dist/query-builder/mysql/mysql-query-builder.d.ts.map +1 -1
- package/dist/query-builder/mysql/mysql-query-builder.js +11 -11
- package/dist/query-builder/mysql/mysql-query-builder.js.map +1 -1
- package/dist/query-builder/postgresql/postgresql-expr-renderer.d.ts +4 -4
- package/dist/query-builder/postgresql/postgresql-expr-renderer.d.ts.map +1 -1
- package/dist/query-builder/postgresql/postgresql-expr-renderer.js +8 -8
- package/dist/query-builder/postgresql/postgresql-expr-renderer.js.map +1 -1
- package/dist/query-builder/postgresql/postgresql-query-builder.d.ts +7 -7
- package/dist/query-builder/postgresql/postgresql-query-builder.d.ts.map +1 -1
- package/dist/query-builder/postgresql/postgresql-query-builder.js +7 -7
- package/dist/query-builder/postgresql/postgresql-query-builder.js.map +1 -1
- package/dist/schema/procedure-builder.d.ts +1 -1
- package/dist/schema/table-builder.d.ts +1 -1
- package/dist/schema/table-builder.d.ts.map +1 -1
- package/dist/schema/table-builder.js +1 -1
- package/dist/schema/view-builder.d.ts +1 -1
- package/dist/schema/view-builder.d.ts.map +1 -1
- package/dist/schema/view-builder.js +1 -1
- package/dist/types/db-context-def.d.ts +18 -18
- package/dist/types/db-context-def.d.ts.map +1 -1
- package/dist/types/expr.d.ts +6 -6
- package/dist/types/expr.d.ts.map +1 -1
- package/dist/types/query-def.d.ts +15 -15
- package/dist/types/query-def.d.ts.map +1 -1
- package/dist/types/query-def.js +6 -6
- package/dist/utils/result-parser.d.ts.map +1 -1
- package/dist/utils/result-parser.js +44 -16
- package/dist/utils/result-parser.js.map +1 -1
- package/package.json +2 -2
- package/src/create-db-context.ts +36 -29
- package/src/ddl/initialize.ts +4 -4
- package/src/ddl/relation-ddl.ts +16 -16
- package/src/ddl/schema-ddl.ts +2 -2
- package/src/ddl/table-ddl.ts +2 -2
- package/src/exec/queryable.ts +58 -58
- package/src/expr/expr-unit.ts +1 -1
- package/src/expr/expr.ts +13 -13
- package/src/query-builder/base/expr-renderer-base.ts +2 -2
- package/src/query-builder/base/query-builder-base.ts +18 -14
- package/src/query-builder/mssql/mssql-expr-renderer.ts +11 -10
- package/src/query-builder/mssql/mssql-query-builder.ts +13 -13
- package/src/query-builder/mysql/mysql-expr-renderer.ts +12 -11
- package/src/query-builder/mysql/mysql-query-builder.ts +17 -17
- package/src/query-builder/postgresql/postgresql-expr-renderer.ts +11 -10
- package/src/query-builder/postgresql/postgresql-query-builder.ts +13 -13
- package/src/schema/procedure-builder.ts +1 -1
- package/src/schema/table-builder.ts +1 -1
- package/src/schema/view-builder.ts +1 -1
- package/src/types/db-context-def.ts +18 -18
- package/src/types/expr.ts +6 -6
- package/src/types/query-def.ts +31 -31
- package/src/utils/result-parser.ts +60 -16
- package/tests/db-context/create-db-context.spec.ts +6 -37
- package/tests/db-context/define-db-context.spec.ts +0 -51
- package/tests/ddl/basic.expected.ts +8 -8
- package/tests/ddl/basic.spec.ts +24 -181
- package/tests/ddl/column-builder.spec.ts +0 -112
- package/tests/ddl/index-builder.spec.ts +10 -64
- package/tests/ddl/procedure-builder.spec.ts +0 -106
- package/tests/ddl/relation-builder.spec.ts +4 -205
- package/tests/ddl/table-builder.spec.ts +0 -34
- package/tests/ddl/view-builder.spec.ts +0 -60
- package/tests/dml/delete.spec.ts +0 -33
- package/tests/dml/insert.spec.ts +0 -78
- package/tests/dml/update.spec.ts +2 -98
- package/tests/dml/upsert.spec.ts +0 -52
- package/tests/errors/queryable-errors.spec.ts +0 -51
- package/tests/escape.spec.ts +0 -41
- package/tests/examples/pivot.spec.ts +0 -333
- package/tests/examples/sampling.spec.ts +0 -63
- package/tests/examples/unpivot.spec.ts +0 -65
- package/tests/exec/search-parser.spec.ts +0 -16
- package/tests/expr/comparison.spec.ts +0 -66
- package/tests/expr/conditional.expected.ts +2 -2
- package/tests/expr/conditional.spec.ts +8 -35
- package/tests/expr/date.spec.ts +5 -72
- package/tests/expr/math.spec.ts +0 -47
- package/tests/expr/string.spec.ts +0 -56
- package/tests/expr/utility.spec.ts +0 -27
- package/tests/select/basic.spec.ts +5 -74
- package/tests/select/filter.spec.ts +0 -114
- package/tests/select/group.spec.ts +0 -85
- package/tests/select/join.spec.ts +0 -113
- package/tests/select/order.spec.ts +0 -49
- package/tests/select/subquery.spec.ts +0 -96
- package/tests/select/window.spec.ts +0 -185
- package/tests/types/nullable-queryable-record.spec.ts +0 -48
- package/tests/utils/result-parser-perf.spec.ts +0 -67
- package/tests/utils/result-parser.spec.ts +4 -38
package/tests/ddl/basic.spec.ts
CHANGED
|
@@ -122,65 +122,6 @@ describe("DDL - Table", () => {
|
|
|
122
122
|
});
|
|
123
123
|
});
|
|
124
124
|
|
|
125
|
-
describe("getTruncateQueryDef", () => {
|
|
126
|
-
const db = createTestDb();
|
|
127
|
-
const def = db.getTruncateQueryDef({ database: "TestDb", schema: "TestSchema", name: "User" });
|
|
128
|
-
|
|
129
|
-
it("should validate QueryDef", () => {
|
|
130
|
-
expect(def).toEqual({
|
|
131
|
-
type: "truncate",
|
|
132
|
-
table: { database: "TestDb", schema: "TestSchema", name: "User" },
|
|
133
|
-
});
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
it.each(dialects)("[%s] should validate SQL", (dialect) => {
|
|
137
|
-
const builder = createQueryBuilder(dialect);
|
|
138
|
-
expect(builder.build(def)).toMatchSql(expected.truncate[dialect]);
|
|
139
|
-
});
|
|
140
|
-
});
|
|
141
|
-
|
|
142
|
-
describe("getSwitchFkQueryDef - on", () => {
|
|
143
|
-
const db = createTestDb();
|
|
144
|
-
const def = db.getSwitchFkQueryDef(
|
|
145
|
-
{ database: "TestDb", schema: "TestSchema", name: "User" },
|
|
146
|
-
"on",
|
|
147
|
-
);
|
|
148
|
-
|
|
149
|
-
it("should validate QueryDef", () => {
|
|
150
|
-
expect(def).toEqual({
|
|
151
|
-
type: "switchFk",
|
|
152
|
-
table: { database: "TestDb", schema: "TestSchema", name: "User" },
|
|
153
|
-
switch: "on",
|
|
154
|
-
});
|
|
155
|
-
});
|
|
156
|
-
|
|
157
|
-
it.each(dialects)("[%s] should validate SQL", (dialect) => {
|
|
158
|
-
const builder = createQueryBuilder(dialect);
|
|
159
|
-
expect(builder.build(def)).toMatchSql(expected.switchFkOn[dialect]);
|
|
160
|
-
});
|
|
161
|
-
});
|
|
162
|
-
|
|
163
|
-
describe("getSwitchFkQueryDef - off", () => {
|
|
164
|
-
const db = createTestDb();
|
|
165
|
-
const def = db.getSwitchFkQueryDef(
|
|
166
|
-
{ database: "TestDb", schema: "TestSchema", name: "User" },
|
|
167
|
-
"off",
|
|
168
|
-
);
|
|
169
|
-
|
|
170
|
-
it("should validate QueryDef", () => {
|
|
171
|
-
expect(def).toEqual({
|
|
172
|
-
type: "switchFk",
|
|
173
|
-
table: { database: "TestDb", schema: "TestSchema", name: "User" },
|
|
174
|
-
switch: "off",
|
|
175
|
-
});
|
|
176
|
-
});
|
|
177
|
-
|
|
178
|
-
it.each(dialects)("[%s] should validate SQL", (dialect) => {
|
|
179
|
-
const builder = createQueryBuilder(dialect);
|
|
180
|
-
expect(builder.build(def)).toMatchSql(expected.switchFkOff[dialect]);
|
|
181
|
-
});
|
|
182
|
-
});
|
|
183
|
-
|
|
184
125
|
describe("getDropTableQueryDef", () => {
|
|
185
126
|
const db = createTestDb();
|
|
186
127
|
const def = db.getDropTableQueryDef({ database: "TestDb", schema: "TestSchema", name: "User" });
|
|
@@ -279,35 +220,6 @@ describe("DDL - Column", () => {
|
|
|
279
220
|
});
|
|
280
221
|
});
|
|
281
222
|
|
|
282
|
-
describe("getAddColumnQueryDef - with autoIncrement", () => {
|
|
283
|
-
const db = createTestDb();
|
|
284
|
-
const column = Column.bigint().autoIncrement();
|
|
285
|
-
const def = db.getAddColumnQueryDef(
|
|
286
|
-
{ database: "TestDb", schema: "TestSchema", name: "User" },
|
|
287
|
-
"seq",
|
|
288
|
-
column,
|
|
289
|
-
);
|
|
290
|
-
|
|
291
|
-
it("should validate QueryDef", () => {
|
|
292
|
-
expect(def).toEqual({
|
|
293
|
-
type: "addColumn",
|
|
294
|
-
table: { database: "TestDb", schema: "TestSchema", name: "User" },
|
|
295
|
-
column: {
|
|
296
|
-
name: "seq",
|
|
297
|
-
dataType: { type: "bigint" },
|
|
298
|
-
autoIncrement: true,
|
|
299
|
-
nullable: undefined,
|
|
300
|
-
default: undefined,
|
|
301
|
-
},
|
|
302
|
-
});
|
|
303
|
-
});
|
|
304
|
-
|
|
305
|
-
it.each(dialects)("[%s] should validate SQL", (dialect) => {
|
|
306
|
-
const builder = createQueryBuilder(dialect);
|
|
307
|
-
expect(builder.build(def)).toMatchSql(expected.addColumnWithAutoIncrement[dialect]);
|
|
308
|
-
});
|
|
309
|
-
});
|
|
310
|
-
|
|
311
223
|
describe("getDropColumnQueryDef", () => {
|
|
312
224
|
const db = createTestDb();
|
|
313
225
|
const def = db.getDropColumnQueryDef(
|
|
@@ -358,35 +270,6 @@ describe("DDL - Column", () => {
|
|
|
358
270
|
});
|
|
359
271
|
});
|
|
360
272
|
|
|
361
|
-
describe("getModifyColumnQueryDef - change TYPE + DEFAULT simultaneously", () => {
|
|
362
|
-
const db = createTestDb();
|
|
363
|
-
const column = Column.int().default(100);
|
|
364
|
-
const def = db.getModifyColumnQueryDef(
|
|
365
|
-
{ database: "TestDb", schema: "TestSchema", name: "User" },
|
|
366
|
-
"score",
|
|
367
|
-
column,
|
|
368
|
-
);
|
|
369
|
-
|
|
370
|
-
it("should validate QueryDef", () => {
|
|
371
|
-
expect(def).toEqual({
|
|
372
|
-
type: "modifyColumn",
|
|
373
|
-
table: { database: "TestDb", schema: "TestSchema", name: "User" },
|
|
374
|
-
column: {
|
|
375
|
-
name: "score",
|
|
376
|
-
dataType: { type: "int" },
|
|
377
|
-
autoIncrement: undefined,
|
|
378
|
-
nullable: undefined,
|
|
379
|
-
default: 100,
|
|
380
|
-
},
|
|
381
|
-
});
|
|
382
|
-
});
|
|
383
|
-
|
|
384
|
-
it.each(dialects)("[%s] should validate SQL", (dialect) => {
|
|
385
|
-
const builder = createQueryBuilder(dialect);
|
|
386
|
-
expect(builder.build(def)).toMatchSql(expected.modifyColumnTypeAndDefault[dialect]);
|
|
387
|
-
});
|
|
388
|
-
});
|
|
389
|
-
|
|
390
273
|
describe("getRenameColumnQueryDef", () => {
|
|
391
274
|
const db = createTestDb();
|
|
392
275
|
const def = db.getRenameColumnQueryDef(
|
|
@@ -412,32 +295,32 @@ describe("DDL - Column", () => {
|
|
|
412
295
|
});
|
|
413
296
|
|
|
414
297
|
describe("DDL - Primary Key", () => {
|
|
415
|
-
describe("
|
|
298
|
+
describe("getDropPrimaryKeyQueryDef", () => {
|
|
416
299
|
const db = createTestDb();
|
|
417
|
-
const def = db.
|
|
300
|
+
const def = db.getDropPrimaryKeyQueryDef({ database: "TestDb", schema: "TestSchema", name: "User" });
|
|
418
301
|
|
|
419
302
|
it("should validate QueryDef", () => {
|
|
420
303
|
expect(def).toEqual({
|
|
421
|
-
type: "
|
|
304
|
+
type: "dropPrimaryKey",
|
|
422
305
|
table: { database: "TestDb", schema: "TestSchema", name: "User" },
|
|
423
306
|
});
|
|
424
307
|
});
|
|
425
308
|
|
|
426
309
|
it.each(dialects)("[%s] should validate SQL", (dialect) => {
|
|
427
310
|
const builder = createQueryBuilder(dialect);
|
|
428
|
-
expect(builder.build(def)).toMatchSql(expected.
|
|
311
|
+
expect(builder.build(def)).toMatchSql(expected.dropPrimaryKey[dialect]);
|
|
429
312
|
});
|
|
430
313
|
});
|
|
431
314
|
|
|
432
|
-
describe("
|
|
315
|
+
describe("getAddPrimaryKeyQueryDef", () => {
|
|
433
316
|
const db = createTestDb();
|
|
434
|
-
const def = db.
|
|
317
|
+
const def = db.getAddPrimaryKeyQueryDef({ database: "TestDb", schema: "TestSchema", name: "User" }, [
|
|
435
318
|
"id",
|
|
436
319
|
]);
|
|
437
320
|
|
|
438
321
|
it("should validate QueryDef", () => {
|
|
439
322
|
expect(def).toEqual({
|
|
440
|
-
type: "
|
|
323
|
+
type: "addPrimaryKey",
|
|
441
324
|
table: { database: "TestDb", schema: "TestSchema", name: "User" },
|
|
442
325
|
columns: ["id"],
|
|
443
326
|
});
|
|
@@ -445,41 +328,21 @@ describe("DDL - Primary Key", () => {
|
|
|
445
328
|
|
|
446
329
|
it.each(dialects)("[%s] should validate SQL", (dialect) => {
|
|
447
330
|
const builder = createQueryBuilder(dialect);
|
|
448
|
-
expect(builder.build(def)).toMatchSql(expected.
|
|
331
|
+
expect(builder.build(def)).toMatchSql(expected.addPrimaryKey[dialect]);
|
|
449
332
|
});
|
|
450
333
|
});
|
|
451
334
|
|
|
452
|
-
describe("getAddPkQueryDef - composite key", () => {
|
|
453
|
-
const db = createTestDb();
|
|
454
|
-
const def = db.getAddPkQueryDef(
|
|
455
|
-
{ database: "TestDb", schema: "TestSchema", name: "UserRole" },
|
|
456
|
-
["userId", "roleId"],
|
|
457
|
-
);
|
|
458
|
-
|
|
459
|
-
it("should validate QueryDef", () => {
|
|
460
|
-
expect(def).toEqual({
|
|
461
|
-
type: "addPk",
|
|
462
|
-
table: { database: "TestDb", schema: "TestSchema", name: "UserRole" },
|
|
463
|
-
columns: ["userId", "roleId"],
|
|
464
|
-
});
|
|
465
|
-
});
|
|
466
|
-
|
|
467
|
-
it.each(dialects)("[%s] should validate SQL", (dialect) => {
|
|
468
|
-
const builder = createQueryBuilder(dialect);
|
|
469
|
-
expect(builder.build(def)).toMatchSql(expected.addPkComposite[dialect]);
|
|
470
|
-
});
|
|
471
|
-
});
|
|
472
335
|
});
|
|
473
336
|
|
|
474
337
|
describe("DDL - Foreign Key / Index", () => {
|
|
475
|
-
describe("
|
|
338
|
+
describe("getAddForeignKeyQueryDef", () => {
|
|
476
339
|
const db = createTestDb();
|
|
477
340
|
const userRelation = Post.meta.relations?.["user"];
|
|
478
341
|
if (!(userRelation instanceof ForeignKeyBuilder)) {
|
|
479
342
|
throw new Error("user relation not found");
|
|
480
343
|
}
|
|
481
344
|
|
|
482
|
-
const def = db.
|
|
345
|
+
const def = db.getAddForeignKeyQueryDef(
|
|
483
346
|
{ database: "TestDb", schema: "TestSchema", name: "Post" },
|
|
484
347
|
"user",
|
|
485
348
|
userRelation,
|
|
@@ -487,7 +350,7 @@ describe("DDL - Foreign Key / Index", () => {
|
|
|
487
350
|
|
|
488
351
|
it("should validate QueryDef", () => {
|
|
489
352
|
expect(def).toEqual({
|
|
490
|
-
type: "
|
|
353
|
+
type: "addForeignKey",
|
|
491
354
|
table: { database: "TestDb", schema: "TestSchema", name: "Post" },
|
|
492
355
|
foreignKey: {
|
|
493
356
|
name: "FK_Post_user",
|
|
@@ -500,20 +363,20 @@ describe("DDL - Foreign Key / Index", () => {
|
|
|
500
363
|
|
|
501
364
|
it.each(dialects)("[%s] should validate SQL", (dialect) => {
|
|
502
365
|
const builder = createQueryBuilder(dialect);
|
|
503
|
-
expect(builder.build(def)).toMatchSql(expected.
|
|
366
|
+
expect(builder.build(def)).toMatchSql(expected.addForeignKey[dialect]);
|
|
504
367
|
});
|
|
505
368
|
});
|
|
506
369
|
|
|
507
|
-
describe("
|
|
370
|
+
describe("getDropForeignKeyQueryDef", () => {
|
|
508
371
|
const db = createTestDb();
|
|
509
|
-
const def = db.
|
|
372
|
+
const def = db.getDropForeignKeyQueryDef(
|
|
510
373
|
{ database: "TestDb", schema: "TestSchema", name: "Post" },
|
|
511
374
|
"user",
|
|
512
375
|
);
|
|
513
376
|
|
|
514
377
|
it("should validate QueryDef", () => {
|
|
515
378
|
expect(def).toEqual({
|
|
516
|
-
type: "
|
|
379
|
+
type: "dropForeignKey",
|
|
517
380
|
table: { database: "TestDb", schema: "TestSchema", name: "Post" },
|
|
518
381
|
foreignKey: "FK_Post_user",
|
|
519
382
|
});
|
|
@@ -521,22 +384,22 @@ describe("DDL - Foreign Key / Index", () => {
|
|
|
521
384
|
|
|
522
385
|
it.each(dialects)("[%s] should validate SQL", (dialect) => {
|
|
523
386
|
const builder = createQueryBuilder(dialect);
|
|
524
|
-
expect(builder.build(def)).toMatchSql(expected.
|
|
387
|
+
expect(builder.build(def)).toMatchSql(expected.dropForeignKey[dialect]);
|
|
525
388
|
});
|
|
526
389
|
});
|
|
527
390
|
|
|
528
|
-
describe("
|
|
391
|
+
describe("getAddIndexQueryDef", () => {
|
|
529
392
|
const db = createTestDb();
|
|
530
393
|
const indexBuilder = new IndexBuilder({ columns: ["email"] as string[], unique: true });
|
|
531
394
|
|
|
532
|
-
const def = db.
|
|
395
|
+
const def = db.getAddIndexQueryDef(
|
|
533
396
|
{ database: "TestDb", schema: "TestSchema", name: "User" },
|
|
534
397
|
indexBuilder,
|
|
535
398
|
);
|
|
536
399
|
|
|
537
400
|
it("should validate QueryDef", () => {
|
|
538
401
|
expect(def).toEqual({
|
|
539
|
-
type: "
|
|
402
|
+
type: "addIndex",
|
|
540
403
|
table: { database: "TestDb", schema: "TestSchema", name: "User" },
|
|
541
404
|
index: {
|
|
542
405
|
name: "IDX_User_email",
|
|
@@ -548,19 +411,19 @@ describe("DDL - Foreign Key / Index", () => {
|
|
|
548
411
|
|
|
549
412
|
it.each(dialects)("[%s] should validate SQL", (dialect) => {
|
|
550
413
|
const builder = createQueryBuilder(dialect);
|
|
551
|
-
expect(builder.build(def)).toMatchSql(expected.
|
|
414
|
+
expect(builder.build(def)).toMatchSql(expected.addIndex[dialect]);
|
|
552
415
|
});
|
|
553
416
|
});
|
|
554
417
|
|
|
555
|
-
describe("
|
|
418
|
+
describe("getDropIndexQueryDef", () => {
|
|
556
419
|
const db = createTestDb();
|
|
557
|
-
const def = db.
|
|
420
|
+
const def = db.getDropIndexQueryDef({ database: "TestDb", schema: "TestSchema", name: "User" }, [
|
|
558
421
|
"email",
|
|
559
422
|
]);
|
|
560
423
|
|
|
561
424
|
it("should validate QueryDef", () => {
|
|
562
425
|
expect(def).toEqual({
|
|
563
|
-
type: "
|
|
426
|
+
type: "dropIndex",
|
|
564
427
|
table: { database: "TestDb", schema: "TestSchema", name: "User" },
|
|
565
428
|
index: "IDX_User_email",
|
|
566
429
|
});
|
|
@@ -568,30 +431,10 @@ describe("DDL - Foreign Key / Index", () => {
|
|
|
568
431
|
|
|
569
432
|
it.each(dialects)("[%s] should validate SQL", (dialect) => {
|
|
570
433
|
const builder = createQueryBuilder(dialect);
|
|
571
|
-
expect(builder.build(def)).toMatchSql(expected.
|
|
434
|
+
expect(builder.build(def)).toMatchSql(expected.dropIndex[dialect]);
|
|
572
435
|
});
|
|
573
436
|
});
|
|
574
437
|
|
|
575
|
-
describe("getDropIdxQueryDef - composite", () => {
|
|
576
|
-
const db = createTestDb();
|
|
577
|
-
const def = db.getDropIdxQueryDef({ database: "TestDb", schema: "TestSchema", name: "User" }, [
|
|
578
|
-
"name",
|
|
579
|
-
"email",
|
|
580
|
-
]);
|
|
581
|
-
|
|
582
|
-
it("should validate QueryDef", () => {
|
|
583
|
-
expect(def).toEqual({
|
|
584
|
-
type: "dropIdx",
|
|
585
|
-
table: { database: "TestDb", schema: "TestSchema", name: "User" },
|
|
586
|
-
index: "IDX_User_name_email",
|
|
587
|
-
});
|
|
588
|
-
});
|
|
589
|
-
|
|
590
|
-
it.each(dialects)("[%s] should validate SQL", (dialect) => {
|
|
591
|
-
const builder = createQueryBuilder(dialect);
|
|
592
|
-
expect(builder.build(def)).toMatchSql(expected.dropIdxComposite[dialect]);
|
|
593
|
-
});
|
|
594
|
-
});
|
|
595
438
|
});
|
|
596
439
|
|
|
597
440
|
describe("DDL - View", () => {
|
|
@@ -51,20 +51,6 @@ describe("DDL - Column Builder", () => {
|
|
|
51
51
|
column,
|
|
52
52
|
);
|
|
53
53
|
|
|
54
|
-
it("should validate QueryDef", () => {
|
|
55
|
-
expect(def).toEqual({
|
|
56
|
-
type: "addColumn",
|
|
57
|
-
table: { database: "TestDb", schema: "TestSchema", name: "User" },
|
|
58
|
-
column: {
|
|
59
|
-
name: "id",
|
|
60
|
-
dataType: { type: "bigint" },
|
|
61
|
-
autoIncrement: undefined,
|
|
62
|
-
nullable: undefined,
|
|
63
|
-
default: undefined,
|
|
64
|
-
},
|
|
65
|
-
});
|
|
66
|
-
});
|
|
67
|
-
|
|
68
54
|
it.each(dialects)("[%s] should validate SQL", (dialect) => {
|
|
69
55
|
const builder = createQueryBuilder(dialect);
|
|
70
56
|
expect(builder.build(def)).toMatchSql(expected.bigintType[dialect]);
|
|
@@ -82,20 +68,6 @@ describe("DDL - Column Builder", () => {
|
|
|
82
68
|
column,
|
|
83
69
|
);
|
|
84
70
|
|
|
85
|
-
it("should validate QueryDef", () => {
|
|
86
|
-
expect(def).toEqual({
|
|
87
|
-
type: "addColumn",
|
|
88
|
-
table: { database: "TestDb", schema: "TestSchema", name: "Product" },
|
|
89
|
-
column: {
|
|
90
|
-
name: "weight",
|
|
91
|
-
dataType: { type: "float" },
|
|
92
|
-
autoIncrement: undefined,
|
|
93
|
-
nullable: undefined,
|
|
94
|
-
default: undefined,
|
|
95
|
-
},
|
|
96
|
-
});
|
|
97
|
-
});
|
|
98
|
-
|
|
99
71
|
it.each(dialects)("[%s] should validate SQL", (dialect) => {
|
|
100
72
|
const builder = createQueryBuilder(dialect);
|
|
101
73
|
expect(builder.build(def)).toMatchSql(expected.floatType[dialect]);
|
|
@@ -113,20 +85,6 @@ describe("DDL - Column Builder", () => {
|
|
|
113
85
|
column,
|
|
114
86
|
);
|
|
115
87
|
|
|
116
|
-
it("should validate QueryDef", () => {
|
|
117
|
-
expect(def).toEqual({
|
|
118
|
-
type: "addColumn",
|
|
119
|
-
table: { database: "TestDb", schema: "TestSchema", name: "Product" },
|
|
120
|
-
column: {
|
|
121
|
-
name: "price",
|
|
122
|
-
dataType: { type: "double" },
|
|
123
|
-
autoIncrement: undefined,
|
|
124
|
-
nullable: undefined,
|
|
125
|
-
default: undefined,
|
|
126
|
-
},
|
|
127
|
-
});
|
|
128
|
-
});
|
|
129
|
-
|
|
130
88
|
it.each(dialects)("[%s] should validate SQL", (dialect) => {
|
|
131
89
|
const builder = createQueryBuilder(dialect);
|
|
132
90
|
expect(builder.build(def)).toMatchSql(expected.doubleType[dialect]);
|
|
@@ -175,20 +133,6 @@ describe("DDL - Column Builder", () => {
|
|
|
175
133
|
column,
|
|
176
134
|
);
|
|
177
135
|
|
|
178
|
-
it("should validate QueryDef", () => {
|
|
179
|
-
expect(def).toEqual({
|
|
180
|
-
type: "addColumn",
|
|
181
|
-
table: { database: "TestDb", schema: "TestSchema", name: "User" },
|
|
182
|
-
column: {
|
|
183
|
-
name: "name",
|
|
184
|
-
dataType: { type: "varchar", length: 100 },
|
|
185
|
-
autoIncrement: undefined,
|
|
186
|
-
nullable: undefined,
|
|
187
|
-
default: undefined,
|
|
188
|
-
},
|
|
189
|
-
});
|
|
190
|
-
});
|
|
191
|
-
|
|
192
136
|
it.each(dialects)("[%s] should validate SQL", (dialect) => {
|
|
193
137
|
const builder = createQueryBuilder(dialect);
|
|
194
138
|
expect(builder.build(def)).toMatchSql(expected.varcharType[dialect]);
|
|
@@ -237,20 +181,6 @@ describe("DDL - Column Builder", () => {
|
|
|
237
181
|
column,
|
|
238
182
|
);
|
|
239
183
|
|
|
240
|
-
it("should validate QueryDef", () => {
|
|
241
|
-
expect(def).toEqual({
|
|
242
|
-
type: "addColumn",
|
|
243
|
-
table: { database: "TestDb", schema: "TestSchema", name: "Post" },
|
|
244
|
-
column: {
|
|
245
|
-
name: "content",
|
|
246
|
-
dataType: { type: "text" },
|
|
247
|
-
autoIncrement: undefined,
|
|
248
|
-
nullable: undefined,
|
|
249
|
-
default: undefined,
|
|
250
|
-
},
|
|
251
|
-
});
|
|
252
|
-
});
|
|
253
|
-
|
|
254
184
|
it.each(dialects)("[%s] should validate SQL", (dialect) => {
|
|
255
185
|
const builder = createQueryBuilder(dialect);
|
|
256
186
|
expect(builder.build(def)).toMatchSql(expected.textType[dialect]);
|
|
@@ -268,20 +198,6 @@ describe("DDL - Column Builder", () => {
|
|
|
268
198
|
column,
|
|
269
199
|
);
|
|
270
200
|
|
|
271
|
-
it("should validate QueryDef", () => {
|
|
272
|
-
expect(def).toEqual({
|
|
273
|
-
type: "addColumn",
|
|
274
|
-
table: { database: "TestDb", schema: "TestSchema", name: "File" },
|
|
275
|
-
column: {
|
|
276
|
-
name: "data",
|
|
277
|
-
dataType: { type: "binary" },
|
|
278
|
-
autoIncrement: undefined,
|
|
279
|
-
nullable: undefined,
|
|
280
|
-
default: undefined,
|
|
281
|
-
},
|
|
282
|
-
});
|
|
283
|
-
});
|
|
284
|
-
|
|
285
201
|
it.each(dialects)("[%s] should validate SQL", (dialect) => {
|
|
286
202
|
const builder = createQueryBuilder(dialect);
|
|
287
203
|
expect(builder.build(def)).toMatchSql(expected.binaryType[dialect]);
|
|
@@ -299,20 +215,6 @@ describe("DDL - Column Builder", () => {
|
|
|
299
215
|
column,
|
|
300
216
|
);
|
|
301
217
|
|
|
302
|
-
it("should validate QueryDef", () => {
|
|
303
|
-
expect(def).toEqual({
|
|
304
|
-
type: "addColumn",
|
|
305
|
-
table: { database: "TestDb", schema: "TestSchema", name: "User" },
|
|
306
|
-
column: {
|
|
307
|
-
name: "isActive",
|
|
308
|
-
dataType: { type: "boolean" },
|
|
309
|
-
autoIncrement: undefined,
|
|
310
|
-
nullable: undefined,
|
|
311
|
-
default: undefined,
|
|
312
|
-
},
|
|
313
|
-
});
|
|
314
|
-
});
|
|
315
|
-
|
|
316
218
|
it.each(dialects)("[%s] should validate SQL", (dialect) => {
|
|
317
219
|
const builder = createQueryBuilder(dialect);
|
|
318
220
|
expect(builder.build(def)).toMatchSql(expected.booleanType[dialect]);
|
|
@@ -330,20 +232,6 @@ describe("DDL - Column Builder", () => {
|
|
|
330
232
|
column,
|
|
331
233
|
);
|
|
332
234
|
|
|
333
|
-
it("should validate QueryDef", () => {
|
|
334
|
-
expect(def).toEqual({
|
|
335
|
-
type: "addColumn",
|
|
336
|
-
table: { database: "TestDb", schema: "TestSchema", name: "User" },
|
|
337
|
-
column: {
|
|
338
|
-
name: "createdAt",
|
|
339
|
-
dataType: { type: "datetime" },
|
|
340
|
-
autoIncrement: undefined,
|
|
341
|
-
nullable: undefined,
|
|
342
|
-
default: undefined,
|
|
343
|
-
},
|
|
344
|
-
});
|
|
345
|
-
});
|
|
346
|
-
|
|
347
235
|
it.each(dialects)("[%s] should validate SQL", (dialect) => {
|
|
348
236
|
const builder = createQueryBuilder(dialect);
|
|
349
237
|
expect(builder.build(def)).toMatchSql(expected.datetimeType[dialect]);
|
|
@@ -12,14 +12,14 @@ describe("DDL - Index Builder", () => {
|
|
|
12
12
|
describe("IndexBuilder - single column index", () => {
|
|
13
13
|
const db = createTestDb();
|
|
14
14
|
const indexBuilder = IndexFactory.index("email");
|
|
15
|
-
const def = db.
|
|
15
|
+
const def = db.getAddIndexQueryDef(
|
|
16
16
|
{ database: "TestDb", schema: "TestSchema", name: "User" },
|
|
17
17
|
indexBuilder,
|
|
18
18
|
);
|
|
19
19
|
|
|
20
20
|
it("should validate QueryDef", () => {
|
|
21
21
|
expect(def).toEqual({
|
|
22
|
-
type: "
|
|
22
|
+
type: "addIndex",
|
|
23
23
|
table: { database: "TestDb", schema: "TestSchema", name: "User" },
|
|
24
24
|
index: {
|
|
25
25
|
name: "IDX_User_email",
|
|
@@ -38,14 +38,14 @@ describe("DDL - Index Builder", () => {
|
|
|
38
38
|
describe("IndexBuilder - unique index", () => {
|
|
39
39
|
const db = createTestDb();
|
|
40
40
|
const indexBuilder = IndexFactory.index("email").unique();
|
|
41
|
-
const def = db.
|
|
41
|
+
const def = db.getAddIndexQueryDef(
|
|
42
42
|
{ database: "TestDb", schema: "TestSchema", name: "User" },
|
|
43
43
|
indexBuilder,
|
|
44
44
|
);
|
|
45
45
|
|
|
46
46
|
it("should validate QueryDef", () => {
|
|
47
47
|
expect(def).toEqual({
|
|
48
|
-
type: "
|
|
48
|
+
type: "addIndex",
|
|
49
49
|
table: { database: "TestDb", schema: "TestSchema", name: "User" },
|
|
50
50
|
index: {
|
|
51
51
|
name: "IDX_User_email",
|
|
@@ -64,14 +64,14 @@ describe("DDL - Index Builder", () => {
|
|
|
64
64
|
describe("IndexBuilder - composite index", () => {
|
|
65
65
|
const db = createTestDb();
|
|
66
66
|
const indexBuilder = IndexFactory.index("name", "email");
|
|
67
|
-
const def = db.
|
|
67
|
+
const def = db.getAddIndexQueryDef(
|
|
68
68
|
{ database: "TestDb", schema: "TestSchema", name: "User" },
|
|
69
69
|
indexBuilder,
|
|
70
70
|
);
|
|
71
71
|
|
|
72
72
|
it("should validate QueryDef", () => {
|
|
73
73
|
expect(def).toEqual({
|
|
74
|
-
type: "
|
|
74
|
+
type: "addIndex",
|
|
75
75
|
table: { database: "TestDb", schema: "TestSchema", name: "User" },
|
|
76
76
|
index: {
|
|
77
77
|
name: "IDX_User_name_email",
|
|
@@ -93,14 +93,14 @@ describe("DDL - Index Builder", () => {
|
|
|
93
93
|
describe("IndexBuilder - orderBy specified", () => {
|
|
94
94
|
const db = createTestDb();
|
|
95
95
|
const indexBuilder = IndexFactory.index("name", "email").orderBy("DESC", "ASC");
|
|
96
|
-
const def = db.
|
|
96
|
+
const def = db.getAddIndexQueryDef(
|
|
97
97
|
{ database: "TestDb", schema: "TestSchema", name: "User" },
|
|
98
98
|
indexBuilder,
|
|
99
99
|
);
|
|
100
100
|
|
|
101
101
|
it("should validate QueryDef", () => {
|
|
102
102
|
expect(def).toEqual({
|
|
103
|
-
type: "
|
|
103
|
+
type: "addIndex",
|
|
104
104
|
table: { database: "TestDb", schema: "TestSchema", name: "User" },
|
|
105
105
|
index: {
|
|
106
106
|
name: "IDX_User_name_email",
|
|
@@ -122,14 +122,14 @@ describe("DDL - Index Builder", () => {
|
|
|
122
122
|
describe("IndexBuilder - name specified", () => {
|
|
123
123
|
const db = createTestDb();
|
|
124
124
|
const indexBuilder = IndexFactory.index("email").name("UQ_User_email");
|
|
125
|
-
const def = db.
|
|
125
|
+
const def = db.getAddIndexQueryDef(
|
|
126
126
|
{ database: "TestDb", schema: "TestSchema", name: "User" },
|
|
127
127
|
indexBuilder,
|
|
128
128
|
);
|
|
129
129
|
|
|
130
130
|
it("should validate QueryDef", () => {
|
|
131
131
|
expect(def).toEqual({
|
|
132
|
-
type: "
|
|
132
|
+
type: "addIndex",
|
|
133
133
|
table: { database: "TestDb", schema: "TestSchema", name: "User" },
|
|
134
134
|
index: {
|
|
135
135
|
name: "UQ_User_email",
|
|
@@ -145,58 +145,4 @@ describe("DDL - Index Builder", () => {
|
|
|
145
145
|
});
|
|
146
146
|
});
|
|
147
147
|
|
|
148
|
-
describe("IndexBuilder - description specified", () => {
|
|
149
|
-
const db = createTestDb();
|
|
150
|
-
const indexBuilder = IndexFactory.index("email").description("이메일 검색용 인덱스");
|
|
151
|
-
const def = db.getAddIdxQueryDef(
|
|
152
|
-
{ database: "TestDb", schema: "TestSchema", name: "User" },
|
|
153
|
-
indexBuilder,
|
|
154
|
-
);
|
|
155
|
-
|
|
156
|
-
it("should validate QueryDef", () => {
|
|
157
|
-
expect(def).toEqual({
|
|
158
|
-
type: "addIdx",
|
|
159
|
-
table: { database: "TestDb", schema: "TestSchema", name: "User" },
|
|
160
|
-
index: {
|
|
161
|
-
name: "IDX_User_email",
|
|
162
|
-
columns: [{ name: "email", orderBy: "ASC" }],
|
|
163
|
-
unique: undefined,
|
|
164
|
-
},
|
|
165
|
-
});
|
|
166
|
-
});
|
|
167
|
-
|
|
168
|
-
it.each(dialects)("[%s] should validate SQL", (dialect) => {
|
|
169
|
-
const builder = createQueryBuilder(dialect);
|
|
170
|
-
expect(builder.build(def)).toMatchSql(expected.singleColumnIndex[dialect]);
|
|
171
|
-
});
|
|
172
|
-
});
|
|
173
|
-
|
|
174
|
-
describe("IndexBuilder - combined options (unique + orderBy)", () => {
|
|
175
|
-
const db = createTestDb();
|
|
176
|
-
const indexBuilder = IndexFactory.index("name", "email").unique().orderBy("DESC", "ASC");
|
|
177
|
-
const def = db.getAddIdxQueryDef(
|
|
178
|
-
{ database: "TestDb", schema: "TestSchema", name: "User" },
|
|
179
|
-
indexBuilder,
|
|
180
|
-
);
|
|
181
|
-
|
|
182
|
-
it("should validate QueryDef", () => {
|
|
183
|
-
expect(def).toEqual({
|
|
184
|
-
type: "addIdx",
|
|
185
|
-
table: { database: "TestDb", schema: "TestSchema", name: "User" },
|
|
186
|
-
index: {
|
|
187
|
-
name: "IDX_User_name_email",
|
|
188
|
-
columns: [
|
|
189
|
-
{ name: "name", orderBy: "DESC" },
|
|
190
|
-
{ name: "email", orderBy: "ASC" },
|
|
191
|
-
],
|
|
192
|
-
unique: true,
|
|
193
|
-
},
|
|
194
|
-
});
|
|
195
|
-
});
|
|
196
|
-
|
|
197
|
-
it.each(dialects)("[%s] should validate SQL", (dialect) => {
|
|
198
|
-
const builder = createQueryBuilder(dialect);
|
|
199
|
-
expect(builder.build(def)).toMatchSql(expected.uniqueOrderByIndex[dialect]);
|
|
200
|
-
});
|
|
201
|
-
});
|
|
202
148
|
});
|