fix(navigation): use target db for cross-database table jump

This commit is contained in:
zipg authored and GitHub committed 2026-08-06 20:10:44 +08:00
1 parent a71c767174
commit 3e6b3d5321
3 files changed
+96 -5

No files matched your search

@@ -78,6 +78,20 @@ export function queryTableCandidateAtSqlPosition(input: QueryTableCandidateAtPos
return { connectionId: input.connectionId, database, schema, tableName };
}
export function queryTableNavigationTargetAtSqlPosition(input: QueryTableCandidateAtPositionInput, target: SqlObjectNavigationTarget): SqlObjectNavigationTarget {
const parts = extractQualifiedIdentifierPartsAt(input.sql, input.position);
if (parts.length < 2) return sqlObjectNavigationTarget(target);
const candidate = queryTableCandidateAtSqlPosition(input);
if (!candidate) return sqlObjectNavigationTarget(target);
return sqlObjectNavigationTarget({
...target,
database: candidate.database,
schema: candidate.schema,
});
}
export function resolveQueryContextCandidateDatabase(candidate: QueryCursorTableCandidate, databases: readonly string[]): QueryCursorTableCandidate {
const database = databases.find((name) => sameIdentifier(name, candidate.database));
return database && database !== candidate.database ? { ...candidate, database } : candidate;