aboutsummaryrefslogtreecommitdiff
path: root/sql/core/src/test/resources
diff options
context:
space:
mode:
Diffstat (limited to 'sql/core/src/test/resources')
-rw-r--r--sql/core/src/test/resources/sql-tests/inputs/arithmetic.sql26
-rw-r--r--sql/core/src/test/resources/sql-tests/inputs/group-by-ordinal.sql50
-rw-r--r--sql/core/src/test/resources/sql-tests/inputs/order-by-ordinal.sql36
-rw-r--r--sql/core/src/test/resources/sql-tests/results/arithmetic.sql.out178
-rw-r--r--sql/core/src/test/resources/sql-tests/results/group-by-ordinal.sql.out168
-rw-r--r--sql/core/src/test/resources/sql-tests/results/order-by-ordinal.sql.out143
6 files changed, 601 insertions, 0 deletions
diff --git a/sql/core/src/test/resources/sql-tests/inputs/arithmetic.sql b/sql/core/src/test/resources/sql-tests/inputs/arithmetic.sql
new file mode 100644
index 0000000000..cbe40410cd
--- /dev/null
+++ b/sql/core/src/test/resources/sql-tests/inputs/arithmetic.sql
@@ -0,0 +1,26 @@
+
+-- unary minus and plus
+select -100;
+select +230;
+select -5.2;
+select +6.8e0;
+select -key, +key from testdata where key = 2;
+select -(key + 1), - key + 1, +(key + 5) from testdata where key = 1;
+select -max(key), +max(key) from testdata;
+select - (-10);
+select + (-key) from testdata where key = 32;
+select - (+max(key)) from testdata;
+select - - 3;
+select - + 20;
+select + + 100;
+select - - max(key) from testdata;
+select + - key from testdata where key = 33;
+
+-- other arithmetics
+select 1 + 2;
+select 1 - 2;
+select 2 * 5;
+select 5 / 2;
+select 5 div 2;
+select 5 % 3;
+select pmod(-7, 3);
diff --git a/sql/core/src/test/resources/sql-tests/inputs/group-by-ordinal.sql b/sql/core/src/test/resources/sql-tests/inputs/group-by-ordinal.sql
new file mode 100644
index 0000000000..36b469c617
--- /dev/null
+++ b/sql/core/src/test/resources/sql-tests/inputs/group-by-ordinal.sql
@@ -0,0 +1,50 @@
+-- group by ordinal positions
+
+create temporary view data as select * from values
+ (1, 1),
+ (1, 2),
+ (2, 1),
+ (2, 2),
+ (3, 1),
+ (3, 2)
+ as data(a, b);
+
+-- basic case
+select a, sum(b) from data group by 1;
+
+-- constant case
+select 1, 2, sum(b) from data group by 1, 2;
+
+-- duplicate group by column
+select a, 1, sum(b) from data group by a, 1;
+select a, 1, sum(b) from data group by 1, 2;
+
+-- group by a non-aggregate expression's ordinal
+select a, b + 2, count(2) from data group by a, 2;
+
+-- with alias
+select a as aa, b + 2 as bb, count(2) from data group by 1, 2;
+
+-- foldable non-literal: this should be the same as no grouping.
+select sum(b) from data group by 1 + 0;
+
+-- negative cases: ordinal out of range
+select a, b from data group by -1;
+select a, b from data group by 0;
+select a, b from data group by 3;
+
+-- negative case: position is an aggregate expression
+select a, b, sum(b) from data group by 3;
+select a, b, sum(b) + 2 from data group by 3;
+
+-- negative case: nondeterministic expression
+select a, rand(0), sum(b) from data group by a, 2;
+
+-- negative case: star
+select * from data group by a, b, 1;
+
+-- turn of group by ordinal
+set spark.sql.groupByOrdinal=false;
+
+-- can now group by negative literal
+select sum(b) from data group by -1;
diff --git a/sql/core/src/test/resources/sql-tests/inputs/order-by-ordinal.sql b/sql/core/src/test/resources/sql-tests/inputs/order-by-ordinal.sql
new file mode 100644
index 0000000000..8d733e77fa
--- /dev/null
+++ b/sql/core/src/test/resources/sql-tests/inputs/order-by-ordinal.sql
@@ -0,0 +1,36 @@
+-- order by and sort by ordinal positions
+
+create temporary view data as select * from values
+ (1, 1),
+ (1, 2),
+ (2, 1),
+ (2, 2),
+ (3, 1),
+ (3, 2)
+ as data(a, b);
+
+select * from data order by 1 desc;
+
+-- mix ordinal and column name
+select * from data order by 1 desc, b desc;
+
+-- order by multiple ordinals
+select * from data order by 1 desc, 2 desc;
+
+-- 1 + 0 is considered a constant (not an ordinal) and thus ignored
+select * from data order by 1 + 0 desc, b desc;
+
+-- negative cases: ordinal position out of range
+select * from data order by 0;
+select * from data order by -1;
+select * from data order by 3;
+
+-- sort by ordinal
+select * from data sort by 1 desc;
+
+-- turn off order by ordinal
+set spark.sql.orderByOrdinal=false;
+
+-- 0 is now a valid literal
+select * from data order by 0;
+select * from data sort by 0;
diff --git a/sql/core/src/test/resources/sql-tests/results/arithmetic.sql.out b/sql/core/src/test/resources/sql-tests/results/arithmetic.sql.out
new file mode 100644
index 0000000000..50ea254b0b
--- /dev/null
+++ b/sql/core/src/test/resources/sql-tests/results/arithmetic.sql.out
@@ -0,0 +1,178 @@
+-- Automatically generated by SQLQueryTestSuite
+-- Number of queries: 22
+
+
+-- !query 0
+select -100
+-- !query 0 schema
+struct<(-100):int>
+-- !query 0 output
+-100
+
+
+-- !query 1
+select +230
+-- !query 1 schema
+struct<230:int>
+-- !query 1 output
+230
+
+
+-- !query 2
+select -5.2
+-- !query 2 schema
+struct<(-5.2):decimal(2,1)>
+-- !query 2 output
+-5.2
+
+
+-- !query 3
+select +6.8e0
+-- !query 3 schema
+struct<6.8:double>
+-- !query 3 output
+6.8
+
+
+-- !query 4
+select -key, +key from testdata where key = 2
+-- !query 4 schema
+struct<(-key):int,key:int>
+-- !query 4 output
+-2 2
+
+
+-- !query 5
+select -(key + 1), - key + 1, +(key + 5) from testdata where key = 1
+-- !query 5 schema
+struct<(-(key + 1)):int,((-key) + 1):int,(key + 5):int>
+-- !query 5 output
+-2 0 6
+
+
+-- !query 6
+select -max(key), +max(key) from testdata
+-- !query 6 schema
+struct<(-max(key)):int,max(key):int>
+-- !query 6 output
+-100 100
+
+
+-- !query 7
+select - (-10)
+-- !query 7 schema
+struct<(-(-10)):int>
+-- !query 7 output
+10
+
+
+-- !query 8
+select + (-key) from testdata where key = 32
+-- !query 8 schema
+struct<(-key):int>
+-- !query 8 output
+-32
+
+
+-- !query 9
+select - (+max(key)) from testdata
+-- !query 9 schema
+struct<(-max(key)):int>
+-- !query 9 output
+-100
+
+
+-- !query 10
+select - - 3
+-- !query 10 schema
+struct<(-(-3)):int>
+-- !query 10 output
+3
+
+
+-- !query 11
+select - + 20
+-- !query 11 schema
+struct<(-20):int>
+-- !query 11 output
+-20
+
+
+-- !query 12
+select + + 100
+-- !query 12 schema
+struct<100:int>
+-- !query 12 output
+100
+
+
+-- !query 13
+select - - max(key) from testdata
+-- !query 13 schema
+struct<(-(-max(key))):int>
+-- !query 13 output
+100
+
+
+-- !query 14
+select + - key from testdata where key = 33
+-- !query 14 schema
+struct<(-key):int>
+-- !query 14 output
+-33
+
+
+-- !query 15
+select 1 + 2
+-- !query 15 schema
+struct<(1 + 2):int>
+-- !query 15 output
+3
+
+
+-- !query 16
+select 1 - 2
+-- !query 16 schema
+struct<(1 - 2):int>
+-- !query 16 output
+-1
+
+
+-- !query 17
+select 2 * 5
+-- !query 17 schema
+struct<(2 * 5):int>
+-- !query 17 output
+10
+
+
+-- !query 18
+select 5 / 2
+-- !query 18 schema
+struct<(CAST(5 AS DOUBLE) / CAST(2 AS DOUBLE)):double>
+-- !query 18 output
+2.5
+
+
+-- !query 19
+select 5 div 2
+-- !query 19 schema
+struct<CAST((CAST(5 AS DOUBLE) / CAST(2 AS DOUBLE)) AS BIGINT):bigint>
+-- !query 19 output
+2
+
+
+-- !query 20
+select 5 % 3
+-- !query 20 schema
+struct<(5 % 3):int>
+-- !query 20 output
+2
+
+
+-- !query 21
+select pmod(-7, 3)
+-- !query 21 schema
+struct<pmod((-7), 3):int>
+-- !query 21 output
+2
diff --git a/sql/core/src/test/resources/sql-tests/results/group-by-ordinal.sql.out b/sql/core/src/test/resources/sql-tests/results/group-by-ordinal.sql.out
new file mode 100644
index 0000000000..2f10b7ebc6
--- /dev/null
+++ b/sql/core/src/test/resources/sql-tests/results/group-by-ordinal.sql.out
@@ -0,0 +1,168 @@
+-- Automatically generated by SQLQueryTestSuite
+-- Number of queries: 17
+
+
+-- !query 0
+create temporary view data as select * from values
+ (1, 1),
+ (1, 2),
+ (2, 1),
+ (2, 2),
+ (3, 1),
+ (3, 2)
+ as data(a, b)
+-- !query 0 schema
+struct<>
+-- !query 0 output
+
+
+
+-- !query 1
+select a, sum(b) from data group by 1
+-- !query 1 schema
+struct<a:int,sum(b):bigint>
+-- !query 1 output
+1 3
+2 3
+3 3
+
+
+-- !query 2
+select 1, 2, sum(b) from data group by 1, 2
+-- !query 2 schema
+struct<1:int,2:int,sum(b):bigint>
+-- !query 2 output
+1 2 9
+
+
+-- !query 3
+select a, 1, sum(b) from data group by a, 1
+-- !query 3 schema
+struct<a:int,1:int,sum(b):bigint>
+-- !query 3 output
+1 1 3
+2 1 3
+3 1 3
+
+
+-- !query 4
+select a, 1, sum(b) from data group by 1, 2
+-- !query 4 schema
+struct<a:int,1:int,sum(b):bigint>
+-- !query 4 output
+1 1 3
+2 1 3
+3 1 3
+
+
+-- !query 5
+select a, b + 2, count(2) from data group by a, 2
+-- !query 5 schema
+struct<a:int,(b + 2):int,count(2):bigint>
+-- !query 5 output
+1 3 1
+1 4 1
+2 3 1
+2 4 1
+3 3 1
+3 4 1
+
+
+-- !query 6
+select a as aa, b + 2 as bb, count(2) from data group by 1, 2
+-- !query 6 schema
+struct<aa:int,bb:int,count(2):bigint>
+-- !query 6 output
+1 3 1
+1 4 1
+2 3 1
+2 4 1
+3 3 1
+3 4 1
+
+
+-- !query 7
+select sum(b) from data group by 1 + 0
+-- !query 7 schema
+struct<sum(b):bigint>
+-- !query 7 output
+9
+
+
+-- !query 8
+select a, b from data group by -1
+-- !query 8 schema
+struct<>
+-- !query 8 output
+org.apache.spark.sql.AnalysisException
+GROUP BY position -1 is not in select list (valid range is [1, 2]); line 1 pos 31
+
+
+-- !query 9
+select a, b from data group by 0
+-- !query 9 schema
+struct<>
+-- !query 9 output
+org.apache.spark.sql.AnalysisException
+GROUP BY position 0 is not in select list (valid range is [1, 2]); line 1 pos 31
+
+
+-- !query 10
+select a, b from data group by 3
+-- !query 10 schema
+struct<>
+-- !query 10 output
+org.apache.spark.sql.AnalysisException
+GROUP BY position 3 is not in select list (valid range is [1, 2]); line 1 pos 31
+
+
+-- !query 11
+select a, b, sum(b) from data group by 3
+-- !query 11 schema
+struct<>
+-- !query 11 output
+org.apache.spark.sql.AnalysisException
+GROUP BY position 3 is an aggregate function, and aggregate functions are not allowed in GROUP BY; line 1 pos 39
+
+
+-- !query 12
+select a, b, sum(b) + 2 from data group by 3
+-- !query 12 schema
+struct<>
+-- !query 12 output
+org.apache.spark.sql.AnalysisException
+GROUP BY position 3 is an aggregate function, and aggregate functions are not allowed in GROUP BY; line 1 pos 43
+
+
+-- !query 13
+select a, rand(0), sum(b) from data group by a, 2
+-- !query 13 schema
+struct<>
+-- !query 13 output
+org.apache.spark.sql.AnalysisException
+nondeterministic expression rand(0) should not appear in grouping expression.;
+
+
+-- !query 14
+select * from data group by a, b, 1
+-- !query 14 schema
+struct<>
+-- !query 14 output
+org.apache.spark.sql.AnalysisException
+Star (*) is not allowed in select list when GROUP BY ordinal position is used;
+
+
+-- !query 15
+set spark.sql.groupByOrdinal=false
+-- !query 15 schema
+struct<key:string,value:string>
+-- !query 15 output
+spark.sql.groupByOrdinal
+
+
+-- !query 16
+select sum(b) from data group by -1
+-- !query 16 schema
+struct<sum(b):bigint>
+-- !query 16 output
+9
diff --git a/sql/core/src/test/resources/sql-tests/results/order-by-ordinal.sql.out b/sql/core/src/test/resources/sql-tests/results/order-by-ordinal.sql.out
new file mode 100644
index 0000000000..03a4e72d0f
--- /dev/null
+++ b/sql/core/src/test/resources/sql-tests/results/order-by-ordinal.sql.out
@@ -0,0 +1,143 @@
+-- Automatically generated by SQLQueryTestSuite
+-- Number of queries: 12
+
+
+-- !query 0
+create temporary view data as select * from values
+ (1, 1),
+ (1, 2),
+ (2, 1),
+ (2, 2),
+ (3, 1),
+ (3, 2)
+ as data(a, b)
+-- !query 0 schema
+struct<>
+-- !query 0 output
+
+
+
+-- !query 1
+select * from data order by 1 desc
+-- !query 1 schema
+struct<a:int,b:int>
+-- !query 1 output
+3 1
+3 2
+2 1
+2 2
+1 1
+1 2
+
+
+-- !query 2
+select * from data order by 1 desc, b desc
+-- !query 2 schema
+struct<a:int,b:int>
+-- !query 2 output
+3 2
+3 1
+2 2
+2 1
+1 2
+1 1
+
+
+-- !query 3
+select * from data order by 1 desc, 2 desc
+-- !query 3 schema
+struct<a:int,b:int>
+-- !query 3 output
+3 2
+3 1
+2 2
+2 1
+1 2
+1 1
+
+
+-- !query 4
+select * from data order by 1 + 0 desc, b desc
+-- !query 4 schema
+struct<a:int,b:int>
+-- !query 4 output
+1 2
+2 2
+3 2
+1 1
+2 1
+3 1
+
+
+-- !query 5
+select * from data order by 0
+-- !query 5 schema
+struct<>
+-- !query 5 output
+org.apache.spark.sql.AnalysisException
+ORDER BY position 0 is not in select list (valid range is [1, 2]); line 1 pos 28
+
+
+-- !query 6
+select * from data order by -1
+-- !query 6 schema
+struct<>
+-- !query 6 output
+org.apache.spark.sql.AnalysisException
+ORDER BY position -1 is not in select list (valid range is [1, 2]); line 1 pos 28
+
+
+-- !query 7
+select * from data order by 3
+-- !query 7 schema
+struct<>
+-- !query 7 output
+org.apache.spark.sql.AnalysisException
+ORDER BY position 3 is not in select list (valid range is [1, 2]); line 1 pos 28
+
+
+-- !query 8
+select * from data sort by 1 desc
+-- !query 8 schema
+struct<a:int,b:int>
+-- !query 8 output
+1 1
+1 2
+2 1
+2 2
+3 1
+3 2
+
+
+-- !query 9
+set spark.sql.orderByOrdinal=false
+-- !query 9 schema
+struct<key:string,value:string>
+-- !query 9 output
+spark.sql.orderByOrdinal
+
+
+-- !query 10
+select * from data order by 0
+-- !query 10 schema
+struct<a:int,b:int>
+-- !query 10 output
+1 1
+1 2
+2 1
+2 2
+3 1
+3 2
+
+
+-- !query 11
+select * from data sort by 0
+-- !query 11 schema
+struct<a:int,b:int>
+-- !query 11 output
+1 1
+1 2
+2 1
+2 2
+3 1
+3 2