You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by kr...@apache.org on 2023/04/13 13:00:02 UTC
[hive] branch master updated: HIVE-27145: Use StrictMath for remaining Math functions as followup of HIVE-23133 (Himanshu Mishra, reviewed by Krisztian Kasa, Syed Shameerur Rahman)
This is an automated email from the ASF dual-hosted git repository.
krisztiankasa pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git
The following commit(s) were added to refs/heads/master by this push:
new a029c5fd042 HIVE-27145: Use StrictMath for remaining Math functions as followup of HIVE-23133 (Himanshu Mishra, reviewed by Krisztian Kasa, Syed Shameerur Rahman)
a029c5fd042 is described below
commit a029c5fd04268bd3254a3db2d44b08299b4b4ffb
Author: Himanshu Mishra <hi...@gmail.com>
AuthorDate: Thu Apr 13 18:29:53 2023 +0530
HIVE-27145: Use StrictMath for remaining Math functions as followup of HIVE-23133 (Himanshu Mishra, reviewed by Krisztian Kasa, Syed Shameerur Rahman)
HIVE-23133 started using StrictMath for cos, exp, log UDFs to fix Q
Tests failing because results could vary based on hardware when
using Math library.
1. There are other Math functions that can have same impact of underlying
hardware namely, sin, tan, asin, acos, atan, sqrt, pow, cbrt. Using
StrictMath for these as well.
2. HIVE-23133 missed custom vector classes for Log, using StrictMath for those.
3. JDK-4477961 (in Java 9) changed radians and degrees calculation
leading to Q Test failures. Using round() to ensure tests pass on JDK 8
and later
Co-authored-by: Himanshu Mishra <mi...@amazon.com>
---
.../expressions/FuncLogWithBaseDoubleToDouble.java | 2 +-
.../expressions/FuncLogWithBaseLongToDouble.java | 2 +-
.../expressions/FuncPowerDoubleToDouble.java | 2 +-
.../vector/expressions/FuncPowerLongToDouble.java | 2 +-
.../org/apache/hadoop/hive/ql/udf/UDFAcos.java | 2 +-
.../org/apache/hadoop/hive/ql/udf/UDFAsin.java | 2 +-
.../org/apache/hadoop/hive/ql/udf/UDFAtan.java | 2 +-
.../java/org/apache/hadoop/hive/ql/udf/UDFSin.java | 2 +-
.../org/apache/hadoop/hive/ql/udf/UDFSqrt.java | 2 +-
.../java/org/apache/hadoop/hive/ql/udf/UDFTan.java | 2 +-
.../hadoop/hive/ql/udf/generic/GenericUDFCbrt.java | 2 +-
.../hive/ql/udf/generic/GenericUDFPower.java | 2 +-
ql/src/test/queries/clientpositive/udf_radians.q | 9 ++--
.../clientpositive/vector_decimal_math_funcs.q | 8 +--
.../queries/clientpositive/vector_decimal_udf2.q | 6 ++-
.../queries/clientpositive/vectorized_math_funcs.q | 3 +-
.../results/clientpositive/llap/udf_radians.q.out | 16 +++---
.../llap/vector_decimal_math_funcs.q.out | 60 ++++++++++++----------
.../clientpositive/llap/vector_decimal_udf2.q.out | 12 ++---
.../llap/vectorized_math_funcs.q.out | 28 +++++-----
.../apache/hadoop/hive/tools/GenVectorCode.java | 24 ++++-----
21 files changed, 101 insertions(+), 89 deletions(-)
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncLogWithBaseDoubleToDouble.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncLogWithBaseDoubleToDouble.java
index b799379d57c..5c9d220f762 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncLogWithBaseDoubleToDouble.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncLogWithBaseDoubleToDouble.java
@@ -40,7 +40,7 @@ public class FuncLogWithBaseDoubleToDouble extends MathFuncDoubleToDouble {
@Override
protected double func(double d) {
- return Math.log(d) / Math.log(base);
+ return StrictMath.log(d) / StrictMath.log(base);
}
public double getBase() {
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncLogWithBaseLongToDouble.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncLogWithBaseLongToDouble.java
index f23783e376a..1ac288a9d22 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncLogWithBaseLongToDouble.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncLogWithBaseLongToDouble.java
@@ -40,7 +40,7 @@ public class FuncLogWithBaseLongToDouble extends MathFuncLongToDouble {
@Override
protected double func(long l) {
- return Math.log((double) l) / Math.log(base);
+ return StrictMath.log((double) l) / StrictMath.log(base);
}
public double getBase() {
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncPowerDoubleToDouble.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncPowerDoubleToDouble.java
index 6b43a02785e..b25c06c9248 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncPowerDoubleToDouble.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncPowerDoubleToDouble.java
@@ -43,7 +43,7 @@ public class FuncPowerDoubleToDouble extends MathFuncDoubleToDouble {
@Override
public double func(double d) {
- return Math.pow(d, power);
+ return StrictMath.pow(d, power);
}
public double getPower() {
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncPowerLongToDouble.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncPowerLongToDouble.java
index 3979f75318f..638160281ae 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncPowerLongToDouble.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncPowerLongToDouble.java
@@ -43,7 +43,7 @@ public class FuncPowerLongToDouble extends MathFuncLongToDouble {
@Override
public double func(long l) {
- return Math.pow((double) l, power);
+ return StrictMath.pow((double) l, power);
}
public double getPower() {
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAcos.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAcos.java
index 0ee0a599429..64a984fcffa 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAcos.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAcos.java
@@ -48,7 +48,7 @@ public class UDFAcos extends UDFMath {
if (d < -1 || d > 1) {
return null;
} else {
- result.set(Math.acos(d));
+ result.set(StrictMath.acos(d));
return result;
}
}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAsin.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAsin.java
index 07c5ec748cc..5e1dba05828 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAsin.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAsin.java
@@ -48,7 +48,7 @@ public class UDFAsin extends UDFMath {
if (d < -1 || d > 1) {
return null;
} else {
- result.set(Math.asin(d));
+ result.set(StrictMath.asin(d));
return result;
}
}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAtan.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAtan.java
index 4e35613d9f1..c941fd344e9 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAtan.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAtan.java
@@ -37,7 +37,7 @@ public class UDFAtan extends UDFMath {
@Override
protected DoubleWritable doEvaluate(DoubleWritable a) {
- result.set(Math.atan(a.get()));
+ result.set(StrictMath.atan(a.get()));
return result;
}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSin.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSin.java
index 62a598c02dd..860728516ff 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSin.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSin.java
@@ -42,7 +42,7 @@ public class UDFSin extends UDFMath {
*/
@Override
protected DoubleWritable doEvaluate(DoubleWritable a) {
- result.set(Math.sin(a.get()));
+ result.set(StrictMath.sin(a.get()));
return result;
}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSqrt.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSqrt.java
index 2285f9d424e..4c738253bd7 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSqrt.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSqrt.java
@@ -45,7 +45,7 @@ public class UDFSqrt extends UDFMath {
if (a.get() < 0) {
return null;
} else {
- result.set(Math.sqrt(a.get()));
+ result.set(StrictMath.sqrt(a.get()));
return result;
}
}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFTan.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFTan.java
index 97cfdef1d0a..3181a04c528 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFTan.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFTan.java
@@ -40,7 +40,7 @@ public class UDFTan extends UDFMath {
*/
@Override
protected DoubleWritable doEvaluate(DoubleWritable a) {
- result.set(Math.tan(a.get()));
+ result.set(StrictMath.tan(a.get()));
return result;
}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFCbrt.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFCbrt.java
index 7a5fa314075..b7f14516743 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFCbrt.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFCbrt.java
@@ -64,7 +64,7 @@ public class GenericUDFCbrt extends GenericUDF {
return null;
}
- double cbrt = Math.cbrt(val);
+ double cbrt = StrictMath.cbrt(val);
output.set(cbrt);
return output;
}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFPower.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFPower.java
index 91f730a8cc9..f4464274e3e 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFPower.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFPower.java
@@ -125,7 +125,7 @@ public class GenericUDFPower extends GenericUDF {
return null;
}
- doubleWritable.set(Math.pow(((DoubleWritable)base).get(), ((DoubleWritable)power).get()));
+ doubleWritable.set(StrictMath.pow(((DoubleWritable)base).get(), ((DoubleWritable)power).get()));
return doubleWritable;
}
diff --git a/ql/src/test/queries/clientpositive/udf_radians.q b/ql/src/test/queries/clientpositive/udf_radians.q
index 9532bb34801..6d087562144 100644
--- a/ql/src/test/queries/clientpositive/udf_radians.q
+++ b/ql/src/test/queries/clientpositive/udf_radians.q
@@ -1,18 +1,19 @@
--! qt:dataset:src
set hive.fetch.task.conversion=more;
+-- Round to avoid decimal precision difference due to JDK-4477961
explain
-select radians(57.2958) FROM src tablesample (1 rows);
+select round(radians(57.2958), 15) FROM src tablesample (1 rows);
-select radians(57.2958) FROM src tablesample (1 rows);
+select round(radians(57.2958), 15) FROM src tablesample (1 rows);
select radians(143.2394) FROM src tablesample (1 rows);
DESCRIBE FUNCTION radians;
DESCRIBE FUNCTION EXTENDED radians;
explain
-select radians(57.2958) FROM src tablesample (1 rows);
+select round(radians(57.2958), 15) FROM src tablesample (1 rows);
-select radians(57.2958) FROM src tablesample (1 rows);
+select round(radians(57.2958), 15) FROM src tablesample (1 rows);
select radians(143.2394) FROM src tablesample (1 rows);
DESCRIBE FUNCTION radians;
diff --git a/ql/src/test/queries/clientpositive/vector_decimal_math_funcs.q b/ql/src/test/queries/clientpositive/vector_decimal_math_funcs.q
index 7ee7891eebe..862257cdafa 100644
--- a/ql/src/test/queries/clientpositive/vector_decimal_math_funcs.q
+++ b/ql/src/test/queries/clientpositive/vector_decimal_math_funcs.q
@@ -73,7 +73,8 @@ select
,Cos(cdecimal1)
,ACos(cdecimal1)
,Atan(cdecimal1)
- ,Degrees(cdecimal1)
+ -- Round to avoid decimal precision difference due to JDK-4477961
+ ,Round(Degrees(cdecimal1), 9)
,Radians(cdecimal1)
,Positive(cdecimal1)
,Negative(cdecimal1)
@@ -150,8 +151,9 @@ select
,Cos(cdecimal1)
,ACos(cdecimal1)
,Atan(cdecimal1)
- ,Degrees(cdecimal1)
- ,Radians(cdecimal1)
+ -- Round to avoid decimal precision difference due to JDK-4477961
+ ,Round(Degrees(cdecimal1), 9)
+ ,Round(Radians(cdecimal1), 12)
,Positive(cdecimal1)
,Negative(cdecimal1)
,Sign(cdecimal1)
diff --git a/ql/src/test/queries/clientpositive/vector_decimal_udf2.q b/ql/src/test/queries/clientpositive/vector_decimal_udf2.q
index d88217b51f6..f1cf1eabc91 100644
--- a/ql/src/test/queries/clientpositive/vector_decimal_udf2.q
+++ b/ql/src/test/queries/clientpositive/vector_decimal_udf2.q
@@ -28,8 +28,9 @@ FROM DECIMAL_UDF2_n0 WHERE key = 10;
SELECT acos(key), asin(key), atan(key), cos(key), sin(key), tan(key), radians(key)
FROM DECIMAL_UDF2_n0 WHERE key = 10;
+-- Round to avoid decimal precision difference due to JDK-4477961
SELECT SUM(HASH(*))
-FROM (SELECT acos(key), asin(key), atan(key), cos(key), sin(key), tan(key), radians(key)
+FROM (SELECT acos(key), asin(key), atan(key), cos(key), sin(key), tan(key), round(radians(key),12)
FROM DECIMAL_UDF2_n0) q;
EXPLAIN VECTORIZATION DETAIL
@@ -61,8 +62,9 @@ FROM DECIMAL_UDF2_txt WHERE key = 10;
SELECT acos(key), asin(key), atan(key), cos(key), sin(key), tan(key), radians(key)
FROM DECIMAL_UDF2_txt WHERE key = 10;
+-- Round to avoid decimal precision difference due to JDK-4477961
SELECT SUM(HASH(*))
-FROM (SELECT acos(key), asin(key), atan(key), cos(key), sin(key), tan(key), radians(key)
+FROM (SELECT acos(key), asin(key), atan(key), cos(key), sin(key), tan(key), round(radians(key), 12)
FROM DECIMAL_UDF2_txt) q;
EXPLAIN VECTORIZATION DETAIL
diff --git a/ql/src/test/queries/clientpositive/vectorized_math_funcs.q b/ql/src/test/queries/clientpositive/vectorized_math_funcs.q
index f3c346b323c..4b942800410 100644
--- a/ql/src/test/queries/clientpositive/vectorized_math_funcs.q
+++ b/ql/src/test/queries/clientpositive/vectorized_math_funcs.q
@@ -95,7 +95,8 @@ select
,ACos(cdouble)
,Atan(cdouble)
,Degrees(cdouble)
- ,Radians(cdouble)
+ -- Round to avoid decimal precision difference due to JDK-4477961
+ ,Round(Radians(cdouble), 12)
,Positive(cdouble)
,Positive(cbigint)
,Negative(cdouble)
diff --git a/ql/src/test/results/clientpositive/llap/udf_radians.q.out b/ql/src/test/results/clientpositive/llap/udf_radians.q.out
index 5f9c1527224..bdd208c8285 100644
--- a/ql/src/test/results/clientpositive/llap/udf_radians.q.out
+++ b/ql/src/test/results/clientpositive/llap/udf_radians.q.out
@@ -1,10 +1,10 @@
PREHOOK: query: explain
-select radians(57.2958) FROM src tablesample (1 rows)
+select round(radians(57.2958), 15) FROM src tablesample (1 rows)
PREHOOK: type: QUERY
PREHOOK: Input: default@src
#### A masked pattern was here ####
POSTHOOK: query: explain
-select radians(57.2958) FROM src tablesample (1 rows)
+select round(radians(57.2958), 15) FROM src tablesample (1 rows)
POSTHOOK: type: QUERY
POSTHOOK: Input: default@src
#### A masked pattern was here ####
@@ -24,11 +24,11 @@ STAGE PLANS:
outputColumnNames: _col0
ListSink
-PREHOOK: query: select radians(57.2958) FROM src tablesample (1 rows)
+PREHOOK: query: select round(radians(57.2958), 15) FROM src tablesample (1 rows)
PREHOOK: type: QUERY
PREHOOK: Input: default@src
#### A masked pattern was here ####
-POSTHOOK: query: select radians(57.2958) FROM src tablesample (1 rows)
+POSTHOOK: query: select round(radians(57.2958), 15) FROM src tablesample (1 rows)
POSTHOOK: type: QUERY
POSTHOOK: Input: default@src
#### A masked pattern was here ####
@@ -59,12 +59,12 @@ Example:
Function class:org.apache.hadoop.hive.ql.udf.UDFRadians
Function type:BUILTIN
PREHOOK: query: explain
-select radians(57.2958) FROM src tablesample (1 rows)
+select round(radians(57.2958), 15) FROM src tablesample (1 rows)
PREHOOK: type: QUERY
PREHOOK: Input: default@src
#### A masked pattern was here ####
POSTHOOK: query: explain
-select radians(57.2958) FROM src tablesample (1 rows)
+select round(radians(57.2958), 15) FROM src tablesample (1 rows)
POSTHOOK: type: QUERY
POSTHOOK: Input: default@src
#### A masked pattern was here ####
@@ -84,11 +84,11 @@ STAGE PLANS:
outputColumnNames: _col0
ListSink
-PREHOOK: query: select radians(57.2958) FROM src tablesample (1 rows)
+PREHOOK: query: select round(radians(57.2958), 15) FROM src tablesample (1 rows)
PREHOOK: type: QUERY
PREHOOK: Input: default@src
#### A masked pattern was here ####
-POSTHOOK: query: select radians(57.2958) FROM src tablesample (1 rows)
+POSTHOOK: query: select round(radians(57.2958), 15) FROM src tablesample (1 rows)
POSTHOOK: type: QUERY
POSTHOOK: Input: default@src
#### A masked pattern was here ####
diff --git a/ql/src/test/results/clientpositive/llap/vector_decimal_math_funcs.q.out b/ql/src/test/results/clientpositive/llap/vector_decimal_math_funcs.q.out
index d6950d5db9b..b2c3c3467ba 100644
--- a/ql/src/test/results/clientpositive/llap/vector_decimal_math_funcs.q.out
+++ b/ql/src/test/results/clientpositive/llap/vector_decimal_math_funcs.q.out
@@ -197,7 +197,8 @@ PREHOOK: query: select
,Cos(cdecimal1)
,ACos(cdecimal1)
,Atan(cdecimal1)
- ,Degrees(cdecimal1)
+ -- Round to avoid decimal precision difference due to JDK-4477961
+ ,Round(Degrees(cdecimal1), 9)
,Radians(cdecimal1)
,Positive(cdecimal1)
,Negative(cdecimal1)
@@ -235,7 +236,8 @@ POSTHOOK: query: select
,Cos(cdecimal1)
,ACos(cdecimal1)
,Atan(cdecimal1)
- ,Degrees(cdecimal1)
+ -- Round to avoid decimal precision difference due to JDK-4477961
+ ,Round(Degrees(cdecimal1), 9)
,Radians(cdecimal1)
,Positive(cdecimal1)
,Negative(cdecimal1)
@@ -250,17 +252,17 @@ and sin(cdecimal1) >= -1.0
POSTHOOK: type: QUERY
POSTHOOK: Input: default@decimal_test_n0
#### A masked pattern was here ####
--119.4594594595 -119.46 -119 -120 -119 1.316485E-52 NULL NULL NULL NULL NULL NULL NULL NULL 119.4594594595 -0.07885666683797002 NULL 0.9968859644388647 NULL -1.5624254815943668 -6844.522849943508 -2.0849608902209606 -119.4594594595 119.4594594595 -1 NULL
-9318.4351351351 9318.44 9318 9318 9319 Infinity 9.13974998962673 3.969342986470191 13.185871984999437 NULL 13.185871984999437 173.867220004793 173.867220004793 96.53204201266593 9318.4351351351 0.4540668481851705 NULL 0.8909676185918236 NULL 1.5706890126394983 533907.0049096602 162.63737424163023 9318.4351351351 -9318.4351351351 1 -0.9607267417229353
-9318.4351351351 9318.44 9318 9318 9319 Infinity 9.13974998962673 3.969342986470191 13.185871984999437 NULL 13.185871984999437 173.867220004793 173.867220004793 96.53204201266593 9318.4351351351 0.4540668481851705 NULL 0.8909676185918236 NULL 1.5706890126394983 533907.0049096602 162.63737424163023 9318.4351351351 -9318.4351351351 1 -0.9607267417229353
-9318.4351351351 9318.44 9318 9318 9319 Infinity 9.13974998962673 3.969342986470191 13.185871984999437 NULL 13.185871984999437 173.867220004793 173.867220004793 96.53204201266593 9318.4351351351 0.4540668481851705 NULL 0.8909676185918236 NULL 1.5706890126394983 533907.0049096602 162.63737424163023 9318.4351351351 -9318.4351351351 1 -0.9607267417229353
--4298.1513513514 -4298.15 -4298 -4299 -4298 0.0 NULL NULL NULL NULL NULL NULL NULL NULL 4298.1513513514 -0.43730633941118113 NULL 0.899312607223313 NULL -1.5705636686355597 -246265.93214088667 -75.01689283012556 -4298.1513513514 4298.1513513514 -1 NULL
--4298.1513513514 -4298.15 -4298 -4299 -4298 0.0 NULL NULL NULL NULL NULL NULL NULL NULL 4298.1513513514 -0.43730633941118113 NULL 0.899312607223313 NULL -1.5705636686355597 -246265.93214088667 -75.01689283012556 -4298.1513513514 4298.1513513514 -1 NULL
--4298.1513513514 -4298.15 -4298 -4299 -4298 0.0 NULL NULL NULL NULL NULL NULL NULL NULL 4298.1513513514 -0.43730633941118113 NULL 0.899312607223313 NULL -1.5705636686355597 -246265.93214088667 -75.01689283012556 -4298.1513513514 4298.1513513514 -1 NULL
--4298.1513513514 -4298.15 -4298 -4299 -4298 0.0 NULL NULL NULL NULL NULL NULL NULL NULL 4298.1513513514 -0.43730633941118113 NULL 0.899312607223313 NULL -1.5705636686355597 -246265.93214088667 -75.01689283012556 -4298.1513513514 4298.1513513514 -1 NULL
--4298.1513513514 -4298.15 -4298 -4299 -4298 0.0 NULL NULL NULL NULL NULL NULL NULL NULL 4298.1513513514 -0.43730633941118113 NULL 0.899312607223313 NULL -1.5705636686355597 -246265.93214088667 -75.01689283012556 -4298.1513513514 4298.1513513514 -1 NULL
--4298.1513513514 -4298.15 -4298 -4299 -4298 0.0 NULL NULL NULL NULL NULL NULL NULL NULL 4298.1513513514 -0.43730633941118113 NULL 0.899312607223313 NULL -1.5705636686355597 -246265.93214088667 -75.01689283012556 -4298.1513513514 4298.1513513514 -1 NULL
--4298.1513513514 -4298.15 -4298 -4299 -4298 0.0 NULL NULL NULL NULL NULL NULL NULL NULL 4298.1513513514 -0.43730633941118113 NULL 0.899312607223313 NULL -1.5705636686355597 -246265.93214088667 -75.01689283012556 -4298.1513513514 4298.1513513514 -1 NULL
+-119.4594594595 -119.46 -119 -120 -119 1.316485E-52 NULL NULL NULL NULL NULL NULL NULL NULL 119.4594594595 -0.07885666683797002 NULL 0.9968859644388647 NULL -1.5624254815943668 -6844.522849944 -2.0849608902209606 -119.4594594595 119.4594594595 -1 NULL
+9318.4351351351 9318.44 9318 9318 9319 Infinity 9.13974998962673 3.969342986470191 13.185871984999437 NULL 13.185871984999437 173.867220004793 173.867220004793 96.53204201266593 9318.4351351351 0.4540668481851705 NULL 0.8909676185918236 NULL 1.5706890126394983 533907.00490966 162.63737424163023 9318.4351351351 -9318.4351351351 1 -0.9607267417229353
+9318.4351351351 9318.44 9318 9318 9319 Infinity 9.13974998962673 3.969342986470191 13.185871984999437 NULL 13.185871984999437 173.867220004793 173.867220004793 96.53204201266593 9318.4351351351 0.4540668481851705 NULL 0.8909676185918236 NULL 1.5706890126394983 533907.00490966 162.63737424163023 9318.4351351351 -9318.4351351351 1 -0.9607267417229353
+9318.4351351351 9318.44 9318 9318 9319 Infinity 9.13974998962673 3.969342986470191 13.185871984999437 NULL 13.185871984999437 173.867220004793 173.867220004793 96.53204201266593 9318.4351351351 0.4540668481851705 NULL 0.8909676185918236 NULL 1.5706890126394983 533907.00490966 162.63737424163023 9318.4351351351 -9318.4351351351 1 -0.9607267417229353
+-4298.1513513514 -4298.15 -4298 -4299 -4298 0.0 NULL NULL NULL NULL NULL NULL NULL NULL 4298.1513513514 -0.43730633941118113 NULL 0.899312607223313 NULL -1.5705636686355597 -246265.932140887 -75.01689283012556 -4298.1513513514 4298.1513513514 -1 NULL
+-4298.1513513514 -4298.15 -4298 -4299 -4298 0.0 NULL NULL NULL NULL NULL NULL NULL NULL 4298.1513513514 -0.43730633941118113 NULL 0.899312607223313 NULL -1.5705636686355597 -246265.932140887 -75.01689283012556 -4298.1513513514 4298.1513513514 -1 NULL
+-4298.1513513514 -4298.15 -4298 -4299 -4298 0.0 NULL NULL NULL NULL NULL NULL NULL NULL 4298.1513513514 -0.43730633941118113 NULL 0.899312607223313 NULL -1.5705636686355597 -246265.932140887 -75.01689283012556 -4298.1513513514 4298.1513513514 -1 NULL
+-4298.1513513514 -4298.15 -4298 -4299 -4298 0.0 NULL NULL NULL NULL NULL NULL NULL NULL 4298.1513513514 -0.43730633941118113 NULL 0.899312607223313 NULL -1.5705636686355597 -246265.932140887 -75.01689283012556 -4298.1513513514 4298.1513513514 -1 NULL
+-4298.1513513514 -4298.15 -4298 -4299 -4298 0.0 NULL NULL NULL NULL NULL NULL NULL NULL 4298.1513513514 -0.43730633941118113 NULL 0.899312607223313 NULL -1.5705636686355597 -246265.932140887 -75.01689283012556 -4298.1513513514 4298.1513513514 -1 NULL
+-4298.1513513514 -4298.15 -4298 -4299 -4298 0.0 NULL NULL NULL NULL NULL NULL NULL NULL 4298.1513513514 -0.43730633941118113 NULL 0.899312607223313 NULL -1.5705636686355597 -246265.932140887 -75.01689283012556 -4298.1513513514 4298.1513513514 -1 NULL
+-4298.1513513514 -4298.15 -4298 -4299 -4298 0.0 NULL NULL NULL NULL NULL NULL NULL NULL 4298.1513513514 -0.43730633941118113 NULL 0.899312607223313 NULL -1.5705636686355597 -246265.932140887 -75.01689283012556 -4298.1513513514 4298.1513513514 -1 NULL
PREHOOK: query: CREATE TABLE decimal_test_small STORED AS ORC AS SELECT cbigint, cdouble, CAST (((cdouble*22.1)/37) AS DECIMAL(12,4)) AS cdecimal1, CAST (((cdouble*9.3)/13) AS DECIMAL(14,8)) AS cdecimal2 FROM alltypesorc
PREHOOK: type: CREATETABLE_AS_SELECT
PREHOOK: Input: default@alltypesorc
@@ -448,8 +450,9 @@ PREHOOK: query: select
,Cos(cdecimal1)
,ACos(cdecimal1)
,Atan(cdecimal1)
- ,Degrees(cdecimal1)
- ,Radians(cdecimal1)
+ -- Round to avoid decimal precision difference due to JDK-4477961
+ ,Round(Degrees(cdecimal1), 9)
+ ,Round(Radians(cdecimal1), 12)
,Positive(cdecimal1)
,Negative(cdecimal1)
,Sign(cdecimal1)
@@ -486,8 +489,9 @@ POSTHOOK: query: select
,Cos(cdecimal1)
,ACos(cdecimal1)
,Atan(cdecimal1)
- ,Degrees(cdecimal1)
- ,Radians(cdecimal1)
+ -- Round to avoid decimal precision difference due to JDK-4477961
+ ,Round(Degrees(cdecimal1), 9)
+ ,Round(Radians(cdecimal1), 12)
,Positive(cdecimal1)
,Negative(cdecimal1)
,Sign(cdecimal1)
@@ -501,14 +505,14 @@ and sin(cdecimal1) >= -1.0
POSTHOOK: type: QUERY
POSTHOOK: Input: default@decimal_test_small
#### A masked pattern was here ####
--119.4595 -119.46 -119 -120 -119 1.316432E-52 NULL NULL NULL NULL NULL NULL NULL NULL 119.4595 -0.07889708102860798 NULL 0.9968827667309558 NULL -1.562425484435015 -6844.525172743059 -2.084961597786166 -119.4595 119.4595 -1 NULL
-9318.4351 9318.44 9318 9318 9319 Infinity 9.139749985856234 3.9693429848326867 13.185871979559764 NULL 13.185871979559764 173.86721986133932 173.86721986133932 96.5320418306792 9318.4351 0.4540355436693385 NULL 0.8909835717255892 NULL 1.5706890126390936 533907.0028965673 162.63737362840706 9318.4351 -9318.4351 1 -0.9607267407188516
-9318.4351 9318.44 9318 9318 9319 Infinity 9.139749985856234 3.9693429848326867 13.185871979559764 NULL 13.185871979559764 173.86721986133932 173.86721986133932 96.5320418306792 9318.4351 0.4540355436693385 NULL 0.8909835717255892 NULL 1.5706890126390936 533907.0028965673 162.63737362840706 9318.4351 -9318.4351 1 -0.9607267407188516
-9318.4351 9318.44 9318 9318 9319 Infinity 9.139749985856234 3.9693429848326867 13.185871979559764 NULL 13.185871979559764 173.86721986133932 173.86721986133932 96.5320418306792 9318.4351 0.4540355436693385 NULL 0.8909835717255892 NULL 1.5706890126390936 533907.0028965673 162.63737362840706 9318.4351 -9318.4351 1 -0.9607267407188516
--4298.1514 -4298.15 -4298 -4299 -4298 0.0 NULL NULL NULL NULL NULL NULL NULL NULL 4298.1514 -0.4373500891926774 NULL 0.8992913318180917 NULL -1.5705636686381932 -246265.9349282461 -75.01689367920379 -4298.1514 4298.1514 -1 NULL
--4298.1514 -4298.15 -4298 -4299 -4298 0.0 NULL NULL NULL NULL NULL NULL NULL NULL 4298.1514 -0.4373500891926774 NULL 0.8992913318180917 NULL -1.5705636686381932 -246265.9349282461 -75.01689367920379 -4298.1514 4298.1514 -1 NULL
--4298.1514 -4298.15 -4298 -4299 -4298 0.0 NULL NULL NULL NULL NULL NULL NULL NULL 4298.1514 -0.4373500891926774 NULL 0.8992913318180917 NULL -1.5705636686381932 -246265.9349282461 -75.01689367920379 -4298.1514 4298.1514 -1 NULL
--4298.1514 -4298.15 -4298 -4299 -4298 0.0 NULL NULL NULL NULL NULL NULL NULL NULL 4298.1514 -0.4373500891926774 NULL 0.8992913318180917 NULL -1.5705636686381932 -246265.9349282461 -75.01689367920379 -4298.1514 4298.1514 -1 NULL
--4298.1514 -4298.15 -4298 -4299 -4298 0.0 NULL NULL NULL NULL NULL NULL NULL NULL 4298.1514 -0.4373500891926774 NULL 0.8992913318180917 NULL -1.5705636686381932 -246265.9349282461 -75.01689367920379 -4298.1514 4298.1514 -1 NULL
--4298.1514 -4298.15 -4298 -4299 -4298 0.0 NULL NULL NULL NULL NULL NULL NULL NULL 4298.1514 -0.4373500891926774 NULL 0.8992913318180917 NULL -1.5705636686381932 -246265.9349282461 -75.01689367920379 -4298.1514 4298.1514 -1 NULL
--4298.1514 -4298.15 -4298 -4299 -4298 0.0 NULL NULL NULL NULL NULL NULL NULL NULL 4298.1514 -0.4373500891926774 NULL 0.8992913318180917 NULL -1.5705636686381932 -246265.9349282461 -75.01689367920379 -4298.1514 4298.1514 -1 NULL
+-119.4595 -119.46 -119 -120 -119 1.316432E-52 NULL NULL NULL NULL NULL NULL NULL NULL 119.4595 -0.07889708102860798 NULL 0.9968827667309558 NULL -1.562425484435015 -6844.525172743 -2.084961597786 -119.4595 119.4595 -1 NULL
+9318.4351 9318.44 9318 9318 9319 Infinity 9.139749985856234 3.9693429848326867 13.185871979559764 NULL 13.185871979559764 173.86721986133932 173.86721986133932 96.5320418306792 9318.4351 0.4540355436693385 NULL 0.8909835717255892 NULL 1.5706890126390936 533907.002896567 162.637373628407 9318.4351 -9318.4351 1 -0.9607267407188516
+9318.4351 9318.44 9318 9318 9319 Infinity 9.139749985856234 3.9693429848326867 13.185871979559764 NULL 13.185871979559764 173.86721986133932 173.86721986133932 96.5320418306792 9318.4351 0.4540355436693385 NULL 0.8909835717255892 NULL 1.5706890126390936 533907.002896567 162.637373628407 9318.4351 -9318.4351 1 -0.9607267407188516
+9318.4351 9318.44 9318 9318 9319 Infinity 9.139749985856234 3.9693429848326867 13.185871979559764 NULL 13.185871979559764 173.86721986133932 173.86721986133932 96.5320418306792 9318.4351 0.4540355436693385 NULL 0.8909835717255892 NULL 1.5706890126390936 533907.002896567 162.637373628407 9318.4351 -9318.4351 1 -0.9607267407188516
+-4298.1514 -4298.15 -4298 -4299 -4298 0.0 NULL NULL NULL NULL NULL NULL NULL NULL 4298.1514 -0.4373500891926774 NULL 0.8992913318180917 NULL -1.5705636686381932 -246265.934928246 -75.016893679204 -4298.1514 4298.1514 -1 NULL
+-4298.1514 -4298.15 -4298 -4299 -4298 0.0 NULL NULL NULL NULL NULL NULL NULL NULL 4298.1514 -0.4373500891926774 NULL 0.8992913318180917 NULL -1.5705636686381932 -246265.934928246 -75.016893679204 -4298.1514 4298.1514 -1 NULL
+-4298.1514 -4298.15 -4298 -4299 -4298 0.0 NULL NULL NULL NULL NULL NULL NULL NULL 4298.1514 -0.4373500891926774 NULL 0.8992913318180917 NULL -1.5705636686381932 -246265.934928246 -75.016893679204 -4298.1514 4298.1514 -1 NULL
+-4298.1514 -4298.15 -4298 -4299 -4298 0.0 NULL NULL NULL NULL NULL NULL NULL NULL 4298.1514 -0.4373500891926774 NULL 0.8992913318180917 NULL -1.5705636686381932 -246265.934928246 -75.016893679204 -4298.1514 4298.1514 -1 NULL
+-4298.1514 -4298.15 -4298 -4299 -4298 0.0 NULL NULL NULL NULL NULL NULL NULL NULL 4298.1514 -0.4373500891926774 NULL 0.8992913318180917 NULL -1.5705636686381932 -246265.934928246 -75.016893679204 -4298.1514 4298.1514 -1 NULL
+-4298.1514 -4298.15 -4298 -4299 -4298 0.0 NULL NULL NULL NULL NULL NULL NULL NULL 4298.1514 -0.4373500891926774 NULL 0.8992913318180917 NULL -1.5705636686381932 -246265.934928246 -75.016893679204 -4298.1514 4298.1514 -1 NULL
+-4298.1514 -4298.15 -4298 -4299 -4298 0.0 NULL NULL NULL NULL NULL NULL NULL NULL 4298.1514 -0.4373500891926774 NULL 0.8992913318180917 NULL -1.5705636686381932 -246265.934928246 -75.016893679204 -4298.1514 4298.1514 -1 NULL
diff --git a/ql/src/test/results/clientpositive/llap/vector_decimal_udf2.q.out b/ql/src/test/results/clientpositive/llap/vector_decimal_udf2.q.out
index 9039c7aec88..84ae82c1d12 100644
--- a/ql/src/test/results/clientpositive/llap/vector_decimal_udf2.q.out
+++ b/ql/src/test/results/clientpositive/llap/vector_decimal_udf2.q.out
@@ -154,18 +154,18 @@ POSTHOOK: Input: default@decimal_udf2_n0
#### A masked pattern was here ####
NULL NULL 1.4711276743037347 -0.8390715290764524 -0.5440211108893698 0.6483608274590866 0.17453292519943295
PREHOOK: query: SELECT SUM(HASH(*))
-FROM (SELECT acos(key), asin(key), atan(key), cos(key), sin(key), tan(key), radians(key)
+FROM (SELECT acos(key), asin(key), atan(key), cos(key), sin(key), tan(key), round(radians(key),12)
FROM DECIMAL_UDF2_n0) q
PREHOOK: type: QUERY
PREHOOK: Input: default@decimal_udf2_n0
#### A masked pattern was here ####
POSTHOOK: query: SELECT SUM(HASH(*))
-FROM (SELECT acos(key), asin(key), atan(key), cos(key), sin(key), tan(key), radians(key)
+FROM (SELECT acos(key), asin(key), atan(key), cos(key), sin(key), tan(key), round(radians(key),12)
FROM DECIMAL_UDF2_n0) q
POSTHOOK: type: QUERY
POSTHOOK: Input: default@decimal_udf2_n0
#### A masked pattern was here ####
--3806982713
+-3762999953
PREHOOK: query: EXPLAIN VECTORIZATION DETAIL
SELECT
exp(key), ln(key),
@@ -388,18 +388,18 @@ POSTHOOK: Input: default@decimal_udf2_txt
#### A masked pattern was here ####
NULL NULL 1.4711276743037347 -0.8390715290764524 -0.5440211108893698 0.6483608274590866 0.17453292519943295
PREHOOK: query: SELECT SUM(HASH(*))
-FROM (SELECT acos(key), asin(key), atan(key), cos(key), sin(key), tan(key), radians(key)
+FROM (SELECT acos(key), asin(key), atan(key), cos(key), sin(key), tan(key), round(radians(key), 12)
FROM DECIMAL_UDF2_txt) q
PREHOOK: type: QUERY
PREHOOK: Input: default@decimal_udf2_txt
#### A masked pattern was here ####
POSTHOOK: query: SELECT SUM(HASH(*))
-FROM (SELECT acos(key), asin(key), atan(key), cos(key), sin(key), tan(key), radians(key)
+FROM (SELECT acos(key), asin(key), atan(key), cos(key), sin(key), tan(key), round(radians(key), 12)
FROM DECIMAL_UDF2_txt) q
POSTHOOK: type: QUERY
POSTHOOK: Input: default@decimal_udf2_txt
#### A masked pattern was here ####
--3806982713
+-3762999953
PREHOOK: query: EXPLAIN VECTORIZATION DETAIL
SELECT
exp(key), ln(key),
diff --git a/ql/src/test/results/clientpositive/llap/vectorized_math_funcs.q.out b/ql/src/test/results/clientpositive/llap/vectorized_math_funcs.q.out
index 4e4ab7da1d5..187b5babf6d 100644
--- a/ql/src/test/results/clientpositive/llap/vectorized_math_funcs.q.out
+++ b/ql/src/test/results/clientpositive/llap/vectorized_math_funcs.q.out
@@ -209,7 +209,8 @@ PREHOOK: query: select
,ACos(cdouble)
,Atan(cdouble)
,Degrees(cdouble)
- ,Radians(cdouble)
+ -- Round to avoid decimal precision difference due to JDK-4477961
+ ,Round(Radians(cdouble), 12)
,Positive(cdouble)
,Positive(cbigint)
,Negative(cdouble)
@@ -263,7 +264,8 @@ POSTHOOK: query: select
,ACos(cdouble)
,Atan(cdouble)
,Degrees(cdouble)
- ,Radians(cdouble)
+ -- Round to avoid decimal precision difference due to JDK-4477961
+ ,Round(Radians(cdouble), 12)
,Positive(cdouble)
,Positive(cbigint)
,Negative(cdouble)
@@ -279,19 +281,19 @@ and sin(cfloat) >= -1.0
POSTHOOK: type: QUERY
POSTHOOK: Input: default@alltypesorc
#### A masked pattern was here ####
--200.0 -200.0 -200 -200 0.8199077823142826 NULL NULL NULL NULL NULL NULL NULL 30.57531565116074 NULL NULL NULL NULL NULL NULL NULL 39998.48747140321 1011111010111000011011101011000 2D3230302E30 5F5C3758 200.0 36 NULL 0.8732972972139946 NULL 0.4871876750070059 NULL -1.5657963684609384 -11459.155902616465 -3.490658503988659 -200.0 1599879000 200.0 -1.0 1.0 NULL
-15601.0 15601.0 15601 15601 0.38656833237681376 15601.00000000001 9.65509029374725 NULL 4.193152436852078 13.929350886124324 NULL NULL NULL NULL 13.929350886124324 NULL 13.929350886124324 194.02681610877246 194.02681610877246 124.90396310766124 NULL 1111111111111111111111111111111110010001001101101010100000011000 31353630312E30 FFFFFFFF9136A818 15601.0 38 NULL -0.14856570831397706 NULL 0.9889025383288114 NULL 1.5707322283397571 893871.4561835973 272.2888166036353 15601.0 -1858689000 -156 [...]
-15601.0 15601.0 15601 15601 0.41161398527282966 15601.00000000001 9.65509029374725 NULL 4.193152436852078 13.929350886124324 NULL NULL 29.18993673432575 NULL 13.929350886124324 NULL 13.929350886124324 194.02681610877246 194.02681610877246 124.90396310766124 24747.04022706554 100100100000001011101000000000 31353630312E30 2480BA00 15601.0 5 NULL -0.14856570831397706 NULL 0.9889025383288114 NULL 1.5707322283397571 893871.4561835973 272.2888166036353 15601.0 612416000 -15601.0 1.0 1.0 -0.974 [...]
-15601.0 15601.0 15601 15601 0.37807863784568585 15601.00000000001 9.65509029374725 3.8712010109078907 4.193152436852078 13.929350886124324 NULL 5.584962500721156 NULL NULL 13.929350886124324 5.584962500721156 13.929350886124324 194.02681610877246 194.02681610877246 124.90396310766124 NULL 1111111111111111111111111111111111010000100101111100000100011000 31353630312E30 FFFFFFFFD097C118 15601.0 48 NULL -0.14856570831397706 NULL 0.9889025383288114 NULL 1.5707322283397571 893871.4561835973 27 [...]
+-200.0 -200.0 -200 -200 0.8199077823142826 NULL NULL NULL NULL NULL NULL NULL 30.57531565116074 NULL NULL NULL NULL NULL NULL NULL 39998.48747140321 1011111010111000011011101011000 2D3230302E30 5F5C3758 200.0 36 NULL 0.8732972972139946 NULL 0.4871876750070059 NULL -1.5657963684609384 -11459.155902616465 -3.490658503989 -200.0 1599879000 200.0 -1.0 1.0 NULL
+15601.0 15601.0 15601 15601 0.38656833237681376 15601.00000000001 9.65509029374725 NULL 4.193152436852078 13.929350886124324 NULL NULL NULL NULL 13.929350886124324 NULL 13.929350886124324 194.02681610877246 194.02681610877246 124.90396310766124 NULL 1111111111111111111111111111111110010001001101101010100000011000 31353630312E30 FFFFFFFF9136A818 15601.0 38 NULL -0.14856570831397706 NULL 0.9889025383288114 NULL 1.5707322283397571 893871.4561835973 272.288816603635 15601.0 -1858689000 -1560 [...]
+15601.0 15601.0 15601 15601 0.41161398527282966 15601.00000000001 9.65509029374725 NULL 4.193152436852078 13.929350886124324 NULL NULL 29.18993673432575 NULL 13.929350886124324 NULL 13.929350886124324 194.02681610877246 194.02681610877246 124.90396310766124 24747.04022706554 100100100000001011101000000000 31353630312E30 2480BA00 15601.0 5 NULL -0.14856570831397706 NULL 0.9889025383288114 NULL 1.5707322283397571 893871.4561835973 272.288816603635 15601.0 612416000 -15601.0 1.0 1.0 -0.9740 [...]
+15601.0 15601.0 15601 15601 0.37807863784568585 15601.00000000001 9.65509029374725 3.8712010109078907 4.193152436852078 13.929350886124324 NULL 5.584962500721156 NULL NULL 13.929350886124324 5.584962500721156 13.929350886124324 194.02681610877246 194.02681610877246 124.90396310766124 NULL 1111111111111111111111111111111111010000100101111100000100011000 31353630312E30 FFFFFFFFD097C118 15601.0 48 NULL -0.14856570831397706 NULL 0.9889025383288114 NULL 1.5707322283397571 893871.4561835973 27 [...]
NULL NULL NULL NULL 0.3336458983920575 NULL NULL 2.0794415416798357 NULL NULL NULL 3.0 29.693388204506274 29.58473549442715 NULL 3.0 NULL NULL NULL NULL 29464.580431426475 110011101111110001011111011100 NULL 33BF17DC NULL 8 1 NULL NULL NULL NULL NULL NULL NULL NULL 868161500 NULL NULL 1.0 NULL
NULL NULL NULL NULL 0.8681331660942196 NULL NULL 2.0794415416798357 NULL NULL NULL 3.0 NULL 29.730832334348488 NULL 3.0 NULL NULL NULL NULL NULL 1111111111111111111111111111111110010000111111111000101010111000 NULL FFFFFFFF90FF8AB8 NULL 8 0 NULL NULL NULL NULL NULL NULL NULL NULL -1862301000 NULL NULL -1.0 NULL
--7196.0 -7196.0 -7196 -7196 0.03951015606275099 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1111111111111111111111111111111110100000010101110101001001110000 2D373139362E30 FFFFFFFFA0575270 7196.0 59 NULL -0.9834787875028149 NULL -0.18102340879563897 NULL -1.5706573607035177 -412300.4293761404 -125.59389297351194 -7196.0 -1604890000 7196.0 -1.0 -1.0 NULL
--7196.0 -7196.0 -7196 -7196 0.9209252022050654 NULL NULL NULL NULL NULL NULL NULL 30.52255693577237 NULL NULL NULL NULL NULL NULL NULL 39273.76987252433 1011011111011111001100101001000 2D373139362E30 5BEF9948 7196.0 21 NULL -0.9834787875028149 NULL -0.18102340879563897 NULL -1.5706573607035177 -412300.4293761404 -125.59389297351194 -7196.0 1542429000 7196.0 -1.0 1.0 NULL
--7196.0 -7196.0 -7196 -7196 0.4533660450429132 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1111111111111111111111111111111110100011011110110101000010110100 2D373139362E30 FFFFFFFFA37B50B4 7196.0 14 NULL -0.9834787875028149 NULL -0.18102340879563897 NULL -1.5706573607035177 -412300.4293761404 -125.59389297351194 -7196.0 -1552199500 7196.0 -1.0 -1.0 NULL
--7196.0 -7196.0 -7196 -7196 0.14567136069921982 NULL NULL 4.07753744390572 NULL NULL NULL 5.882643049361842 NULL NULL NULL 5.882643049361842 NULL NULL NULL NULL NULL 1111111111111111111111111111111110111100001011110011111001111100 2D373139362E30 FFFFFFFFBC2F3E7C 7196.0 59 NULL -0.9834787875028149 NULL -0.18102340879563897 NULL -1.5706573607035177 -412300.4293761404 -125.59389297351194 -7196.0 -1137754500 7196.0 -1.0 -1.0 NULL
--7196.0 -7196.0 -7196 -7196 0.5264452612398715 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1111111111111111111111111111111110010001101110110101111010110100 2D373139362E30 FFFFFFFF91BB5EB4 7196.0 8 NULL -0.9834787875028149 NULL -0.18102340879563897 NULL -1.5706573607035177 -412300.4293761404 -125.59389297351194 -7196.0 -1849991500 7196.0 -1.0 -1.0 NULL
--7196.0 -7196.0 -7196 -7196 0.17837094616515647 NULL NULL 1.6094379124341003 NULL NULL NULL 2.321928094887362 NULL NULL NULL 2.321928094887362 NULL NULL NULL NULL NULL 1111111111111111111111111111111111000011011101110000111100110100 2D373139362E30 FFFFFFFFC3770F34 7196.0 5 NULL -0.9834787875028149 NULL -0.18102340879563897 NULL -1.5706573607035177 -412300.4293761404 -125.59389297351194 -7196.0 -1015607500 7196.0 -1.0 -1.0 NULL
--7196.0 -7196.0 -7196 -7196 0.5456857574763374 NULL NULL NULL NULL NULL NULL NULL 29.62699001935971 NULL NULL NULL NULL NULL NULL NULL 28794.287627930647 110001011010110011101011011000 2D373139362E30 316B3AD8 7196.0 24 NULL -0.9834787875028149 NULL -0.18102340879563897 NULL -1.5706573607035177 -412300.4293761404 -125.59389297351194 -7196.0 829111000 7196.0 -1.0 1.0 NULL
+-7196.0 -7196.0 -7196 -7196 0.03951015606275099 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1111111111111111111111111111111110100000010101110101001001110000 2D373139362E30 FFFFFFFFA0575270 7196.0 59 NULL -0.9834787875028149 NULL -0.18102340879563897 NULL -1.5706573607035177 -412300.4293761404 -125.593892973512 -7196.0 -1604890000 7196.0 -1.0 -1.0 NULL
+-7196.0 -7196.0 -7196 -7196 0.9209252022050654 NULL NULL NULL NULL NULL NULL NULL 30.52255693577237 NULL NULL NULL NULL NULL NULL NULL 39273.76987252433 1011011111011111001100101001000 2D373139362E30 5BEF9948 7196.0 21 NULL -0.9834787875028149 NULL -0.18102340879563897 NULL -1.5706573607035177 -412300.4293761404 -125.593892973512 -7196.0 1542429000 7196.0 -1.0 1.0 NULL
+-7196.0 -7196.0 -7196 -7196 0.4533660450429132 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1111111111111111111111111111111110100011011110110101000010110100 2D373139362E30 FFFFFFFFA37B50B4 7196.0 14 NULL -0.9834787875028149 NULL -0.18102340879563897 NULL -1.5706573607035177 -412300.4293761404 -125.593892973512 -7196.0 -1552199500 7196.0 -1.0 -1.0 NULL
+-7196.0 -7196.0 -7196 -7196 0.14567136069921982 NULL NULL 4.07753744390572 NULL NULL NULL 5.882643049361842 NULL NULL NULL 5.882643049361842 NULL NULL NULL NULL NULL 1111111111111111111111111111111110111100001011110011111001111100 2D373139362E30 FFFFFFFFBC2F3E7C 7196.0 59 NULL -0.9834787875028149 NULL -0.18102340879563897 NULL -1.5706573607035177 -412300.4293761404 -125.593892973512 -7196.0 -1137754500 7196.0 -1.0 -1.0 NULL
+-7196.0 -7196.0 -7196 -7196 0.5264452612398715 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1111111111111111111111111111111110010001101110110101111010110100 2D373139362E30 FFFFFFFF91BB5EB4 7196.0 8 NULL -0.9834787875028149 NULL -0.18102340879563897 NULL -1.5706573607035177 -412300.4293761404 -125.593892973512 -7196.0 -1849991500 7196.0 -1.0 -1.0 NULL
+-7196.0 -7196.0 -7196 -7196 0.17837094616515647 NULL NULL 1.6094379124341003 NULL NULL NULL 2.321928094887362 NULL NULL NULL 2.321928094887362 NULL NULL NULL NULL NULL 1111111111111111111111111111111111000011011101110000111100110100 2D373139362E30 FFFFFFFFC3770F34 7196.0 5 NULL -0.9834787875028149 NULL -0.18102340879563897 NULL -1.5706573607035177 -412300.4293761404 -125.593892973512 -7196.0 -1015607500 7196.0 -1.0 -1.0 NULL
+-7196.0 -7196.0 -7196 -7196 0.5456857574763374 NULL NULL NULL NULL NULL NULL NULL 29.62699001935971 NULL NULL NULL NULL NULL NULL NULL 28794.287627930647 110001011010110011101011011000 2D373139362E30 316B3AD8 7196.0 24 NULL -0.9834787875028149 NULL -0.18102340879563897 NULL -1.5706573607035177 -412300.4293761404 -125.593892973512 -7196.0 829111000 7196.0 -1.0 1.0 NULL
NULL NULL NULL NULL 0.282703740641956 NULL NULL 2.3978952727983707 NULL NULL NULL 3.4594316186372978 30.19990821555368 NULL NULL 3.4594316186372978 NULL NULL NULL NULL 35118.75567271711 1001001100000110001001110011000 NULL 49831398 NULL 11 1 NULL NULL NULL NULL NULL NULL NULL NULL 1233327000 NULL NULL 1.0 NULL
PREHOOK: query: select
cdouble
diff --git a/vector-code-gen/src/org/apache/hadoop/hive/tools/GenVectorCode.java b/vector-code-gen/src/org/apache/hadoop/hive/tools/GenVectorCode.java
index 998b19cb0e2..8054a6a2af0 100644
--- a/vector-code-gen/src/org/apache/hadoop/hive/tools/GenVectorCode.java
+++ b/vector-code-gen/src/org/apache/hadoop/hive/tools/GenVectorCode.java
@@ -1084,34 +1084,34 @@ public class GenVectorCode extends Task {
"MathExpr.NaNToNull(outputColVector, sel, batch.selectedInUse, n, true);", ""},
// Log(base, Col) is a special case and will be implemented separately from this template
// Pow(col, P) and Power(col, P) are special cases implemented separately from this template
- {"ColumnUnaryFunc", "FuncSqrt", "double", "double", "Math.sqrt", "", "",
+ {"ColumnUnaryFunc", "FuncSqrt", "double", "double", "StrictMath.sqrt", "", "",
"MathExpr.NaNToNull(outputColVector, sel, batch.selectedInUse, n);", ""},
- {"ColumnUnaryFunc", "FuncSqrt", "double", "long", "Math.sqrt", "(double)", "",
+ {"ColumnUnaryFunc", "FuncSqrt", "double", "long", "StrictMath.sqrt", "(double)", "",
"MathExpr.NaNToNull(outputColVector, sel, batch.selectedInUse, n);", ""},
- {"ColumnUnaryFunc", "FuncASin", "double", "double", "Math.asin", "", "",
+ {"ColumnUnaryFunc", "FuncASin", "double", "double", "StrictMath.asin", "", "",
"MathExpr.NaNToNull(outputColVector, sel, batch.selectedInUse, n);", ""},
- {"ColumnUnaryFunc", "FuncASin", "double", "long", "Math.asin", "(double)", "",
+ {"ColumnUnaryFunc", "FuncASin", "double", "long", "StrictMath.asin", "(double)", "",
"MathExpr.NaNToNull(outputColVector, sel, batch.selectedInUse, n);", ""},
- {"ColumnUnaryFunc", "FuncACos", "double", "double", "Math.acos", "", "",
+ {"ColumnUnaryFunc", "FuncACos", "double", "double", "StrictMath.acos", "", "",
"MathExpr.NaNToNull(outputColVector, sel, batch.selectedInUse, n);", ""},
- {"ColumnUnaryFunc", "FuncACos", "double", "long", "Math.acos", "(double)", "",
+ {"ColumnUnaryFunc", "FuncACos", "double", "long", "StrictMath.acos", "(double)", "",
"MathExpr.NaNToNull(outputColVector, sel, batch.selectedInUse, n);", ""},
{"ColumnUnaryFunc", "FuncAbs", "double", "double", "Math.abs", "", "", "", ""},
{"ColumnUnaryFunc", "FuncAbs", "long", "long", "MathExpr.abs", "", "", "", ""},
- {"ColumnUnaryFunc", "FuncSin", "double", "double", "Math.sin", "", "", "", ""},
- {"ColumnUnaryFunc", "FuncSin", "double", "long", "Math.sin", "(double)", "", "", ""},
+ {"ColumnUnaryFunc", "FuncSin", "double", "double", "StrictMath.sin", "", "", "", ""},
+ {"ColumnUnaryFunc", "FuncSin", "double", "long", "StrictMath.sin", "(double)", "", "", ""},
{"ColumnUnaryFunc", "FuncSinh", "double", "double", "StrictMath.sinh", "", "", "", ""},
{"ColumnUnaryFunc", "FuncSinh", "double", "long", "StrictMath.sinh", "(double)", "", "", ""},
{"ColumnUnaryFunc", "FuncCos", "double", "double", "StrictMath.cos", "", "", "", ""},
{"ColumnUnaryFunc", "FuncCos", "double", "long", "StrictMath.cos", "(double)", "", "", ""},
{"ColumnUnaryFunc", "FuncCosh", "double", "double", "StrictMath.cosh", "", "", "", ""},
{"ColumnUnaryFunc", "FuncCosh", "double", "long", "StrictMath.cosh", "(double)", "", "", ""},
- {"ColumnUnaryFunc", "FuncTan", "double", "double", "Math.tan", "", "", "", ""},
- {"ColumnUnaryFunc", "FuncTan", "double", "long", "Math.tan", "(double)", "", "", ""},
+ {"ColumnUnaryFunc", "FuncTan", "double", "double", "StrictMath.tan", "", "", "", ""},
+ {"ColumnUnaryFunc", "FuncTan", "double", "long", "StrictMath.tan", "(double)", "", "", ""},
{"ColumnUnaryFunc", "FuncTanh", "double", "double", "StrictMath.tanh", "", "", "", ""},
{"ColumnUnaryFunc", "FuncTanh", "double", "long", "StrictMath.tanh", "(double)", "", "", ""},
- {"ColumnUnaryFunc", "FuncATan", "double", "double", "Math.atan", "", "", "", ""},
- {"ColumnUnaryFunc", "FuncATan", "double", "long", "Math.atan", "(double)", "", "", ""},
+ {"ColumnUnaryFunc", "FuncATan", "double", "double", "StrictMath.atan", "", "", "", ""},
+ {"ColumnUnaryFunc", "FuncATan", "double", "long", "StrictMath.atan", "(double)", "", "", ""},
{"ColumnUnaryFunc", "FuncDegrees", "double", "double", "Math.toDegrees", "", "", "", ""},
{"ColumnUnaryFunc", "FuncDegrees", "double", "long", "Math.toDegrees", "(double)", "", "", ""},
{"ColumnUnaryFunc", "FuncRadians", "double", "double", "Math.toRadians", "", "", "", ""},