@@ -23,11 +23,14 @@ class FlintSparkPPLLookupITSuite
23
23
/** Test table and index name */
24
24
private val sourceTable = " spark_catalog.default.flint_ppl_test1"
25
25
private val lookupTable = " spark_catalog.default.flint_ppl_test2"
26
+ private val sourceTable2 = " spark_catalog.default.flint_ppl_test3"
26
27
27
28
override def beforeAll (): Unit = {
28
29
super .beforeAll()
29
30
createPeopleTable(sourceTable)
30
31
createWorkInformationTable(lookupTable)
32
+ createPeopleTable(sourceTable2)
33
+
31
34
}
32
35
33
36
protected override def afterEach (): Unit = {
@@ -62,7 +65,9 @@ class FlintSparkPPLLookupITSuite
62
65
63
66
val lookupProject =
64
67
Project (Seq (UnresolvedAttribute (" department" ), UnresolvedAttribute (" uid" )), lookupAlias)
65
- val joinCondition = EqualTo (UnresolvedAttribute (" uid" ), UnresolvedAttribute (" id" ))
68
+ val joinCondition = EqualTo (
69
+ UnresolvedAttribute (" __auto_generated_subquery_name_l.uid" ),
70
+ UnresolvedAttribute (" __auto_generated_subquery_name_s.id" ))
66
71
val joinPlan = Join (sourceAlias, lookupProject, LeftOuter , Some (joinCondition), JoinHint .NONE )
67
72
val projectAfterJoin = Project (
68
73
Seq (
@@ -95,7 +100,9 @@ class FlintSparkPPLLookupITSuite
95
100
96
101
val lookupProject =
97
102
Project (Seq (UnresolvedAttribute (" department" ), UnresolvedAttribute (" uid" )), lookupAlias)
98
- val joinCondition = EqualTo (UnresolvedAttribute (" uid" ), UnresolvedAttribute (" id" ))
103
+ val joinCondition = EqualTo (
104
+ UnresolvedAttribute (" __auto_generated_subquery_name_l.uid" ),
105
+ UnresolvedAttribute (" __auto_generated_subquery_name_s.id" ))
99
106
val joinPlan = Join (sourceAlias, lookupProject, LeftOuter , Some (joinCondition), JoinHint .NONE )
100
107
val coalesceExpr =
101
108
Coalesce (
@@ -132,7 +139,9 @@ class FlintSparkPPLLookupITSuite
132
139
133
140
val lookupProject =
134
141
Project (Seq (UnresolvedAttribute (" department" ), UnresolvedAttribute (" uid" )), lookupAlias)
135
- val joinCondition = EqualTo (UnresolvedAttribute (" uid" ), UnresolvedAttribute (" id" ))
142
+ val joinCondition = EqualTo (
143
+ UnresolvedAttribute (" __auto_generated_subquery_name_l.uid" ),
144
+ UnresolvedAttribute (" __auto_generated_subquery_name_s.id" ))
136
145
val joinPlan = Join (sourceAlias, lookupProject, LeftOuter , Some (joinCondition), JoinHint .NONE )
137
146
val projectAfterJoin = Project (
138
147
Seq (
@@ -164,7 +173,9 @@ class FlintSparkPPLLookupITSuite
164
173
165
174
val lookupProject =
166
175
Project (Seq (UnresolvedAttribute (" department" ), UnresolvedAttribute (" uid" )), lookupAlias)
167
- val joinCondition = EqualTo (UnresolvedAttribute (" uid" ), UnresolvedAttribute (" id" ))
176
+ val joinCondition = EqualTo (
177
+ UnresolvedAttribute (" __auto_generated_subquery_name_l.uid" ),
178
+ UnresolvedAttribute (" __auto_generated_subquery_name_s.id" ))
168
179
val joinPlan = Join (sourceAlias, lookupProject, LeftOuter , Some (joinCondition), JoinHint .NONE )
169
180
val coalesceExpr =
170
181
Coalesce (
@@ -208,7 +219,9 @@ class FlintSparkPPLLookupITSuite
208
219
lookupAlias)
209
220
val joinCondition =
210
221
And (
211
- EqualTo (UnresolvedAttribute (" uID" ), UnresolvedAttribute (" id" )),
222
+ EqualTo (
223
+ UnresolvedAttribute (" __auto_generated_subquery_name_l.uID" ),
224
+ UnresolvedAttribute (" __auto_generated_subquery_name_s.id" )),
212
225
EqualTo (
213
226
UnresolvedAttribute (" __auto_generated_subquery_name_l.name" ),
214
227
UnresolvedAttribute (" __auto_generated_subquery_name_s.name" )))
@@ -253,7 +266,9 @@ class FlintSparkPPLLookupITSuite
253
266
lookupAlias)
254
267
val joinCondition =
255
268
And (
256
- EqualTo (UnresolvedAttribute (" uid" ), UnresolvedAttribute (" ID" )),
269
+ EqualTo (
270
+ UnresolvedAttribute (" __auto_generated_subquery_name_l.uid" ),
271
+ UnresolvedAttribute (" __auto_generated_subquery_name_s.ID" )),
257
272
EqualTo (
258
273
UnresolvedAttribute (" __auto_generated_subquery_name_l.name" ),
259
274
UnresolvedAttribute (" __auto_generated_subquery_name_s.name" )))
@@ -519,4 +534,46 @@ class FlintSparkPPLLookupITSuite
519
534
ex.getMessage.contains(
520
535
" A column or function parameter with name `new_col` cannot be resolved" ))
521
536
}
537
+
538
+ test(" test LOOKUP lookupTable name as id shouldn't throw exception" ) {
539
+ sql(s """
540
+ | DROP TABLE IF EXISTS s
541
+ | """ .stripMargin)
542
+ sql(s """
543
+ | DROP TABLE IF EXISTS l
544
+ | """ .stripMargin)
545
+ sql(s """
546
+ | CREATE TABLE s
547
+ | (
548
+ | id INT,
549
+ | uid INT,
550
+ | name STRING
551
+ | )
552
+ | USING $tableType $tableOptions
553
+ | """ .stripMargin)
554
+ sql(s """
555
+ | INSERT INTO s
556
+ | VALUES (1, 4, 'b'),
557
+ | (2, 5, 'bb'),
558
+ | (3, 6, 'ccc')
559
+ | """ .stripMargin)
560
+
561
+ sql(s """
562
+ | CREATE TABLE l
563
+ | (
564
+ | id INT,
565
+ | name STRING
566
+ | )
567
+ | USING $tableType $tableOptions
568
+ | """ .stripMargin)
569
+ sql(s """
570
+ | INSERT INTO l
571
+ | VALUES (4, 'x'),
572
+ | (5, 'xx')
573
+ | """ .stripMargin)
574
+ val frame =
575
+ sql(" source = s | LOOKUP l id as uid REPLACE name" )
576
+ val expectedResults : Array [Row ] = Array (Row (4 , " x" ), Row (5 , " xx" ), Row (6 , null ))
577
+ assertSameRows(expectedResults, frame)
578
+ }
522
579
}
0 commit comments