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.
Files changed (44) hide show
  1. package/README.md +6 -2
  2. package/dist/core/ForgeSQLAnalyseOperations.d.ts +4 -0
  3. package/dist/core/ForgeSQLAnalyseOperations.d.ts.map +1 -1
  4. package/dist/core/ForgeSQLAnalyseOperations.js +17 -21
  5. package/dist/core/ForgeSQLAnalyseOperations.js.map +1 -1
  6. package/dist/core/ForgeSQLCrudOperations.d.ts +16 -0
  7. package/dist/core/ForgeSQLCrudOperations.d.ts.map +1 -1
  8. package/dist/core/ForgeSQLCrudOperations.js +60 -28
  9. package/dist/core/ForgeSQLCrudOperations.js.map +1 -1
  10. package/dist/core/ForgeSQLQueryBuilder.d.ts +15 -28
  11. package/dist/core/ForgeSQLQueryBuilder.d.ts.map +1 -1
  12. package/dist/core/ForgeSQLQueryBuilder.js +20 -47
  13. package/dist/core/ForgeSQLQueryBuilder.js.map +1 -1
  14. package/dist/core/Rovo.d.ts +32 -0
  15. package/dist/core/Rovo.d.ts.map +1 -1
  16. package/dist/core/Rovo.js +116 -67
  17. package/dist/core/Rovo.js.map +1 -1
  18. package/dist/lib/drizzle/extensions/additionalActions.d.ts.map +1 -1
  19. package/dist/lib/drizzle/extensions/additionalActions.js +168 -118
  20. package/dist/lib/drizzle/extensions/additionalActions.js.map +1 -1
  21. package/dist/utils/cacheTableUtils.d.ts +0 -8
  22. package/dist/utils/cacheTableUtils.d.ts.map +1 -1
  23. package/dist/utils/cacheTableUtils.js +183 -126
  24. package/dist/utils/cacheTableUtils.js.map +1 -1
  25. package/dist/utils/forgeDriverProxy.d.ts.map +1 -1
  26. package/dist/utils/forgeDriverProxy.js +31 -20
  27. package/dist/utils/forgeDriverProxy.js.map +1 -1
  28. package/dist/utils/sqlHints.d.ts.map +1 -1
  29. package/dist/utils/sqlHints.js +19 -29
  30. package/dist/utils/sqlHints.js.map +1 -1
  31. package/dist/utils/sqlUtils.d.ts +0 -29
  32. package/dist/utils/sqlUtils.d.ts.map +1 -1
  33. package/dist/utils/sqlUtils.js +107 -78
  34. package/dist/utils/sqlUtils.js.map +1 -1
  35. package/package.json +13 -13
  36. package/src/core/ForgeSQLAnalyseOperations.ts +18 -21
  37. package/src/core/ForgeSQLCrudOperations.ts +83 -33
  38. package/src/core/ForgeSQLQueryBuilder.ts +59 -154
  39. package/src/core/Rovo.ts +158 -98
  40. package/src/lib/drizzle/extensions/additionalActions.ts +287 -382
  41. package/src/utils/cacheTableUtils.ts +202 -144
  42. package/src/utils/forgeDriverProxy.ts +39 -21
  43. package/src/utils/sqlHints.ts +21 -26
  44. 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
- value.type === "backticks_quote_string" &&
16
- typeof value.value === "string") {
17
- return value.value === "dual" ? null : value.value.toLowerCase();
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
- const fromTable = node.table
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
- const tableName = normalizeTableName(node.table, `node.table (type: ${node.type})`);
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 isUnionType = unionNode.type === "select" ||
239
- unionNode.type === "union" ||
240
- unionNode.type === "union_all" ||
241
- unionNode.type === "union_distinct" ||
242
- unionNode.type === "intersect" ||
243
- unionNode.type === "except" ||
244
- unionNode.type === "minus";
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 isUnionOperation = node.type === "union" ||
277
- node.type === "union_all" ||
278
- node.type === "union_distinct" ||
279
- node.type === "intersect" ||
280
- node.type === "except" ||
281
- node.type === "minus";
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
- function processRecursively(node, tables) {
311
- const isLikelyAlias = (node.type === "column_ref" && !node.table) ||
312
- (node.name &&
313
- !node.table &&
314
- node.type !== "table" &&
315
- node.type !== "dual" &&
316
- node.name.length <= 2);
317
- if (isLikelyAlias || Array.isArray(node)) {
318
- return;
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.forEach((item) => {
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 explicitly
353
- if (node.type === "subquery" || node.type === "select") {
354
- if (node.ast) {
355
- extractTablesFromNode(node.ast, tables);
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
- // Extract tables from HAVING clause (may contain subqueries)
368
- if (node.having) {
369
- extractTablesFromNode(node.having, tables);
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
- // Sort to ensure consistent order for the same input
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 regex = /`([^`]+)`/g;
438
- const matches = new Set();
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;AAgBjE;;;;;;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,CAiDH"}
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
- // Check if this is a timeout or out-of-memory error that we want to analyze
40
- const isTimeoutError = error.code === QUERY_ERROR_CODES.TIMEOUT;
41
- const isOutOfMemoryError = error?.context?.debug?.errno === QUERY_ERROR_CODES.OUT_OF_MEMORY_ERRNO;
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":";;AAyBA,wDA8DC;AAvFD,+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;;;;;;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,4EAA4E;YAC5E,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC,OAAO,CAAC;YAChE,MAAM,kBAAkB,GACtB,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,KAAK,iBAAiB,CAAC,mBAAmB,CAAC;YAEzE,IAAI,cAAc,IAAI,kBAAkB,EAAE,CAAC;gBACzC,iFAAiF;gBACjF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC,CAAC;gBAEjF,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAChC,MAAM,aAAa,GAAG,YAAY,GAAG,cAAc,CAAC;gBACpD,IAAI,SAAS,GAAsB,SAAS,CAAC;gBAC7C,IAAI,cAAc,EAAE,CAAC;oBACnB,sCAAsC;oBACtC,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;gBACjE,CAAC;qBAAM,CAAC;oBACN,sCAAsC;oBACtC,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;oBACtE,SAAS,GAAG,KAAK,CAAC;gBACpB,CAAC;gBACD,4DAA4D;gBAC5D,MAAM,IAAA,+BAAoB,EAAC,iBAAiB,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;YAC1E,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
+ {"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,CA0CtE"}
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"}
@@ -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
- // Get the appropriate hints based on query type
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
- if (normalizedQuery.startsWith("SELECT")) {
19
- queryHints = hints.select;
20
- }
21
- else if (normalizedQuery.startsWith("INSERT")) {
22
- queryHints = hints.insert;
23
- }
24
- else if (normalizedQuery.startsWith("UPDATE")) {
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
- // Inject hints into the query
37
- if (normalizedQuery.startsWith("SELECT")) {
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,wCA0CC;AAhDD;;;;;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,gDAAgD;IAChD,IAAI,UAAgC,CAAC;IAErC,IAAI,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,CAAC;SAAM,IAAI,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,CAAC;SAAM,IAAI,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,CAAC;SAAM,IAAI,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,yDAAyD;IACzD,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,6BAA6B;IAC7B,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEzC,8BAA8B;IAC9B,IAAI,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,OAAO,cAAc,WAAW,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,CAAC;SAAM,IAAI,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,OAAO,cAAc,WAAW,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,CAAC;SAAM,IAAI,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,OAAO,cAAc,WAAW,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,CAAC;SAAM,IAAI,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,OAAO,cAAc,WAAW,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,CAAC;IAED,2CAA2C;IAC3C,OAAO,KAAK,CAAC;AACf,CAAC"}
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"}