orcaq 1.1.5 → 1.1.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.
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/27ZsWTm2.js +1 -0
- package/.output/public/_nuxt/{DKGci8Z9.js → 3jfBYqJb.js} +1 -1
- package/.output/public/_nuxt/{jwI3t-NN.js → 4LC09zKL.js} +1 -1
- package/.output/public/_nuxt/4OV_5qQE.js +1 -0
- package/.output/public/_nuxt/6NXhlm49.js +1 -0
- package/.output/public/_nuxt/6wO6CbCo.js +1 -0
- package/.output/public/_nuxt/{BqjI13AR.js → 7nPLTDFM.js} +1 -1
- package/.output/public/_nuxt/B10QBDL6.js +1 -0
- package/.output/public/_nuxt/{DyIuwJ7R.js → B3iNzG14.js} +1 -1
- package/.output/public/_nuxt/B5HZeat4.js +1 -0
- package/.output/public/_nuxt/B5rxJs06.js +1 -0
- package/.output/public/_nuxt/{CY5xaULp.js → BAasx5OS.js} +1 -1
- package/.output/public/_nuxt/{COm5WeiJ.js → BCa-NKh0.js} +1 -1
- package/.output/public/_nuxt/{_q4rKPCs.js → BCazdlgN.js} +1 -1
- package/.output/public/_nuxt/{2bjDg-PP.js → BEvswgw7.js} +1 -1
- package/.output/public/_nuxt/{CtcvFTZM.js → BJ8qQpib.js} +1 -1
- package/.output/public/_nuxt/{Ce7ha8Ij.js → BJoSd_uV.js} +1 -1
- package/.output/public/_nuxt/BKAEFZqP.js +1 -0
- package/.output/public/_nuxt/BTvOPFKG.js +1 -0
- package/.output/public/_nuxt/{CFLipT9o.js → BWg3wiuc.js} +3 -3
- package/.output/public/_nuxt/{B8-wNbMP.js → B_hWP06g.js} +1 -1
- package/.output/public/_nuxt/{MPvsaAca.js → Bap1X7GD.js} +1 -1
- package/.output/public/_nuxt/{DynamicTable.B3c2woGb.css → BaseDataGrid.C2ywM2-T.css} +1 -1
- package/.output/public/_nuxt/{hJtoF0XJ.js → BbLqUOHs.js} +1 -1
- package/.output/public/_nuxt/{BQfpgF4f.js → BbawOYVr.js} +1 -1
- package/.output/public/_nuxt/Bf2bW_MY.js +7 -0
- package/.output/public/_nuxt/{CUU4aZu3.js → Bgj8Q52i.js} +1 -1
- package/.output/public/_nuxt/BhzzQZRC.js +1 -0
- package/.output/public/_nuxt/{Dtfetpn0.js → Bibtvqd8.js} +1 -1
- package/.output/public/_nuxt/{BmDMzOju.js → BmEIj9l9.js} +1 -1
- package/.output/public/_nuxt/BnZ5qYkP.js +39 -0
- package/.output/public/_nuxt/{CQUEIz0K.js → BoUZO_NV.js} +1 -1
- package/.output/public/_nuxt/Bok35x_B.js +1 -0
- package/.output/public/_nuxt/{C6Cu0sLe.js → BuSZbOQO.js} +1 -1
- package/.output/public/_nuxt/BusLuQ4Q.js +1 -0
- package/.output/public/_nuxt/{CGewvTrI.js → BxZgIpkD.js} +1 -1
- package/.output/public/_nuxt/{B9FaYCWq.js → C4-wpUAK.js} +1 -1
- package/.output/public/_nuxt/{BYWbdMZt.js → C445d10Z.js} +1 -1
- package/.output/public/_nuxt/{LQx-wtAv.js → C6CFIGob.js} +1 -1
- package/.output/public/_nuxt/{Ds73uRhN.js → C6bwwZAc.js} +1 -1
- package/.output/public/_nuxt/C7C1kq_N.js +1 -0
- package/.output/public/_nuxt/{BX-UQU8e.js → C9ZBCJdc.js} +1 -1
- package/.output/public/_nuxt/{BEhaJXPi.js → CBjcd4cE.js} +1 -1
- package/.output/public/_nuxt/{CGW0AH4b.js → CCK1so3F.js} +1 -1
- package/.output/public/_nuxt/CCOlJAKS.js +2 -0
- package/.output/public/_nuxt/{CopwM-Pr.js → CE0zlNDo.js} +1 -1
- package/.output/public/_nuxt/CEoM97rJ.js +1 -0
- package/.output/public/_nuxt/CHAVZu6b.js +2 -0
- package/.output/public/_nuxt/CN8b9qPP.js +1 -0
- package/.output/public/_nuxt/{i2P9wHne.js → CNPNWuzz.js} +1 -1
- package/.output/public/_nuxt/{98JSO6jv.js → CO0Pa76w.js} +1 -1
- package/.output/public/_nuxt/CP-7VdtS.js +1 -0
- package/.output/public/_nuxt/{B1LoOOkn.js → CROH8wgk.js} +1 -1
- package/.output/public/_nuxt/CUws2Uv7.js +1 -0
- package/.output/public/_nuxt/CZLVBTJx.js +1 -0
- package/.output/public/_nuxt/{BiDM-4Ma.js → Cf6n9dsT.js} +1 -1
- package/.output/public/_nuxt/{Di03NGSO.js → Ci7hrFNN.js} +1 -1
- package/.output/public/_nuxt/{ZS8y2W5x.js → Cl3VX8Um.js} +1 -1
- package/.output/public/_nuxt/Cl5p4EQY.js +1 -0
- package/.output/public/_nuxt/CnQob-tn.js +1 -0
- package/.output/public/_nuxt/{DCaozlmM.js → CoQ_oOia.js} +2 -2
- package/.output/public/_nuxt/CoX1_N4R.js +1 -0
- package/.output/public/_nuxt/CvDZBOay.js +1 -0
- package/.output/public/_nuxt/{CdVERIz5.js → Cvkyd5iW.js} +1 -1
- package/.output/public/_nuxt/D29mzs5t.js +1 -0
- package/.output/public/_nuxt/D9MMtvTu.js +52 -0
- package/.output/public/_nuxt/{-lZvfnzr.js → D9Ycznwo.js} +1 -1
- package/.output/public/_nuxt/{CbANTWsS.js → DDsaDrGo.js} +1 -1
- package/.output/public/_nuxt/{Ba5PGSyB.js → DHyymmeR.js} +1 -1
- package/.output/public/_nuxt/{D0o3znGI.js → DLA-ioQ4.js} +1 -1
- package/.output/public/_nuxt/DM8LJTsg.js +1 -0
- package/.output/public/_nuxt/{XAHyd86s.js → DP6Az3fC.js} +1 -1
- package/.output/public/_nuxt/{DWkbgNG-.js → DRX1aIGD.js} +1 -1
- package/.output/public/_nuxt/{D4dXVtWp.js → DViCRsmA.js} +1 -1
- package/.output/public/_nuxt/{D2eDr3o2.js → DYPm3mWQ.js} +1 -1
- package/.output/public/_nuxt/{BzOiQq7V.js → DYqShb5v.js} +4 -4
- package/.output/public/_nuxt/DZFq5yqu.js +1 -0
- package/.output/public/_nuxt/DZVfXu09.js +1 -0
- package/.output/public/_nuxt/{DoIRSvuP.js → Dd89Vyx8.js} +1 -1
- package/.output/public/_nuxt/DdbhVPqD.js +1 -0
- package/.output/public/_nuxt/{lID_8ynt.js → DeVs4gEL.js} +1 -1
- package/.output/public/_nuxt/{BtWocXUF.js → Df4wU3r0.js} +1 -1
- package/.output/public/_nuxt/{BNM5p7H5.js → DgGwe7jd.js} +180 -180
- package/.output/public/_nuxt/DlymFQ5D.js +26 -0
- package/.output/public/_nuxt/DoNLWeqB.js +20 -0
- package/.output/public/_nuxt/Dpm6rnHk.js +1 -0
- package/.output/public/_nuxt/DsPClaxV.js +1 -0
- package/.output/public/_nuxt/DtOg0Asw.js +1 -0
- package/.output/public/_nuxt/DyDU0wFf.js +1 -0
- package/.output/public/_nuxt/{CZGnIeYQ.js → EZ0owjER.js} +1 -1
- package/.output/public/_nuxt/F8eHh68O.js +9 -0
- package/.output/public/_nuxt/{BptGnFIG.js → FHx3Ejt6.js} +1 -1
- package/.output/public/_nuxt/{default.B0xlD4Sl.css → FileTree.CtTH3U6l.css} +1 -1
- package/.output/public/_nuxt/G40WRC_L.js +1 -0
- package/.output/public/_nuxt/{CQzADP3y.js → Lh0RfwhV.js} +1 -1
- package/.output/public/_nuxt/NMm6Vanu.js +1 -0
- package/.output/public/_nuxt/ORit_vRp.js +1 -0
- package/.output/public/_nuxt/P_2SRa71.js +2 -0
- package/.output/public/_nuxt/PreviewRelationTable.BA0i90jA.css +1 -0
- package/.output/public/_nuxt/{DehrK61g.js → Un5zjlKE.js} +1 -1
- package/.output/public/_nuxt/W-4KVxy4.js +22 -0
- package/.output/public/_nuxt/XETGYn3c.js +1 -0
- package/.output/public/_nuxt/{BcuPgKcZ.js → ZNDxw-7x.js} +1 -1
- package/.output/public/_nuxt/ZVYA9HBl.js +1 -0
- package/.output/public/_nuxt/ZhP2FY6Y.js +1 -0
- package/.output/public/_nuxt/_TExiQQQ.js +3 -0
- package/.output/public/_nuxt/__PEYcIB.js +9 -0
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/47c294b1-d6b3-4974-bd50-5046ae0a393e.json +1 -0
- package/.output/public/_nuxt/dDqgUqt5.js +16 -0
- package/.output/public/_nuxt/dSX5D8ur.js +28 -0
- package/.output/public/_nuxt/default.DixIpIal.css +1 -0
- package/.output/public/_nuxt/entry.CGwcggc4.css +1 -0
- package/.output/public/_nuxt/{D2uh44XM.js → habs8oz6.js} +1 -1
- package/.output/public/_nuxt/{index.P0q-dO_S.css → index.C4HrDOPM.css} +1 -1
- package/.output/public/_nuxt/o60RgyTd.js +1 -0
- package/.output/public/_nuxt/{Di0QgSJz.js → uDsvlLN0.js} +1 -1
- package/.output/public/_nuxt/{O78AcFB2.js → wH-P-_6A.js} +1 -1
- package/.output/public/_nuxt/{CWrGZxpH.js → wrneOCBW.js} +1 -1
- package/.output/public/_nuxt/{DcCuT_qB.js → x85BV7y_.js} +1 -1
- package/.output/public/_nuxt/{B6tZoMuV.js → yLATXAxG.js} +1 -1
- package/.output/server/chunks/_/db-connection.mjs +3 -0
- package/.output/server/chunks/_/db-connection.mjs.map +1 -1
- package/.output/server/chunks/_/sql-mutation-statements.mjs +496 -0
- package/.output/server/chunks/_/sql-mutation-statements.mjs.map +1 -0
- package/.output/server/chunks/_/tables.factory.mjs +57 -29
- package/.output/server/chunks/_/tables.factory.mjs.map +1 -1
- package/.output/server/chunks/build/client.manifest.mjs +815 -697
- package/.output/server/chunks/build/client.manifest.mjs.map +1 -1
- package/.output/server/chunks/nitro/nitro.mjs +694 -664
- package/.output/server/chunks/routes/api/tables/bulk-delete.post.mjs +18 -10
- package/.output/server/chunks/routes/api/tables/bulk-delete.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/tables/bulk-insert.post.mjs +90 -0
- package/.output/server/chunks/routes/api/tables/bulk-insert.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/tables/bulk-update.post.mjs +50 -9
- package/.output/server/chunks/routes/api/tables/bulk-update.post.mjs.map +1 -1
- package/.output/server/package.json +1 -2
- package/package.json +1 -1
- package/.output/public/_nuxt/0olA6U9-.js +0 -1
- package/.output/public/_nuxt/3MFLtJaB.js +0 -2
- package/.output/public/_nuxt/5eGdUlL5.js +0 -1
- package/.output/public/_nuxt/9N_axiMO.js +0 -1
- package/.output/public/_nuxt/B7-PqSUV.js +0 -1
- package/.output/public/_nuxt/BDMb-Pyv.js +0 -1
- package/.output/public/_nuxt/BN6ZmV2J.js +0 -1
- package/.output/public/_nuxt/BjdYdiyf.js +0 -1
- package/.output/public/_nuxt/By3LMj8D.js +0 -1
- package/.output/public/_nuxt/CAw6QK8a.js +0 -1
- package/.output/public/_nuxt/CGtwVe-7.js +0 -1
- package/.output/public/_nuxt/CJZf1MDD.js +0 -1
- package/.output/public/_nuxt/CKTZRDiI.js +0 -1
- package/.output/public/_nuxt/CQas_zLl.js +0 -20
- package/.output/public/_nuxt/CS5akSNT.js +0 -1
- package/.output/public/_nuxt/CTkQN1XK.js +0 -39
- package/.output/public/_nuxt/CUiGarir.js +0 -1
- package/.output/public/_nuxt/CYMhtSRb.js +0 -1
- package/.output/public/_nuxt/CYkdQXWd.js +0 -1
- package/.output/public/_nuxt/CZmkQ9aO.js +0 -2
- package/.output/public/_nuxt/Cc2igSge.js +0 -67
- package/.output/public/_nuxt/Cgf5py_m.js +0 -9
- package/.output/public/_nuxt/CpBFRs2a.js +0 -1
- package/.output/public/_nuxt/Cr2BKem3.js +0 -1
- package/.output/public/_nuxt/CuaktsoE.js +0 -1
- package/.output/public/_nuxt/D1veMm0L.js +0 -1
- package/.output/public/_nuxt/D3ZJP2ze.js +0 -1
- package/.output/public/_nuxt/DGuH4YHZ.js +0 -1
- package/.output/public/_nuxt/DJa6BJMa.js +0 -1
- package/.output/public/_nuxt/DTEzbo2c.js +0 -1
- package/.output/public/_nuxt/DUliC29v.js +0 -1
- package/.output/public/_nuxt/DW1m4Hxy.js +0 -1
- package/.output/public/_nuxt/DWnJMbXf.js +0 -1
- package/.output/public/_nuxt/DXQS6bj6.js +0 -2
- package/.output/public/_nuxt/Dah6izTx.js +0 -22
- package/.output/public/_nuxt/Dcz-n576.js +0 -1
- package/.output/public/_nuxt/DdUuVBMi.js +0 -1
- package/.output/public/_nuxt/Di_nUA-u.js +0 -7
- package/.output/public/_nuxt/DnPYRTtC.js +0 -1
- package/.output/public/_nuxt/DpyRXhd7.js +0 -1
- package/.output/public/_nuxt/DuMEW1lw.js +0 -1
- package/.output/public/_nuxt/DvATq7eC.js +0 -1
- package/.output/public/_nuxt/DwfS-MFd.js +0 -1
- package/.output/public/_nuxt/OMgXwGIN.js +0 -26
- package/.output/public/_nuxt/QuickQuery.CJ7tNjo4.css +0 -1
- package/.output/public/_nuxt/Th_o-5A0.js +0 -1
- package/.output/public/_nuxt/ZDrzZQNQ.js +0 -1
- package/.output/public/_nuxt/builds/meta/5680cb77-cc14-4e94-a235-c54fb463e1ca.json +0 -1
- package/.output/public/_nuxt/entry.CNXXuHFL.css +0 -1
- package/.output/public/_nuxt/fkIyRXiG.js +0 -1
- package/.output/public/_nuxt/nZnnkbcv.js +0 -3
- package/.output/public/_nuxt/s75xJ0Ts.js +0 -10
- package/.output/server/node_modules/ag-grid-community/dist/package/main.esm.mjs +0 -50065
- package/.output/server/node_modules/ag-grid-community/package.json +0 -113
|
@@ -0,0 +1,496 @@
|
|
|
1
|
+
import { D as DatabaseClientType } from './database-client-type.mjs';
|
|
2
|
+
|
|
3
|
+
const HASH_INDEX_ID = "_____#";
|
|
4
|
+
const NEW_ROW_FLAG_ID = "isNewRow";
|
|
5
|
+
const DATA_GRID_ROW_METADATA_IDS = [
|
|
6
|
+
HASH_INDEX_ID,
|
|
7
|
+
NEW_ROW_FLAG_ID
|
|
8
|
+
];
|
|
9
|
+
|
|
10
|
+
function baseToLiteral(value) {
|
|
11
|
+
if (value === null || value === void 0) {
|
|
12
|
+
return "NULL";
|
|
13
|
+
}
|
|
14
|
+
if (typeof value === "boolean") {
|
|
15
|
+
return value ? "TRUE" : "FALSE";
|
|
16
|
+
}
|
|
17
|
+
if (typeof value === "number" || typeof value === "bigint") {
|
|
18
|
+
return String(value);
|
|
19
|
+
}
|
|
20
|
+
if (value instanceof Date) {
|
|
21
|
+
return `'${value.toISOString().replace("T", " ")}'`;
|
|
22
|
+
}
|
|
23
|
+
if (typeof value === "string") {
|
|
24
|
+
return `'${value.replace(/'/g, "''")}'`;
|
|
25
|
+
}
|
|
26
|
+
return `'${JSON.stringify(value).replace(/'/g, "''")}'`;
|
|
27
|
+
}
|
|
28
|
+
const baseDialect = {
|
|
29
|
+
quoteIdentifier(name) {
|
|
30
|
+
return `"${name.replace(/"/g, '""')}"`;
|
|
31
|
+
},
|
|
32
|
+
qualifyTableName(tableName, schemaName) {
|
|
33
|
+
const quoted = this.quoteIdentifier(tableName);
|
|
34
|
+
if (!schemaName) return quoted;
|
|
35
|
+
return `${this.quoteIdentifier(schemaName)}.${quoted}`;
|
|
36
|
+
},
|
|
37
|
+
toLiteral(value) {
|
|
38
|
+
if (Array.isArray(value)) {
|
|
39
|
+
return `'${JSON.stringify(value).replace(/'/g, "''")}'`;
|
|
40
|
+
}
|
|
41
|
+
return baseToLiteral(value);
|
|
42
|
+
},
|
|
43
|
+
makePlaceholder(_index) {
|
|
44
|
+
return "?";
|
|
45
|
+
},
|
|
46
|
+
castForLike(column) {
|
|
47
|
+
return column;
|
|
48
|
+
},
|
|
49
|
+
likeOperator(_caseInsensitive) {
|
|
50
|
+
return "LIKE";
|
|
51
|
+
},
|
|
52
|
+
supportsReturning() {
|
|
53
|
+
return false;
|
|
54
|
+
},
|
|
55
|
+
mapDbTypeToTsType(_typeName) {
|
|
56
|
+
return "unknown";
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
const MSSQL_TYPE_MAP = {
|
|
61
|
+
// String types
|
|
62
|
+
char: "string",
|
|
63
|
+
varchar: "string",
|
|
64
|
+
nchar: "string",
|
|
65
|
+
nvarchar: "string",
|
|
66
|
+
text: "string",
|
|
67
|
+
ntext: "string",
|
|
68
|
+
xml: "string",
|
|
69
|
+
uniqueidentifier: "string",
|
|
70
|
+
binary: "string",
|
|
71
|
+
varbinary: "string",
|
|
72
|
+
image: "string",
|
|
73
|
+
// Number types
|
|
74
|
+
tinyint: "number",
|
|
75
|
+
smallint: "number",
|
|
76
|
+
int: "number",
|
|
77
|
+
bigint: "number",
|
|
78
|
+
float: "number",
|
|
79
|
+
real: "number",
|
|
80
|
+
decimal: "number",
|
|
81
|
+
numeric: "number",
|
|
82
|
+
money: "number",
|
|
83
|
+
smallmoney: "number",
|
|
84
|
+
// Boolean
|
|
85
|
+
bit: "boolean",
|
|
86
|
+
// Date/Time
|
|
87
|
+
date: "string",
|
|
88
|
+
datetime: "string",
|
|
89
|
+
datetime2: "string",
|
|
90
|
+
smalldatetime: "string",
|
|
91
|
+
datetimeoffset: "string",
|
|
92
|
+
time: "string",
|
|
93
|
+
// JSON (stored as nvarchar)
|
|
94
|
+
json: "any"
|
|
95
|
+
};
|
|
96
|
+
const mssqlDialect = {
|
|
97
|
+
...baseDialect,
|
|
98
|
+
quoteIdentifier(name) {
|
|
99
|
+
return `[${name.replace(/\]/g, "]]")}]`;
|
|
100
|
+
},
|
|
101
|
+
qualifyTableName(tableName, schemaName) {
|
|
102
|
+
const quoted = this.quoteIdentifier(tableName);
|
|
103
|
+
if (!schemaName) return quoted;
|
|
104
|
+
return `${this.quoteIdentifier(schemaName)}.${quoted}`;
|
|
105
|
+
},
|
|
106
|
+
toLiteral(value) {
|
|
107
|
+
if (Array.isArray(value)) {
|
|
108
|
+
return `'${JSON.stringify(value).replace(/'/g, "''")}'`;
|
|
109
|
+
}
|
|
110
|
+
return baseToLiteral(value);
|
|
111
|
+
},
|
|
112
|
+
makePlaceholder(index) {
|
|
113
|
+
return `@p${index}`;
|
|
114
|
+
},
|
|
115
|
+
mapDbTypeToTsType(typeName) {
|
|
116
|
+
var _a;
|
|
117
|
+
const normalized = typeName.toLowerCase();
|
|
118
|
+
return (_a = MSSQL_TYPE_MAP[normalized]) != null ? _a : "unknown";
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
const MYSQL_TYPE_MAP = {
|
|
123
|
+
// String types
|
|
124
|
+
char: "string",
|
|
125
|
+
varchar: "string",
|
|
126
|
+
text: "string",
|
|
127
|
+
tinytext: "string",
|
|
128
|
+
mediumtext: "string",
|
|
129
|
+
longtext: "string",
|
|
130
|
+
enum: "string",
|
|
131
|
+
set: "string",
|
|
132
|
+
binary: "string",
|
|
133
|
+
varbinary: "string",
|
|
134
|
+
blob: "string",
|
|
135
|
+
tinyblob: "string",
|
|
136
|
+
mediumblob: "string",
|
|
137
|
+
longblob: "string",
|
|
138
|
+
// Number types
|
|
139
|
+
tinyint: "number",
|
|
140
|
+
smallint: "number",
|
|
141
|
+
mediumint: "number",
|
|
142
|
+
int: "number",
|
|
143
|
+
integer: "number",
|
|
144
|
+
bigint: "number",
|
|
145
|
+
float: "number",
|
|
146
|
+
double: "number",
|
|
147
|
+
decimal: "number",
|
|
148
|
+
numeric: "number",
|
|
149
|
+
// Boolean
|
|
150
|
+
bit: "boolean",
|
|
151
|
+
bool: "boolean",
|
|
152
|
+
boolean: "boolean",
|
|
153
|
+
// JSON
|
|
154
|
+
json: "any",
|
|
155
|
+
// Date/Time
|
|
156
|
+
date: "string",
|
|
157
|
+
datetime: "string",
|
|
158
|
+
timestamp: "string",
|
|
159
|
+
time: "string",
|
|
160
|
+
year: "number"
|
|
161
|
+
};
|
|
162
|
+
const mysqlDialect = {
|
|
163
|
+
...baseDialect,
|
|
164
|
+
quoteIdentifier(name) {
|
|
165
|
+
return `\`${name.replace(/`/g, "``")}\``;
|
|
166
|
+
},
|
|
167
|
+
qualifyTableName(tableName, schemaName) {
|
|
168
|
+
const quoted = this.quoteIdentifier(tableName);
|
|
169
|
+
if (!schemaName) return quoted;
|
|
170
|
+
return `${this.quoteIdentifier(schemaName)}.${quoted}`;
|
|
171
|
+
},
|
|
172
|
+
toLiteral(value) {
|
|
173
|
+
if (Array.isArray(value)) {
|
|
174
|
+
return `'${JSON.stringify(value).replace(/'/g, "''")}'`;
|
|
175
|
+
}
|
|
176
|
+
return baseToLiteral(value);
|
|
177
|
+
},
|
|
178
|
+
makePlaceholder(_index) {
|
|
179
|
+
return "?";
|
|
180
|
+
},
|
|
181
|
+
mapDbTypeToTsType(typeName) {
|
|
182
|
+
var _a;
|
|
183
|
+
const normalized = typeName.toLowerCase();
|
|
184
|
+
return (_a = MYSQL_TYPE_MAP[normalized]) != null ? _a : "unknown";
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
const ORACLE_TYPE_MAP = {
|
|
189
|
+
// String types
|
|
190
|
+
char: "string",
|
|
191
|
+
varchar2: "string",
|
|
192
|
+
nchar: "string",
|
|
193
|
+
nvarchar2: "string",
|
|
194
|
+
clob: "string",
|
|
195
|
+
nclob: "string",
|
|
196
|
+
long: "string",
|
|
197
|
+
raw: "string",
|
|
198
|
+
blob: "string",
|
|
199
|
+
// Number types
|
|
200
|
+
number: "number",
|
|
201
|
+
float: "number",
|
|
202
|
+
binary_float: "number",
|
|
203
|
+
binary_double: "number",
|
|
204
|
+
integer: "number",
|
|
205
|
+
int: "number",
|
|
206
|
+
smallint: "number",
|
|
207
|
+
// Date/Time
|
|
208
|
+
date: "string",
|
|
209
|
+
timestamp: "string",
|
|
210
|
+
interval: "string",
|
|
211
|
+
// JSON (Oracle 21c+)
|
|
212
|
+
json: "any",
|
|
213
|
+
// Boolean (Oracle 23c+)
|
|
214
|
+
boolean: "boolean"
|
|
215
|
+
};
|
|
216
|
+
const oracleDialect = {
|
|
217
|
+
...baseDialect,
|
|
218
|
+
quoteIdentifier(name) {
|
|
219
|
+
return `"${name.replace(/"/g, '""')}"`;
|
|
220
|
+
},
|
|
221
|
+
qualifyTableName(tableName, schemaName) {
|
|
222
|
+
const quoted = this.quoteIdentifier(tableName);
|
|
223
|
+
if (!schemaName) return quoted;
|
|
224
|
+
return `${this.quoteIdentifier(schemaName)}.${quoted}`;
|
|
225
|
+
},
|
|
226
|
+
toLiteral(value) {
|
|
227
|
+
if (Array.isArray(value)) {
|
|
228
|
+
return `'${JSON.stringify(value).replace(/'/g, "''")}'`;
|
|
229
|
+
}
|
|
230
|
+
return baseToLiteral(value);
|
|
231
|
+
},
|
|
232
|
+
makePlaceholder(index) {
|
|
233
|
+
return `:${index}`;
|
|
234
|
+
},
|
|
235
|
+
mapDbTypeToTsType(typeName) {
|
|
236
|
+
var _a;
|
|
237
|
+
const normalized = typeName.toLowerCase();
|
|
238
|
+
return (_a = ORACLE_TYPE_MAP[normalized]) != null ? _a : "unknown";
|
|
239
|
+
}
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
const PG_TYPE_MAP = {
|
|
243
|
+
// String types
|
|
244
|
+
char: "string",
|
|
245
|
+
varchar: "string",
|
|
246
|
+
text: "string",
|
|
247
|
+
uuid: "string",
|
|
248
|
+
citext: "string",
|
|
249
|
+
money: "string",
|
|
250
|
+
inet: "string",
|
|
251
|
+
cidr: "string",
|
|
252
|
+
macaddr: "string",
|
|
253
|
+
macaddr8: "string",
|
|
254
|
+
tsvector: "string",
|
|
255
|
+
tsquery: "string",
|
|
256
|
+
xml: "string",
|
|
257
|
+
bytea: "string",
|
|
258
|
+
// Number types
|
|
259
|
+
int2: "number",
|
|
260
|
+
int4: "number",
|
|
261
|
+
int8: "number",
|
|
262
|
+
numeric: "number",
|
|
263
|
+
float4: "number",
|
|
264
|
+
float8: "number",
|
|
265
|
+
decimal: "number",
|
|
266
|
+
oid: "number",
|
|
267
|
+
// Boolean
|
|
268
|
+
bool: "boolean",
|
|
269
|
+
boolean: "boolean",
|
|
270
|
+
// JSON
|
|
271
|
+
json: "any",
|
|
272
|
+
jsonb: "any",
|
|
273
|
+
// Date/Time
|
|
274
|
+
date: "string",
|
|
275
|
+
timestamp: "string",
|
|
276
|
+
timestamptz: "string",
|
|
277
|
+
time: "string",
|
|
278
|
+
timetz: "string",
|
|
279
|
+
interval: "string",
|
|
280
|
+
// Bit strings
|
|
281
|
+
bit: "string",
|
|
282
|
+
varbit: "string"
|
|
283
|
+
};
|
|
284
|
+
const postgresDialect = {
|
|
285
|
+
...baseDialect,
|
|
286
|
+
quoteIdentifier(name) {
|
|
287
|
+
return `"${name.replace(/"/g, '""')}"`;
|
|
288
|
+
},
|
|
289
|
+
qualifyTableName(tableName, schemaName) {
|
|
290
|
+
const quoted = this.quoteIdentifier(tableName);
|
|
291
|
+
if (!schemaName) return quoted;
|
|
292
|
+
return `${this.quoteIdentifier(schemaName)}.${quoted}`;
|
|
293
|
+
},
|
|
294
|
+
toLiteral(value) {
|
|
295
|
+
if (Array.isArray(value)) {
|
|
296
|
+
if (!value.length) {
|
|
297
|
+
return "'{}'";
|
|
298
|
+
}
|
|
299
|
+
return `ARRAY[${value.map((item) => this.toLiteral(item)).join(", ")}]`;
|
|
300
|
+
}
|
|
301
|
+
return baseToLiteral(value);
|
|
302
|
+
},
|
|
303
|
+
makePlaceholder(index) {
|
|
304
|
+
return `$${index}`;
|
|
305
|
+
},
|
|
306
|
+
castForLike(column) {
|
|
307
|
+
return `${column}::TEXT`;
|
|
308
|
+
},
|
|
309
|
+
likeOperator(caseInsensitive) {
|
|
310
|
+
return caseInsensitive ? "ILIKE" : "LIKE";
|
|
311
|
+
},
|
|
312
|
+
supportsReturning() {
|
|
313
|
+
return true;
|
|
314
|
+
},
|
|
315
|
+
mapDbTypeToTsType(typeName) {
|
|
316
|
+
var _a;
|
|
317
|
+
const normalized = typeName.toLowerCase();
|
|
318
|
+
if (normalized.startsWith("_")) {
|
|
319
|
+
return `${this.mapDbTypeToTsType(normalized.substring(1))}[]`;
|
|
320
|
+
}
|
|
321
|
+
return (_a = PG_TYPE_MAP[normalized]) != null ? _a : "unknown";
|
|
322
|
+
}
|
|
323
|
+
};
|
|
324
|
+
|
|
325
|
+
const SQLITE_TYPE_MAP = {
|
|
326
|
+
// Affinity: TEXT
|
|
327
|
+
text: "string",
|
|
328
|
+
varchar: "string",
|
|
329
|
+
char: "string",
|
|
330
|
+
clob: "string",
|
|
331
|
+
// Affinity: INTEGER
|
|
332
|
+
integer: "number",
|
|
333
|
+
int: "number",
|
|
334
|
+
tinyint: "number",
|
|
335
|
+
smallint: "number",
|
|
336
|
+
mediumint: "number",
|
|
337
|
+
bigint: "number",
|
|
338
|
+
// Affinity: REAL
|
|
339
|
+
real: "number",
|
|
340
|
+
double: "number",
|
|
341
|
+
float: "number",
|
|
342
|
+
// Affinity: NUMERIC
|
|
343
|
+
numeric: "number",
|
|
344
|
+
decimal: "number",
|
|
345
|
+
// Boolean (stored as integer)
|
|
346
|
+
boolean: "boolean",
|
|
347
|
+
bool: "boolean",
|
|
348
|
+
// Date/Time (stored as text/real/integer)
|
|
349
|
+
date: "string",
|
|
350
|
+
datetime: "string",
|
|
351
|
+
timestamp: "string",
|
|
352
|
+
// BLOB
|
|
353
|
+
blob: "string",
|
|
354
|
+
// JSON (stored as text)
|
|
355
|
+
json: "any"
|
|
356
|
+
};
|
|
357
|
+
const sqliteDialect = {
|
|
358
|
+
...baseDialect,
|
|
359
|
+
quoteIdentifier(name) {
|
|
360
|
+
return `"${name.replace(/"/g, '""')}"`;
|
|
361
|
+
},
|
|
362
|
+
qualifyTableName(tableName, schemaName) {
|
|
363
|
+
const quoted = this.quoteIdentifier(tableName);
|
|
364
|
+
if (!schemaName) return quoted;
|
|
365
|
+
return `${this.quoteIdentifier(schemaName)}.${quoted}`;
|
|
366
|
+
},
|
|
367
|
+
toLiteral(value) {
|
|
368
|
+
if (Array.isArray(value)) {
|
|
369
|
+
return `'${JSON.stringify(value).replace(/'/g, "''")}'`;
|
|
370
|
+
}
|
|
371
|
+
return baseToLiteral(value);
|
|
372
|
+
},
|
|
373
|
+
makePlaceholder(_index) {
|
|
374
|
+
return "?";
|
|
375
|
+
},
|
|
376
|
+
mapDbTypeToTsType(typeName) {
|
|
377
|
+
var _a;
|
|
378
|
+
const normalized = typeName.toLowerCase();
|
|
379
|
+
return (_a = SQLITE_TYPE_MAP[normalized]) != null ? _a : "unknown";
|
|
380
|
+
}
|
|
381
|
+
};
|
|
382
|
+
|
|
383
|
+
const dialectRegistry = {
|
|
384
|
+
[DatabaseClientType.POSTGRES]: postgresDialect,
|
|
385
|
+
[DatabaseClientType.MYSQL]: mysqlDialect,
|
|
386
|
+
[DatabaseClientType.MYSQL2]: mysqlDialect,
|
|
387
|
+
[DatabaseClientType.MARIADB]: mysqlDialect,
|
|
388
|
+
[DatabaseClientType.SQLITE3]: sqliteDialect,
|
|
389
|
+
[DatabaseClientType.BETTER_SQLITE3]: sqliteDialect,
|
|
390
|
+
[DatabaseClientType.ORACLE]: oracleDialect,
|
|
391
|
+
[DatabaseClientType.MSSQL]: mssqlDialect
|
|
392
|
+
};
|
|
393
|
+
function getSqlDialect(dbType) {
|
|
394
|
+
var _a;
|
|
395
|
+
if (!dbType) return baseDialect;
|
|
396
|
+
return (_a = dialectRegistry[dbType]) != null ? _a : baseDialect;
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
const isSqlRowMetadataColumn = (columnName) => DATA_GRID_ROW_METADATA_IDS.includes(
|
|
400
|
+
columnName
|
|
401
|
+
);
|
|
402
|
+
const getSqlDataColumnNames = (row) => Object.keys(row).filter((key) => !isSqlRowMetadataColumn(key));
|
|
403
|
+
|
|
404
|
+
const resolveColumnsToMatch = ({
|
|
405
|
+
pKeys,
|
|
406
|
+
pKeyValue
|
|
407
|
+
}) => {
|
|
408
|
+
const columnsToMatch = pKeys.length ? pKeys : getSqlDataColumnNames(pKeyValue);
|
|
409
|
+
if (!columnsToMatch.length) {
|
|
410
|
+
throw new Error("Invalid input: no columns to match for WHERE clause");
|
|
411
|
+
}
|
|
412
|
+
return {
|
|
413
|
+
columnsToMatch,
|
|
414
|
+
noPkWarning: pKeys.length === 0
|
|
415
|
+
};
|
|
416
|
+
};
|
|
417
|
+
const buildWhereClauseFromRow = (columnNames, rowValues, dbType) => {
|
|
418
|
+
const dialect = getSqlDialect(dbType);
|
|
419
|
+
return columnNames.map((columnName) => {
|
|
420
|
+
const value = rowValues[columnName];
|
|
421
|
+
if (value === null || value === void 0) {
|
|
422
|
+
return `${dialect.quoteIdentifier(columnName)} IS NULL`;
|
|
423
|
+
}
|
|
424
|
+
return `${dialect.quoteIdentifier(columnName)} = ${dialect.toLiteral(value)}`;
|
|
425
|
+
}).join(" AND ");
|
|
426
|
+
};
|
|
427
|
+
function buildDeleteStatements({
|
|
428
|
+
schemaName,
|
|
429
|
+
tableName,
|
|
430
|
+
pKeys,
|
|
431
|
+
pKeyValue,
|
|
432
|
+
dbType
|
|
433
|
+
}) {
|
|
434
|
+
if (!tableName) {
|
|
435
|
+
throw new Error("Invalid input: tableName is required");
|
|
436
|
+
}
|
|
437
|
+
const { columnsToMatch, noPkWarning } = resolveColumnsToMatch({
|
|
438
|
+
pKeys,
|
|
439
|
+
pKeyValue
|
|
440
|
+
});
|
|
441
|
+
const dialect = getSqlDialect(dbType);
|
|
442
|
+
const whereClause = buildWhereClauseFromRow(
|
|
443
|
+
columnsToMatch,
|
|
444
|
+
pKeyValue,
|
|
445
|
+
dbType
|
|
446
|
+
);
|
|
447
|
+
const sql = `DELETE FROM ${dialect.qualifyTableName(tableName, schemaName)} WHERE ${whereClause}`;
|
|
448
|
+
return { sql, noPkWarning };
|
|
449
|
+
}
|
|
450
|
+
function buildUpdateStatements({
|
|
451
|
+
schemaName,
|
|
452
|
+
tableName,
|
|
453
|
+
pKeys,
|
|
454
|
+
pKeyValue,
|
|
455
|
+
update,
|
|
456
|
+
dbType
|
|
457
|
+
}) {
|
|
458
|
+
if (!tableName || !Object.keys(update).length) {
|
|
459
|
+
throw new Error("Invalid input: tableName and update object are required");
|
|
460
|
+
}
|
|
461
|
+
const { columnsToMatch, noPkWarning } = resolveColumnsToMatch({
|
|
462
|
+
pKeys,
|
|
463
|
+
pKeyValue
|
|
464
|
+
});
|
|
465
|
+
const dialect = getSqlDialect(dbType);
|
|
466
|
+
const setClause = Object.entries(update).map(
|
|
467
|
+
([columnName, value]) => `${dialect.quoteIdentifier(columnName)} = ${dialect.toLiteral(value)}`
|
|
468
|
+
).join(", ");
|
|
469
|
+
const whereClause = buildWhereClauseFromRow(
|
|
470
|
+
columnsToMatch,
|
|
471
|
+
pKeyValue,
|
|
472
|
+
dbType
|
|
473
|
+
);
|
|
474
|
+
const sql = `UPDATE ${dialect.qualifyTableName(tableName, schemaName)} SET ${setClause} WHERE ${whereClause}`;
|
|
475
|
+
return { sql, noPkWarning };
|
|
476
|
+
}
|
|
477
|
+
function buildInsertStatements({
|
|
478
|
+
schemaName,
|
|
479
|
+
tableName,
|
|
480
|
+
insertData,
|
|
481
|
+
dbType
|
|
482
|
+
}) {
|
|
483
|
+
if (!tableName || !insertData) {
|
|
484
|
+
throw new Error("Invalid input: tableName, insertData object are required");
|
|
485
|
+
}
|
|
486
|
+
const dialect = getSqlDialect(dbType);
|
|
487
|
+
if (!Object.keys(insertData).length) {
|
|
488
|
+
return `INSERT INTO ${dialect.qualifyTableName(tableName, schemaName)} DEFAULT VALUES`;
|
|
489
|
+
}
|
|
490
|
+
const columnsClause = Object.keys(insertData).map((columnName) => dialect.quoteIdentifier(columnName)).join(", ");
|
|
491
|
+
const valuesClause = Object.values(insertData).map((value) => dialect.toLiteral(value)).join(", ");
|
|
492
|
+
return `INSERT INTO ${dialect.qualifyTableName(tableName, schemaName)} (${columnsClause}) VALUES (${valuesClause})`;
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
export { buildInsertStatements as a, buildDeleteStatements as b, buildUpdateStatements as c };
|
|
496
|
+
//# sourceMappingURL=sql-mutation-statements.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-mutation-statements.mjs","sources":["../../../../core/constants/data-grid-row-metadata.ts","../../../../core/sql-dialect/dialects/base.dialect.ts","../../../../core/sql-dialect/dialects/mssql.dialect.ts","../../../../core/sql-dialect/dialects/mysql.dialect.ts","../../../../core/sql-dialect/dialects/oracle.dialect.ts","../../../../core/sql-dialect/dialects/postgres.dialect.ts","../../../../core/sql-dialect/dialects/sqlite.dialect.ts","../../../../core/sql-dialect/dialect-factory.ts","../../../../core/helpers/sql-metadata.ts","../../../../core/helpers/sql-mutation-statements.ts"],"sourcesContent":null,"names":[],"mappings":"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"}
|
|
@@ -216,16 +216,20 @@ class MysqlTableAdapter extends BaseDomainAdapter {
|
|
|
216
216
|
);
|
|
217
217
|
}
|
|
218
218
|
async executeStatements(statements) {
|
|
219
|
+
const BULK_CHUNK_SIZE = 500;
|
|
219
220
|
const startTime = performance.now();
|
|
220
221
|
try {
|
|
221
222
|
const data = [];
|
|
222
|
-
for (
|
|
223
|
-
const
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
223
|
+
for (let i = 0; i < statements.length; i += BULK_CHUNK_SIZE) {
|
|
224
|
+
const chunk = statements.slice(i, i + BULK_CHUNK_SIZE);
|
|
225
|
+
for (const statement of chunk) {
|
|
226
|
+
const result = await this.adapter.rawOut(statement);
|
|
227
|
+
data.push({
|
|
228
|
+
query: statement,
|
|
229
|
+
affectedRows: result.rowCount || 0,
|
|
230
|
+
results: result.rows
|
|
231
|
+
});
|
|
232
|
+
}
|
|
229
233
|
}
|
|
230
234
|
return {
|
|
231
235
|
success: true,
|
|
@@ -617,16 +621,20 @@ ${lines.join(",\n")}
|
|
|
617
621
|
}));
|
|
618
622
|
}
|
|
619
623
|
async executeStatements(statements) {
|
|
624
|
+
const BULK_CHUNK_SIZE = 500;
|
|
620
625
|
const startTime = performance.now();
|
|
621
626
|
try {
|
|
622
627
|
const data = [];
|
|
623
|
-
for (
|
|
624
|
-
const
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
628
|
+
for (let i = 0; i < statements.length; i += BULK_CHUNK_SIZE) {
|
|
629
|
+
const chunk = statements.slice(i, i + BULK_CHUNK_SIZE);
|
|
630
|
+
for (const statement of chunk) {
|
|
631
|
+
const result = await this.adapter.rawOut(statement);
|
|
632
|
+
data.push({
|
|
633
|
+
query: statement,
|
|
634
|
+
affectedRows: result.rowCount || 0,
|
|
635
|
+
results: result.rows
|
|
636
|
+
});
|
|
637
|
+
}
|
|
630
638
|
}
|
|
631
639
|
return {
|
|
632
640
|
success: true,
|
|
@@ -1046,12 +1054,19 @@ class PostgresTableMetadataAdapter {
|
|
|
1046
1054
|
}
|
|
1047
1055
|
}
|
|
1048
1056
|
|
|
1057
|
+
const BULK_CHUNK_SIZE = 500;
|
|
1058
|
+
function chunkArray(arr, size) {
|
|
1059
|
+
const chunks = [];
|
|
1060
|
+
for (let i = 0; i < arr.length; i += size) {
|
|
1061
|
+
chunks.push(arr.slice(i, i + size));
|
|
1062
|
+
}
|
|
1063
|
+
return chunks;
|
|
1064
|
+
}
|
|
1049
1065
|
class PostgresTableMutationAdapter {
|
|
1050
1066
|
constructor(adapter) {
|
|
1051
1067
|
this.adapter = adapter;
|
|
1052
1068
|
}
|
|
1053
|
-
async
|
|
1054
|
-
const startTime = performance.now();
|
|
1069
|
+
async executeChunk(statements) {
|
|
1055
1070
|
const client = await this.adapter.acquireRawConnection();
|
|
1056
1071
|
try {
|
|
1057
1072
|
await client.query("BEGIN");
|
|
@@ -1065,12 +1080,7 @@ class PostgresTableMutationAdapter {
|
|
|
1065
1080
|
});
|
|
1066
1081
|
}
|
|
1067
1082
|
await client.query("COMMIT");
|
|
1068
|
-
|
|
1069
|
-
return {
|
|
1070
|
-
success: true,
|
|
1071
|
-
data: results,
|
|
1072
|
-
queryTime: Number((endTime - startTime).toFixed(2))
|
|
1073
|
-
};
|
|
1083
|
+
return { data: results };
|
|
1074
1084
|
} catch (e) {
|
|
1075
1085
|
await client.query("ROLLBACK");
|
|
1076
1086
|
throw createDatabaseHttpError(DatabaseClientType.POSTGRES, e);
|
|
@@ -1078,6 +1088,20 @@ class PostgresTableMutationAdapter {
|
|
|
1078
1088
|
await this.adapter.releaseRawConnection(client);
|
|
1079
1089
|
}
|
|
1080
1090
|
}
|
|
1091
|
+
async executeBulkStatements(statements) {
|
|
1092
|
+
const startTime = performance.now();
|
|
1093
|
+
const chunks = chunkArray(statements, BULK_CHUNK_SIZE);
|
|
1094
|
+
const aggregatedData = [];
|
|
1095
|
+
for (const chunk of chunks) {
|
|
1096
|
+
const { data } = await this.executeChunk(chunk);
|
|
1097
|
+
aggregatedData.push(...data);
|
|
1098
|
+
}
|
|
1099
|
+
return {
|
|
1100
|
+
success: true,
|
|
1101
|
+
data: aggregatedData,
|
|
1102
|
+
queryTime: Number((performance.now() - startTime).toFixed(2))
|
|
1103
|
+
};
|
|
1104
|
+
}
|
|
1081
1105
|
async executeBulkDelete(statements) {
|
|
1082
1106
|
return this.executeBulkStatements(statements);
|
|
1083
1107
|
}
|
|
@@ -1612,16 +1636,20 @@ ${ddlColumns.join(",\n")}
|
|
|
1612
1636
|
});
|
|
1613
1637
|
}
|
|
1614
1638
|
async executeStatements(statements) {
|
|
1639
|
+
const BULK_CHUNK_SIZE = 500;
|
|
1615
1640
|
const startTime = performance.now();
|
|
1616
1641
|
try {
|
|
1617
1642
|
const data = [];
|
|
1618
|
-
for (
|
|
1619
|
-
const
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1643
|
+
for (let i = 0; i < statements.length; i += BULK_CHUNK_SIZE) {
|
|
1644
|
+
const chunk = statements.slice(i, i + BULK_CHUNK_SIZE);
|
|
1645
|
+
for (const statement of chunk) {
|
|
1646
|
+
const result = await this.adapter.rawOut(statement);
|
|
1647
|
+
data.push({
|
|
1648
|
+
query: statement,
|
|
1649
|
+
affectedRows: result.rowCount || 0,
|
|
1650
|
+
results: result.rows
|
|
1651
|
+
});
|
|
1652
|
+
}
|
|
1625
1653
|
}
|
|
1626
1654
|
return {
|
|
1627
1655
|
success: true,
|