This is an automated email from the ASF dual-hosted git repository.
alamb pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-datafusion.git
The following commit(s) were added to refs/heads/main by this push:
new 1b1e59b6f5 feat: extra sqllogictests for scalar functions (#5887)
1b1e59b6f5 is described below
commit 1b1e59b6f5091fcf31d92108fc6111675c777bb1
Author: Igor Izvekov <[email protected]>
AuthorDate: Thu Apr 13 21:06:36 2023 +0300
feat: extra sqllogictests for scalar functions (#5887)
* feat: extra sqllogictests for scalar functions
* feat: add all math functions
* feat: ln scalar ops with zero edgecases
---
.../core/tests/sqllogictests/test_files/scalar.slt | 377 ++++++++++++++++++++-
1 file changed, 370 insertions(+), 7 deletions(-)
diff --git a/datafusion/core/tests/sqllogictests/test_files/scalar.slt
b/datafusion/core/tests/sqllogictests/test_files/scalar.slt
index c91ee33c25..138d71e1c4 100644
--- a/datafusion/core/tests/sqllogictests/test_files/scalar.slt
+++ b/datafusion/core/tests/sqllogictests/test_files/scalar.slt
@@ -31,11 +31,208 @@ CREATE TABLE t1(
(3, 10000, 978, 2048)
;
-# pi scalar function
+# abs scalar function
query RRR rowsort
-select pi(), pi() / 2, pi() / 3;
+select abs(64), abs(0), abs(-64);
----
-3.14159265359 1.570796326795 1.047197551197
+64 0 64
+
+# abs scalar nulls
+query R rowsort
+select abs(null);
+----
+NULL
+
+# acos scalar function
+query RRR rowsort
+select acos(0), acos(0.5), acos(1);
+----
+1.570796326795 1.047197551197 0
+
+# acos scalar nulls
+query R rowsort
+select acos(null);
+----
+NULL
+
+# acosh scalar function
+# cosh(x) = (exp(x) + exp(-x)) / 2
+query RRR rowsort
+select acosh((exp(1) + exp(-1)) / 2), acosh((exp(2) + exp(-2)) / 2),
acosh((exp(3) + exp(-3)) / 2);
+----
+1 2 3
+
+# acosh scalar nulls
+query R rowsort
+select acosh(null);
+----
+NULL
+
+# asin scalar function
+query RRR rowsort
+select asin(0), asin(0.5), asin(1);
+----
+0 0.523598775598 1.570796326795
+
+# asin scalar nulls
+query R rowsort
+select asin(null);
+----
+NULL
+
+# asinh scalar function
+# sinh(x) = (exp(x) - exp(-x)) / 2
+query RRR rowsort
+select asinh((exp(1) - exp(-1)) / 2), asinh((exp(2) - exp(-2)) / 2),
asinh((exp(3) - exp(-3)) / 2);
+----
+1 2 3
+
+# asinh scalar nulls
+query R rowsort
+select asinh(null);
+----
+NULL
+
+# atan scalar function
+query RRR rowsort
+select atan(0), atan(cbrt(3)), atan(1);
+----
+0 0.964539792856 0.785398163397
+
+# atan scalar nulls
+query R rowsort
+select atan(null);
+----
+NULL
+
+# atanh scalar function
+# tanh(x) = (exp(2x) - 1) / (exp(2x) + 1)
+query RRR rowsort
+select atanh((exp(2) - 1) / (exp(2) + 1)), atanh((exp(4) - 1) / (exp(4) + 1)),
atanh((exp(6) - 1) / (exp(6) + 1));
+----
+1 2 3
+
+# atanh scalar nulls
+query R rowsort
+select atanh(null);
+----
+NULL
+
+# atan2 scalar function
+query RRR rowsort
+select atan2(0, 1), atan2(1, 2), atan2(2, 2);
+----
+0 0.4636476 0.7853982
+
+# atan2 scalar nulls
+query R rowsort
+select atan2(null, 64);
+----
+NULL
+
+# atan2 scalar nulls 1
+query R rowsort
+select atan2(2, null);
+----
+NULL
+
+# atan2 scalar nulls 2
+query R rowsort
+select atan2(null, null);
+----
+NULL
+
+# cbrt scalar function
+query RRR rowsort
+select cbrt(0), cbrt(8), cbrt(27);
+----
+0 2 3
+
+# cbrt scalar nulls
+query R rowsort
+select cbrt(null);
+----
+NULL
+
+# ceil scalar function
+query RRR rowsort
+select ceil(1.6), ceil(1.5), ceil(1.4);
+----
+2 2 2
+
+# ceil scalar nulls
+query R rowsort
+select ceil(null);
+----
+NULL
+
+# cos scalar function
+query RRR rowsort
+select cos(0), cos(pi() / 3), cos(pi() / 2);
+----
+1 0.5 0
+
+# cos scalar nulls
+query R rowsort
+select cos(null);
+----
+NULL
+
+# cosh scalar function
+# cosh(x) = (exp(x) + exp(-x)) / 2
+query RRR rowsort
+select cosh(1), cosh(2), cosh(3);
+----
+1.543080634815 3.762195691084 10.067661995778
+
+# cosh scalar nulls
+query R rowsort
+select cosh(null);
+----
+NULL
+
+# exp scalar function
+query RRR rowsort
+select exp(0), exp(1), exp(2);
+----
+1 2.718281828459 7.389056098931
+
+# exp scalar nulls
+query R rowsort
+select exp(null);
+----
+NULL
+
+# floor scalar function
+query RRR rowsort
+select floor(1.4), floor(1.5), floor(1.6);
+----
+1 1 1
+
+# floor scalar nulls
+query R rowsort
+select floor(null);
+----
+NULL
+
+# ln scalar function
+query RRR rowsort
+select ln(1), ln(exp(1)), ln(3);
+----
+0 1 1.098612288668
+
+# ln scalar nulls
+query R rowsort
+select ln(null);
+----
+NULL
+
+# ln scalar ops with zero edgecases
+# please see
https://github.com/apache/arrow-datafusion/pull/5245#issuecomment-1426828382
+query R rowsort
+select ln(0);
+----
+-Infinity
# log scalar function
query RR rowsort
@@ -54,29 +251,195 @@ Infinity 2 2
# log scalar nulls
query RR rowsort
-select log(null, 64) a, log(null) b
+select log(null, 64) a, log(null) b;
----
NULL NULL
# log scalar nulls 1
query RR rowsort
-select log(2, null) a, log(null) b
+select log(2, null) a, log(null) b;
----
NULL NULL
# log scalar nulls 2
query RR rowsort
-select log(null, null) a, log(null) b
+select log(null, null) a, log(null) b;
----
NULL NULL
# log scalar ops with zero edgecases
# please see
https://github.com/apache/arrow-datafusion/pull/5245#issuecomment-1426828382
query RR rowsort
-select log(0) a, log(1, 64) b
+select log(0) a, log(1, 64) b;
----
-Infinity Infinity
+# log10 scalar function
+query RRR rowsort
+select log10(1), log10(10), log10(100);
+----
+0 1 2
+
+# log10 scalar nulls
+query R rowsort
+select log10(null);
+----
+NULL
+
+# log10 scalar ops with zero edgecases
+# please see
https://github.com/apache/arrow-datafusion/pull/5245#issuecomment-1426828382
+query R rowsort
+select log10(0);
+----
+-Infinity
+
+# log2 scalar function
+query RRR rowsort
+select log2(1), log2(2), log2(4);
+----
+0 1 2
+
+# log2 scalar nulls
+query R rowsort
+select log2(null);
+----
+NULL
+
+# log2 scalar ops with zero edgecases
+# please see
https://github.com/apache/arrow-datafusion/pull/5245#issuecomment-1426828382
+query R rowsort
+select log2(0);
+----
+-Infinity
+
+# pi scalar function
+query RRR rowsort
+select pi(), pi() / 2, pi() / 3;
+----
+3.14159265359 1.570796326795 1.047197551197
+
+# power scalar function
+query III rowsort
+select power(2, 0), power(2, 1), power(2, 2);
+----
+1 2 4
+
+# power scalar nulls
+query R rowsort
+select power(null, 64);
+----
+NULL
+
+# power scalar nulls 1
+query I rowsort
+select power(2, null);
+----
+NULL
+
+# power scalar nulls 2
+query R rowsort
+select power(null, null);
+----
+NULL
+
+# round scalar function
+query RRR rowsort
+select round(1.4), round(1.5), round(1.6);
+----
+1 2 2
+
+# round scalar nulls
+query R rowsort
+select round(null);
+----
+NULL
+
+# signum scalar function
+query RRR rowsort
+select signum(-2), signum(0), signum(2);
+----
+-1 1 1
+
+# signum scalar nulls
+query R rowsort
+select signum(null);
+----
+NULL
+
+# sin scalar function
+query RRR rowsort
+select sin(0), sin(pi() / 3), sin(pi() / 2);
+----
+0 0.866025403784 1
+
+# sin scalar nulls
+query R rowsort
+select sin(null);
+----
+NULL
+
+# sinh scalar function
+# sinh(x) = (exp(x) - exp(-x)) / 2
+query RRR rowsort
+select sinh(1), sinh(2), sinh(3);
+----
+1.175201193644 3.626860407847 10.01787492741
+
+# sinh scalar nulls
+query R rowsort
+select sinh(null);
+----
+NULL
+
+# sqrt scalar function
+query RRR rowsort
+select sqrt(0), sqrt(4), sqrt(9);
+----
+0 2 3
+
+# sqrt scalar nulls
+query R rowsort
+select sqrt(null);
+----
+NULL
+
+# tan scalar function
+query RRR rowsort
+select tan(0), tan(pi() / 6), tan(pi() / 4);
+----
+0 0.57735026919 1
+
+# tan scalar nulls
+query R rowsort
+select tan(null);
+----
+NULL
+
+# tanh scalar function
+# tanh(x) = (exp(2x) - 1) / (exp(2x) + 1)
+query RRR rowsort
+select tanh(1), tanh(2), tanh(3);
+----
+0.761594155956 0.964027580076 0.995054753687
+
+# tanh scalar nulls
+query R rowsort
+select tanh(null);
+----
+NULL
+
+# trunc scalar function
+query RRR rowsort
+select trunc(1.5), trunc(2.71), trunc(3.1415);
+----
+1 2 3
+
+# trunc scalar nulls
+query R rowsort
+select trunc(null);
+----
+NULL
+
# bitwise and with column and scalar
query I rowsort
select c & 856 from t1;