It's expected that unloaded views are returned as tables in legacy catalog mode, because they are represented as IncompleteTables which have no difference with normal tables. When the view is loaded (i.e. used once), Impala should be able to get its type and return it correctly for GET_TABLES request.
However, in LocalCatalog mode, the types for loaded views are always TABLE.
For reproducing the issue, there are no easy way to trigger GET_TABLES in command lines. The most easier way may be using HUE:
- Make sure coordinators are in LocalCatalog mode.
- Create a view and run a query on it to make sure it's loaded.
- In HUE's Impala editor, the view is shown as table, no matter how many times we refresh the table list:
- In HUE's Hive editor, the view is shown with a view logo: