diff --git a/crates/squawk_ide/src/goto_definition.rs b/crates/squawk_ide/src/goto_definition.rs index 0737ce93..0e4a0425 100644 --- a/crates/squawk_ide/src/goto_definition.rs +++ b/crates/squawk_ide/src/goto_definition.rs @@ -2686,6 +2686,20 @@ select v.a$0 from v; "); } + #[test] + fn goto_view_table_qualifier() { + assert_snapshot!(goto(" +create view v as select 1 id, 2 b; +select v$0.id from v; +"), @" + ╭▸ + 2 │ create view v as select 1 id, 2 b; + │ ─ 2. destination + 3 │ select v.id from v; + ╰╴ ─ 1. source + "); + } + #[test] fn goto_create_table_as_column() { assert_snapshot!(goto(" diff --git a/crates/squawk_ide/src/resolve.rs b/crates/squawk_ide/src/resolve.rs index 45b76bd7..4c12767c 100644 --- a/crates/squawk_ide/src/resolve.rs +++ b/crates/squawk_ide/src/resolve.rs @@ -1147,6 +1147,7 @@ fn resolve_select_qualified_column_table_name_ptr( let position = table_name_ref.syntax().text_range().start(); resolve_table_name_ptr(db, file, &table_name, &schema, position) + .or_else(|| resolve_view_name_ptr(db, file, &table_name, &schema, position)) } enum ReturningClauseMatch {