--! qt:dataset:alltypesorc
set hive.explain.user=false;
SET hive.vectorized.execution.enabled = true;
set hive.fetch.task.conversion=none;

-- Test math functions in vectorized mode to verify they run correctly end-to-end.

explain vectorization expression
select
   cdouble
  ,Round(cdouble, 2)
  ,Floor(cdouble)
  ,Ceil(cdouble)
  ,Rand()
  ,Rand(98007)
  ,Exp(ln(cdouble))
  ,Ln(cdouble)  
  ,Ln(cfloat)
  ,Log10(cdouble)
-- Use log2 as a representative function to test all input types.
  ,Log2(cdouble)
-- Use 15601.0 to test zero handling, as there are no zeroes in the table
  ,Log2(cdouble - 15601.0)
  ,Log2(cfloat)
  ,Log2(cbigint)
  ,Log2(cint)
  ,Log2(csmallint)
  ,Log2(ctinyint)
  ,Log(2.0, cdouble)
  ,Pow(log2(cdouble), 2.0)  
  ,Power(log2(cdouble), 2.0)
  ,Sqrt(cdouble)
  ,Sqrt(cbigint)
  ,Bin(cbigint)
  ,Hex(cdouble)
  ,Conv(cbigint, 10, 16)
  ,Abs(cdouble)
  ,Abs(ctinyint)
  ,Pmod(cint, 3)
  ,Sin(cdouble)
  ,Asin(cdouble)
  ,Cos(cdouble)
  ,ACos(cdouble)
  ,Atan(cdouble)
  ,Degrees(cdouble)
  ,Radians(cdouble)
  ,Positive(cdouble)
  ,Positive(cbigint)
  ,Negative(cdouble)
  ,Sign(cdouble)
  ,Sign(cbigint)
-- Test nesting
  ,cos(-sin(log(cdouble)) + 3.14159)
from alltypesorc
-- limit output to a reasonably small number of rows
where cbigint % 500 = 0
-- test use of a math function in the WHERE clause
and sin(cfloat) >= -1.0;

select
   cdouble
  ,Round(cdouble, 2)
  ,Floor(cdouble)
  ,Ceil(cdouble)
-- Omit rand() from runtime test because it's nondeterministic.
-- ,Rand()
  ,Rand(98007)
  ,Exp(ln(cdouble))
  ,Ln(cdouble)  
  ,Ln(cfloat)
  ,Log10(cdouble)
-- Use log2 as a representative function to test all input types.
  ,Log2(cdouble)
-- Use 15601.0 to test zero handling, as there are no zeroes in the table
  ,Log2(cdouble - 15601.0)
  ,Log2(cfloat)
  ,Log2(cbigint)
  ,Log2(cint)
  ,Log2(csmallint)
  ,Log2(ctinyint)
  ,Log(2.0, cdouble)
  ,Pow(log2(cdouble), 2.0)  
  ,Power(log2(cdouble), 2.0)
  ,Sqrt(cdouble)
  ,Sqrt(cbigint)
  ,Bin(cbigint)
  ,Hex(cdouble)
  ,Conv(cbigint, 10, 16)
  ,Abs(cdouble)
  ,Abs(ctinyint)
  ,Pmod(cint, 3)
  ,Sin(cdouble)
  ,Asin(cdouble)
  ,Cos(cdouble)
  ,ACos(cdouble)
  ,Atan(cdouble)
  ,Degrees(cdouble)
  -- Round to avoid decimal precision difference due to JDK-4477961
  ,Round(Radians(cdouble), 12)
  ,Positive(cdouble)
  ,Positive(cbigint)
  ,Negative(cdouble)
  ,Sign(cdouble)
  ,Sign(cbigint)
-- Test nesting
  ,cos(-sin(log(cdouble)) + 3.14159)
from alltypesorc
-- limit output to a reasonably small number of rows
where cbigint % 500 = 0
-- test use of a math function in the WHERE clause
and sin(cfloat) >= -1.0;
SET hive.vectorized.execution.enabled = false;
select
    cdouble
     ,Round(cdouble, 2)
     ,Floor(cdouble)
     ,Ceil(cdouble)
-- Omit rand() from runtime test because it's nondeterministic.
-- ,Rand()
     ,Rand(98007)
     ,Exp(ln(cdouble))
     ,Ln(cdouble)
     ,Ln(cfloat)
     ,Log10(cdouble)
-- Use log2 as a representative function to test all input types.
     ,Log2(cdouble)
-- Use 15601.0 to test zero handling, as there are no zeroes in the table
     ,Log2(cdouble - 15601.0)
     ,Log2(cfloat)
     ,Log2(cbigint)
     ,Log2(cint)
     ,Log2(csmallint)
     ,Log2(ctinyint)
     ,Log(2.0, cdouble)
     ,Pow(log2(cdouble), 2.0)
     ,Power(log2(cdouble), 2.0)
     ,Sqrt(cdouble)
     ,Sqrt(cbigint)
     ,Bin(cbigint)
     ,Hex(cdouble)
     ,Conv(cbigint, 10, 16)
     ,Abs(cdouble)
     ,Abs(ctinyint)
     ,Pmod(cint, 3)
     ,Sin(cdouble)
     ,Asin(cdouble)
     ,Cos(cdouble)
     ,ACos(cdouble)
     ,Atan(cdouble)
     ,Degrees(cdouble)
     ,Radians(cdouble)
     ,Positive(cdouble)
     ,Positive(cbigint)
     ,Negative(cdouble)
     ,Sign(cdouble)
     ,Sign(cbigint)
-- Test nesting
     ,cos(-sin(log(cdouble)) + 3.14159)
from alltypesorc
-- limit output to a reasonably small number of rows
where cbigint % 500 = 0
-- test use of a math function in the WHERE clause
  and sin(cfloat) >= -1.0;