forge-sql-orm 2.1.22 → 2.1.24
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 +6 -2
- package/dist/core/ForgeSQLAnalyseOperations.d.ts +4 -0
- package/dist/core/ForgeSQLAnalyseOperations.d.ts.map +1 -1
- package/dist/core/ForgeSQLAnalyseOperations.js +17 -21
- package/dist/core/ForgeSQLAnalyseOperations.js.map +1 -1
- package/dist/core/ForgeSQLCrudOperations.d.ts +16 -0
- package/dist/core/ForgeSQLCrudOperations.d.ts.map +1 -1
- package/dist/core/ForgeSQLCrudOperations.js +60 -28
- package/dist/core/ForgeSQLCrudOperations.js.map +1 -1
- package/dist/core/ForgeSQLQueryBuilder.d.ts +15 -28
- package/dist/core/ForgeSQLQueryBuilder.d.ts.map +1 -1
- package/dist/core/ForgeSQLQueryBuilder.js +20 -47
- package/dist/core/ForgeSQLQueryBuilder.js.map +1 -1
- package/dist/core/Rovo.d.ts +32 -0
- package/dist/core/Rovo.d.ts.map +1 -1
- package/dist/core/Rovo.js +116 -67
- package/dist/core/Rovo.js.map +1 -1
- package/dist/lib/drizzle/extensions/additionalActions.d.ts.map +1 -1
- package/dist/lib/drizzle/extensions/additionalActions.js +168 -118
- package/dist/lib/drizzle/extensions/additionalActions.js.map +1 -1
- package/dist/utils/cacheTableUtils.d.ts +0 -8
- package/dist/utils/cacheTableUtils.d.ts.map +1 -1
- package/dist/utils/cacheTableUtils.js +183 -126
- package/dist/utils/cacheTableUtils.js.map +1 -1
- package/dist/utils/forgeDriverProxy.d.ts.map +1 -1
- package/dist/utils/forgeDriverProxy.js +31 -20
- package/dist/utils/forgeDriverProxy.js.map +1 -1
- package/dist/utils/sqlHints.d.ts.map +1 -1
- package/dist/utils/sqlHints.js +19 -29
- package/dist/utils/sqlHints.js.map +1 -1
- package/dist/utils/sqlUtils.d.ts +0 -29
- package/dist/utils/sqlUtils.d.ts.map +1 -1
- package/dist/utils/sqlUtils.js +107 -78
- package/dist/utils/sqlUtils.js.map +1 -1
- package/package.json +13 -13
- package/src/core/ForgeSQLAnalyseOperations.ts +18 -21
- package/src/core/ForgeSQLCrudOperations.ts +83 -33
- package/src/core/ForgeSQLQueryBuilder.ts +59 -154
- package/src/core/Rovo.ts +158 -98
- package/src/lib/drizzle/extensions/additionalActions.ts +287 -382
- package/src/utils/cacheTableUtils.ts +202 -144
- package/src/utils/forgeDriverProxy.ts +39 -21
- package/src/utils/sqlHints.ts +21 -26
- package/src/utils/sqlUtils.ts +151 -101
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.extractBacktickedValues = extractBacktickedValues;
|
|
4
|
+
// qlty-ignore: +qlty:file-complexity
|
|
4
5
|
const node_sql_parser_1 = require("node-sql-parser");
|
|
6
|
+
/**
|
|
7
|
+
* Extracts table name from backticks_quote_string type.
|
|
8
|
+
*/
|
|
9
|
+
function extractTableNameFromBackticks(value) {
|
|
10
|
+
if (value.type === "backticks_quote_string" && typeof value.value === "string") {
|
|
11
|
+
return value.value === "dual" ? null : value.value.toLowerCase();
|
|
12
|
+
}
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
5
15
|
/**
|
|
6
16
|
* Extracts table name from object value.
|
|
7
17
|
*/
|
|
@@ -11,10 +21,11 @@ function extractTableNameFromObject(value, context) {
|
|
|
11
21
|
return null;
|
|
12
22
|
}
|
|
13
23
|
// Handle backticks_quote_string type only for node.table context
|
|
14
|
-
if (context?.includes("node.table")
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
24
|
+
if (context?.includes("node.table")) {
|
|
25
|
+
const fromBackticks = extractTableNameFromBackticks(value);
|
|
26
|
+
if (fromBackticks !== null) {
|
|
27
|
+
return fromBackticks;
|
|
28
|
+
}
|
|
18
29
|
}
|
|
19
30
|
// Try value.name first (most common)
|
|
20
31
|
if (typeof value.name === "string") {
|
|
@@ -77,6 +88,21 @@ function isShortNameAlias(node) {
|
|
|
77
88
|
function isLikelyAlias(node) {
|
|
78
89
|
return isColumnRefAlias(node) || isExplicitAlias(node) || isShortNameAlias(node);
|
|
79
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* Extracts table name from table/dual node.
|
|
93
|
+
*/
|
|
94
|
+
function extractTableNameFromTableNode(node) {
|
|
95
|
+
const fromTable = node.table
|
|
96
|
+
? normalizeTableName(node.table, `node.type=${node.type}, node.table`)
|
|
97
|
+
: null;
|
|
98
|
+
if (fromTable) {
|
|
99
|
+
return fromTable;
|
|
100
|
+
}
|
|
101
|
+
const fromName = node.name
|
|
102
|
+
? normalizeTableName(node.name, `node.type=${node.type}, node.name`)
|
|
103
|
+
: null;
|
|
104
|
+
return fromName;
|
|
105
|
+
}
|
|
80
106
|
/**
|
|
81
107
|
* Extracts table name from table node.
|
|
82
108
|
*
|
|
@@ -84,35 +110,16 @@ function isLikelyAlias(node) {
|
|
|
84
110
|
* @returns Table name in lowercase or null if not applicable
|
|
85
111
|
*/
|
|
86
112
|
function extractTableName(node) {
|
|
87
|
-
if (!node) {
|
|
88
|
-
return null;
|
|
89
|
-
}
|
|
90
|
-
// Early return for likely aliases
|
|
91
|
-
if (isLikelyAlias(node)) {
|
|
113
|
+
if (!node || isLikelyAlias(node)) {
|
|
92
114
|
return null;
|
|
93
115
|
}
|
|
94
116
|
// Handle table node directly
|
|
95
117
|
if (node.type === "table" || node.type === "dual") {
|
|
96
|
-
|
|
97
|
-
? normalizeTableName(node.table, `node.type=${node.type}, node.table`)
|
|
98
|
-
: null;
|
|
99
|
-
if (fromTable) {
|
|
100
|
-
return fromTable;
|
|
101
|
-
}
|
|
102
|
-
const fromName = node.name
|
|
103
|
-
? normalizeTableName(node.name, `node.type=${node.type}, node.name`)
|
|
104
|
-
: null;
|
|
105
|
-
if (fromName) {
|
|
106
|
-
return fromName;
|
|
107
|
-
}
|
|
108
|
-
return null;
|
|
118
|
+
return extractTableNameFromTableNode(node);
|
|
109
119
|
}
|
|
110
120
|
// Handle table reference in different formats
|
|
111
121
|
if (node.table) {
|
|
112
|
-
|
|
113
|
-
if (tableName) {
|
|
114
|
-
return tableName;
|
|
115
|
-
}
|
|
122
|
+
return normalizeTableName(node.table, `node.table (type: ${node.type})`);
|
|
116
123
|
}
|
|
117
124
|
return null;
|
|
118
125
|
}
|
|
@@ -179,6 +186,26 @@ function processFromAndJoin(node, tables) {
|
|
|
179
186
|
}
|
|
180
187
|
}
|
|
181
188
|
}
|
|
189
|
+
/**
|
|
190
|
+
* Processes a single column for table extraction.
|
|
191
|
+
*/
|
|
192
|
+
function processSingleColumn(col, tables) {
|
|
193
|
+
if (!col) {
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
// If the column itself is a subquery
|
|
197
|
+
if (col.type === "subquery" || col.type === "select") {
|
|
198
|
+
extractTablesFromNode(col, tables);
|
|
199
|
+
}
|
|
200
|
+
// Process expression (may contain subqueries)
|
|
201
|
+
if (col.expr) {
|
|
202
|
+
extractTablesFromNode(col.expr, tables);
|
|
203
|
+
}
|
|
204
|
+
// Process AST (alternative structure for subqueries)
|
|
205
|
+
if (col.ast) {
|
|
206
|
+
extractTablesFromNode(col.ast, tables);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
182
209
|
/**
|
|
183
210
|
* Processes SELECT columns that may contain subqueries.
|
|
184
211
|
*/
|
|
@@ -188,22 +215,7 @@ function processSelectColumns(node, tables) {
|
|
|
188
215
|
return;
|
|
189
216
|
}
|
|
190
217
|
if (Array.isArray(columns)) {
|
|
191
|
-
columns.forEach((col) =>
|
|
192
|
-
if (!col)
|
|
193
|
-
return;
|
|
194
|
-
// If the column itself is a subquery
|
|
195
|
-
if (col.type === "subquery" || col.type === "select") {
|
|
196
|
-
extractTablesFromNode(col, tables);
|
|
197
|
-
}
|
|
198
|
-
// Process expression (may contain subqueries)
|
|
199
|
-
if (col.expr) {
|
|
200
|
-
extractTablesFromNode(col.expr, tables);
|
|
201
|
-
}
|
|
202
|
-
// Process AST (alternative structure for subqueries)
|
|
203
|
-
if (col.ast) {
|
|
204
|
-
extractTablesFromNode(col.ast, tables);
|
|
205
|
-
}
|
|
206
|
-
});
|
|
218
|
+
columns.forEach((col) => processSingleColumn(col, tables));
|
|
207
219
|
}
|
|
208
220
|
else if (typeof columns === "object") {
|
|
209
221
|
extractTablesFromNode(columns, tables);
|
|
@@ -235,13 +247,16 @@ function processUnionNode(unionNode, tables) {
|
|
|
235
247
|
if (!unionNode) {
|
|
236
248
|
return;
|
|
237
249
|
}
|
|
238
|
-
const
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
250
|
+
const unionTypes = [
|
|
251
|
+
"select",
|
|
252
|
+
"union",
|
|
253
|
+
"union_all",
|
|
254
|
+
"union_distinct",
|
|
255
|
+
"intersect",
|
|
256
|
+
"except",
|
|
257
|
+
"minus",
|
|
258
|
+
];
|
|
259
|
+
const isUnionType = unionTypes.includes(unionNode.type);
|
|
245
260
|
if (isUnionType) {
|
|
246
261
|
extractTablesFromNode(unionNode, tables);
|
|
247
262
|
}
|
|
@@ -273,12 +288,15 @@ function processUnion(node, tables) {
|
|
|
273
288
|
* Processes UNION/INTERSECT/EXCEPT operation nodes.
|
|
274
289
|
*/
|
|
275
290
|
function processUnionOperation(node, tables) {
|
|
276
|
-
const
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
291
|
+
const unionOperationTypes = [
|
|
292
|
+
"union",
|
|
293
|
+
"union_all",
|
|
294
|
+
"union_distinct",
|
|
295
|
+
"intersect",
|
|
296
|
+
"except",
|
|
297
|
+
"minus",
|
|
298
|
+
];
|
|
299
|
+
const isUnionOperation = unionOperationTypes.includes(node.type);
|
|
282
300
|
if (!isUnionOperation) {
|
|
283
301
|
return;
|
|
284
302
|
}
|
|
@@ -307,24 +325,24 @@ function processNext(node, tables) {
|
|
|
307
325
|
/**
|
|
308
326
|
* Recursively processes all object properties for any remaining nested structures.
|
|
309
327
|
*/
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
328
|
+
/**
|
|
329
|
+
* Processes array values recursively.
|
|
330
|
+
*/
|
|
331
|
+
function processArrayValues(values, tables) {
|
|
332
|
+
values.forEach((item) => {
|
|
333
|
+
if (item && typeof item === "object") {
|
|
334
|
+
extractTablesFromNode(item, tables);
|
|
335
|
+
}
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Processes object values recursively.
|
|
340
|
+
*/
|
|
341
|
+
function processObjectValues(node, tables) {
|
|
320
342
|
Object.values(node).forEach((value) => {
|
|
321
343
|
if (value && typeof value === "object") {
|
|
322
344
|
if (Array.isArray(value)) {
|
|
323
|
-
value
|
|
324
|
-
if (item && typeof item === "object") {
|
|
325
|
-
extractTablesFromNode(item, tables);
|
|
326
|
-
}
|
|
327
|
-
});
|
|
345
|
+
processArrayValues(value, tables);
|
|
328
346
|
}
|
|
329
347
|
else {
|
|
330
348
|
extractTablesFromNode(value, tables);
|
|
@@ -332,6 +350,67 @@ function processRecursively(node, tables) {
|
|
|
332
350
|
}
|
|
333
351
|
});
|
|
334
352
|
}
|
|
353
|
+
function processRecursively(node, tables) {
|
|
354
|
+
const isColumnRefAlias = node.type === "column_ref" && !node.table;
|
|
355
|
+
const hasName = Boolean(node.name);
|
|
356
|
+
const hasNoTable = !node.table;
|
|
357
|
+
const isNotTableType = node.type !== "table" && node.type !== "dual";
|
|
358
|
+
const isShortName = hasName && node.name.length <= 2;
|
|
359
|
+
const isShortNameAlias = hasName && hasNoTable && isNotTableType && isShortName;
|
|
360
|
+
const isLikelyAlias = isColumnRefAlias || isShortNameAlias;
|
|
361
|
+
if (isLikelyAlias || Array.isArray(node)) {
|
|
362
|
+
return;
|
|
363
|
+
}
|
|
364
|
+
processObjectValues(node, tables);
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* Processes DML statement types (UPDATE, INSERT, DELETE).
|
|
368
|
+
*/
|
|
369
|
+
function processDmlStatements(node, tables) {
|
|
370
|
+
if (node.type === "update" && node.table) {
|
|
371
|
+
extractTablesFromNode(node.table, tables);
|
|
372
|
+
}
|
|
373
|
+
else if (node.type === "insert" && node.table) {
|
|
374
|
+
extractTablesFromNode(node.table, tables);
|
|
375
|
+
}
|
|
376
|
+
else if (node.type === "delete" && node.from) {
|
|
377
|
+
extractTablesFromNode(node.from, tables);
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Processes SELECT-specific clauses (WHERE, HAVING, ORDER BY, GROUP BY).
|
|
382
|
+
*/
|
|
383
|
+
function processSelectClauses(node, tables) {
|
|
384
|
+
if (node.where) {
|
|
385
|
+
extractTablesFromNode(node.where, tables);
|
|
386
|
+
}
|
|
387
|
+
if (node.having) {
|
|
388
|
+
extractTablesFromNode(node.having, tables);
|
|
389
|
+
}
|
|
390
|
+
processOrderByOrGroupBy(node.orderby || node.order_by, tables);
|
|
391
|
+
processOrderByOrGroupBy(node.groupby || node.group_by, tables);
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* Processes subquery and SELECT statement types.
|
|
395
|
+
*/
|
|
396
|
+
function processSubqueryAndSelect(node, tables) {
|
|
397
|
+
if (node.type === "subquery" || node.type === "select") {
|
|
398
|
+
if (node.ast) {
|
|
399
|
+
extractTablesFromNode(node.ast, tables);
|
|
400
|
+
}
|
|
401
|
+
if (node.from) {
|
|
402
|
+
extractTablesFromNode(node.from, tables);
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
/**
|
|
407
|
+
* Processes set operations (UNION, INTERSECT, EXCEPT).
|
|
408
|
+
*/
|
|
409
|
+
function processSetOperations(node, tables) {
|
|
410
|
+
processUnion(node, tables);
|
|
411
|
+
processUnionOperation(node, tables);
|
|
412
|
+
processNext(node, tables);
|
|
413
|
+
}
|
|
335
414
|
/**
|
|
336
415
|
* Recursively extracts table names from SQL AST node.
|
|
337
416
|
* Handles regular tables, CTEs, subqueries, and complex query structures.
|
|
@@ -349,47 +428,16 @@ function extractTablesFromNode(node, tables) {
|
|
|
349
428
|
processCTE(node, tables);
|
|
350
429
|
// Extract tables from FROM and JOIN clauses
|
|
351
430
|
processFromAndJoin(node, tables);
|
|
352
|
-
// Handle subqueries
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
}
|
|
357
|
-
if (node.from) {
|
|
358
|
-
extractTablesFromNode(node.from, tables);
|
|
359
|
-
}
|
|
360
|
-
}
|
|
361
|
-
// Extract tables from WHERE clause (may contain subqueries)
|
|
362
|
-
if (node.where) {
|
|
363
|
-
extractTablesFromNode(node.where, tables);
|
|
364
|
-
}
|
|
431
|
+
// Handle subqueries and SELECT statements
|
|
432
|
+
processSubqueryAndSelect(node, tables);
|
|
433
|
+
// Process SELECT-specific clauses
|
|
434
|
+
processSelectClauses(node, tables);
|
|
365
435
|
// Extract tables from SELECT columns (may contain subqueries)
|
|
366
436
|
processSelectColumns(node, tables);
|
|
367
|
-
//
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
// Extract tables from ORDER BY clause (may contain subqueries)
|
|
372
|
-
processOrderByOrGroupBy(node.orderby || node.order_by, tables);
|
|
373
|
-
// Extract tables from GROUP BY clause (may contain subqueries)
|
|
374
|
-
processOrderByOrGroupBy(node.groupby || node.group_by, tables);
|
|
375
|
-
// Extract tables from UPDATE statement
|
|
376
|
-
if (node.type === "update" && node.table) {
|
|
377
|
-
extractTablesFromNode(node.table, tables);
|
|
378
|
-
}
|
|
379
|
-
// Extract tables from INSERT statement
|
|
380
|
-
if (node.type === "insert" && node.table) {
|
|
381
|
-
extractTablesFromNode(node.table, tables);
|
|
382
|
-
}
|
|
383
|
-
// Extract tables from DELETE statement
|
|
384
|
-
if (node.type === "delete" && node.from) {
|
|
385
|
-
extractTablesFromNode(node.from, tables);
|
|
386
|
-
}
|
|
387
|
-
// Extract tables from UNION operations
|
|
388
|
-
processUnion(node, tables);
|
|
389
|
-
// Handle node types for UNION/INTERSECT/EXCEPT operations
|
|
390
|
-
processUnionOperation(node, tables);
|
|
391
|
-
// Handle _next property (alternative UNION structure)
|
|
392
|
-
processNext(node, tables);
|
|
437
|
+
// Process DML statements (UPDATE, INSERT, DELETE)
|
|
438
|
+
processDmlStatements(node, tables);
|
|
439
|
+
// Process set operations (UNION, INTERSECT, EXCEPT)
|
|
440
|
+
processSetOperations(node, tables);
|
|
393
441
|
// Recursively process all object properties
|
|
394
442
|
processRecursively(node, tables);
|
|
395
443
|
}
|
|
@@ -401,6 +449,29 @@ function extractTablesFromNode(node, tables) {
|
|
|
401
449
|
* @param options - ForgeSQL ORM options for logging
|
|
402
450
|
* @returns Comma-separated string of unique table names in backticks
|
|
403
451
|
*/
|
|
452
|
+
/**
|
|
453
|
+
* Formats table names as backticked comma-separated string.
|
|
454
|
+
*/
|
|
455
|
+
function formatBacktickedValues(tables) {
|
|
456
|
+
return Array.from(tables)
|
|
457
|
+
.sort((a, b) => a.localeCompare(b, undefined, { sensitivity: "base", numeric: true }))
|
|
458
|
+
.map((table) => `\`${table}\``)
|
|
459
|
+
.join(",");
|
|
460
|
+
}
|
|
461
|
+
/**
|
|
462
|
+
* Extracts table names using regex fallback.
|
|
463
|
+
*/
|
|
464
|
+
function extractTablesWithRegex(sql) {
|
|
465
|
+
const regex = /`([^`]+)`/g;
|
|
466
|
+
const matches = new Set();
|
|
467
|
+
let match;
|
|
468
|
+
while ((match = regex.exec(sql.toLowerCase())) !== null) {
|
|
469
|
+
if (!match[1].startsWith("a_")) {
|
|
470
|
+
matches.add(match[1]);
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
return matches;
|
|
474
|
+
}
|
|
404
475
|
function extractBacktickedValues(sql, options) {
|
|
405
476
|
// Try to use node-sql-parser first
|
|
406
477
|
try {
|
|
@@ -413,11 +484,7 @@ function extractBacktickedValues(sql, options) {
|
|
|
413
484
|
extractTablesFromNode(statement, tables);
|
|
414
485
|
});
|
|
415
486
|
if (tables.size > 0) {
|
|
416
|
-
|
|
417
|
-
const backtickedValues = Array.from(tables)
|
|
418
|
-
.sort((a, b) => a.localeCompare(b, undefined, { sensitivity: "base", numeric: true }))
|
|
419
|
-
.map((table) => `\`${table}\``)
|
|
420
|
-
.join(",");
|
|
487
|
+
const backtickedValues = formatBacktickedValues(tables);
|
|
421
488
|
if (options.logCache) {
|
|
422
489
|
// eslint-disable-next-line no-console
|
|
423
490
|
console.warn(`Extracted backticked values: ${backtickedValues}`);
|
|
@@ -434,17 +501,7 @@ function extractBacktickedValues(sql, options) {
|
|
|
434
501
|
// This handles cases where node-sql-parser doesn't support the SQL syntax
|
|
435
502
|
}
|
|
436
503
|
// Fallback to regex-based extraction (original logic)
|
|
437
|
-
const
|
|
438
|
-
|
|
439
|
-
let match;
|
|
440
|
-
while ((match = regex.exec(sql.toLowerCase())) !== null) {
|
|
441
|
-
if (!match[1].startsWith("a_")) {
|
|
442
|
-
matches.add(`\`${match[1]}\``);
|
|
443
|
-
}
|
|
444
|
-
}
|
|
445
|
-
// Sort to ensure consistent order for the same input
|
|
446
|
-
return Array.from(matches)
|
|
447
|
-
.sort((a, b) => a.localeCompare(b, undefined, { sensitivity: "base", numeric: true }))
|
|
448
|
-
.join(",");
|
|
504
|
+
const matches = extractTablesWithRegex(sql);
|
|
505
|
+
return formatBacktickedValues(matches);
|
|
449
506
|
}
|
|
450
507
|
//# sourceMappingURL=cacheTableUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cacheTableUtils.js","sourceRoot":"","sources":["../../src/utils/cacheTableUtils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cacheTableUtils.js","sourceRoot":"","sources":["../../src/utils/cacheTableUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forgeDriverProxy.d.ts","sourceRoot":"","sources":["../../src/utils/forgeDriverProxy.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"forgeDriverProxy.d.ts","sourceRoot":"","sources":["../../src/utils/forgeDriverProxy.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAoDjE;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,iBAAiB,EACpC,OAAO,CAAC,EAAE,QAAQ,EAClB,cAAc,CAAC,EAAE,OAAO,IAGtB,OAAO,MAAM,EACb,QAAQ,GAAG,EAAE,EACb,QAAQ,KAAK,GAAG,SAAS,KACxB,OAAO,CAAC;IACT,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC,CA+BH"}
|
|
@@ -15,6 +15,34 @@ const QUERY_ERROR_CODES = {
|
|
|
15
15
|
* Delay to wait for CLUSTER_STATEMENTS_SUMMARY to be populated
|
|
16
16
|
*/
|
|
17
17
|
const STATEMENTS_SUMMARY_DELAY_MS = 200;
|
|
18
|
+
/**
|
|
19
|
+
* Checks if error is a timeout or out-of-memory error.
|
|
20
|
+
*/
|
|
21
|
+
function isQueryError(error) {
|
|
22
|
+
const isTimeout = error?.code === QUERY_ERROR_CODES.TIMEOUT;
|
|
23
|
+
const isOutOfMemory = error?.context?.debug?.errno === QUERY_ERROR_CODES.OUT_OF_MEMORY_ERRNO;
|
|
24
|
+
return { isTimeout, isOutOfMemory };
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Handles timeout or out-of-memory errors by analyzing the query.
|
|
28
|
+
*/
|
|
29
|
+
async function handleQueryError(queryStartTime, forgeSqlOperation, isTimeout) {
|
|
30
|
+
// Wait for CLUSTER_STATEMENTS_SUMMARY to be populated with our failed query data
|
|
31
|
+
await new Promise((resolve) => setTimeout(resolve, STATEMENTS_SUMMARY_DELAY_MS));
|
|
32
|
+
const queryEndTime = Date.now();
|
|
33
|
+
const queryDuration = queryEndTime - queryStartTime;
|
|
34
|
+
const errorType = isTimeout ? "TIMEOUT" : "OOM";
|
|
35
|
+
if (isTimeout) {
|
|
36
|
+
// eslint-disable-next-line no-console
|
|
37
|
+
console.error(` TIMEOUT detected - Query exceeded time limit`);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
// eslint-disable-next-line no-console
|
|
41
|
+
console.error(`OUT OF MEMORY detected - Query exceeded memory limit`);
|
|
42
|
+
}
|
|
43
|
+
// Analyze the failed query using CLUSTER_STATEMENTS_SUMMARY
|
|
44
|
+
await (0, sqlUtils_1.handleErrorsWithPlan)(forgeSqlOperation, queryDuration, errorType);
|
|
45
|
+
}
|
|
18
46
|
/**
|
|
19
47
|
* Creates a proxy for the forgeDriver that injects SQL hints and handles query analysis
|
|
20
48
|
* @param forgeSqlOperation - The ForgeSQL operation instance
|
|
@@ -36,26 +64,9 @@ function createForgeDriverProxy(forgeSqlOperation, options, logRawSqlQuery) {
|
|
|
36
64
|
return await (0, forgeDriver_1.forgeDriver)(modifiedQuery, params, method);
|
|
37
65
|
}
|
|
38
66
|
catch (error) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
if (isTimeoutError || isOutOfMemoryError) {
|
|
43
|
-
// Wait for CLUSTER_STATEMENTS_SUMMARY to be populated with our failed query data
|
|
44
|
-
await new Promise((resolve) => setTimeout(resolve, STATEMENTS_SUMMARY_DELAY_MS));
|
|
45
|
-
const queryEndTime = Date.now();
|
|
46
|
-
const queryDuration = queryEndTime - queryStartTime;
|
|
47
|
-
let errorType = "TIMEOUT";
|
|
48
|
-
if (isTimeoutError) {
|
|
49
|
-
// eslint-disable-next-line no-console
|
|
50
|
-
console.error(` TIMEOUT detected - Query exceeded time limit`);
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
// eslint-disable-next-line no-console
|
|
54
|
-
console.error(`OUT OF MEMORY detected - Query exceeded memory limit`);
|
|
55
|
-
errorType = "OOM";
|
|
56
|
-
}
|
|
57
|
-
// Analyze the failed query using CLUSTER_STATEMENTS_SUMMARY
|
|
58
|
-
await (0, sqlUtils_1.handleErrorsWithPlan)(forgeSqlOperation, queryDuration, errorType);
|
|
67
|
+
const { isTimeout, isOutOfMemory } = isQueryError(error);
|
|
68
|
+
if (isTimeout || isOutOfMemory) {
|
|
69
|
+
await handleQueryError(queryStartTime, forgeSqlOperation, isTimeout);
|
|
59
70
|
}
|
|
60
71
|
// Log SQL error details if requested
|
|
61
72
|
if (logRawSqlQuery) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forgeDriverProxy.js","sourceRoot":"","sources":["../../src/utils/forgeDriverProxy.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"forgeDriverProxy.js","sourceRoot":"","sources":["../../src/utils/forgeDriverProxy.ts"],"names":[],"mappings":";;AA6DA,wDA4CC;AAzGD,+CAA4C;AAC5C,yCAAsD;AAEtD,yCAAkD;AAElD;;GAEG;AACH,MAAM,iBAAiB,GAAG;IACxB,OAAO,EAAE,mBAAmB;IAC5B,mBAAmB,EAAE,IAAI;CACjB,CAAC;AAEX;;GAEG;AACH,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAExC;;GAEG;AACH,SAAS,YAAY,CAAC,KAAU;IAC9B,MAAM,SAAS,GAAG,KAAK,EAAE,IAAI,KAAK,iBAAiB,CAAC,OAAO,CAAC;IAC5D,MAAM,aAAa,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,KAAK,iBAAiB,CAAC,mBAAmB,CAAC;IAC7F,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAC7B,cAAsB,EACtB,iBAAoC,EACpC,SAAkB;IAElB,iFAAiF;IACjF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAEjF,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAChC,MAAM,aAAa,GAAG,YAAY,GAAG,cAAc,CAAC;IACpD,MAAM,SAAS,GAAsB,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;IAEnE,IAAI,SAAS,EAAE,CAAC;QACd,sCAAsC;QACtC,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACjE,CAAC;SAAM,CAAC;QACN,sCAAsC;QACtC,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;IACxE,CAAC;IAED,4DAA4D;IAC5D,MAAM,IAAA,+BAAoB,EAAC,iBAAiB,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,sBAAsB,CACpC,iBAAoC,EACpC,OAAkB,EAClB,cAAwB;IAExB,OAAO,KAAK,EACV,KAAa,EACb,MAAa,EACb,MAAyB,EAKxB,EAAE;QACH,kCAAkC;QAClC,MAAM,aAAa,GAAG,IAAA,yBAAc,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAErD,IAAI,OAAO,IAAI,cAAc,IAAI,aAAa,KAAK,KAAK,EAAE,CAAC;YACzD,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,uBAAuB,aAAa,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAElC,IAAI,CAAC;YACH,wCAAwC;YACxC,OAAO,MAAM,IAAA,yBAAW,EAAC,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;YAEzD,IAAI,SAAS,IAAI,aAAa,EAAE,CAAC;gBAC/B,MAAM,gBAAgB,CAAC,cAAc,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;YACvE,CAAC;YAED,qCAAqC;YACrC,IAAI,cAAc,EAAE,CAAC;gBACnB,sCAAsC;gBACtC,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACtE,CAAC;YAED,8BAA8B;YAC9B,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlHints.d.ts","sourceRoot":"","sources":["../../src/utils/sqlHints.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"sqlHints.d.ts","sourceRoot":"","sources":["../../src/utils/sqlHints.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ,GAAG,MAAM,CAqCtE"}
|
package/dist/utils/sqlHints.js
CHANGED
|
@@ -13,40 +13,30 @@ function injectSqlHints(query, hints) {
|
|
|
13
13
|
}
|
|
14
14
|
// Normalize the query for easier matching
|
|
15
15
|
const normalizedQuery = query.trim().toUpperCase();
|
|
16
|
-
//
|
|
16
|
+
// Map query types to their hints
|
|
17
|
+
const queryTypeMap = {
|
|
18
|
+
SELECT: hints.select,
|
|
19
|
+
INSERT: hints.insert,
|
|
20
|
+
UPDATE: hints.update,
|
|
21
|
+
DELETE: hints.delete,
|
|
22
|
+
};
|
|
23
|
+
// Find matching query type and get hints
|
|
17
24
|
let queryHints;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
queryHints = hints.update;
|
|
26
|
-
}
|
|
27
|
-
else if (normalizedQuery.startsWith("DELETE")) {
|
|
28
|
-
queryHints = hints.delete;
|
|
25
|
+
let queryPrefix = null;
|
|
26
|
+
for (const [type, typeHints] of Object.entries(queryTypeMap)) {
|
|
27
|
+
if (normalizedQuery.startsWith(type)) {
|
|
28
|
+
queryPrefix = type;
|
|
29
|
+
queryHints = typeHints;
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
29
32
|
}
|
|
30
33
|
// If no hints for this query type, return original query
|
|
31
|
-
if (!queryHints || queryHints.length === 0) {
|
|
34
|
+
if (!queryHints || queryHints.length === 0 || !queryPrefix) {
|
|
32
35
|
return query;
|
|
33
36
|
}
|
|
34
|
-
// Join all hints with spaces
|
|
37
|
+
// Join all hints with spaces and inject into query
|
|
35
38
|
const hintsString = queryHints.join(" ");
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
return `SELECT /*+ ${hintsString} */ ${query.substring(6)}`;
|
|
39
|
-
}
|
|
40
|
-
else if (normalizedQuery.startsWith("INSERT")) {
|
|
41
|
-
return `INSERT /*+ ${hintsString} */ ${query.substring(6)}`;
|
|
42
|
-
}
|
|
43
|
-
else if (normalizedQuery.startsWith("UPDATE")) {
|
|
44
|
-
return `UPDATE /*+ ${hintsString} */ ${query.substring(6)}`;
|
|
45
|
-
}
|
|
46
|
-
else if (normalizedQuery.startsWith("DELETE")) {
|
|
47
|
-
return `DELETE /*+ ${hintsString} */ ${query.substring(6)}`;
|
|
48
|
-
}
|
|
49
|
-
// If no match found, return original query
|
|
50
|
-
return query;
|
|
39
|
+
const prefixLength = queryPrefix.length;
|
|
40
|
+
return `${queryPrefix} /*+ ${hintsString} */ ${query.substring(prefixLength)}`;
|
|
51
41
|
}
|
|
52
42
|
//# sourceMappingURL=sqlHints.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlHints.js","sourceRoot":"","sources":["../../src/utils/sqlHints.ts"],"names":[],"mappings":";;AAoBA,
|
|
1
|
+
{"version":3,"file":"sqlHints.js","sourceRoot":"","sources":["../../src/utils/sqlHints.ts"],"names":[],"mappings":";;AAoBA,wCAqCC;AA3CD;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,KAAa,EAAE,KAAgB;IAC5D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;IAED,0CAA0C;IAC1C,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAEnD,iCAAiC;IACjC,MAAM,YAAY,GAAyC;QACzD,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;KACrB,CAAC;IAEF,yCAAyC;IACzC,IAAI,UAAgC,CAAC;IACrC,IAAI,WAAW,GAAkB,IAAI,CAAC;IAEtC,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7D,IAAI,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,WAAW,GAAG,IAAI,CAAC;YACnB,UAAU,GAAG,SAAS,CAAC;YACvB,MAAM;QACR,CAAC;IACH,CAAC;IAED,yDAAyD;IACzD,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,mDAAmD;IACnD,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC;IACxC,OAAO,GAAG,WAAW,QAAQ,WAAW,OAAO,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;AACjF,CAAC"}
|