Skip to content

Commit b0e7978

Browse files
committed
fix(vnext): recognize quoted relation aliases
1 parent e05f1ab commit b0e7978

2 files changed

Lines changed: 16 additions & 0 deletions

File tree

src/vnext/__tests__/query-site.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,8 @@ describe("partial SELECT relation query sites", () => {
274274

275275
it.each([
276276
"SELECT * FROM users AS u JOIN |",
277+
"SELECT * FROM users AS \"u\" JOIN |",
278+
"SELECT * FROM users \"u\" JOIN |",
277279
"SELECT * FROM users INNER JOIN |",
278280
"SELECT * FROM users CROSS JOIN |",
279281
"SELECT * FROM users NATURAL JOIN |",

src/vnext/query-site.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1017,6 +1017,20 @@ export function recognizeSqlRelationQuerySite(
10171017
wordValue(source.analysisText, token),
10181018
);
10191019
}
1020+
} else if (token.kind === "quoted-identifier") {
1021+
const activeFrame = topFrame(frames);
1022+
if (
1023+
activeFrame?.baseDepth === depth &&
1024+
(activeFrame.state === "after-relation" ||
1025+
activeFrame.state === "expect-alias")
1026+
) {
1027+
activeFrame.state = "after-alias";
1028+
} else if (
1029+
activeFrame?.baseDepth === depth &&
1030+
activeFrame.state === "after-alias"
1031+
) {
1032+
markUnavailable(activeFrame, "ambiguous-query-site");
1033+
}
10201034
} else if (queryCandidates.has(depth)) {
10211035
queryCandidates.delete(depth);
10221036
}

0 commit comments

Comments
 (0)