Skip to content

Commit 6677fbf

Browse files
authored
Merge pull request #47 from elementary-data/filter_bug_fix
Filter bug fix
2 parents 119ce34 + d9c6c39 commit 6677fbf

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

lineage/lineage_graph.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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]):

setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
setup(
1111
name='elementary-data',
1212
description='Data monitoring and lineage',
13-
version='0.1.4',
13+
version='0.1.5',
1414
packages=find_packages(),
1515
python_requires='>=3.6.2',
1616
entry_points='''
@@ -42,7 +42,7 @@
4242
'requests>=2.7,<3.0.0',
4343
'beautifulsoup4',
4444
'posthog',
45-
'sqlfluff',
45+
'sqlfluff<0.9.0',
4646
'ruamel.yaml',
4747
# Indirect
4848
'protobuf<4,>=3.13.0',

0 commit comments

Comments
 (0)