@checkdigit/eslint-plugin 7.18.0-PR.143-c067 → 7.18.0-PR.143-2d5f
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/dist-mjs/athena/athena.mjs +20 -5
- package/dist-mjs/athena/visitor.mjs +5 -1
- package/package.json +1 -1
- package/src/athena/athena.ts +22 -10
- package/src/athena/visitor.ts +5 -0
|
@@ -20,6 +20,7 @@ import {
|
|
|
20
20
|
hasFunctionCalls,
|
|
21
21
|
isBaseFrom,
|
|
22
22
|
isJoin,
|
|
23
|
+
isTableExpr,
|
|
23
24
|
isUnnestFrom
|
|
24
25
|
} from "./visitor.mjs";
|
|
25
26
|
var ruleId = "athena";
|
|
@@ -114,6 +115,11 @@ function resolveFromClause(select, ctx) {
|
|
|
114
115
|
if (isUnnestFrom(item)) {
|
|
115
116
|
continue;
|
|
116
117
|
}
|
|
118
|
+
if (isTableExpr(item)) {
|
|
119
|
+
const alias2 = typeof item.as === "string" ? item.as : "<subquery>";
|
|
120
|
+
checkSelect(item.expr.ast, ctx, alias2);
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
117
123
|
if (isJoin(item)) {
|
|
118
124
|
const { table: tableName2, as: alias2 } = item;
|
|
119
125
|
if (alias2 !== null) {
|
|
@@ -237,10 +243,12 @@ function navigateSchemaPath(colRef, propertyAccessor, resolvedColumns, colName,
|
|
|
237
243
|
extractedSchemas.map((schema) => resolvedCol(colName, schema, columnAST))
|
|
238
244
|
);
|
|
239
245
|
}
|
|
240
|
-
function lookupColumnOrThrow(colRef, ref, referencedTables
|
|
246
|
+
function lookupColumnOrThrow(colRef, ref, referencedTables) {
|
|
241
247
|
const resolvedColumns = referencedTables.flatMap((table) => table.columns.get(colRef) ?? []);
|
|
242
248
|
if (resolvedColumns.length === 0) {
|
|
243
|
-
const tableNames = [
|
|
249
|
+
const tableNames = [
|
|
250
|
+
...new Set(referencedTables.map((referenceTable) => referenceTable.name ?? "<anonymous>"))
|
|
251
|
+
].join(", ");
|
|
244
252
|
const availableCols = [...new Set(referencedTables.flatMap((table) => [...table.columns.keys()]))].join(", ");
|
|
245
253
|
throw new AthenaError(
|
|
246
254
|
ATHENA_ERROR,
|
|
@@ -271,7 +279,7 @@ function checkColumnRefsExist(ast, allTables, ctx, selectColumns) {
|
|
|
271
279
|
ref
|
|
272
280
|
);
|
|
273
281
|
}
|
|
274
|
-
lookupColumnOrThrow(colRef, ref, referencedTables
|
|
282
|
+
lookupColumnOrThrow(colRef, ref, referencedTables);
|
|
275
283
|
}
|
|
276
284
|
}
|
|
277
285
|
function validateComplexColumnExpression(columnAST, allTables, ctx) {
|
|
@@ -307,7 +315,7 @@ function resolveSingleColumnRef(columnAST, columnAlias, indexedName, ref, allTab
|
|
|
307
315
|
}
|
|
308
316
|
const withFunctions = hasFunctionCalls(columnAST);
|
|
309
317
|
const colName = columnAlias ?? (withFunctions ? indexedName : colRef);
|
|
310
|
-
const resolvedColumns = lookupColumnOrThrow(colRef, ref, referencedTables
|
|
318
|
+
const resolvedColumns = lookupColumnOrThrow(colRef, ref, referencedTables);
|
|
311
319
|
const propertyAccessor = extractJsonExtractPath(columnAST) ?? extractBracketAccessorPath(columnAST);
|
|
312
320
|
if (propertyAccessor !== void 0) {
|
|
313
321
|
navigateSchemaPath(colRef, propertyAccessor, resolvedColumns, colName, columnAST, columns);
|
|
@@ -348,6 +356,13 @@ function checkSelect(selectAST, ctx, withTableName) {
|
|
|
348
356
|
applyUnnestPost(deferredUnnest, columns);
|
|
349
357
|
log("resolved columns", [...columns.keys()]);
|
|
350
358
|
const allTables = [...selectCtx.tables.values()].flat();
|
|
359
|
+
for (const item of fromClauseItems(select)) {
|
|
360
|
+
const onExpr = item.on;
|
|
361
|
+
if (onExpr !== void 0) {
|
|
362
|
+
checkColumnRefsExist(onExpr, allTables, selectCtx);
|
|
363
|
+
validateComplexColumnExpression(onExpr, allTables, selectCtx);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
351
366
|
if (select.where !== null) {
|
|
352
367
|
checkColumnRefsExist(select.where, allTables, selectCtx);
|
|
353
368
|
validateComplexColumnExpression(select.where, allTables, selectCtx);
|
|
@@ -486,4 +501,4 @@ export {
|
|
|
486
501
|
athena_default as default,
|
|
487
502
|
ruleId
|
|
488
503
|
};
|
|
489
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2F0aGVuYS9hdGhlbmEudHMiXSwKICAibWFwcGluZ3MiOiAiO0FBVUEsU0FBUyxVQUFVLGNBQWM7QUFFakMsT0FBTyxXQUFXO0FBQ2xCLFNBQVMsZ0JBQWdCO0FBQ3pCLFNBQVMsZ0JBQWdCLG1CQUFrQztBQUczRCxTQUFTLGFBQWE7QUFFdEIsU0FBUyxnQkFBZ0I7QUFDekIsU0FBUyxpQkFBaUI7QUFDMUI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BSUs7QUFDUCxTQUFTLDBCQUEwQjtBQUNuQztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFFQSxJQUFNLFNBQVM7QUFFdEIsSUFBTSxNQUFNLE1BQU0sc0JBQXNCO0FBQ3hDLElBQU0sYUFBYSxZQUFZLFlBQVksQ0FBQyxTQUFTLElBQUk7QUFFekQsSUFBTSxnQkFBZ0I7QUFDdEIsSUFBTSxlQUFlO0FBRXJCLElBQU0sY0FBTixjQUEwQixNQUFNO0FBQUEsRUFDdkI7QUFBQSxFQUNBO0FBQUEsRUFDUCxZQUFZLE1BQWMsU0FBaUIsS0FBYztBQUN2RCxVQUFNLE9BQU87QUFDYixTQUFLLE9BQU87QUFDWixTQUFLLE9BQU87QUFDWixRQUFJLFFBQVEsUUFBVztBQUNyQixXQUFLLE1BQU07QUFBQSxJQUNiO0FBQUEsRUFDRjtBQUNGO0FBR0EsU0FBUyxZQUFZLE1BQWMsUUFBa0Q7QUFDbkYsUUFBTSxTQUFTLEtBQUssTUFBTSxHQUFHLE1BQU07QUFDbkMsUUFBTSxRQUFRLE9BQU8sTUFBTSxJQUFJO0FBQy9CLFNBQU8sRUFBRSxNQUFNLE1BQU0sUUFBUSxRQUFRLE1BQU0sTUFBTSxTQUFTLENBQUMsR0FBRyxVQUFVLEVBQUU7QUFDNUU7QUFXQSxTQUFTLGdCQUFnQixTQUE0QztBQUNuRSxNQUFJLFFBQVEsU0FBUyxlQUFlLGlCQUFpQjtB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QUFBQSxZQUNYLE1BQU0sRUFBRSxjQUFlLE1BQWdCLFFBQVE7QUFBQSxVQUNqRCxDQUFDO0FBQUEsUUFDSDtBQUNBO0FBQUEsTUFDRjtBQUNBLFlBQU0sWUFBWSxrQkFBa0I7QUFDcEMsVUFBSTtBQUVGLHVCQUFlLE1BQU0sUUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTO0FBQUEsTUFDN0QsU0FBUyxPQUFPO0FBQ2QsWUFBSSw2QkFBNkIsRUFBRSxPQUFPLElBQUksQ0FBQztBQUMvQyxZQUFJLGlCQUFpQixhQUFhO0FBQ2hDLGdCQUFNLFNBQVUsTUFBTSxLQUNsQjtBQUNKLGNBQUksV0FBVyxRQUFXO0FBQ3hCLGtCQUFNLGFBQWEsUUFBUSxXQUFXLFFBQVE7QUFDOUMsb0JBQVEsT0FBTztBQUFBLGNBQ2IsS0FBSztBQUFBLGdCQUNILE9BQU8sWUFBWSxZQUFZLGtCQUFrQixPQUFPLE1BQU0sUUFBUSxVQUFVLENBQUM7QUFBQSxnQkFDakYsS0FBSyxZQUFZLFlBQVksa0JBQWtCLE9BQU8sSUFBSSxRQUFRLFVBQVUsQ0FBQztBQUFBLGNBQy9FO0FBQUEsY0FDQSxXQUFXO0FBQUEsY0FDWCxNQUFNLEVBQUUsY0FBYyxNQUFNLFFBQVE7QUFBQSxZQUN0QyxDQUFDO0FBQUEsVUFDSCxPQUFPO0FBQ0wsb0JBQVEsT0FBTztBQUFBLGNBQ2IsTUFBTTtBQUFBLGNBQ04sV0FBVztBQUFBLGNBQ1gsTUFBTSxFQUFFLGNBQWMsTUFBTSxRQUFRO0FBQUEsWUFDdEMsQ0FBQztBQUFBLFVBQ0g7QUFBQSxRQUNGLE9BQU87QUFFTCxrQkFBUSxNQUFNLG1CQUFtQixNQUFNLGNBQWMsUUFBUSxRQUFRLE1BQU0sS0FBSztBQUNoRixrQkFBUSxPQUFPO0FBQUEsWUFDYixNQUFNO0FBQUEsWUFDTixXQUFXO0FBQUEsWUFDWCxNQUFNO0FBQUEsY0FDSixjQUFjLGlCQUFpQixRQUFRLE9BQU8sS0FBSyxJQUFJLEtBQUssVUFBVSxPQUFPLFFBQVcsQ0FBQztBQUFBLFlBQzNGO0FBQUEsVUFDRixDQUFDO0FBQUEsUUFDSDtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBRUEsV0FBTztBQUFBLE1BQ0wsZ0JBQWdCLFNBQVM7QUFDdkIsY0FBTSxNQUFNLFFBQVEsT0FDakIsSUFBSSxDQUFDLFVBQVUsTUFBTSxNQUFNLE1BQU0sRUFDakMsS0FBSyxFQUFFLEVBQ1AsS0FBSztBQUNSLGlCQUFTLEtBQUssT0FBTztBQUFBLE1BQ3ZCO0FBQUEsTUFDQSxRQUFRLFNBQVM7QUFDZixZQUFJLE9BQU8sUUFBUSxVQUFVLFVBQVU7QUFDckM7QUFBQSxRQUNGO0FBQ0EsaUJBQVMsUUFBUSxPQUFPLE9BQU87QUFBQSxNQUNqQztBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0YsQ0FBQztBQUVELElBQU8saUJBQVE7IiwKICAibmFtZXMiOiBbInRhYmxlTmFtZSIsICJhbGlhcyJdCn0K
|
|
504
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2F0aGVuYS9hdGhlbmEudHMiXSwKICAibWFwcGluZ3MiOiAiO0FBVUEsU0FBUyxVQUFVLGNBQWM7QUFFakMsT0FBTyxXQUFXO0FBQ2xCLFNBQVMsZ0JBQWdCO0FBQ3pCLFNBQVMsZ0JBQWdCLG1CQUFrQztBQUczRCxTQUFTLGFBQWE7QUFFdEIsU0FBUyxnQkFBZ0I7QUFDekIsU0FBUyxpQkFBaUI7QUFDMUI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BSUs7QUFDUCxTQUFTLDBCQUEwQjtBQUNuQztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBRUEsSUFBTSxTQUFTO0FBRXRCLElBQU0sTUFBTSxNQUFNLHNCQUFzQjtBQUN4QyxJQUFNLGFBQWEsWUFBWSxZQUFZLENBQUMsU0FBUyxJQUFJO0FBRXpELElBQU0sZ0JBQWdCO0FBQ3RCLElBQU0sZUFBZTtBQUVyQixJQUFNLGNBQU4sY0FBMEIsTUFBTTtBQUFBLEVBQ3ZCO0FBQUEsRUFDQTtBQUFBLEVBQ1AsWUFBWSxNQUFjLFNBQWlCLEtBQWM7QUFDdkQsVUFBTSxPQUFPO0FBQ2IsU0FBSyxPQUFPO0FBQ1osU0FBSyxPQUFPO0FBQ1osUUFBSSxRQUFRLFFBQVc7QUFDckIsV0FBSyxNQUFNO0FBQUEsSUFDYjtBQUFBLEVBQ0Y7QUFDRjtBQUdBLFNBQVMsWUFBWSxNQUFjLFFBQWtEO0FBQ25GLFFBQU0sU0FBUyxLQUFLLE1BQU0sR0FBRyxNQUFNO0FBQ25DLFFBQU0sUUFBUSxPQUFPLE1BQU0sSUFBSTtBQUMvQixTQUFPLEVBQUUsTUFBTSxNQUFNLFFBQVEsUUFBUSxNQUFNLE1BQU0sU0FBUyxDQUFDLEdBQUcsVUFBVSxFQUFFO0FBQzVFO0FBV0EsU0FBUyxnQkFBZ0IsU0FBNEM7QUFDbkUsTUFBSSxRQUFRLFNBQVMsZUFB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
|
|
@@ -88,6 +88,10 @@ function walkExpr(node, visitor) {
|
|
|
88
88
|
}
|
|
89
89
|
break;
|
|
90
90
|
}
|
|
91
|
+
case "array": {
|
|
92
|
+
walkExpr(node.expr_list, visitor);
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
91
95
|
default: {
|
|
92
96
|
if (typed["type"] === void 0 && "expr" in typed) {
|
|
93
97
|
walkExpr(typed["expr"], visitor);
|
|
@@ -267,4 +271,4 @@ export {
|
|
|
267
271
|
isUnnestFrom,
|
|
268
272
|
walk
|
|
269
273
|
};
|
|
270
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
274
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2F0aGVuYS92aXNpdG9yLnRzIl0sCiAgIm1hcHBpbmdzIjogIjtBQUVBLE9BQU8sV0FBVztBQUVsQixJQUFNLE1BQU0sTUFBTSxnQkFBZ0I7QUFpRTNCLFNBQVMsYUFBYSxNQUFtQztBQUM5RCxTQUFPLE9BQU8sU0FBUyxZQUFZLFNBQVMsUUFBUyxLQUE0QixTQUFTO0FBQzVGO0FBRU8sU0FBUyxPQUFPLE1BQTZCO0FBQ2xELFNBQU8sT0FBTyxTQUFTLFlBQVksU0FBUyxRQUFTLEtBQTRCLFNBQVM7QUFDNUY7QUFFTyxTQUFTLFlBQVksTUFBa0M7QUFDNUQsTUFBSSxPQUFPLFNBQVMsWUFBWSxTQUFTLE1BQU07QUFDN0MsV0FBTztBQUFBLEVBQ1Q7QUFDQSxRQUFNLE9BQVEsS0FBNEI7QUFDMUMsU0FBTyxPQUFPLFNBQVMsWUFBWSxTQUFTLFFBQVEsU0FBUztBQUMvRDtBQUVPLFNBQVMsT0FBTyxNQUE2QjtBQUNsRCxTQUNFLENBQUMsYUFBYSxJQUFJLEtBQ2xCLENBQUMsT0FBTyxJQUFJLEtBQ1osQ0FBQyxZQUFZLElBQUksS0FDakIsT0FBTyxTQUFTLFlBQ2hCLFNBQVMsUUFDVCxVQUFVO0FBRWQ7QUFFTyxTQUFTLFdBQVcsTUFBaUM7QUFDMUQsU0FDRSxDQUFDLGFBQWEsSUFBSSxLQUNsQixDQUFDLE9BQU8sSUFBSSxLQUNaLENBQUMsWUFBWSxJQUFJLEtBQ2pCLENBQUMsT0FBTyxJQUFJLEtBQ1osT0FBTyxTQUFTLFlBQ2hCLFNBQVMsUUFDVCxXQUFXO0FBRWY7QUFFTyxTQUFTLGNBQWMsTUFBaUQ7QUFDN0UsUUFBTSxRQUFRO0FBQ2QsU0FBTyxNQUFNLFFBQVEsTUFBTSxXQUFXLEtBQUssTUFBTSxZQUFZLFNBQVM7QUFDeEU7QUFPQSxTQUFTLFNBQVMsTUFBZSxTQUEyQjtBQUMxRCxNQUFJLE9BQU8sU0FBUyxZQUFZLFNBQVMsTUFBTTtBQUM3QztBQUFBLEVBQ0Y7QUFDQSxRQUFNLFFBQVE7QUFFZCxVQUFRLE1BQU0s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
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@checkdigit/eslint-plugin","version":"7.18.0-PR.143-
|
|
1
|
+
{"name":"@checkdigit/eslint-plugin","version":"7.18.0-PR.143-2d5f","description":"Check Digit eslint plugins","keywords":["eslint","eslintplugin"],"homepage":"https://github.com/checkdigit/eslint-plugin#readme","bugs":{"url":"https://github.com/checkdigit/eslint-plugin/issues"},"repository":{"type":"git","url":"https://github.com/checkdigit/eslint-plugin"},"license":"MIT","author":"Check Digit, LLC","sideEffects":false,"type":"module","exports":{".":{"types":"./dist-types/index.d.ts","import":"./dist-mjs/index.mjs","default":"./dist-mjs/index.mjs"}},"files":["src","dist-types","dist-mjs","!src/**/test/**","!src/**/*.test.ts","!src/**/*.spec.ts","!dist-types/**/test/**","!dist-types/**/*.test.d.ts","!dist-types/**/*.spec.d.ts","!dist-mjs/**/test/**","!dist-mjs/**/*.test.mjs","!dist-mjs/**/*.spec.mjs","SECURITY.md"],"scripts":{"build:dist-mjs":"rimraf dist-mjs && npx builder --type=module --sourceMap --outDir=dist-mjs && node dist-mjs/index.mjs","build:dist-types":"rimraf dist-types && npx builder --type=types --outDir=dist-types","ci:compile":"tsc --noEmit","ci:coverage":"NODE_OPTIONS=\"--disable-warning ExperimentalWarning --experimental-vm-modules\" jest --coverage=true","ci:lint":"npm run lint","ci:style":"npm run prettier","ci:test":"NODE_OPTIONS=\"--disable-warning ExperimentalWarning --experimental-vm-modules\" jest --coverage=false","lint":"eslint --max-warnings 0 .","lint:fix":"eslint --max-warnings 0 --fix .","peggy":"for file in ./src/peggy/*.peggy; do peggy \"$file\" --format es --output \"${file%.peggy}-peggy.ts\"; done","peggy-watch":"for file in ./src/peggy/*.peggy; do peggy \"$file\" --format=es --watch --output=\"${file%.peggy}-peggy.ts\"; done","prepare":"","prepublishOnly":"npm run build:dist-types && npm run build:dist-mjs","prettier":"prettier --ignore-path .gitignore --list-different .","prettier:fix":"prettier --ignore-path .gitignore --write .","test":"npm run ci:compile && npm run ci:test && npm run ci:lint && npm run ci:style"},"prettier":"@checkdigit/prettier-config","jest":{"preset":"@checkdigit/jest-config"},"dependencies":{"@apidevtools/json-schema-ref-parser":"^15.3.5","@typescript-eslint/type-utils":"^8.60.1","@typescript-eslint/utils":"^8.60.1","ajv":"^8.20.0","debug":"^4.4.3","glob":"^13.0.6","http-status-codes":"^2.3.0","js-yaml":"^4.2.0","json-pointer":"^0.6.2","jsonpath-plus":"^10.4.0","ts-api-utils":"^2.5.0"},"devDependencies":{"@checkdigit/jest-config":"^6.0.2","@checkdigit/prettier-config":"^6.1.0","@checkdigit/typescript-config":"10.0.0","@eslint/js":"^9.37.0","@types/debug":"^4.1.13","@types/eslint":"^9.6.1","@types/eslint-config-prettier":"^6.11.3","@types/js-yaml":"^4.0.9","@types/json-pointer":"^1.0.34","@typescript-eslint/parser":"^8.60.1","@typescript-eslint/rule-tester":"^8.60.1","eslint":"^9.37.0","eslint-config-prettier":"^10.1.8","eslint-import-resolver-typescript":"^4.4.5","eslint-plugin-eslint-plugin":"^6.4.0","eslint-plugin-import":"^2.32.0","eslint-plugin-no-only-tests":"^3.4.0","eslint-plugin-no-secrets":"^2.3.3","eslint-plugin-node":"^11.1.0","eslint-plugin-sonarjs":"^1.0.4","openapi-types":"^12.1.3","peggy":"^4.2.0","rimraf":"^6.1.3","typescript-eslint":"^8.60.1"},"peerDependencies":{"eslint":">=9 <10"},"engines":{"node":">=22.18"},"service":{"api":{"root":"src","endpoints":["api/v1"]}},"wallaby":{"env":{"params":{"runner":"--experimental-vm-modules"}}}}
|
package/src/athena/athena.ts
CHANGED
|
@@ -36,6 +36,7 @@ import {
|
|
|
36
36
|
hasFunctionCalls,
|
|
37
37
|
isBaseFrom,
|
|
38
38
|
isJoin,
|
|
39
|
+
isTableExpr,
|
|
39
40
|
isUnnestFrom,
|
|
40
41
|
} from './visitor.ts';
|
|
41
42
|
|
|
@@ -167,6 +168,13 @@ function resolveFromClause(select: Select, ctx: VisitContext): void {
|
|
|
167
168
|
continue; // UNNEST handled separately
|
|
168
169
|
}
|
|
169
170
|
|
|
171
|
+
if (isTableExpr(item)) {
|
|
172
|
+
const alias = typeof item.as === 'string' ? item.as : '<subquery>';
|
|
173
|
+
// eslint-disable-next-line no-use-before-define
|
|
174
|
+
checkSelect(item.expr.ast, ctx, alias);
|
|
175
|
+
continue;
|
|
176
|
+
}
|
|
177
|
+
|
|
170
178
|
if (isJoin(item)) {
|
|
171
179
|
const { table: tableName, as: alias } = item;
|
|
172
180
|
if (alias !== null) {
|
|
@@ -362,15 +370,12 @@ function navigateSchemaPath(
|
|
|
362
370
|
// ---------------------------------------------------------------------------
|
|
363
371
|
|
|
364
372
|
/** Resolve a column by name against `referencedTables`, throwing if not found. */
|
|
365
|
-
function lookupColumnOrThrow(
|
|
366
|
-
colRef: string,
|
|
367
|
-
ref: object,
|
|
368
|
-
referencedTables: ResolvedTable[],
|
|
369
|
-
ctx: VisitContext,
|
|
370
|
-
): ResolvedColumn[] {
|
|
373
|
+
function lookupColumnOrThrow(colRef: string, ref: object, referencedTables: ResolvedTable[]): ResolvedColumn[] {
|
|
371
374
|
const resolvedColumns = referencedTables.flatMap((table) => table.columns.get(colRef) ?? []);
|
|
372
375
|
if (resolvedColumns.length === 0) {
|
|
373
|
-
const tableNames = [
|
|
376
|
+
const tableNames = [
|
|
377
|
+
...new Set(referencedTables.map((referenceTable) => referenceTable.name ?? '<anonymous>')),
|
|
378
|
+
].join(', ');
|
|
374
379
|
const availableCols = [...new Set(referencedTables.flatMap((table) => [...table.columns.keys()]))].join(', ');
|
|
375
380
|
throw new AthenaError(
|
|
376
381
|
ATHENA_ERROR,
|
|
@@ -408,7 +413,7 @@ function checkColumnRefsExist(
|
|
|
408
413
|
ref,
|
|
409
414
|
);
|
|
410
415
|
}
|
|
411
|
-
lookupColumnOrThrow(colRef, ref, referencedTables
|
|
416
|
+
lookupColumnOrThrow(colRef, ref, referencedTables);
|
|
412
417
|
}
|
|
413
418
|
}
|
|
414
419
|
|
|
@@ -459,7 +464,7 @@ function resolveSingleColumnRef(
|
|
|
459
464
|
|
|
460
465
|
const withFunctions = hasFunctionCalls(columnAST);
|
|
461
466
|
const colName = columnAlias ?? (withFunctions ? indexedName : colRef);
|
|
462
|
-
const resolvedColumns = lookupColumnOrThrow(colRef, ref, referencedTables
|
|
467
|
+
const resolvedColumns = lookupColumnOrThrow(colRef, ref, referencedTables);
|
|
463
468
|
|
|
464
469
|
const propertyAccessor = extractJsonExtractPath(columnAST) ?? extractBracketAccessorPath(columnAST);
|
|
465
470
|
if (propertyAccessor !== undefined) {
|
|
@@ -525,8 +530,15 @@ function checkSelect(selectAST: Select | With, ctx: VisitContext, withTableName?
|
|
|
525
530
|
|
|
526
531
|
log('resolved columns', [...columns.keys()]);
|
|
527
532
|
|
|
528
|
-
// Pass 3: validate column refs and JSON paths in WHERE / HAVING / GROUP BY / ORDER BY
|
|
533
|
+
// Pass 3: validate column refs and JSON paths in JOIN ON / WHERE / HAVING / GROUP BY / ORDER BY
|
|
529
534
|
const allTables = [...selectCtx.tables.values()].flat();
|
|
535
|
+
for (const item of fromClauseItems(select)) {
|
|
536
|
+
const onExpr = (item as { on?: unknown }).on;
|
|
537
|
+
if (onExpr !== undefined) {
|
|
538
|
+
checkColumnRefsExist(onExpr, allTables, selectCtx);
|
|
539
|
+
validateComplexColumnExpression(onExpr, allTables, selectCtx);
|
|
540
|
+
}
|
|
541
|
+
}
|
|
530
542
|
if (select.where !== null) {
|
|
531
543
|
checkColumnRefsExist(select.where, allTables, selectCtx);
|
|
532
544
|
validateComplexColumnExpression(select.where, allTables, selectCtx);
|
package/src/athena/visitor.ts
CHANGED
|
@@ -182,6 +182,11 @@ function walkExpr(node: unknown, visitor: VisitorMap): void {
|
|
|
182
182
|
}
|
|
183
183
|
break;
|
|
184
184
|
}
|
|
185
|
+
case 'array': {
|
|
186
|
+
// ARRAY [...] nodes nest their items inside an expr_list property, not args/value.
|
|
187
|
+
walkExpr((node as { expr_list?: unknown }).expr_list, visitor);
|
|
188
|
+
break;
|
|
189
|
+
}
|
|
185
190
|
default: {
|
|
186
191
|
// Column wrapper nodes (e.g. bare `SELECT *`) may lack a 'type' field but carry an 'expr'.
|
|
187
192
|
if (typed['type'] === undefined && 'expr' in typed) {
|