Problem on redshift cross database query

We find a problem that if you have a late binding view created from redshift cross database query. This view won’t show up in schema browser.

The problem is for redash, it use svv_columns to generate info in schema browser. But for the view above is not included in svv_columns. It could only be find in svv_tables.

In general, you could not find column detail on this kind of view.

Way to reproduce the PR:

  1. Redshift cluster have two db dev and staging with R class node ( this allows you to run cross db query)
  2. Create a sample table1 in dev as master user
  3. Switch to staging db. Create a user1 and Create a late binding view in public with query below:
* create view "test" as ( select * from dev.public.table1) with no schema binding; 
* grant usage on schema public to user1; 
* grant select on table test to user1;
  1. Log in staging db as user1 , you are able to run query on the view test, but you won’t get any columns info from svv_columns.

Here is our pull request: Fix bug that redshift late binding views created from cross database query does not show up in schema browser by rzrz123 · Pull Request #5473 · getredash/redash · GitHub