@@ -227,11 +227,21 @@ def filter_on_database(self, database_filter: str) -> None:
227227
228228 self ._lineage_graph = self .get_subgraph (nodes_in_db , upstream_depth , downstream_depth )
229229
230+ @staticmethod
231+ def _split_graph_node_name (node : str ) -> (Union [str , None ], Union [str , None ], Union [str , None ]):
232+ split_node = [part .lower () for part in node .split ('.' )]
233+ if len (split_node ) != 3 :
234+ return None , None , None
235+ node_database_name , node_schema_name , node_table_name = split_node
236+ return node_database_name , node_schema_name , node_table_name
237+
230238 def filter_on_schema (self , schema_filter : str ) -> None :
231239 upstream_depth , schema_name , downstream_depth = self .parse_filter (schema_filter )
232240 nodes_in_schema = set ()
233241 for node in self ._lineage_graph :
234- node_database_name , node_schema_name , node_table_name = [part .lower () for part in node .split ('.' )]
242+ node_database_name , node_schema_name , _ = self ._split_graph_node_name (node )
243+ if node_schema_name is None :
244+ continue
235245 normalized_schema_name = schema_name .lower ()
236246 if normalized_schema_name == node_schema_name or normalized_schema_name == \
237247 '.' .join ([node_database_name , node_schema_name ]):
@@ -243,7 +253,9 @@ def filter_on_table(self, table_filter: str) -> None:
243253 upstream_depth , table_name , downstream_depth = self .parse_filter (table_filter )
244254 matched_nodes = set ()
245255 for node in self ._lineage_graph .nodes :
246- node_database_name , node_schema_name , node_table_name = [part .lower () for part in node .split ('.' )]
256+ _ , node_schema_name , node_table_name = self ._split_graph_node_name (node )
257+ if node_table_name is None or node_schema_name is None :
258+ continue
247259 normalized_table_name = table_name .lower ()
248260 if normalized_table_name == node_table_name or normalized_table_name == '.' .join ([node_schema_name ,
249261 node_table_name ]):
0 commit comments