@simplysm/orm-common 13.0.76 → 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 -6
- package/tests/ddl/basic.expected.ts +8 -8
- package/tests/ddl/basic.spec.ts +24 -24
- package/tests/ddl/index-builder.spec.ts +10 -10
- package/tests/ddl/relation-builder.spec.ts +4 -4
- package/tests/dml/update.spec.ts +2 -2
- package/tests/expr/conditional.expected.ts +2 -2
- package/tests/expr/conditional.spec.ts +8 -8
- package/tests/expr/date.spec.ts +5 -5
- package/tests/select/basic.spec.ts +5 -5
- package/tests/utils/result-parser.spec.ts +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-def.d.ts","sourceRoot":"","sources":["..\\..\\src\\types\\query-def.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"query-def.d.ts","sourceRoot":"","sources":["..\\..\\src\\types\\query-def.ts"],"names":[],"mappings":"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"}
|
package/dist/types/query-def.js
CHANGED
|
@@ -8,12 +8,12 @@ const DDL_TYPES = [
|
|
|
8
8
|
"dropColumn",
|
|
9
9
|
"modifyColumn",
|
|
10
10
|
"renameColumn",
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
11
|
+
"dropPrimaryKey",
|
|
12
|
+
"addPrimaryKey",
|
|
13
|
+
"addForeignKey",
|
|
14
|
+
"dropForeignKey",
|
|
15
|
+
"addIndex",
|
|
16
|
+
"dropIndex",
|
|
17
17
|
"createView",
|
|
18
18
|
"dropView",
|
|
19
19
|
"createProc",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result-parser.d.ts","sourceRoot":"","sources":["..\\..\\src\\utils\\result-parser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"result-parser.d.ts","sourceRoot":"","sources":["..\\..\\src\\utils\\result-parser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA2I9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAC5C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EACrC,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,CAehC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { bytes, obj, DateOnly, DateTime, Time, Uuid } from "@simplysm/core-common";
|
|
2
2
|
function parseValue(value, type) {
|
|
3
3
|
if (value == null) {
|
|
4
4
|
return void 0;
|
|
@@ -28,18 +28,24 @@ function parseValue(value, type) {
|
|
|
28
28
|
return new Uuid(value);
|
|
29
29
|
case "Bytes":
|
|
30
30
|
if (value instanceof Uint8Array) return value;
|
|
31
|
-
if (typeof value === "string") return
|
|
31
|
+
if (typeof value === "string") return bytes.fromHex(value);
|
|
32
32
|
throw new Error(`Failed to parse Bytes: ${typeof value}`);
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
function
|
|
35
|
+
function buildColumnInfos(columns) {
|
|
36
|
+
return Object.entries(columns).map(([key, type]) => ({
|
|
37
|
+
key,
|
|
38
|
+
type,
|
|
39
|
+
parts: key.includes(".") ? key.split(".") : void 0
|
|
40
|
+
}));
|
|
41
|
+
}
|
|
42
|
+
function flatToNested(record, columnInfos) {
|
|
36
43
|
const result = {};
|
|
37
|
-
for (const
|
|
44
|
+
for (const { key, type, parts } of columnInfos) {
|
|
38
45
|
const rawValue = record[key];
|
|
39
46
|
const parsedValue = parseValue(rawValue, type);
|
|
40
47
|
if (parsedValue === void 0) continue;
|
|
41
|
-
if (
|
|
42
|
-
const parts = key.split(".");
|
|
48
|
+
if (parts != null) {
|
|
43
49
|
let current = result;
|
|
44
50
|
for (let i = 0; i < parts.length - 1; i++) {
|
|
45
51
|
const part = parts[i];
|
|
@@ -55,8 +61,8 @@ function flatToNested(record, columns) {
|
|
|
55
61
|
}
|
|
56
62
|
return result;
|
|
57
63
|
}
|
|
58
|
-
function isEmptyObject(
|
|
59
|
-
return Object.keys(
|
|
64
|
+
function isEmptyObject(record) {
|
|
65
|
+
return Object.keys(record).length === 0;
|
|
60
66
|
}
|
|
61
67
|
const YIELD_INTERVAL = 100;
|
|
62
68
|
const yieldToEventLoop = typeof setImmediate !== "undefined" ? () => new Promise((resolve) => setImmediate(resolve)) : () => new Promise((resolve) => setTimeout(resolve, 0));
|
|
@@ -71,12 +77,13 @@ async function parseQueryResult(rawResults, meta) {
|
|
|
71
77
|
return parseJoinedRecords(rawResults, meta);
|
|
72
78
|
}
|
|
73
79
|
async function parseSimpleRecords(rawResults, columns) {
|
|
80
|
+
const columnInfos = buildColumnInfos(columns);
|
|
74
81
|
const results = [];
|
|
75
82
|
for (let i = 0; i < rawResults.length; i++) {
|
|
76
83
|
if (i > 0 && i % YIELD_INTERVAL === 0) {
|
|
77
84
|
await yieldToEventLoop();
|
|
78
85
|
}
|
|
79
|
-
const parsed = flatToNested(rawResults[i],
|
|
86
|
+
const parsed = flatToNested(rawResults[i], columnInfos);
|
|
80
87
|
if (!isEmptyObject(parsed)) {
|
|
81
88
|
results.push(parsed);
|
|
82
89
|
}
|
|
@@ -91,12 +98,13 @@ function sortJoinKeysByDepth(joinKeys) {
|
|
|
91
98
|
});
|
|
92
99
|
}
|
|
93
100
|
async function parseJoinedRecords(rawResults, meta) {
|
|
101
|
+
const columnInfos = buildColumnInfos(meta.columns);
|
|
94
102
|
const nestedRecords = [];
|
|
95
103
|
for (let i = 0; i < rawResults.length; i++) {
|
|
96
104
|
if (i > 0 && i % YIELD_INTERVAL === 0) {
|
|
97
105
|
await yieldToEventLoop();
|
|
98
106
|
}
|
|
99
|
-
nestedRecords.push(flatToNested(rawResults[i],
|
|
107
|
+
nestedRecords.push(flatToNested(rawResults[i], columnInfos));
|
|
100
108
|
}
|
|
101
109
|
const sortedJoinKeys = sortJoinKeysByDepth(Object.keys(meta.joins));
|
|
102
110
|
const results = groupRecordsRecursively(nestedRecords, sortedJoinKeys, meta.joins, "");
|
|
@@ -105,7 +113,15 @@ async function parseJoinedRecords(rawResults, meta) {
|
|
|
105
113
|
}
|
|
106
114
|
function serializeGroupKey(groupKey, cachedKeyOrder) {
|
|
107
115
|
const keys = cachedKeyOrder ?? Object.keys(groupKey).sort((a, b) => a.localeCompare(b));
|
|
108
|
-
|
|
116
|
+
let result = "";
|
|
117
|
+
for (let i = 0; i < keys.length; i++) {
|
|
118
|
+
if (i > 0) result += "|";
|
|
119
|
+
const v = groupKey[keys[i]];
|
|
120
|
+
result += keys[i];
|
|
121
|
+
result += ":";
|
|
122
|
+
result += v === null ? "null" : String(v);
|
|
123
|
+
}
|
|
124
|
+
return result;
|
|
109
125
|
}
|
|
110
126
|
function groupRecordsRecursively(records, allJoinKeys, joinsConfig, currentPath) {
|
|
111
127
|
const childJoinKeys = allJoinKeys.filter((key) => {
|
|
@@ -119,9 +135,10 @@ function groupRecordsRecursively(records, allJoinKeys, joinsConfig, currentPath)
|
|
|
119
135
|
return records;
|
|
120
136
|
}
|
|
121
137
|
const groupMap = /* @__PURE__ */ new Map();
|
|
138
|
+
const joinKeyExclusions = buildJoinKeyExclusionSet(childJoinKeys);
|
|
122
139
|
let groupKeyOrder;
|
|
123
140
|
for (const record of records) {
|
|
124
|
-
const groupKey = extractGroupKey(record,
|
|
141
|
+
const groupKey = extractGroupKey(record, joinKeyExclusions);
|
|
125
142
|
if (groupKeyOrder == null) {
|
|
126
143
|
groupKeyOrder = Object.keys(groupKey).sort((a, b) => a.localeCompare(b));
|
|
127
144
|
}
|
|
@@ -182,10 +199,21 @@ function groupRecordsRecursively(records, allJoinKeys, joinsConfig, currentPath)
|
|
|
182
199
|
}
|
|
183
200
|
return grouped;
|
|
184
201
|
}
|
|
185
|
-
function
|
|
202
|
+
function buildJoinKeyExclusionSet(joinKeys) {
|
|
203
|
+
const exclusions = /* @__PURE__ */ new Set();
|
|
204
|
+
for (const jk of joinKeys) {
|
|
205
|
+
exclusions.add(jk);
|
|
206
|
+
const parts = jk.split(".");
|
|
207
|
+
for (let i = 1; i < parts.length; i++) {
|
|
208
|
+
exclusions.add(parts.slice(0, i).join("."));
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return exclusions;
|
|
212
|
+
}
|
|
213
|
+
function extractGroupKey(record, joinKeyExclusions) {
|
|
186
214
|
const result = {};
|
|
187
215
|
for (const [key, value] of Object.entries(record)) {
|
|
188
|
-
if (!
|
|
216
|
+
if (!joinKeyExclusions.has(key)) {
|
|
189
217
|
if (value == null || typeof value !== "object") {
|
|
190
218
|
result[key] = value;
|
|
191
219
|
}
|
|
@@ -201,7 +229,7 @@ function mergeJoinData(existingGroup, newRecord, localKey, isSingle) {
|
|
|
201
229
|
const existingJoinData = existingGroup[localKey];
|
|
202
230
|
if (isSingle) {
|
|
203
231
|
if (existingJoinData != null) {
|
|
204
|
-
if (!
|
|
232
|
+
if (!obj.equal(existingJoinData, newJoinData)) {
|
|
205
233
|
throw new Error(`isSingle relationship '${localKey}' has multiple different results.`);
|
|
206
234
|
}
|
|
207
235
|
} else {
|
|
@@ -222,7 +250,7 @@ function mergeJoinData(existingGroup, newRecord, localKey, isSingle) {
|
|
|
222
250
|
}
|
|
223
251
|
} else {
|
|
224
252
|
const isDuplicate = existingJoinData.some(
|
|
225
|
-
(item) =>
|
|
253
|
+
(item) => obj.equal(item, newJoinData)
|
|
226
254
|
);
|
|
227
255
|
if (!isDuplicate) {
|
|
228
256
|
existingJoinData.push(newJoinData);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utils/result-parser.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,
|
|
4
|
+
"mappings": "AAAA,SAAS,OAAO,KAAK,UAAU,UAAU,MAAM,YAAY;AAkB3D,SAAS,WAAW,OAAgB,MAAmC;AAErE,MAAI,SAAS,MAAM;AACjB,WAAO;AAAA,EACT;AAEA,UAAQ,MAAM;AAAA,IACZ,KAAK,UAAU;AACb,YAAM,MAAM,OAAO,KAAK;AACxB,UAAI,OAAO,MAAM,GAAG,GAAG;AACrB,cAAM,IAAI,MAAM,2BAA2B,OAAO,KAAK,CAAC,EAAE;AAAA,MAC5D;AACA,aAAO;AAAA,IACT;AAAA,IAEA,KAAK;AACH,aAAO,OAAO,KAAK;AAAA,IAErB,KAAK;AAEH,UAAI,UAAU,KAAK,UAAU,OAAO,UAAU,MAAO,QAAO;AAC5D,UAAI,UAAU,KAAK,UAAU,OAAO,UAAU,KAAM,QAAO;AAC3D,aAAO,QAAQ,KAAK;AAAA,IAEtB,KAAK;AACH,aAAO,SAAS,MAAM,KAAe;AAAA,IAEvC,KAAK;AACH,aAAO,SAAS,MAAM,KAAe;AAAA,IAEvC,KAAK;AACH,aAAO,KAAK,MAAM,KAAe;AAAA,IAEnC,KAAK;AACH,UAAI,iBAAiB,WAAY,QAAO,KAAK,UAAU,KAAK;AAC5D,aAAO,IAAI,KAAK,KAAe;AAAA,IAEjC,KAAK;AACH,UAAI,iBAAiB,WAAY,QAAO;AACxC,UAAI,OAAO,UAAU,SAAU,QAAO,MAAM,QAAQ,KAAK;AACzD,YAAM,IAAI,MAAM,0BAA0B,OAAO,KAAK,EAAE;AAAA,EAC5D;AACF;AAcA,SAAS,iBAAiB,SAA2D;AACnF,SAAO,OAAO,QAAQ,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,IAAI,OAAO;AAAA,IACnD;AAAA,IACA;AAAA,IACA,OAAO,IAAI,SAAS,GAAG,IAAI,IAAI,MAAM,GAAG,IAAI;AAAA,EAC9C,EAAE;AACJ;AAQA,SAAS,aACP,QACA,aACyB;AACzB,QAAM,SAAkC,CAAC;AAEzC,aAAW,EAAE,KAAK,MAAM,MAAM,KAAK,aAAa;AAC9C,UAAM,WAAW,OAAO,GAAG;AAC3B,UAAM,cAAc,WAAW,UAAU,IAAI;AAG7C,QAAI,gBAAgB,OAAW;AAE/B,QAAI,SAAS,MAAM;AAEjB,UAAI,UAAU;AACd,eAAS,IAAI,GAAG,IAAI,MAAM,SAAS,GAAG,KAAK;AACzC,cAAM,OAAO,MAAM,CAAC;AACpB,YAAI,QAAQ,IAAI,KAAK,MAAM;AACzB,kBAAQ,IAAI,IAAI,CAAC;AAAA,QACnB;AACA,kBAAU,QAAQ,IAAI;AAAA,MACxB;AACA,cAAQ,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;AAAA,IACrC,OAAO;AAEL,aAAO,GAAG,IAAI;AAAA,IAChB;AAAA,EACF;AAEA,SAAO;AACT;AAKA,SAAS,cAAc,QAA0C;AAC/D,SAAO,OAAO,KAAK,MAAM,EAAE,WAAW;AACxC;AAOA,MAAM,iBAAiB;AAGvB,MAAM,mBACJ,OAAO,iBAAiB,cACpB,MAAM,IAAI,QAAc,CAAC,YAAY,aAAa,OAAO,CAAC,IAC1D,MAAM,IAAI,QAAc,CAAC,YAAY,WAAW,SAAS,CAAC,CAAC;AAqCjE,eAAsB,iBACpB,YACA,MACgC;AAEhC,MAAI,WAAW,WAAW,GAAG;AAC3B,WAAO;AAAA,EACT;AAEA,QAAM,WAAW,OAAO,KAAK,KAAK,KAAK;AAGvC,MAAI,SAAS,WAAW,GAAG;AACzB,WAAO,mBAA4B,YAAY,KAAK,OAAO;AAAA,EAC7D;AAGA,SAAO,mBAA4B,YAAY,IAAI;AACrD;AAKA,eAAe,mBACb,YACA,SACgC;AAChC,QAAM,cAAc,iBAAiB,OAAO;AAC5C,QAAM,UAAqC,CAAC;AAE5C,WAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;AAE1C,QAAI,IAAI,KAAK,IAAI,mBAAmB,GAAG;AACrC,YAAM,iBAAiB;AAAA,IACzB;AAEA,UAAM,SAAS,aAAa,WAAW,CAAC,GAAG,WAAW;AAGtD,QAAI,CAAC,cAAc,MAAM,GAAG;AAC1B,cAAQ,KAAK,MAAM;AAAA,IACrB;AAAA,EACF;AAGA,SAAO,QAAQ,SAAS,IAAK,UAAwB;AACvD;AAMA,SAAS,oBAAoB,UAA8B;AACzD,SAAO,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,GAAG,MAAM;AAClC,UAAM,SAAS,EAAE,MAAM,GAAG,EAAE;AAC5B,UAAM,SAAS,EAAE,MAAM,GAAG,EAAE;AAC5B,WAAO,SAAS;AAAA,EAClB,CAAC;AACH;AAKA,eAAe,mBACb,YACA,MACgC;AAEhC,QAAM,cAAc,iBAAiB,KAAK,OAAO;AACjD,QAAM,gBAA2C,CAAC;AAClD,WAAS,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;AAC1C,QAAI,IAAI,KAAK,IAAI,mBAAmB,GAAG;AACrC,YAAM,iBAAiB;AAAA,IACzB;AACA,kBAAc,KAAK,aAAa,WAAW,CAAC,GAAG,WAAW,CAAC;AAAA,EAC7D;AAGA,QAAM,iBAAiB,oBAAoB,OAAO,KAAK,KAAK,KAAK,CAAC;AAGlE,QAAM,UAAU,wBAAwB,eAAe,gBAAgB,KAAK,OAAO,EAAE;AAGrF,QAAM,kBAAkB,QAAQ,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAE/D,SAAO,gBAAgB,SAAS,IAAK,kBAAgC;AACvE;AAOA,SAAS,kBAAkB,UAAmC,gBAAmC;AAC/F,QAAM,OAAO,kBAAkB,OAAO,KAAK,QAAQ,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,cAAc,CAAC,CAAC;AACtF,MAAI,SAAS;AACb,WAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACpC,QAAI,IAAI,EAAG,WAAU;AACrB,UAAM,IAAI,SAAS,KAAK,CAAC,CAAC;AAC1B,cAAU,KAAK,CAAC;AAChB,cAAU;AACV,cAAU,MAAM,OAAO,SAAS,OAAO,CAAC;AAAA,EAC1C;AACA,SAAO;AACT;AAYA,SAAS,wBACP,SACA,aACA,aACA,aAC2B;AAI3B,QAAM,gBAAgB,YAAY,OAAO,CAAC,QAAQ;AAChD,QAAI,gBAAgB,IAAI;AAEtB,aAAO,CAAC,IAAI,SAAS,GAAG;AAAA,IAC1B,OAAO;AAEL,aACE,IAAI,WAAW,cAAc,GAAG,KAAK,IAAI,MAAM,YAAY,SAAS,CAAC,EAAE,QAAQ,GAAG,MAAM;AAAA,IAE5F;AAAA,EACF,CAAC;AAED,MAAI,cAAc,WAAW,GAAG;AAE9B,WAAO;AAAA,EACT;AAGA,QAAM,WAAW,oBAAI,IAAqC;AAG1D,QAAM,oBAAoB,yBAAyB,aAAa;AAGhE,MAAI;AAEJ,aAAW,UAAU,SAAS;AAE5B,UAAM,WAAW,gBAAgB,QAAQ,iBAAiB;AAC1D,QAAI,iBAAiB,MAAM;AACzB,sBAAgB,OAAO,KAAK,QAAQ,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,cAAc,CAAC,CAAC;AAAA,IACzE;AACA,UAAM,SAAS,kBAAkB,UAAU,aAAa;AAExD,UAAM,gBAAgB,SAAS,IAAI,MAAM;AAEzC,QAAI,iBAAiB,MAAM;AAEzB,iBAAW,WAAW,eAAe;AACnC,cAAM,WAAW,gBAAgB,KAAK,UAAU,QAAQ,MAAM,YAAY,SAAS,CAAC;AACpF,sBAAc,eAAe,QAAQ,UAAU,YAAY,OAAO,EAAE,QAAQ;AAAA,MAC9E;AAAA,IACF,OAAO;AAEL,YAAM,WAAW,EAAE,GAAG,OAAO;AAG7B,iBAAW,WAAW,eAAe;AACnC,cAAM,WAAW,gBAAgB,KAAK,UAAU,QAAQ,MAAM,YAAY,SAAS,CAAC;AACpF,cAAM,WAAW,SAAS,QAAQ;AAElC,YAAI,YAAY,QAAQ,CAAC,cAAc,QAAQ,GAAG;AAChD,cAAI,CAAC,YAAY,OAAO,EAAE,UAAU;AAElC,qBAAS,QAAQ,IAAI,CAAC,QAAQ;AAAA,UAChC;AAAA,QACF,OAAO;AAEL,iBAAO,SAAS,QAAQ;AAAA,QAC1B;AAAA,MACF;AAEA,eAAS,IAAI,QAAQ,QAAQ;AAAA,IAC/B;AAAA,EACF;AAGA,QAAM,UAAU,MAAM,KAAK,SAAS,OAAO,CAAC;AAG5C,aAAW,SAAS,SAAS;AAC3B,eAAW,WAAW,eAAe;AACnC,YAAM,WAAW,gBAAgB,KAAK,UAAU,QAAQ,MAAM,YAAY,SAAS,CAAC;AACpF,YAAM,WAAW,MAAM,QAAQ;AAE/B,UAAI,MAAM,QAAQ,QAAQ,KAAK,SAAS,SAAS,GAAG;AAElD,cAAM,QAAQ,IAAI;AAAA,UAChB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF,WAAW,YAAY,QAAQ,OAAO,aAAa,YAAY,CAAC,MAAM,QAAQ,QAAQ,GAAG;AAEvF,cAAM,YAAY;AAAA,UAChB,CAAC,QAAmC;AAAA,UACpC;AAAA,UACA;AAAA,UACA;AAAA,QACF;AACA,YAAI,UAAU,SAAS,GAAG;AACxB,gBAAM,QAAQ,IAAI,UAAU,CAAC;AAAA,QAC/B;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAGA,aAAW,SAAS,SAAS;AAC3B,eAAW,OAAO,OAAO,KAAK,KAAK,GAAG;AACpC,UAAI,IAAI,WAAW,aAAa,GAAG;AACjC,eAAO,MAAM,GAAG;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAKA,SAAS,yBAAyB,UAAiC;AACjE,QAAM,aAAa,oBAAI,IAAY;AACnC,aAAW,MAAM,UAAU;AACzB,eAAW,IAAI,EAAE;AAEjB,UAAM,QAAQ,GAAG,MAAM,GAAG;AAC1B,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,iBAAW,IAAI,MAAM,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC;AAAA,IAC5C;AAAA,EACF;AACA,SAAO;AACT;AAKA,SAAS,gBACP,QACA,mBACyB;AACzB,QAAM,SAAkC,CAAC;AACzC,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,MAAM,GAAG;AAEjD,QAAI,CAAC,kBAAkB,IAAI,GAAG,GAAG;AAE/B,UAAI,SAAS,QAAQ,OAAO,UAAU,UAAU;AAC9C,eAAO,GAAG,IAAI;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAKA,SAAS,cACP,eACA,WACA,UACA,UACM;AACN,QAAM,cAAc,UAAU,QAAQ;AAEtC,MAAI,eAAe,QAAQ,cAAc,WAAW,GAAG;AACrD;AAAA,EACF;AAEA,QAAM,mBAAmB,cAAc,QAAQ;AAE/C,MAAI,UAAU;AAEZ,QAAI,oBAAoB,MAAM;AAC5B,UAAI,CAAC,IAAI,MAAM,kBAA6C,WAAW,GAAG;AACxE,cAAM,IAAI,MAAM,0BAA0B,QAAQ,mCAAmC;AAAA,MACvF;AAAA,IACF,OAAO;AACL,oBAAc,QAAQ,IAAI;AAAA,IAC5B;AAAA,EACF,OAAO;AAEL,UAAM,aAAa,cAAc,QAAQ;AACzC,QAAI,CAAC,MAAM,QAAQ,gBAAgB,GAAG;AACpC,oBAAc,QAAQ,IAAI,CAAC,WAAW;AAEtC,oBAAc,UAAU,IAAI,oBAAI,IAAI,CAAC,kBAAkB,WAAW,CAAC,CAAC;AAAA,IACtE,OAAO;AAEL,YAAM,UAAU,cAAc,UAAU;AACxC,YAAM,UAAU,kBAAkB,WAAW;AAC7C,UAAI,WAAW,MAAM;AACnB,YAAI,CAAC,QAAQ,IAAI,OAAO,GAAG;AACzB,kBAAQ,IAAI,OAAO;AACnB,2BAAiB,KAAK,WAAW;AAAA,QACnC;AAAA,MACF,OAAO;AAEL,cAAM,cAAc,iBAAiB;AAAA,UAAK,CAAC,SACzC,IAAI,MAAM,MAAiC,WAAW;AAAA,QACxD;AACA,YAAI,CAAC,aAAa;AAChB,2BAAiB,KAAK,WAAW;AAAA,QACnC;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@simplysm/orm-common",
|
|
3
|
-
"version": "13.0.
|
|
3
|
+
"version": "13.0.77",
|
|
4
4
|
"description": "Simplysm Package - ORM Module (common)",
|
|
5
5
|
"author": "simplysm",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -19,6 +19,6 @@
|
|
|
19
19
|
],
|
|
20
20
|
"sideEffects": false,
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@simplysm/core-common": "13.0.
|
|
22
|
+
"@simplysm/core-common": "13.0.77"
|
|
23
23
|
}
|
|
24
24
|
}
|
package/src/create-db-context.ts
CHANGED
|
@@ -13,7 +13,7 @@ import { ViewBuilder } from "./schema/view-builder";
|
|
|
13
13
|
import type { ProcedureBuilder } from "./schema/procedure-builder";
|
|
14
14
|
import { queryable } from "./exec/queryable";
|
|
15
15
|
import { executable } from "./exec/executable";
|
|
16
|
-
import {
|
|
16
|
+
import { obj } from "@simplysm/core-common";
|
|
17
17
|
|
|
18
18
|
// DDL imports
|
|
19
19
|
import * as tableDdl from "./ddl/table-ddl";
|
|
@@ -52,7 +52,7 @@ import type { IndexBuilder } from "./schema/factory/index-builder";
|
|
|
52
52
|
* const db = createDbContext(MyDb, executor, { database: "mydb" });
|
|
53
53
|
*
|
|
54
54
|
* await db.connect(async () => {
|
|
55
|
-
* const users = await db.user().
|
|
55
|
+
* const users = await db.user().execute();
|
|
56
56
|
* });
|
|
57
57
|
* ```
|
|
58
58
|
*/
|
|
@@ -64,6 +64,7 @@ export function createDbContext<TDef extends DbContextDef<any, any, any>>(
|
|
|
64
64
|
// ── Internal state (closure) ──
|
|
65
65
|
let aliasCounter = 0;
|
|
66
66
|
let status: DbContextStatus = "ready";
|
|
67
|
+
let relationsValidated = false;
|
|
67
68
|
|
|
68
69
|
// ── DbContextBase implementation ──
|
|
69
70
|
const base: DbContextBase = {
|
|
@@ -100,14 +101,14 @@ export function createDbContext<TDef extends DbContextDef<any, any, any>>(
|
|
|
100
101
|
getQueryDefObjectName(
|
|
101
102
|
tableOrView: TableBuilder<any, any> | ViewBuilder<any, any, any>,
|
|
102
103
|
): QueryDefObjectName {
|
|
103
|
-
return
|
|
104
|
+
return obj.clearUndefined({
|
|
104
105
|
database: tableOrView.meta.database ?? opt.database,
|
|
105
106
|
schema: tableOrView.meta.schema ?? opt.schema,
|
|
106
107
|
name: tableOrView.meta.name,
|
|
107
108
|
});
|
|
108
109
|
},
|
|
109
|
-
async switchFk(table: QueryDefObjectName,
|
|
110
|
-
await base.executeDefs([schemaDdl.getSwitchFkQueryDef(table,
|
|
110
|
+
async switchFk(table: QueryDefObjectName, enabled: boolean): Promise<void> {
|
|
111
|
+
await base.executeDefs([schemaDdl.getSwitchFkQueryDef(table, enabled)]);
|
|
111
112
|
},
|
|
112
113
|
};
|
|
113
114
|
|
|
@@ -143,7 +144,10 @@ export function createDbContext<TDef extends DbContextDef<any, any, any>>(
|
|
|
143
144
|
fn: () => Promise<TResult>,
|
|
144
145
|
isolationLevel?: IsolationLevel,
|
|
145
146
|
): Promise<TResult> {
|
|
146
|
-
|
|
147
|
+
if (!relationsValidated) {
|
|
148
|
+
validateRelationsImpl(def);
|
|
149
|
+
relationsValidated = true;
|
|
150
|
+
}
|
|
147
151
|
base.resetAliasCounter();
|
|
148
152
|
|
|
149
153
|
await executor.connect();
|
|
@@ -192,7 +196,10 @@ export function createDbContext<TDef extends DbContextDef<any, any, any>>(
|
|
|
192
196
|
* Used for DDL operations or read operations that don't require transactions
|
|
193
197
|
*/
|
|
194
198
|
async connectWithoutTransaction<TResult>(callback: () => Promise<TResult>): Promise<TResult> {
|
|
195
|
-
|
|
199
|
+
if (!relationsValidated) {
|
|
200
|
+
validateRelationsImpl(def);
|
|
201
|
+
relationsValidated = true;
|
|
202
|
+
}
|
|
196
203
|
base.resetAliasCounter();
|
|
197
204
|
|
|
198
205
|
await executor.connect();
|
|
@@ -217,7 +224,7 @@ export function createDbContext<TDef extends DbContextDef<any, any, any>>(
|
|
|
217
224
|
*
|
|
218
225
|
* Used when transaction is needed partially within connectWithoutTransaction
|
|
219
226
|
*/
|
|
220
|
-
async
|
|
227
|
+
async transaction<TResult>(
|
|
221
228
|
fn: () => Promise<TResult>,
|
|
222
229
|
isolationLevel?: IsolationLevel,
|
|
223
230
|
): Promise<TResult> {
|
|
@@ -300,29 +307,29 @@ export function createDbContext<TDef extends DbContextDef<any, any, any>>(
|
|
|
300
307
|
async renameColumn(table: QueryDefObjectName, column: string, newName: string): Promise<void> {
|
|
301
308
|
await base.executeDefs([columnDdl.getRenameColumnQueryDef(table, column, newName)]);
|
|
302
309
|
},
|
|
303
|
-
async
|
|
304
|
-
await base.executeDefs([relationDdl.
|
|
310
|
+
async addPrimaryKey(table: QueryDefObjectName, columns: string[]): Promise<void> {
|
|
311
|
+
await base.executeDefs([relationDdl.getAddPrimaryKeyQueryDef(table, columns)]);
|
|
305
312
|
},
|
|
306
|
-
async
|
|
307
|
-
await base.executeDefs([relationDdl.
|
|
313
|
+
async dropPrimaryKey(table: QueryDefObjectName): Promise<void> {
|
|
314
|
+
await base.executeDefs([relationDdl.getDropPrimaryKeyQueryDef(table)]);
|
|
308
315
|
},
|
|
309
|
-
async
|
|
316
|
+
async addForeignKey(
|
|
310
317
|
table: QueryDefObjectName,
|
|
311
318
|
relationName: string,
|
|
312
319
|
relationDef: ForeignKeyBuilder<any, any>,
|
|
313
320
|
): Promise<void> {
|
|
314
321
|
await base.executeDefs([
|
|
315
|
-
relationDdl.
|
|
322
|
+
relationDdl.getAddForeignKeyQueryDef(base, table, relationName, relationDef),
|
|
316
323
|
]);
|
|
317
324
|
},
|
|
318
|
-
async
|
|
319
|
-
await base.executeDefs([relationDdl.
|
|
325
|
+
async addIndex(table: QueryDefObjectName, indexBuilder: IndexBuilder<string[]>): Promise<void> {
|
|
326
|
+
await base.executeDefs([relationDdl.getAddIndexQueryDef(table, indexBuilder)]);
|
|
320
327
|
},
|
|
321
|
-
async
|
|
322
|
-
await base.executeDefs([relationDdl.
|
|
328
|
+
async dropForeignKey(table: QueryDefObjectName, relationName: string): Promise<void> {
|
|
329
|
+
await base.executeDefs([relationDdl.getDropForeignKeyQueryDef(table, relationName)]);
|
|
323
330
|
},
|
|
324
|
-
async
|
|
325
|
-
await base.executeDefs([relationDdl.
|
|
331
|
+
async dropIndex(table: QueryDefObjectName, columns: string[]): Promise<void> {
|
|
332
|
+
await base.executeDefs([relationDdl.getDropIndexQueryDef(table, columns)]);
|
|
326
333
|
},
|
|
327
334
|
async clearSchema(params: { database: string; schema?: string }): Promise<void> {
|
|
328
335
|
await base.executeDefs([schemaDdl.getClearSchemaQueryDef(params)]);
|
|
@@ -334,8 +341,8 @@ export function createDbContext<TDef extends DbContextDef<any, any, any>>(
|
|
|
334
341
|
async truncate(table: QueryDefObjectName): Promise<void> {
|
|
335
342
|
await base.executeDefs([schemaDdl.getTruncateQueryDef(table)]);
|
|
336
343
|
},
|
|
337
|
-
async switchFk(table: QueryDefObjectName,
|
|
338
|
-
await base.executeDefs([schemaDdl.getSwitchFkQueryDef(table,
|
|
344
|
+
async switchFk(table: QueryDefObjectName, enabled: boolean): Promise<void> {
|
|
345
|
+
await base.executeDefs([schemaDdl.getSwitchFkQueryDef(table, enabled)]);
|
|
339
346
|
},
|
|
340
347
|
|
|
341
348
|
//#endregion
|
|
@@ -359,16 +366,16 @@ export function createDbContext<TDef extends DbContextDef<any, any, any>>(
|
|
|
359
366
|
getDropColumnQueryDef: columnDdl.getDropColumnQueryDef,
|
|
360
367
|
getModifyColumnQueryDef: columnDdl.getModifyColumnQueryDef,
|
|
361
368
|
getRenameColumnQueryDef: columnDdl.getRenameColumnQueryDef,
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
369
|
+
getAddPrimaryKeyQueryDef: relationDdl.getAddPrimaryKeyQueryDef,
|
|
370
|
+
getDropPrimaryKeyQueryDef: relationDdl.getDropPrimaryKeyQueryDef,
|
|
371
|
+
getAddForeignKeyQueryDef: (
|
|
365
372
|
table: QueryDefObjectName,
|
|
366
373
|
relationName: string,
|
|
367
374
|
relationDef: ForeignKeyBuilder<any, any>,
|
|
368
|
-
) => relationDdl.
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
375
|
+
) => relationDdl.getAddForeignKeyQueryDef(base, table, relationName, relationDef),
|
|
376
|
+
getAddIndexQueryDef: relationDdl.getAddIndexQueryDef,
|
|
377
|
+
getDropForeignKeyQueryDef: relationDdl.getDropForeignKeyQueryDef,
|
|
378
|
+
getDropIndexQueryDef: relationDdl.getDropIndexQueryDef,
|
|
372
379
|
getClearSchemaQueryDef: schemaDdl.getClearSchemaQueryDef,
|
|
373
380
|
getSchemaExistsQueryDef: schemaDdl.getSchemaExistsQueryDef,
|
|
374
381
|
getTruncateQueryDef: schemaDdl.getTruncateQueryDef,
|
package/src/ddl/initialize.ts
CHANGED
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
RelationKeyTargetBuilder,
|
|
12
12
|
} from "../schema/factory/relation-builder";
|
|
13
13
|
import { getCreateObjectQueryDef } from "./table-ddl";
|
|
14
|
-
import {
|
|
14
|
+
import { getAddForeignKeyQueryDef, getAddIndexQueryDef } from "./relation-ddl";
|
|
15
15
|
import { getClearSchemaQueryDef, getSchemaExistsQueryDef } from "./schema-ddl";
|
|
16
16
|
|
|
17
17
|
/**
|
|
@@ -72,7 +72,7 @@ export async function initialize(
|
|
|
72
72
|
// 3. Migration 기반 Initialize
|
|
73
73
|
let appliedMigrations: { code: string }[] | undefined;
|
|
74
74
|
try {
|
|
75
|
-
appliedMigrations = await db._migration().
|
|
75
|
+
appliedMigrations = await db._migration().execute();
|
|
76
76
|
} catch (err) {
|
|
77
77
|
// No Table = new environment
|
|
78
78
|
if (!isTableNotExistsError(err)) {
|
|
@@ -129,7 +129,7 @@ async function createAllObjects(
|
|
|
129
129
|
for (const [relationName, relationDef] of Object.entries(relations)) {
|
|
130
130
|
if (!(relationDef instanceof ForeignKeyBuilder)) continue;
|
|
131
131
|
|
|
132
|
-
addFkDefs.push(
|
|
132
|
+
addFkDefs.push(getAddForeignKeyQueryDef(db, tableDef, relationName, relationDef));
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
135
|
if (addFkDefs.length > 0) {
|
|
@@ -144,7 +144,7 @@ async function createAllObjects(
|
|
|
144
144
|
|
|
145
145
|
const indexTableDef = db.getQueryDefObjectName(table);
|
|
146
146
|
for (const indexBuilder of indexes) {
|
|
147
|
-
createIndexDefs.push(
|
|
147
|
+
createIndexDefs.push(getAddIndexQueryDef(indexTableDef, indexBuilder));
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
150
|
if (createIndexDefs.length > 0) {
|
package/src/ddl/relation-ddl.ts
CHANGED
|
@@ -3,10 +3,10 @@ import type { IndexBuilder } from "../schema/factory/index-builder";
|
|
|
3
3
|
import type {
|
|
4
4
|
QueryDef,
|
|
5
5
|
QueryDefObjectName,
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
AddPrimaryKeyQueryDef,
|
|
7
|
+
DropPrimaryKeyQueryDef,
|
|
8
|
+
DropForeignKeyQueryDef,
|
|
9
|
+
DropIndexQueryDef,
|
|
10
10
|
} from "../types/query-def";
|
|
11
11
|
import type { DbContextBase } from "../types/db-context-def";
|
|
12
12
|
import { getMatchedPrimaryKeys } from "../exec/queryable";
|
|
@@ -15,21 +15,21 @@ import { getQueryDefObjectName } from "./table-ddl";
|
|
|
15
15
|
/**
|
|
16
16
|
* Generate DROP PRIMARY KEY QueryDef
|
|
17
17
|
*/
|
|
18
|
-
export function
|
|
19
|
-
return { type: "
|
|
18
|
+
export function getDropPrimaryKeyQueryDef(table: QueryDefObjectName): DropPrimaryKeyQueryDef {
|
|
19
|
+
return { type: "dropPrimaryKey", table };
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* Generate ADD PRIMARY KEY QueryDef
|
|
24
24
|
*/
|
|
25
|
-
export function
|
|
26
|
-
return { type: "
|
|
25
|
+
export function getAddPrimaryKeyQueryDef(table: QueryDefObjectName, columns: string[]): AddPrimaryKeyQueryDef {
|
|
26
|
+
return { type: "addPrimaryKey", table, columns };
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
30
|
* Generate ADD FOREIGN KEY QueryDef
|
|
31
31
|
*/
|
|
32
|
-
export function
|
|
32
|
+
export function getAddForeignKeyQueryDef(
|
|
33
33
|
db: DbContextBase,
|
|
34
34
|
table: QueryDefObjectName,
|
|
35
35
|
relationName: string,
|
|
@@ -40,7 +40,7 @@ export function getAddFkQueryDef(
|
|
|
40
40
|
const pk = getMatchedPrimaryKeys(fkColumns, targetTable);
|
|
41
41
|
|
|
42
42
|
return {
|
|
43
|
-
type: "
|
|
43
|
+
type: "addForeignKey",
|
|
44
44
|
table,
|
|
45
45
|
foreignKey: {
|
|
46
46
|
name: `FK_${table.name}_${relationName}`,
|
|
@@ -54,14 +54,14 @@ export function getAddFkQueryDef(
|
|
|
54
54
|
/**
|
|
55
55
|
* ADD INDEX QueryDef Generate
|
|
56
56
|
*/
|
|
57
|
-
export function
|
|
57
|
+
export function getAddIndexQueryDef(
|
|
58
58
|
table: QueryDefObjectName,
|
|
59
59
|
indexBuilder: IndexBuilder<string[]>,
|
|
60
60
|
): QueryDef {
|
|
61
61
|
const indexMeta = indexBuilder.meta;
|
|
62
62
|
|
|
63
63
|
return {
|
|
64
|
-
type: "
|
|
64
|
+
type: "addIndex",
|
|
65
65
|
table,
|
|
66
66
|
index: {
|
|
67
67
|
name: indexBuilder.meta.name ?? `IDX_${table.name}_${indexMeta.columns.join("_")}`,
|
|
@@ -77,13 +77,13 @@ export function getAddIdxQueryDef(
|
|
|
77
77
|
/**
|
|
78
78
|
* DROP FOREIGN KEY QueryDef Generate
|
|
79
79
|
*/
|
|
80
|
-
export function
|
|
81
|
-
return { type: "
|
|
80
|
+
export function getDropForeignKeyQueryDef(table: QueryDefObjectName, relationName: string): DropForeignKeyQueryDef {
|
|
81
|
+
return { type: "dropForeignKey", table, foreignKey: `FK_${table.name}_${relationName}` };
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
/**
|
|
85
85
|
* DROP INDEX QueryDef Generate
|
|
86
86
|
*/
|
|
87
|
-
export function
|
|
88
|
-
return { type: "
|
|
87
|
+
export function getDropIndexQueryDef(table: QueryDefObjectName, columns: string[]): DropIndexQueryDef {
|
|
88
|
+
return { type: "dropIndex", table, index: `IDX_${table.name}_${columns.join("_")}` };
|
|
89
89
|
}
|
package/src/ddl/schema-ddl.ts
CHANGED
|
@@ -35,7 +35,7 @@ export function getTruncateQueryDef(table: QueryDefObjectName): TruncateQueryDef
|
|
|
35
35
|
*/
|
|
36
36
|
export function getSwitchFkQueryDef(
|
|
37
37
|
table: QueryDefObjectName,
|
|
38
|
-
|
|
38
|
+
enabled: boolean,
|
|
39
39
|
): SwitchFkQueryDef {
|
|
40
|
-
return { type: "switchFk", table,
|
|
40
|
+
return { type: "switchFk", table, enabled };
|
|
41
41
|
}
|
package/src/ddl/table-ddl.ts
CHANGED
|
@@ -11,7 +11,7 @@ import type {
|
|
|
11
11
|
DropProcQueryDef,
|
|
12
12
|
} from "../types/query-def";
|
|
13
13
|
import type { DbContextBase } from "../types/db-context-def";
|
|
14
|
-
import {
|
|
14
|
+
import { obj } from "@simplysm/core-common";
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* Builder를 CREATE QueryDef로 Transform
|
|
@@ -181,7 +181,7 @@ export function getQueryDefObjectName(
|
|
|
181
181
|
db: DbContextBase,
|
|
182
182
|
tableOrView: TableBuilder<any, any> | ViewBuilder<any, any, any>,
|
|
183
183
|
): QueryDefObjectName {
|
|
184
|
-
return
|
|
184
|
+
return obj.clearUndefined({
|
|
185
185
|
database: tableOrView.meta.database ?? db.database,
|
|
186
186
|
schema: tableOrView.meta.schema ?? db.schema,
|
|
187
187
|
name: tableOrView.meta.name,
|