1313from sqlglot .errors import ParseError
1414from sqlglot .schema import MappingSchema
1515from sqlmesh .cli .example_project import init_example_project , ProjectTemplate
16+ from sqlmesh .core .environment import EnvironmentNamingInfo
1617from sqlmesh .core .model .kind import TimeColumn , ModelKindName
1718
1819from sqlmesh import CustomMaterialization , CustomKind
@@ -7843,6 +7844,7 @@ def test_model_on_virtual_update(make_snapshot: t.Callable):
78437844 def resolve_parent_name (evaluator , name ):
78447845 return evaluator .resolve_table (name .name )
78457846
7847+ dialect = "postgres"
78467848 virtual_update_statements = """
78477849 CREATE OR REPLACE VIEW test_view FROM demo_db.table;
78487850 GRANT SELECT ON VIEW @this_model TO ROLE owner_name;
@@ -7869,7 +7871,8 @@ def resolve_parent_name(evaluator, name):
78697871
78707872 on_virtual_update_end;
78717873
7872- """
7874+ """ ,
7875+ default_dialect = dialect ,
78737876 )
78747877
78757878 parent_expressions = d .parse (
@@ -7886,49 +7889,57 @@ def resolve_parent_name(evaluator, name):
78867889 JINJA_END;
78877890 ON_VIRTUAL_UPDATE_END;
78887891
7889- """
7892+ """ ,
7893+ default_dialect = dialect ,
78907894 )
78917895
7892- model = load_sql_based_model (expressions )
7893- parent = load_sql_based_model (parent_expressions )
7896+ model = load_sql_based_model (expressions , dialect = dialect )
7897+ parent = load_sql_based_model (parent_expressions , dialect = dialect )
78947898
78957899 parent_snapshot = make_snapshot (parent )
78967900 parent_snapshot .categorize_as (SnapshotChangeCategory .BREAKING )
7897- version = parent_snapshot .version
78987901
78997902 model_snapshot = make_snapshot (model )
79007903 model_snapshot .categorize_as (SnapshotChangeCategory .BREAKING )
79017904
7902- assert model .on_virtual_update == d .parse (virtual_update_statements )
7905+ assert model .on_virtual_update == d .parse (virtual_update_statements , default_dialect = dialect )
79037906
79047907 assert parent .on_virtual_update == d .parse (
7905- "JINJA_STATEMENT_BEGIN; GRANT SELECT ON VIEW {{this_model}} TO ROLE admin; JINJA_END;"
7908+ "JINJA_STATEMENT_BEGIN; GRANT SELECT ON VIEW {{this_model}} TO ROLE admin; JINJA_END;" ,
7909+ default_dialect = dialect ,
79067910 )
79077911
7912+ environment_naming_info = EnvironmentNamingInfo (name = "dev" )
79087913 table_mapping = {model .fqn : "demo_db__dev.table" , parent .fqn : "default__dev.parent" }
79097914 snapshots = {
79107915 parent_snapshot .name : parent_snapshot ,
79117916 model_snapshot .name : model_snapshot ,
79127917 }
79137918
79147919 rendered_on_virtual_update = model .render_on_virtual_update (
7915- snapshots = snapshots , table_mapping = table_mapping
7920+ snapshots = snapshots ,
7921+ table_mapping = table_mapping ,
7922+ this_model = model_snapshot .qualified_view_name .table_for_environment (
7923+ environment_naming_info , dialect = dialect
7924+ ),
79167925 )
79177926
79187927 assert len (rendered_on_virtual_update ) == 6
79197928 assert (
79207929 rendered_on_virtual_update [0 ].sql ()
79217930 == 'CREATE OR REPLACE VIEW "test_view" AS SELECT * FROM "demo_db__dev"."table" AS "table" /* demo_db.table */'
79227931 )
7932+
79237933 assert (
79247934 rendered_on_virtual_update [1 ].sql ()
7925- == 'GRANT SELECT ON VIEW "demo_db__dev"."table" /* demo_db.table */ TO ROLE "owner_name"'
7935+ == 'GRANT SELECT ON VIEW "demo_db__dev"."table" TO ROLE "owner_name"'
79267936 )
79277937 assert (
79287938 rendered_on_virtual_update [3 ].sql ()
79297939 == "GRANT REFERENCES, SELECT ON FUTURE VIEWS IN DATABASE demo_db TO ROLE owner_name"
79307940 )
7931- assert rendered_on_virtual_update [4 ].sql () == f'"sqlmesh__default"."parent__{ version } "'
7941+
7942+ assert rendered_on_virtual_update [4 ].sql () == '"default__dev"."parent"'
79327943
79337944 # When replace=false the table should remain as is
79347945 assert (
@@ -7937,12 +7948,16 @@ def resolve_parent_name(evaluator, name):
79377948 )
79387949
79397950 rendered_parent_on_virtual_update = parent .render_on_virtual_update (
7940- snapshots = snapshots , table_mapping = table_mapping
7951+ snapshots = snapshots ,
7952+ table_mapping = table_mapping ,
7953+ this_model = parent_snapshot .qualified_view_name .table_for_environment (
7954+ environment_naming_info , dialect = dialect
7955+ ),
79417956 )
79427957 assert len (rendered_parent_on_virtual_update ) == 1
79437958 assert (
79447959 rendered_parent_on_virtual_update [0 ].sql ()
7945- == 'GRANT SELECT ON VIEW "default__dev"."parent" /* parent */ TO ROLE "admin"'
7960+ == 'GRANT SELECT ON VIEW "default__dev"."parent" TO ROLE "admin"'
79467961 )
79477962
79487963
0 commit comments