Skip to content

Commit 5b2c4cf

Browse files
TeodorDjeliccloud-fan
authored andcommitted
[SPARK-53341][CORE] Expand golden test coverage on multivariable DECLARE
### What changes were proposed in this pull request? Added missing tests from the sql golden file test for the multivariable DECLARE. Missing variants were: - DECLARE with type and default - DECLARE with just default - DECLARE OR REPLACE with type and default - DECLARE OR REPLACE with just default ### Why are the changes needed? To improve the code coverage of golden files. ### Does this PR introduce _any_ user-facing change? No. ### How was this patch tested? This patch includes only the golden file tests themselves. ### Was this patch authored or co-authored using generative AI tooling? No. Closes #52086 from TeodorDjelic/expand-golden-test-coverage-on-multivariable-declare. Authored-by: Teodor Djelic <[email protected]> Signed-off-by: Wenchen Fan <[email protected]>
1 parent 78871d7 commit 5b2c4cf

File tree

3 files changed

+320
-88
lines changed

3 files changed

+320
-88
lines changed

sql/core/src/test/resources/sql-tests/analyzer-results/sql-session-variables.sql.out

Lines changed: 142 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -12,44 +12,6 @@ CreateVariable defaultvalueexpression(null, null), false
1212
+- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.title
1313

1414

15-
-- !query
16-
DECLARE VARIABLE var1, var2, var3 INT
17-
-- !query analysis
18-
CreateVariable defaultvalueexpression(null, null), false
19-
:- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.var1
20-
:- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.var2
21-
+- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.var3
22-
23-
24-
-- !query
25-
DECLARE OR REPLACE VARIABLE var1, var2 DOUBLE
26-
-- !query analysis
27-
CreateVariable defaultvalueexpression(null, null), true
28-
:- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.var1
29-
+- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.var2
30-
31-
32-
-- !query
33-
DROP TEMPORARY VARIABLE var1
34-
-- !query analysis
35-
DropVariable false
36-
+- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.var1
37-
38-
39-
-- !query
40-
DROP TEMPORARY VARIABLE var2
41-
-- !query analysis
42-
DropVariable false
43-
+- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.var2
44-
45-
46-
-- !query
47-
DROP TEMPORARY VARIABLE var3
48-
-- !query analysis
49-
DropVariable false
50-
+- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.var3
51-
52-
5315
-- !query
5416
SET VARIABLE title = '-- Basic sanity --'
5517
-- !query analysis
@@ -1284,6 +1246,147 @@ DropVariable false
12841246
+- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.var3
12851247

12861248

1249+
-- !query
1250+
SET VARIABLE title = 'DECLARE VARIABLE - multiple variables declared at once'
1251+
-- !query analysis
1252+
SetVariable [variablereference(system.session.title='SET VARIABLE - comma separated target')]
1253+
+- Project [DECLARE VARIABLE - multiple variables declared at once AS title#x]
1254+
+- OneRowRelation
1255+
1256+
1257+
-- !query
1258+
DECLARE VARIABLE var1, var2, var3 INT
1259+
-- !query analysis
1260+
CreateVariable defaultvalueexpression(null, null), false
1261+
:- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.var1
1262+
:- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.var2
1263+
+- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.var3
1264+
1265+
1266+
-- !query
1267+
DECLARE VARIABLE var4, var5, var6 INT DEFAULT CAST(RAND(0) * 10 AS INT)
1268+
-- !query analysis
1269+
[Analyzer test output redacted due to nondeterminism]
1270+
1271+
1272+
-- !query
1273+
DECLARE VARIABLE var7, var8, var9 DEFAULT 5
1274+
-- !query analysis
1275+
CreateVariable defaultvalueexpression(5, 5), false
1276+
:- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.var7
1277+
:- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.var8
1278+
+- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.var9
1279+
1280+
1281+
-- !query
1282+
SELECT var4 = var5, var4 = var6, var5 = var6
1283+
-- !query analysis
1284+
Project [(variablereference(system.session.var4=7) = variablereference(system.session.var5=7)) AS (variablereference(system.session.var4=7) = variablereference(system.session.var5=7))#x, (variablereference(system.session.var4=7) = variablereference(system.session.var6=7)) AS (variablereference(system.session.var4=7) = variablereference(system.session.var6=7))#x, (variablereference(system.session.var5=7) = variablereference(system.session.var6=7)) AS (variablereference(system.session.var5=7) = variablereference(system.session.var6=7))#x]
1285+
+- OneRowRelation
1286+
1287+
1288+
-- !query
1289+
DECLARE OR REPLACE VARIABLE var1, var2, var3 DOUBLE
1290+
-- !query analysis
1291+
CreateVariable defaultvalueexpression(null, null), true
1292+
:- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.var1
1293+
:- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.var2
1294+
+- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.var3
1295+
1296+
1297+
-- !query
1298+
DECLARE OR REPLACE VARIABLE var4, var5, var6 DOUBLE DEFAULT RAND(0)
1299+
-- !query analysis
1300+
[Analyzer test output redacted due to nondeterminism]
1301+
1302+
1303+
-- !query
1304+
DECLARE OR REPLACE VARIABLE var7, var8, var9 DEFAULT 1.5
1305+
-- !query analysis
1306+
CreateVariable defaultvalueexpression(1.5, 1.5), true
1307+
:- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.var7
1308+
:- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.var8
1309+
+- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.var9
1310+
1311+
1312+
-- !query
1313+
SELECT var4 = var5, var4 = var6, var5 = var6
1314+
-- !query analysis
1315+
Project [(variablereference(system.session.var4=0.7604953758285915D) = variablereference(system.session.var5=0.7604953758285915D)) AS (variablereference(system.session.var4=0.7604953758285915D) = variablereference(system.session.var5=0.7604953758285915D))#x, (variablereference(system.session.var4=0.7604953758285915D) = variablereference(system.session.var6=0.7604953758285915D)) AS (variablereference(system.session.var4=0.7604953758285915D) = variablereference(system.session.var6=0.7604953758285915D))#x, (variablereference(system.session.var5=0.7604953758285915D) = variablereference(system.session.var6=0.7604953758285915D)) AS (variablereference(system.session.var5=0.7604953758285915D) = variablereference(system.session.var6=0.7604953758285915D))#x]
1316+
+- OneRowRelation
1317+
1318+
1319+
-- !query
1320+
DROP TEMPORARY VARIABLE var1
1321+
-- !query analysis
1322+
DropVariable false
1323+
+- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.var1
1324+
1325+
1326+
-- !query
1327+
DROP TEMPORARY VARIABLE var2
1328+
-- !query analysis
1329+
DropVariable false
1330+
+- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.var2
1331+
1332+
1333+
-- !query
1334+
DROP TEMPORARY VARIABLE var3
1335+
-- !query analysis
1336+
DropVariable false
1337+
+- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.var3
1338+
1339+
1340+
-- !query
1341+
DROP TEMPORARY VARIABLE var4
1342+
-- !query analysis
1343+
DropVariable false
1344+
+- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.var4
1345+
1346+
1347+
-- !query
1348+
DROP TEMPORARY VARIABLE var5
1349+
-- !query analysis
1350+
DropVariable false
1351+
+- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.var5
1352+
1353+
1354+
-- !query
1355+
DROP TEMPORARY VARIABLE var6
1356+
-- !query analysis
1357+
DropVariable false
1358+
+- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.var6
1359+
1360+
1361+
-- !query
1362+
DROP TEMPORARY VARIABLE var7
1363+
-- !query analysis
1364+
DropVariable false
1365+
+- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.var7
1366+
1367+
1368+
-- !query
1369+
DROP TEMPORARY VARIABLE var8
1370+
-- !query analysis
1371+
DropVariable false
1372+
+- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.var8
1373+
1374+
1375+
-- !query
1376+
DROP TEMPORARY VARIABLE var9
1377+
-- !query analysis
1378+
DropVariable false
1379+
+- ResolvedIdentifier org.apache.spark.sql.catalyst.analysis.FakeSystemCatalog$@xxxxxxxx, session.var9
1380+
1381+
1382+
-- !query
1383+
SET VARIABLE title = 'DECLARE VARIABLE - duplicate names'
1384+
-- !query analysis
1385+
SetVariable [variablereference(system.session.title='DECLARE VARIABLE - multiple variables declared at once')]
1386+
+- Project [DECLARE VARIABLE - duplicate names AS title#x]
1387+
+- OneRowRelation
1388+
1389+
12871390
-- !query
12881391
DECLARE VARIABLE var1, var2, vAr1 INT
12891392
-- !query analysis
@@ -1313,7 +1416,7 @@ org.apache.spark.sql.AnalysisException
13131416
-- !query
13141417
SET VARIABLE title = 'SET VARIABLE - row assignment'
13151418
-- !query analysis
1316-
SetVariable [variablereference(system.session.title='SET VARIABLE - comma separated target')]
1419+
SetVariable [variablereference(system.session.title='DECLARE VARIABLE - duplicate names')]
13171420
+- Project [SET VARIABLE - row assignment AS title#x]
13181421
+- OneRowRelation
13191422

sql/core/src/test/resources/sql-tests/inputs/sql-session-variables.sql

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,6 @@ SET spark.sql.ansi.enabled = true;
22

33
DECLARE title STRING;
44

5-
DECLARE VARIABLE var1, var2, var3 INT;
6-
7-
DECLARE OR REPLACE VARIABLE var1, var2 DOUBLE;
8-
9-
DROP TEMPORARY VARIABLE var1;
10-
DROP TEMPORARY VARIABLE var2;
11-
DROP TEMPORARY VARIABLE var3;
12-
135
SET VARIABLE title = '-- Basic sanity --';
146
DECLARE var1 INT = 5;
157
SELECT var1;
@@ -215,8 +207,33 @@ DROP TEMPORARY VARIABLE var1;
215207
DROP TEMPORARY VARIABLE var2;
216208
DROP TEMPORARY VARIABLE var3;
217209

218-
DECLARE VARIABLE var1, var2, vAr1 INT;
210+
SET VARIABLE title = 'DECLARE VARIABLE - multiple variables declared at once';
211+
212+
DECLARE VARIABLE var1, var2, var3 INT;
213+
DECLARE VARIABLE var4, var5, var6 INT DEFAULT CAST(RAND(0) * 10 AS INT);
214+
DECLARE VARIABLE var7, var8, var9 DEFAULT 5;
219215

216+
SELECT var4 = var5, var4 = var6, var5 = var6;
217+
218+
DECLARE OR REPLACE VARIABLE var1, var2, var3 DOUBLE;
219+
DECLARE OR REPLACE VARIABLE var4, var5, var6 DOUBLE DEFAULT RAND(0);
220+
DECLARE OR REPLACE VARIABLE var7, var8, var9 DEFAULT 1.5;
221+
222+
SELECT var4 = var5, var4 = var6, var5 = var6;
223+
224+
DROP TEMPORARY VARIABLE var1;
225+
DROP TEMPORARY VARIABLE var2;
226+
DROP TEMPORARY VARIABLE var3;
227+
DROP TEMPORARY VARIABLE var4;
228+
DROP TEMPORARY VARIABLE var5;
229+
DROP TEMPORARY VARIABLE var6;
230+
DROP TEMPORARY VARIABLE var7;
231+
DROP TEMPORARY VARIABLE var8;
232+
DROP TEMPORARY VARIABLE var9;
233+
234+
SET VARIABLE title = 'DECLARE VARIABLE - duplicate names';
235+
236+
DECLARE VARIABLE var1, var2, vAr1 INT;
220237
DECLARE OR REPLACE VARIABLE var1, var2, vAr1 INT;
221238

222239
SET VARIABLE title = 'SET VARIABLE - row assignment';

0 commit comments

Comments
 (0)