@@ -27,6 +27,113 @@ def test_column_top_level_lateral_ref():
27
27
ColumnQualifierTuple ("id" , "public.tgt_tbl1" ),
28
28
),
29
29
],
30
+ test_sqlparse = False ,
31
+ )
32
+ sql = """
33
+ insert into public.tgt_tbl1
34
+ (
35
+ name,
36
+ email
37
+ )
38
+ select
39
+ st1.name,
40
+ st1.name || st1.email || '@gmail.com' as email
41
+ from
42
+ public.src_tbl1 as st1
43
+ """
44
+ assert_column_lineage_equal (
45
+ sql ,
46
+ [
47
+ (
48
+ ColumnQualifierTuple ("name" , "public.src_tbl1" ),
49
+ ColumnQualifierTuple ("name" , "public.tgt_tbl1" ),
50
+ ),
51
+ (
52
+ ColumnQualifierTuple ("name" , "public.src_tbl1" ),
53
+ ColumnQualifierTuple ("email" , "public.tgt_tbl1" ),
54
+ ),
55
+ (
56
+ ColumnQualifierTuple ("email" , "public.src_tbl1" ),
57
+ ColumnQualifierTuple ("email" , "public.tgt_tbl1" ),
58
+ ),
59
+ ],
60
+ test_sqlparse = False ,
61
+ )
62
+ sql = """
63
+ insert into public.tgt_tbl1
64
+ (
65
+ id,
66
+ id_original
67
+ )
68
+ select
69
+ 'a || b || c' || id as id,
70
+ id as id_original
71
+ from
72
+ public.src_tbl1
73
+ """
74
+ assert_column_lineage_equal (
75
+ sql ,
76
+ [
77
+ (
78
+ ColumnQualifierTuple ("id" , "public.src_tbl1" ),
79
+ ColumnQualifierTuple ("id" , "public.tgt_tbl1" ),
80
+ ),
81
+ (
82
+ ColumnQualifierTuple ("id" , "public.src_tbl1" ),
83
+ ColumnQualifierTuple ("id_original" , "public.tgt_tbl1" ),
84
+ ),
85
+ ],
86
+ test_sqlparse = False ,
87
+ )
88
+ sql = """
89
+ insert into public.tgt_tbl1
90
+ (
91
+ id,
92
+ id_original
93
+ )
94
+ select
95
+ a || b || c || id as id,
96
+ id as id_original -- # noqa: E501 TODO: I need the metadata information for the table public.src_tbl1 to identify whether the column reference 'id' in this context is from the table public.src_tbl1 or from an alias reference, currently being used as an alias reference. Note: This decision may significantly deviate from the actual scenario.
97
+ from
98
+ public.src_tbl1
99
+ """
100
+ assert_column_lineage_equal (
101
+ sql ,
102
+ [
103
+ (
104
+ ColumnQualifierTuple ("a" , "public.src_tbl1" ),
105
+ ColumnQualifierTuple ("id" , "public.tgt_tbl1" ),
106
+ ),
107
+ (
108
+ ColumnQualifierTuple ("b" , "public.src_tbl1" ),
109
+ ColumnQualifierTuple ("id" , "public.tgt_tbl1" ),
110
+ ),
111
+ (
112
+ ColumnQualifierTuple ("c" , "public.src_tbl1" ),
113
+ ColumnQualifierTuple ("id" , "public.tgt_tbl1" ),
114
+ ),
115
+ (
116
+ ColumnQualifierTuple ("id" , "public.src_tbl1" ),
117
+ ColumnQualifierTuple ("id" , "public.tgt_tbl1" ),
118
+ ),
119
+ (
120
+ ColumnQualifierTuple ("a" , "public.src_tbl1" ),
121
+ ColumnQualifierTuple ("id_original" , "public.tgt_tbl1" ),
122
+ ),
123
+ (
124
+ ColumnQualifierTuple ("b" , "public.src_tbl1" ),
125
+ ColumnQualifierTuple ("id_original" , "public.tgt_tbl1" ),
126
+ ),
127
+ (
128
+ ColumnQualifierTuple ("c" , "public.src_tbl1" ),
129
+ ColumnQualifierTuple ("id_original" , "public.tgt_tbl1" ),
130
+ ),
131
+ (
132
+ ColumnQualifierTuple ("id" , "public.src_tbl1" ),
133
+ ColumnQualifierTuple ("id_original" , "public.tgt_tbl1" ),
134
+ ),
135
+ ],
136
+ test_sqlparse = False ,
30
137
)
31
138
32
139
@@ -60,6 +167,7 @@ def test_column_lateral_ref_within_subquery():
60
167
ColumnQualifierTuple ("name" , "public.tgt_tbl1" ),
61
168
),
62
169
],
170
+ test_sqlparse = False ,
63
171
)
64
172
65
173
sql = """
@@ -95,4 +203,5 @@ def test_column_lateral_ref_within_subquery():
95
203
ColumnQualifierTuple ("name" , "public.tgt_tbl1" ),
96
204
),
97
205
],
206
+ test_sqlparse = False ,
98
207
)
0 commit comments