Skip to content

Commit b8b983a

Browse files
committed
fix: ensure _get_data_objects respects snapshots with different schema or catalog
1 parent 17a73f0 commit b8b983a

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

sqlmesh/core/snapshot/evaluator.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1593,14 +1593,14 @@ def _get_data_objects(
15931593
tables_by_gateway_and_schema: t.Dict[t.Union[str, None], t.Dict[exp.Table, set[str]]] = (
15941594
defaultdict(lambda: defaultdict(set))
15951595
)
1596-
snapshots_by_table_name: t.Dict[str, Snapshot] = {}
1596+
snapshots_by_table_name: t.Dict[t.Tuple[str, str, str], Snapshot] = {}
15971597
for snapshot in target_snapshots:
15981598
if not snapshot.is_model or snapshot.is_symbolic:
15991599
continue
16001600
table = table_name_callable(snapshot)
16011601
table_schema = d.schema_(table.db, catalog=table.catalog)
16021602
tables_by_gateway_and_schema[snapshot.model_gateway][table_schema].add(table.name)
1603-
snapshots_by_table_name[table.name] = snapshot
1603+
snapshots_by_table_name[(table.catalog, table.db, table.name)] = snapshot
16041604

16051605
def _get_data_objects_in_schema(
16061606
schema: exp.Table,
@@ -1629,7 +1629,10 @@ def _get_data_objects_in_schema(
16291629
]
16301630
existing_objects.extend(objs_for_gateway)
16311631

1632-
return {snapshots_by_table_name[obj.name].snapshot_id: obj for obj in existing_objects}
1632+
return {
1633+
snapshots_by_table_name[(obj.catalog or "", obj.schema_name, obj.name)].snapshot_id: obj
1634+
for obj in existing_objects
1635+
}
16331636

16341637

16351638
def _evaluation_strategy(snapshot: SnapshotInfoLike, adapter: EngineAdapter) -> EvaluationStrategy:

0 commit comments

Comments
 (0)