Skip to content

Commit e118b50

Browse files
committed
refactor: use as few condition as possible: SQLLineageConfig.LATERAL_COLUMN_ALIAS_REFERENCE
1 parent 63b7973 commit e118b50

File tree

5 files changed

+16
-41
lines changed

5 files changed

+16
-41
lines changed

sqllineage/core/models.py

+8-15
Original file line numberDiff line numberDiff line change
@@ -224,10 +224,7 @@ def _to_src_col(
224224
if src_col == "*":
225225
# select *
226226
i = 0
227-
if (
228-
SQLLineageConfig.LATERAL_COLUMN_ALIAS_REFERENCE
229-
and holder is not None
230-
):
227+
if holder is not None:
231228
for sq in subqueryies:
232229
columns = holder.get_table_columns(sq)
233230
if columns:
@@ -241,18 +238,14 @@ def _to_src_col(
241238
# select unqualified column
242239
source = _to_src_col(src_col, None)
243240
is_find = False
244-
if (
245-
SQLLineageConfig.LATERAL_COLUMN_ALIAS_REFERENCE
246-
and holder is not None
247-
):
248-
for sq in subqueryies:
249-
for column in holder.get_table_columns(sq):
250-
if column.raw_name == src_col:
251-
source = _to_src_col(src_col, sq)
252-
is_find = True
253-
break
254-
if is_find:
241+
for sq in subqueryies:
242+
for column in holder.get_table_columns(sq):
243+
if column.raw_name == src_col:
244+
source = _to_src_col(src_col, sq)
245+
is_find = True
255246
break
247+
if is_find:
248+
break
256249
if is_find is False:
257250
setattr(source, "has_qualifier", False)
258251
for table in set(alias_mapping.values()):

sqllineage/core/parser/__init__.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,11 @@ def end_of_query_cleanup(self, holder: SubQueryLineageHolder) -> None:
8888
lateral_alias_col, tgt_col
8989
)
9090
break
91-
if tgt_col.raw_name == "*":
92-
expand_tgt_col = Column(src_col.raw_name)
93-
expand_tgt_col.parent = tgt_tbl
94-
holder.add_column_lineage(src_col, expand_tgt_col)
95-
continue
91+
if tgt_col.raw_name == "*":
92+
expand_tgt_col = Column(src_col.raw_name)
93+
expand_tgt_col.parent = tgt_tbl
94+
holder.add_column_lineage(src_col, expand_tgt_col)
95+
continue
9696
if is_lateral_alias_ref:
9797
continue
9898
holder.add_column_lineage(src_col, tgt_col)

sqllineage/core/parser/sqlfluff/extractors/base.py

+1-6
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
from sqlfluff.core.parser import BaseSegment
66

7-
from sqllineage.config import SQLLineageConfig
87
from sqllineage.core.holders import SubQueryLineageHolder
98
from sqllineage.core.metadata_provider import MetaDataProvider
109
from sqllineage.core.models import Path, SubQuery, Table
@@ -226,11 +225,7 @@ def extract_subquery(
226225
self.dialect, self.metadata_provider
227226
).extract(sq.query, AnalyzerContext(cte=holder.cte, write={sq}))
228227

229-
if (
230-
SQLLineageConfig.LATERAL_COLUMN_ALIAS_REFERENCE
231-
and bool(self.metadata_provider) is True
232-
):
233-
subquery_holder.graph.add_node(sq, **{NodeTag.WRITE: False})
228+
subquery_holder.graph.add_node(sq, **{NodeTag.WRITE: False})
234229

235230
holder |= subquery_holder
236231

sqllineage/core/parser/sqlfluff/extractors/select.py

+1-12
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from sqlfluff.core.parser import BaseSegment
22

3-
from sqllineage.config import SQLLineageConfig
43
from sqllineage.core.holders import SubQueryLineageHolder
54
from sqllineage.core.metadata_provider import MetaDataProvider
65
from sqllineage.core.parser import SourceHandlerMixin
@@ -57,11 +56,7 @@ def extract(
5756
for sq in self.list_subquery(seg):
5857
subqueries.append(sq)
5958

60-
if (
61-
SQLLineageConfig.LATERAL_COLUMN_ALIAS_REFERENCE
62-
and bool(self.metadata_provider) is True
63-
):
64-
self.extract_subquery(subqueries, holder)
59+
self.extract_subquery(subqueries, holder)
6560

6661
for segment in segments:
6762
self._handle_swap_partition(segment, holder)
@@ -89,12 +84,6 @@ def extract(
8984

9085
self.end_of_query_cleanup(holder)
9186

92-
if not (
93-
SQLLineageConfig.LATERAL_COLUMN_ALIAS_REFERENCE
94-
and bool(self.metadata_provider)
95-
):
96-
self.extract_subquery(subqueries, holder)
97-
9887
holder.expand_wildcard(self.metadata_provider)
9988

10089
return holder

sqllineage/core/parser/sqlfluff/models.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
from sqlfluff.core.parser import BaseSegment
55

66
from sqllineage import SQLPARSE_DIALECT
7-
from sqllineage.config import SQLLineageConfig
87
from sqllineage.core.models import Column, Schema, SubQuery, Table
98
from sqllineage.core.parser.sqlfluff.utils import (
109
extract_column_qualifier,
@@ -110,8 +109,7 @@ def of(column: BaseSegment, **kwargs) -> Column:
110109
alias,
111110
source_columns=source_columns,
112111
)
113-
if SQLLineageConfig.LATERAL_COLUMN_ALIAS_REFERENCE:
114-
setattr(alias_column, "has_alias", True)
112+
setattr(alias_column, "has_alias", True)
115113
return alias_column
116114
if source_columns:
117115
column_name = None

0 commit comments

Comments
 (0)