Skip to content

Commit 2998e05

Browse files
committed
Fixed multiple issues related to materialized view
1 parent 714203b commit 2998e05

File tree

5 files changed

+26
-11
lines changed

5 files changed

+26
-11
lines changed

dbt/adapters/oracle/relation.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@
3939
OracleQuotePolicy,
4040
OracleIncludePolicy)
4141

42+
from dbt.events import AdapterLogger
43+
44+
logger = AdapterLogger("oracle")
45+
4246

4347
@dataclass(frozen=True, eq=False, repr=False)
4448
class OracleRelation(BaseRelation):
@@ -80,30 +84,32 @@ def materialized_view_config_changeset(
8084
assert isinstance(existing_materialized_view, OracleMaterializedViewConfig)
8185
assert isinstance(new_materialized_view, OracleMaterializedViewConfig)
8286

83-
if new_materialized_view.refresh_method != existing_materialized_view.refresh_method:
87+
if new_materialized_view.refresh_method.upper() != existing_materialized_view.refresh_method.upper():
8488
config_change_collection.refresh_method = OracleRefreshMethodConfigChange(
8589
action=RelationConfigChangeAction.alter,
8690
context=new_materialized_view.refresh_method
8791
)
8892

89-
if new_materialized_view.refresh_mode != existing_materialized_view.refresh_method:
93+
if new_materialized_view.refresh_mode.upper() != existing_materialized_view.refresh_mode.upper():
9094
config_change_collection.refresh_mode = OracleRefreshModeConfigChange(
9195
action=RelationConfigChangeAction.alter,
9296
context=new_materialized_view.refresh_mode
9397
)
9498

95-
if new_materialized_view.build_mode != existing_materialized_view.build_mode:
99+
if new_materialized_view.build_mode.upper() != existing_materialized_view.build_mode.upper():
96100
config_change_collection.build_mode = OracleBuildModeConfigChange(
97101
action=RelationConfigChangeAction.alter,
98102
context=new_materialized_view.build_mode
99103
)
100104

101-
if new_materialized_view.query_rewrite != existing_materialized_view.query_rewrite:
105+
if new_materialized_view.query_rewrite.upper() != existing_materialized_view.query_rewrite.upper():
102106
config_change_collection.query_rewrite = OracleQueryRewriteConfigChange(
103107
action=RelationConfigChangeAction.alter,
104108
context=new_materialized_view.query_rewrite
105109
)
106110

111+
logger.debug(f"Config change collection {config_change_collection}")
112+
107113
if config_change_collection.has_changes:
108114

109115
if config_change_collection.refresh_mode is None:
@@ -128,4 +134,6 @@ def materialized_view_config_changeset(
128134

129135
return config_change_collection
130136

137+
138+
131139
return None

dbt/adapters/oracle/relation_configs/materialized_view.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@
2525

2626
from dbt.contracts.graph.nodes import ModelNode
2727
from dbt.exceptions import DbtRuntimeError
28+
from dbt.events import AdapterLogger
2829

30+
logger = AdapterLogger("oracle")
2931

3032
@dataclass(frozen=True, eq=True, unsafe_hash=True)
3133
class OracleMaterializedViewConfig(OracleRelationConfigBase):
@@ -107,14 +109,16 @@ def parse_relation_results(cls, relation_results: RelationResults) -> dict:
107109
"""
108110

109111
materialized_view: agate.Row = cls._get_first_row(relation_results.get("materialized_view"))
112+
logger.debug(f"Materialized View data is {materialized_view}")
110113
config_dict = {
111-
"mview_name": materialized_view.get("mview_name"),
112-
"refresh_mode": materialized_view.get("refresh_mode"),
113-
"refresh_method": materialized_view.get("refresh_method"),
114-
"build_mode": materialized_view.get("build_mode"),
115-
"query": materialized_view.get("query"),
114+
"mview_name": materialized_view.get("mview_name".upper()),
115+
"refresh_mode": materialized_view.get("refresh_mode".upper()),
116+
"refresh_method": materialized_view.get("refresh_method".upper()),
117+
"build_mode": materialized_view.get("build_mode".upper()),
118+
"query": materialized_view.get("query".upper()),
116119
}
117-
if materialized_view.get('rewrite_enabled').upper() == 'Y':
120+
logger.debug(f"Materialized View config is {config_dict}")
121+
if materialized_view.get('rewrite_enabled'.upper()).upper() == 'Y':
118122
config_dict["query_rewrite"] = "enable"
119123
else:
120124
config_dict["query_rewrite"] = "disable"

dbt/include/oracle/macros/adapters.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -380,6 +380,7 @@
380380
else 'BASE TABLE'
381381
end table_type
382382
from sys.all_tables
383+
where upper(table_name) not in (select upper(mview_name) from sys.all_mviews)
383384
union all
384385
select SYS_CONTEXT('userenv', 'DB_NAME'),
385386
owner,

dbt/include/oracle/macros/catalog.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@
8282
else 'BASE TABLE'
8383
end table_type
8484
from sys.all_tables
85+
where upper(table_name) not in (select upper(mview_name) from sys.all_mviews)
8586
union all
8687
select SYS_CONTEXT('userenv', 'DB_NAME'),
8788
owner,

dbt/include/oracle/macros/materializations/materialized_view/materialized_view.sql

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
{% call statement(name="drop_mv") %}
1313
{{ oracle__drop_relation(relation) }}
1414
{% endcall %}
15+
{{- log('ORACLE Applying REPLACE to: ' ~ relation) -}}
1516
{{ get_create_materialized_view_as_sql(relation, sql) }}
1617
{% endmacro %}
1718

@@ -56,7 +57,7 @@
5657
{% endmacro %}
5758

5859
{% macro oracle__get_materialized_view_configuration_changes(existing_relation, new_config) %}
59-
{% set _existing_materialized_view = oracle__describe_materialized_view(existing_relation) %}
60+
{% set _existing_materialized_view = oracle__describe_materialized_view_config(existing_relation) %}
6061
{% set _configuration_changes = existing_relation.materialized_view_config_changeset(_existing_materialized_view, new_config) %}
6162
{% do return(_configuration_changes) %}
6263
{% endmacro %}

0 commit comments

Comments
 (0)