Skip to content

Commit

Permalink
This is a work in progress PR for addressing GH issue 23 and 26
Browse files Browse the repository at this point in the history
The relevant macros are restructured to handle error better.

Test plan:
The test cases are available in GH Issue#23 and Issue#26
  • Loading branch information
tovganesh committed Apr 14, 2022
1 parent c102943 commit 13bff88
Showing 1 changed file with 27 additions and 26 deletions.
53 changes: 27 additions & 26 deletions dbt/include/impala/macros/adapters.sql
Original file line number Diff line number Diff line change
Expand Up @@ -196,40 +196,41 @@

{% macro is_relation_present(relation) -%}
{% set result_set = run_query('show tables in ' ~ relation.schema ~ ' like "' ~ relation.identifier ~ '"') %}
{%- if result_set.rows -%}
{% do return(true) %}
{% else %}
{% do return(false) %}
{% endif %}

{% if execute %}
{%- for rs in result_set -%}
{% do return(true) %}
{%- endfor -%}
{%- endif -%}

{% do return(false) %}
{% endmacro %}

{% macro get_relation_type(relation) -%}
{% set rel_type = 'table' %}
{% set relation_exists = is_relation_present(relation) %}

{%- if not relation_exists -%}
{% do return(rel_type) %}
{%- endif -%}

{% set result_set = run_query('describe extended ' ~ relation) %}
{%- if relation_exists -%}
{% set result_set = run_query('describe extended ' ~ relation) %}

{% if execute %}
{%- for rs in result_set -%}
{%- if rs[0].startswith('Table Type') -%}
{%- if rs[1].startswith('VIRTUAL_VIEW') -%}
{% set rel_type = 'view' %}
{% do return(rel_type) %}
{%- elif rs[1].startswith('MANAGED_TABLE') -%}
{% set rel_type = 'table' %}
{% do return(rel_type) %}
{%- elif rs[1].startswith('EXTERNAL_TABLE') -%}
{% set rel_type = 'table' %}
{% do return(rel_type) %}
{% if execute %}
{%- for rs in result_set -%}
{%- if rs[0].startswith('Table Type') -%}
{%- if rs[1].startswith('VIRTUAL_VIEW') -%}
{% set rel_type = 'view' %}
{% do return(rel_type) %}
{%- elif rs[1].startswith('MANAGED_TABLE') -%}
{% set rel_type = 'table' %}
{% do return(rel_type) %}
{%- elif rs[1].startswith('EXTERNAL_TABLE') -%}
{% set rel_type = 'table' %}
{% do return(rel_type) %}
{%- endif -%}
{%- endif -%}
{%- endif -%}
{%- endfor -%}
{% endif %}

{%- endfor -%}
{%- endif -%}
{%- endif -%}
{% do return(rel_type) %}
{% endmacro %}

Expand Down

0 comments on commit 13bff88

Please sign in to comment.