Index: ql/src/test/results/clientpositive/udf_to_double.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_to_double.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_to_double.q.out (revision 0) @@ -0,0 +1,83 @@ +PREHOOK: query: -- Conversion of main primitive types to Double type: +SELECT CAST(NULL AS DOUBLE) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: -- Conversion of main primitive types to Double type: +SELECT CAST(NULL AS DOUBLE) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +NULL +PREHOOK: query: SELECT CAST(TRUE AS DOUBLE) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(TRUE AS DOUBLE) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +1.0 +PREHOOK: query: SELECT CAST(CAST(-7 AS TINYINT) AS DOUBLE) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-7 AS TINYINT) AS DOUBLE) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-7.0 +PREHOOK: query: SELECT CAST(CAST(-18 AS SMALLINT) AS DOUBLE) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-18 AS SMALLINT) AS DOUBLE) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-18.0 +PREHOOK: query: SELECT CAST(-129 AS DOUBLE) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(-129 AS DOUBLE) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-129.0 +PREHOOK: query: SELECT CAST(CAST(-1025 AS BIGINT) AS DOUBLE) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-1025 AS BIGINT) AS DOUBLE) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-1025.0 +PREHOOK: query: SELECT CAST(CAST(-3.14 AS FLOAT) AS DOUBLE) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-3.14 AS FLOAT) AS DOUBLE) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-3.140000104904175 +PREHOOK: query: SELECT CAST(CAST(-3.14 AS DECIMAL) AS DOUBLE) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-3.14 AS DECIMAL) AS DOUBLE) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-3.14 +PREHOOK: query: SELECT CAST('-38.14' AS DOUBLE) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST('-38.14' AS DOUBLE) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-38.14 Index: ql/src/test/results/clientpositive/udf4.q.out =================================================================== --- ql/src/test/results/clientpositive/udf4.q.out (revision 1515704) +++ ql/src/test/results/clientpositive/udf4.q.out (working copy) @@ -13,14 +13,58 @@ POSTHOOK: Output: default@dest1 POSTHOOK: Lineage: dest1.c1 SIMPLE [] PREHOOK: query: EXPLAIN -SELECT round(1.0), round(1.5), round(-1.5), floor(1.0), floor(1.5), floor(-1.5), sqrt(1.0), sqrt(-1.0), sqrt(0.0), ceil(1.0), ceil(1.5), ceil(-1.5), ceiling(1.0), rand(3), +3, -3, 1++2, 1+-2, ~1 FROM dest1 +SELECT round(1.0), round(1.5), round(-1.5), floor(1.0), floor(1.5), floor(-1.5), sqrt(1.0), sqrt(-1.0), sqrt(0.0), ceil(1.0), ceil(1.5), ceil(-1.5), ceiling(1.0), rand(3), +3, -3, 1++2, 1+-2, + +~1, +~CAST(1 AS TINYINT), +~CAST(1 AS SMALLINT), +~CAST(1 AS BIGINT), + +CAST(1 AS TINYINT) & CAST(2 AS TINYINT), +CAST(1 AS SMALLINT) & CAST(2 AS SMALLINT), +1 & 2, +CAST(1 AS BIGINT) & CAST(2 AS BIGINT), + +CAST(1 AS TINYINT) | CAST(2 AS TINYINT), +CAST(1 AS SMALLINT) | CAST(2 AS SMALLINT), +1 | 2, +CAST(1 AS BIGINT) | CAST(2 AS BIGINT), + +CAST(1 AS TINYINT) ^ CAST(3 AS TINYINT), +CAST(1 AS SMALLINT) ^ CAST(3 AS SMALLINT), +1 ^ 3, +CAST(1 AS BIGINT) ^ CAST(3 AS BIGINT) + +FROM dest1 PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN -SELECT round(1.0), round(1.5), round(-1.5), floor(1.0), floor(1.5), floor(-1.5), sqrt(1.0), sqrt(-1.0), sqrt(0.0), ceil(1.0), ceil(1.5), ceil(-1.5), ceiling(1.0), rand(3), +3, -3, 1++2, 1+-2, ~1 FROM dest1 +SELECT round(1.0), round(1.5), round(-1.5), floor(1.0), floor(1.5), floor(-1.5), sqrt(1.0), sqrt(-1.0), sqrt(0.0), ceil(1.0), ceil(1.5), ceil(-1.5), ceiling(1.0), rand(3), +3, -3, 1++2, 1+-2, + +~1, +~CAST(1 AS TINYINT), +~CAST(1 AS SMALLINT), +~CAST(1 AS BIGINT), + +CAST(1 AS TINYINT) & CAST(2 AS TINYINT), +CAST(1 AS SMALLINT) & CAST(2 AS SMALLINT), +1 & 2, +CAST(1 AS BIGINT) & CAST(2 AS BIGINT), + +CAST(1 AS TINYINT) | CAST(2 AS TINYINT), +CAST(1 AS SMALLINT) | CAST(2 AS SMALLINT), +1 | 2, +CAST(1 AS BIGINT) | CAST(2 AS BIGINT), + +CAST(1 AS TINYINT) ^ CAST(3 AS TINYINT), +CAST(1 AS SMALLINT) ^ CAST(3 AS SMALLINT), +1 ^ 3, +CAST(1 AS BIGINT) ^ CAST(3 AS BIGINT) + +FROM dest1 POSTHOOK: type: QUERY POSTHOOK: Lineage: dest1.c1 SIMPLE [] ABSTRACT SYNTAX TREE: - (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME dest1))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_FUNCTION round 1.0)) (TOK_SELEXPR (TOK_FUNCTION round 1.5)) (TOK_SELEXPR (TOK_FUNCTION round (- 1.5))) (TOK_SELEXPR (TOK_FUNCTION floor 1.0)) (TOK_SELEXPR (TOK_FUNCTION floor 1.5)) (TOK_SELEXPR (TOK_FUNCTION floor (- 1.5))) (TOK_SELEXPR (TOK_FUNCTION sqrt 1.0)) (TOK_SELEXPR (TOK_FUNCTION sqrt (- 1.0))) (TOK_SELEXPR (TOK_FUNCTION sqrt 0.0)) (TOK_SELEXPR (TOK_FUNCTION ceil 1.0)) (TOK_SELEXPR (TOK_FUNCTION ceil 1.5)) (TOK_SELEXPR (TOK_FUNCTION ceil (- 1.5))) (TOK_SELEXPR (TOK_FUNCTION ceiling 1.0)) (TOK_SELEXPR (TOK_FUNCTION rand 3)) (TOK_SELEXPR (+ 3)) (TOK_SELEXPR (- 3)) (TOK_SELEXPR (+ 1 (+ 2))) (TOK_SELEXPR (+ 1 (- 2))) (TOK_SELEXPR (~ 1))))) + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME dest1))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_FUNCTION round 1.0)) (TOK_SELEXPR (TOK_FUNCTION round 1.5)) (TOK_SELEXPR (TOK_FUNCTION round (- 1.5))) (TOK_SELEXPR (TOK_FUNCTION floor 1.0)) (TOK_SELEXPR (TOK_FUNCTION floor 1.5)) (TOK_SELEXPR (TOK_FUNCTION floor (- 1.5))) (TOK_SELEXPR (TOK_FUNCTION sqrt 1.0)) (TOK_SELEXPR (TOK_FUNCTION sqrt (- 1.0))) (TOK_SELEXPR (TOK_FUNCTION sqrt 0.0)) (TOK_SELEXPR (TOK_FUNCTION ceil 1.0)) (TOK_SELEXPR (TOK_FUNCTION ceil 1.5)) (TOK_SELEXPR (TOK_FUNCTION ceil (- 1.5))) (TOK_SELEXPR (TOK_FUNCTION ceiling 1.0)) (TOK_SELEXPR (TOK_FUNCTION rand 3)) (TOK_SELEXPR (+ 3)) (TOK_SELEXPR (- 3)) (TOK_SELEXPR (+ 1 (+ 2))) (TOK_SELEXPR (+ 1 (- 2))) (TOK_SELEXPR (~ 1)) (TOK_SELEXPR (~ (TOK_FUNCTION TOK_TINYINT 1))) (TOK_SELEXPR (~ (TOK_FUNCTION TOK_SMALLINT 1))) (TOK_SELEXPR (~ (TOK_FUNCTION TOK_BIGINT 1))) (TOK_SELEXPR (& (TOK_FUNCTION TOK_TINYINT 1) (TOK_FUNCTION TOK_TINYINT 2))) (TOK_SELEXPR (& (TOK_FUNCTION TOK_SMALLINT 1) (TOK_FUNCTION TOK_SMALLINT 2))) (TOK_SELEXPR (& 1 2)) (TOK_SELEXPR (& (TOK_FUNCTION TOK_BIGINT 1) (TOK_FUNCTION TOK_BIGINT 2))) (TOK_SELEXPR (| (TOK_FUNCTION TOK_TINYINT 1) (TOK_FUNCTION TOK_TINYINT 2))) (TOK_SELEXPR (| (TOK_FUNCTION TOK_SMALLINT 1) (TOK_FUNCTION TOK_SMALLINT 2))) (TOK_SELEXPR (| 1 2)) (TOK_SELEXPR (| (TOK_FUNCTION TOK_BIGINT 1) (TOK_FUNCTION TOK_BIGINT 2))) (TOK_SELEXPR (^ (TOK_FUNCTION TOK_TINYINT 1) (TOK_FUNCTION TOK_TINYINT 3))) (TOK_SELEXPR (^ (TOK_FUNCTION TOK_SMALLINT 1) (TOK_FUNCTION TOK_SMALLINT 3))) (TOK_SELEXPR (^ 1 3)) (TOK_SELEXPR (^ (TOK_FUNCTION TOK_BIGINT 1) (TOK_FUNCTION TOK_BIGINT 3)))))) STAGE DEPENDENCIES: Stage-1 is a root stage @@ -73,7 +117,37 @@ type: int expr: (~ 1) type: int - outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18 + expr: (~ UDFToByte(1)) + type: tinyint + expr: (~ UDFToShort(1)) + type: smallint + expr: (~ UDFToLong(1)) + type: bigint + expr: (UDFToByte(1) & UDFToByte(2)) + type: tinyint + expr: (UDFToShort(1) & UDFToShort(2)) + type: smallint + expr: (1 & 2) + type: int + expr: (UDFToLong(1) & UDFToLong(2)) + type: bigint + expr: (UDFToByte(1) | UDFToByte(2)) + type: tinyint + expr: (UDFToShort(1) | UDFToShort(2)) + type: smallint + expr: (1 | 2) + type: int + expr: (UDFToLong(1) | UDFToLong(2)) + type: bigint + expr: (UDFToByte(1) ^ UDFToByte(3)) + type: tinyint + expr: (UDFToShort(1) ^ UDFToShort(3)) + type: smallint + expr: (1 ^ 3) + type: int + expr: (UDFToLong(1) ^ UDFToLong(3)) + type: bigint + outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12, _col13, _col14, _col15, _col16, _col17, _col18, _col19, _col20, _col21, _col22, _col23, _col24, _col25, _col26, _col27, _col28, _col29, _col30, _col31, _col32, _col33 File Output Operator compressed: false GlobalTableId: 0 @@ -86,13 +160,55 @@ limit: -1 -PREHOOK: query: SELECT round(1.0), round(1.5), round(-1.5), floor(1.0), floor(1.5), floor(-1.5), sqrt(1.0), sqrt(-1.0), sqrt(0.0), ceil(1.0), ceil(1.5), ceil(-1.5), ceiling(1.0), rand(3), +3, -3, 1++2, 1+-2, ~1 FROM dest1 +PREHOOK: query: SELECT round(1.0), round(1.5), round(-1.5), floor(1.0), floor(1.5), floor(-1.5), sqrt(1.0), sqrt(-1.0), sqrt(0.0), ceil(1.0), ceil(1.5), ceil(-1.5), ceiling(1.0), rand(3), +3, -3, 1++2, 1+-2, +~1, +~CAST(1 AS TINYINT), +~CAST(1 AS SMALLINT), +~CAST(1 AS BIGINT), + +CAST(1 AS TINYINT) & CAST(2 AS TINYINT), +CAST(1 AS SMALLINT) & CAST(2 AS SMALLINT), +1 & 2, +CAST(1 AS BIGINT) & CAST(2 AS BIGINT), + +CAST(1 AS TINYINT) | CAST(2 AS TINYINT), +CAST(1 AS SMALLINT) | CAST(2 AS SMALLINT), +1 | 2, +CAST(1 AS BIGINT) | CAST(2 AS BIGINT), + +CAST(1 AS TINYINT) ^ CAST(3 AS TINYINT), +CAST(1 AS SMALLINT) ^ CAST(3 AS SMALLINT), +1 ^ 3, +CAST(1 AS BIGINT) ^ CAST(3 AS BIGINT) + +FROM dest1 PREHOOK: type: QUERY PREHOOK: Input: default@dest1 #### A masked pattern was here #### -POSTHOOK: query: SELECT round(1.0), round(1.5), round(-1.5), floor(1.0), floor(1.5), floor(-1.5), sqrt(1.0), sqrt(-1.0), sqrt(0.0), ceil(1.0), ceil(1.5), ceil(-1.5), ceiling(1.0), rand(3), +3, -3, 1++2, 1+-2, ~1 FROM dest1 +POSTHOOK: query: SELECT round(1.0), round(1.5), round(-1.5), floor(1.0), floor(1.5), floor(-1.5), sqrt(1.0), sqrt(-1.0), sqrt(0.0), ceil(1.0), ceil(1.5), ceil(-1.5), ceiling(1.0), rand(3), +3, -3, 1++2, 1+-2, +~1, +~CAST(1 AS TINYINT), +~CAST(1 AS SMALLINT), +~CAST(1 AS BIGINT), + +CAST(1 AS TINYINT) & CAST(2 AS TINYINT), +CAST(1 AS SMALLINT) & CAST(2 AS SMALLINT), +1 & 2, +CAST(1 AS BIGINT) & CAST(2 AS BIGINT), + +CAST(1 AS TINYINT) | CAST(2 AS TINYINT), +CAST(1 AS SMALLINT) | CAST(2 AS SMALLINT), +1 | 2, +CAST(1 AS BIGINT) | CAST(2 AS BIGINT), + +CAST(1 AS TINYINT) ^ CAST(3 AS TINYINT), +CAST(1 AS SMALLINT) ^ CAST(3 AS SMALLINT), +1 ^ 3, +CAST(1 AS BIGINT) ^ CAST(3 AS BIGINT) + +FROM dest1 POSTHOOK: type: QUERY POSTHOOK: Input: default@dest1 #### A masked pattern was here #### POSTHOOK: Lineage: dest1.c1 SIMPLE [] -1.0 2.0 -2.0 1 1 -2 1.0 NULL 0.0 1 2 -1 1 0.731057369148862 3 -3 3 -1 -2 +1.0 2.0 -2.0 1 1 -2 1.0 NULL 0.0 1 2 -1 1 0.731057369148862 3 -3 3 -1 -2 -2 -2 -2 0 0 0 0 3 3 3 3 2 2 2 2 Index: ql/src/test/results/clientpositive/udf_pmod.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_pmod.q.out (revision 1515704) +++ ql/src/test/results/clientpositive/udf_pmod.q.out (working copy) @@ -41,3 +41,57 @@ POSTHOOK: Input: default@src #### A masked pattern was here #### 5 50 0 +PREHOOK: query: SELECT pmod(CAST(-100 AS TINYINT),CAST(9 AS TINYINT)), pmod(CAST(-50 AS TINYINT),CAST(101 AS TINYINT)), pmod(CAST(-100 AS TINYINT),CAST(29 AS TINYINT)) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT pmod(CAST(-100 AS TINYINT),CAST(9 AS TINYINT)), pmod(CAST(-50 AS TINYINT),CAST(101 AS TINYINT)), pmod(CAST(-100 AS TINYINT),CAST(29 AS TINYINT)) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +8 51 16 +PREHOOK: query: SELECT pmod(CAST(-100 AS SMALLINT),CAST(9 AS SMALLINT)), pmod(CAST(-50 AS SMALLINT),CAST(101 AS SMALLINT)), pmod(CAST(-100 AS SMALLINT),CAST(29 AS SMALLINT)) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT pmod(CAST(-100 AS SMALLINT),CAST(9 AS SMALLINT)), pmod(CAST(-50 AS SMALLINT),CAST(101 AS SMALLINT)), pmod(CAST(-100 AS SMALLINT),CAST(29 AS SMALLINT)) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +8 51 16 +PREHOOK: query: SELECT pmod(CAST(-100 AS BIGINT),CAST(9 AS BIGINT)), pmod(CAST(-50 AS BIGINT),CAST(101 AS BIGINT)), pmod(CAST(-100 AS BIGINT),CAST(29 AS BIGINT)) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT pmod(CAST(-100 AS BIGINT),CAST(9 AS BIGINT)), pmod(CAST(-50 AS BIGINT),CAST(101 AS BIGINT)), pmod(CAST(-100 AS BIGINT),CAST(29 AS BIGINT)) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +8 51 16 +PREHOOK: query: SELECT pmod(CAST(-100.91 AS FLOAT),CAST(9.8 AS FLOAT)), pmod(CAST(-50.1 AS FLOAT),CAST(101.8 AS FLOAT)), pmod(CAST(-100.91 AS FLOAT),CAST(29.75 AS FLOAT)) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT pmod(CAST(-100.91 AS FLOAT),CAST(9.8 AS FLOAT)), pmod(CAST(-50.1 AS FLOAT),CAST(101.8 AS FLOAT)), pmod(CAST(-100.91 AS FLOAT),CAST(29.75 AS FLOAT)) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +6.8899984 51.700005 18.089996 +PREHOOK: query: SELECT pmod(CAST(-100.91 AS DOUBLE),CAST(9.8 AS DOUBLE)), pmod(CAST(-50.1 AS DOUBLE),CAST(101.8 AS DOUBLE)), pmod(CAST(-100.91 AS DOUBLE),CAST(29.75 AS DOUBLE)) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT pmod(CAST(-100.91 AS DOUBLE),CAST(9.8 AS DOUBLE)), pmod(CAST(-50.1 AS DOUBLE),CAST(101.8 AS DOUBLE)), pmod(CAST(-100.91 AS DOUBLE),CAST(29.75 AS DOUBLE)) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +6.890000000000011 51.699999999999996 18.090000000000003 +PREHOOK: query: SELECT pmod(CAST(-100.91 AS DECIMAL),CAST(9.8 AS DECIMAL)), pmod(CAST(-50.1 AS DECIMAL),CAST(101.8 AS DECIMAL)), pmod(CAST(-100.91 AS DECIMAL),CAST(29.75 AS DECIMAL)) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT pmod(CAST(-100.91 AS DECIMAL),CAST(9.8 AS DECIMAL)), pmod(CAST(-50.1 AS DECIMAL),CAST(101.8 AS DECIMAL)), pmod(CAST(-100.91 AS DECIMAL),CAST(29.75 AS DECIMAL)) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +6.89 51.7 18.09 Index: ql/src/test/results/clientpositive/udf_to_boolean.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_to_boolean.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_to_boolean.q.out (revision 0) @@ -0,0 +1,262 @@ +PREHOOK: query: -- 'true' cases: + +SELECT CAST(CAST(1 AS TINYINT) AS BOOLEAN) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: -- 'true' cases: + +SELECT CAST(CAST(1 AS TINYINT) AS BOOLEAN) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +true +PREHOOK: query: SELECT CAST(CAST(2 AS SMALLINT) AS BOOLEAN) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(2 AS SMALLINT) AS BOOLEAN) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +true +PREHOOK: query: SELECT CAST(CAST(-4 AS INT) AS BOOLEAN) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-4 AS INT) AS BOOLEAN) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +true +PREHOOK: query: SELECT CAST(CAST(-444 AS BIGINT) AS BOOLEAN) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-444 AS BIGINT) AS BOOLEAN) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +true +PREHOOK: query: SELECT CAST(CAST(7.0 AS FLOAT) AS BOOLEAN) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(7.0 AS FLOAT) AS BOOLEAN) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +true +PREHOOK: query: SELECT CAST(CAST(-8.0 AS DOUBLE) AS BOOLEAN) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-8.0 AS DOUBLE) AS BOOLEAN) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +true +PREHOOK: query: SELECT CAST(CAST(-99.0 AS DECIMAL) AS BOOLEAN) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-99.0 AS DECIMAL) AS BOOLEAN) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +true +PREHOOK: query: SELECT CAST(CAST('Foo' AS STRING) AS BOOLEAN) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST('Foo' AS STRING) AS BOOLEAN) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +true +PREHOOK: query: SELECT CAST(CAST('2011-05-06 07:08:09' as timestamp) AS BOOLEAN) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST('2011-05-06 07:08:09' as timestamp) AS BOOLEAN) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +true +PREHOOK: query: -- 'false' cases: + +SELECT CAST(CAST(0 AS TINYINT) AS BOOLEAN) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: -- 'false' cases: + +SELECT CAST(CAST(0 AS TINYINT) AS BOOLEAN) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +false +PREHOOK: query: SELECT CAST(CAST(0 AS SMALLINT) AS BOOLEAN) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(0 AS SMALLINT) AS BOOLEAN) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +false +PREHOOK: query: SELECT CAST(CAST(0 AS INT) AS BOOLEAN) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(0 AS INT) AS BOOLEAN) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +false +PREHOOK: query: SELECT CAST(CAST(0 AS BIGINT) AS BOOLEAN) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(0 AS BIGINT) AS BOOLEAN) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +false +PREHOOK: query: SELECT CAST(CAST(0.0 AS FLOAT) AS BOOLEAN) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(0.0 AS FLOAT) AS BOOLEAN) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +false +PREHOOK: query: SELECT CAST(CAST(0.0 AS DOUBLE) AS BOOLEAN) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(0.0 AS DOUBLE) AS BOOLEAN) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +false +PREHOOK: query: SELECT CAST(CAST(0.0 AS DECIMAL) AS BOOLEAN) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(0.0 AS DECIMAL) AS BOOLEAN) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +false +PREHOOK: query: SELECT CAST(CAST('' AS STRING) AS BOOLEAN) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST('' AS STRING) AS BOOLEAN) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +false +PREHOOK: query: SELECT CAST(CAST(0 as timestamp) AS BOOLEAN) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(0 as timestamp) AS BOOLEAN) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +false +PREHOOK: query: -- 'NULL' cases: +SELECT CAST(NULL AS BOOLEAN) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: -- 'NULL' cases: +SELECT CAST(NULL AS BOOLEAN) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +NULL +PREHOOK: query: SELECT CAST(CAST(NULL AS TINYINT) AS BOOLEAN) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(NULL AS TINYINT) AS BOOLEAN) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +NULL +PREHOOK: query: SELECT CAST(CAST(NULL AS SMALLINT) AS BOOLEAN) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(NULL AS SMALLINT) AS BOOLEAN) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +NULL +PREHOOK: query: SELECT CAST(CAST(NULL AS INT) AS BOOLEAN) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(NULL AS INT) AS BOOLEAN) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +NULL +PREHOOK: query: SELECT CAST(CAST(NULL AS BIGINT) AS BOOLEAN) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(NULL AS BIGINT) AS BOOLEAN) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +NULL +PREHOOK: query: SELECT CAST(CAST(NULL AS FLOAT) AS BOOLEAN) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(NULL AS FLOAT) AS BOOLEAN) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +NULL +PREHOOK: query: SELECT CAST(CAST(NULL AS DOUBLE) AS BOOLEAN) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(NULL AS DOUBLE) AS BOOLEAN) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +NULL +PREHOOK: query: SELECT CAST(CAST(NULL AS DECIMAL) AS BOOLEAN) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(NULL AS DECIMAL) AS BOOLEAN) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +NULL +PREHOOK: query: SELECT CAST(CAST(NULL AS STRING) AS BOOLEAN) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(NULL AS STRING) AS BOOLEAN) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +NULL +PREHOOK: query: SELECT CAST(CAST(NULL as timestamp) AS BOOLEAN) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(NULL as timestamp) AS BOOLEAN) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +NULL Index: ql/src/test/results/clientpositive/udf_to_string.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_to_string.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_to_string.q.out (revision 0) @@ -0,0 +1,92 @@ +PREHOOK: query: -- Conversion of main primitive types to String type: +SELECT CAST(NULL AS STRING) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: -- Conversion of main primitive types to String type: +SELECT CAST(NULL AS STRING) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +NULL +PREHOOK: query: SELECT CAST(TRUE AS STRING) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(TRUE AS STRING) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +TRUE +PREHOOK: query: SELECT CAST(CAST(1 AS TINYINT) AS STRING) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(1 AS TINYINT) AS STRING) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +1 +PREHOOK: query: SELECT CAST(CAST(-18 AS SMALLINT) AS STRING) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-18 AS SMALLINT) AS STRING) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-18 +PREHOOK: query: SELECT CAST(-129 AS STRING) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(-129 AS STRING) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-129 +PREHOOK: query: SELECT CAST(CAST(-1025 AS BIGINT) AS STRING) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-1025 AS BIGINT) AS STRING) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-1025 +PREHOOK: query: SELECT CAST(CAST(-3.14 AS DOUBLE) AS STRING) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-3.14 AS DOUBLE) AS STRING) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-3.14 +PREHOOK: query: SELECT CAST(CAST(-3.14 AS FLOAT) AS STRING) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-3.14 AS FLOAT) AS STRING) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-3.14 +PREHOOK: query: SELECT CAST(CAST(-3.14 AS DECIMAL) AS STRING) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-3.14 AS DECIMAL) AS STRING) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-3.14 +PREHOOK: query: SELECT CAST('Foo' AS STRING) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST('Foo' AS STRING) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +Foo Index: ql/src/test/results/clientpositive/udf_to_short.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_to_short.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_to_short.q.out (revision 0) @@ -0,0 +1,83 @@ +PREHOOK: query: -- Conversion of main primitive types to Short type: +SELECT CAST(NULL AS SMALLINT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: -- Conversion of main primitive types to Short type: +SELECT CAST(NULL AS SMALLINT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +NULL +PREHOOK: query: SELECT CAST(TRUE AS SMALLINT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(TRUE AS SMALLINT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +1 +PREHOOK: query: SELECT CAST(CAST(-18 AS TINYINT) AS SMALLINT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-18 AS TINYINT) AS SMALLINT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-18 +PREHOOK: query: SELECT CAST(-129 AS SMALLINT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(-129 AS SMALLINT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-129 +PREHOOK: query: SELECT CAST(CAST(-1025 AS BIGINT) AS SMALLINT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-1025 AS BIGINT) AS SMALLINT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-1025 +PREHOOK: query: SELECT CAST(CAST(-3.14 AS DOUBLE) AS SMALLINT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-3.14 AS DOUBLE) AS SMALLINT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-3 +PREHOOK: query: SELECT CAST(CAST(-3.14 AS FLOAT) AS SMALLINT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-3.14 AS FLOAT) AS SMALLINT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-3 +PREHOOK: query: SELECT CAST(CAST(-3.14 AS DECIMAL) AS SMALLINT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-3.14 AS DECIMAL) AS SMALLINT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-3 +PREHOOK: query: SELECT CAST('-38' AS SMALLINT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST('-38' AS SMALLINT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-38 Index: ql/src/test/results/clientpositive/udf_to_long.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_to_long.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_to_long.q.out (revision 0) @@ -0,0 +1,83 @@ +PREHOOK: query: -- Conversion of main primitive types to Long type: +SELECT CAST(NULL AS BIGINT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: -- Conversion of main primitive types to Long type: +SELECT CAST(NULL AS BIGINT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +NULL +PREHOOK: query: SELECT CAST(TRUE AS BIGINT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(TRUE AS BIGINT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +1 +PREHOOK: query: SELECT CAST(CAST(-7 AS TINYINT) AS BIGINT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-7 AS TINYINT) AS BIGINT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-7 +PREHOOK: query: SELECT CAST(CAST(-18 AS SMALLINT) AS BIGINT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-18 AS SMALLINT) AS BIGINT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-18 +PREHOOK: query: SELECT CAST(-129 AS BIGINT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(-129 AS BIGINT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-129 +PREHOOK: query: SELECT CAST(CAST(-3.14 AS DOUBLE) AS BIGINT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-3.14 AS DOUBLE) AS BIGINT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-3 +PREHOOK: query: SELECT CAST(CAST(-3.14 AS FLOAT) AS BIGINT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-3.14 AS FLOAT) AS BIGINT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-3 +PREHOOK: query: SELECT CAST(CAST(-3.14 AS DECIMAL) AS BIGINT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-3.14 AS DECIMAL) AS BIGINT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-3 +PREHOOK: query: SELECT CAST('-38' AS BIGINT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST('-38' AS BIGINT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-38 Index: ql/src/test/results/clientpositive/create_udaf.q.out =================================================================== --- ql/src/test/results/clientpositive/create_udaf.q.out (revision 1515704) +++ ql/src/test/results/clientpositive/create_udaf.q.out (working copy) @@ -42,6 +42,58 @@ #### A masked pattern was here #### POSTHOOK: Lineage: dest1.col EXPRESSION [(src)src.FieldSchema(name:value, type:string, comment:default), ] 7 +PREHOOK: query: -- cover all the other value types: +SELECT test_max(CAST(length(src.value) AS SMALLINT)) FROM src +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: -- cover all the other value types: +SELECT test_max(CAST(length(src.value) AS SMALLINT)) FROM src +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: Lineage: dest1.col EXPRESSION [(src)src.FieldSchema(name:value, type:string, comment:default), ] +7 +PREHOOK: query: SELECT test_max(CAST(length(src.value) AS BIGINT)) FROM src +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT test_max(CAST(length(src.value) AS BIGINT)) FROM src +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: Lineage: dest1.col EXPRESSION [(src)src.FieldSchema(name:value, type:string, comment:default), ] +7 +PREHOOK: query: SELECT test_max(CAST(length(src.value) AS DOUBLE)) FROM src +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT test_max(CAST(length(src.value) AS DOUBLE)) FROM src +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: Lineage: dest1.col EXPRESSION [(src)src.FieldSchema(name:value, type:string, comment:default), ] +7.0 +PREHOOK: query: SELECT test_max(CAST(length(src.value) AS FLOAT)) FROM src +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT test_max(CAST(length(src.value) AS FLOAT)) FROM src +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: Lineage: dest1.col EXPRESSION [(src)src.FieldSchema(name:value, type:string, comment:default), ] +7.0 +PREHOOK: query: SELECT test_max(substr(src.value,5)) FROM src +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT test_max(substr(src.value,5)) FROM src +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: Lineage: dest1.col EXPRESSION [(src)src.FieldSchema(name:value, type:string, comment:default), ] +98 PREHOOK: query: DROP TEMPORARY FUNCTION test_max PREHOOK: type: DROPFUNCTION POSTHOOK: query: DROP TEMPORARY FUNCTION test_max Index: ql/src/test/results/clientpositive/udf_to_float.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_to_float.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_to_float.q.out (revision 0) @@ -0,0 +1,83 @@ +PREHOOK: query: -- Conversion of main primitive types to Float type: +SELECT CAST(NULL AS FLOAT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: -- Conversion of main primitive types to Float type: +SELECT CAST(NULL AS FLOAT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +NULL +PREHOOK: query: SELECT CAST(TRUE AS FLOAT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(TRUE AS FLOAT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +1.0 +PREHOOK: query: SELECT CAST(CAST(-7 AS TINYINT) AS FLOAT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-7 AS TINYINT) AS FLOAT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-7.0 +PREHOOK: query: SELECT CAST(CAST(-18 AS SMALLINT) AS FLOAT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-18 AS SMALLINT) AS FLOAT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-18.0 +PREHOOK: query: SELECT CAST(-129 AS FLOAT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(-129 AS FLOAT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-129.0 +PREHOOK: query: SELECT CAST(CAST(-1025 AS BIGINT) AS FLOAT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-1025 AS BIGINT) AS FLOAT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-1025.0 +PREHOOK: query: SELECT CAST(CAST(-3.14 AS DOUBLE) AS FLOAT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-3.14 AS DOUBLE) AS FLOAT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-3.14 +PREHOOK: query: SELECT CAST(CAST(-3.14 AS DECIMAL) AS FLOAT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-3.14 AS DECIMAL) AS FLOAT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-3.14 +PREHOOK: query: SELECT CAST('-38.14' AS FLOAT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST('-38.14' AS FLOAT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-38.14 Index: ql/src/test/results/clientpositive/udf_to_byte.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_to_byte.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_to_byte.q.out (revision 0) @@ -0,0 +1,83 @@ +PREHOOK: query: -- Conversion of main primitive types to Byte type: +SELECT CAST(NULL AS TINYINT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: -- Conversion of main primitive types to Byte type: +SELECT CAST(NULL AS TINYINT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +NULL +PREHOOK: query: SELECT CAST(TRUE AS TINYINT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(TRUE AS TINYINT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +1 +PREHOOK: query: SELECT CAST(CAST(-18 AS SMALLINT) AS TINYINT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-18 AS SMALLINT) AS TINYINT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-18 +PREHOOK: query: SELECT CAST(-129 AS TINYINT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(-129 AS TINYINT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +127 +PREHOOK: query: SELECT CAST(CAST(-1025 AS BIGINT) AS TINYINT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-1025 AS BIGINT) AS TINYINT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-1 +PREHOOK: query: SELECT CAST(CAST(-3.14 AS DOUBLE) AS TINYINT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-3.14 AS DOUBLE) AS TINYINT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-3 +PREHOOK: query: SELECT CAST(CAST(-3.14 AS FLOAT) AS TINYINT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-3.14 AS FLOAT) AS TINYINT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-3 +PREHOOK: query: SELECT CAST(CAST(-3.14 AS DECIMAL) AS TINYINT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST(CAST(-3.14 AS DECIMAL) AS TINYINT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-3 +PREHOOK: query: SELECT CAST('-38' AS TINYINT) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +#### A masked pattern was here #### +POSTHOOK: query: SELECT CAST('-38' AS TINYINT) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +#### A masked pattern was here #### +-38 Index: ql/src/test/queries/clientpositive/udf_to_boolean.q =================================================================== --- ql/src/test/queries/clientpositive/udf_to_boolean.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_to_boolean.q (revision 0) @@ -0,0 +1,44 @@ +-- 'true' cases: + +SELECT CAST(CAST(1 AS TINYINT) AS BOOLEAN) FROM src LIMIT 1; +SELECT CAST(CAST(2 AS SMALLINT) AS BOOLEAN) FROM src LIMIT 1; +SELECT CAST(CAST(-4 AS INT) AS BOOLEAN) FROM src LIMIT 1; +SELECT CAST(CAST(-444 AS BIGINT) AS BOOLEAN) FROM src LIMIT 1; + +SELECT CAST(CAST(7.0 AS FLOAT) AS BOOLEAN) FROM src LIMIT 1; +SELECT CAST(CAST(-8.0 AS DOUBLE) AS BOOLEAN) FROM src LIMIT 1; +SELECT CAST(CAST(-99.0 AS DECIMAL) AS BOOLEAN) FROM src LIMIT 1; + +SELECT CAST(CAST('Foo' AS STRING) AS BOOLEAN) FROM src LIMIT 1; + +SELECT CAST(CAST('2011-05-06 07:08:09' as timestamp) AS BOOLEAN) FROM src LIMIT 1; + +-- 'false' cases: + +SELECT CAST(CAST(0 AS TINYINT) AS BOOLEAN) FROM src LIMIT 1; +SELECT CAST(CAST(0 AS SMALLINT) AS BOOLEAN) FROM src LIMIT 1; +SELECT CAST(CAST(0 AS INT) AS BOOLEAN) FROM src LIMIT 1; +SELECT CAST(CAST(0 AS BIGINT) AS BOOLEAN) FROM src LIMIT 1; + +SELECT CAST(CAST(0.0 AS FLOAT) AS BOOLEAN) FROM src LIMIT 1; +SELECT CAST(CAST(0.0 AS DOUBLE) AS BOOLEAN) FROM src LIMIT 1; +SELECT CAST(CAST(0.0 AS DECIMAL) AS BOOLEAN) FROM src LIMIT 1; + +SELECT CAST(CAST('' AS STRING) AS BOOLEAN) FROM src LIMIT 1; + +SELECT CAST(CAST(0 as timestamp) AS BOOLEAN) FROM src LIMIT 1; + +-- 'NULL' cases: +SELECT CAST(NULL AS BOOLEAN) FROM src LIMIT 1; + +SELECT CAST(CAST(NULL AS TINYINT) AS BOOLEAN) FROM src LIMIT 1; +SELECT CAST(CAST(NULL AS SMALLINT) AS BOOLEAN) FROM src LIMIT 1; +SELECT CAST(CAST(NULL AS INT) AS BOOLEAN) FROM src LIMIT 1; +SELECT CAST(CAST(NULL AS BIGINT) AS BOOLEAN) FROM src LIMIT 1; + +SELECT CAST(CAST(NULL AS FLOAT) AS BOOLEAN) FROM src LIMIT 1; +SELECT CAST(CAST(NULL AS DOUBLE) AS BOOLEAN) FROM src LIMIT 1; +SELECT CAST(CAST(NULL AS DECIMAL) AS BOOLEAN) FROM src LIMIT 1; + +SELECT CAST(CAST(NULL AS STRING) AS BOOLEAN) FROM src LIMIT 1; +SELECT CAST(CAST(NULL as timestamp) AS BOOLEAN) FROM src LIMIT 1; Index: ql/src/test/queries/clientpositive/udf_pmod.q =================================================================== --- ql/src/test/queries/clientpositive/udf_pmod.q (revision 1515704) +++ ql/src/test/queries/clientpositive/udf_pmod.q (working copy) @@ -9,3 +9,12 @@ SELECT pmod(100,19), pmod(50,125), pmod(300,15) FROM src LIMIT 1; + +SELECT pmod(CAST(-100 AS TINYINT),CAST(9 AS TINYINT)), pmod(CAST(-50 AS TINYINT),CAST(101 AS TINYINT)), pmod(CAST(-100 AS TINYINT),CAST(29 AS TINYINT)) FROM src LIMIT 1; +SELECT pmod(CAST(-100 AS SMALLINT),CAST(9 AS SMALLINT)), pmod(CAST(-50 AS SMALLINT),CAST(101 AS SMALLINT)), pmod(CAST(-100 AS SMALLINT),CAST(29 AS SMALLINT)) FROM src LIMIT 1; +SELECT pmod(CAST(-100 AS BIGINT),CAST(9 AS BIGINT)), pmod(CAST(-50 AS BIGINT),CAST(101 AS BIGINT)), pmod(CAST(-100 AS BIGINT),CAST(29 AS BIGINT)) FROM src LIMIT 1; + +SELECT pmod(CAST(-100.91 AS FLOAT),CAST(9.8 AS FLOAT)), pmod(CAST(-50.1 AS FLOAT),CAST(101.8 AS FLOAT)), pmod(CAST(-100.91 AS FLOAT),CAST(29.75 AS FLOAT)) FROM src LIMIT 1; +SELECT pmod(CAST(-100.91 AS DOUBLE),CAST(9.8 AS DOUBLE)), pmod(CAST(-50.1 AS DOUBLE),CAST(101.8 AS DOUBLE)), pmod(CAST(-100.91 AS DOUBLE),CAST(29.75 AS DOUBLE)) FROM src LIMIT 1; +SELECT pmod(CAST(-100.91 AS DECIMAL),CAST(9.8 AS DECIMAL)), pmod(CAST(-50.1 AS DECIMAL),CAST(101.8 AS DECIMAL)), pmod(CAST(-100.91 AS DECIMAL),CAST(29.75 AS DECIMAL)) FROM src LIMIT 1; + Index: ql/src/test/queries/clientpositive/udf_to_short.q =================================================================== --- ql/src/test/queries/clientpositive/udf_to_short.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_to_short.q (revision 0) @@ -0,0 +1,15 @@ +-- Conversion of main primitive types to Short type: +SELECT CAST(NULL AS SMALLINT) FROM src LIMIT 1; + +SELECT CAST(TRUE AS SMALLINT) FROM src LIMIT 1; + +SELECT CAST(CAST(-18 AS TINYINT) AS SMALLINT) FROM src LIMIT 1; +SELECT CAST(-129 AS SMALLINT) FROM src LIMIT 1; +SELECT CAST(CAST(-1025 AS BIGINT) AS SMALLINT) FROM src LIMIT 1; + +SELECT CAST(CAST(-3.14 AS DOUBLE) AS SMALLINT) FROM src LIMIT 1; +SELECT CAST(CAST(-3.14 AS FLOAT) AS SMALLINT) FROM src LIMIT 1; +SELECT CAST(CAST(-3.14 AS DECIMAL) AS SMALLINT) FROM src LIMIT 1; + +SELECT CAST('-38' AS SMALLINT) FROM src LIMIT 1; + Index: ql/src/test/queries/clientpositive/udf_to_double.q =================================================================== --- ql/src/test/queries/clientpositive/udf_to_double.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_to_double.q (revision 0) @@ -0,0 +1,15 @@ +-- Conversion of main primitive types to Double type: +SELECT CAST(NULL AS DOUBLE) FROM src LIMIT 1; + +SELECT CAST(TRUE AS DOUBLE) FROM src LIMIT 1; + +SELECT CAST(CAST(-7 AS TINYINT) AS DOUBLE) FROM src LIMIT 1; +SELECT CAST(CAST(-18 AS SMALLINT) AS DOUBLE) FROM src LIMIT 1; +SELECT CAST(-129 AS DOUBLE) FROM src LIMIT 1; +SELECT CAST(CAST(-1025 AS BIGINT) AS DOUBLE) FROM src LIMIT 1; + +SELECT CAST(CAST(-3.14 AS FLOAT) AS DOUBLE) FROM src LIMIT 1; +SELECT CAST(CAST(-3.14 AS DECIMAL) AS DOUBLE) FROM src LIMIT 1; + +SELECT CAST('-38.14' AS DOUBLE) FROM src LIMIT 1; + Index: ql/src/test/queries/clientpositive/udf_to_float.q =================================================================== --- ql/src/test/queries/clientpositive/udf_to_float.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_to_float.q (revision 0) @@ -0,0 +1,15 @@ +-- Conversion of main primitive types to Float type: +SELECT CAST(NULL AS FLOAT) FROM src LIMIT 1; + +SELECT CAST(TRUE AS FLOAT) FROM src LIMIT 1; + +SELECT CAST(CAST(-7 AS TINYINT) AS FLOAT) FROM src LIMIT 1; +SELECT CAST(CAST(-18 AS SMALLINT) AS FLOAT) FROM src LIMIT 1; +SELECT CAST(-129 AS FLOAT) FROM src LIMIT 1; +SELECT CAST(CAST(-1025 AS BIGINT) AS FLOAT) FROM src LIMIT 1; + +SELECT CAST(CAST(-3.14 AS DOUBLE) AS FLOAT) FROM src LIMIT 1; +SELECT CAST(CAST(-3.14 AS DECIMAL) AS FLOAT) FROM src LIMIT 1; + +SELECT CAST('-38.14' AS FLOAT) FROM src LIMIT 1; + Index: ql/src/test/queries/clientpositive/create_udaf.q =================================================================== --- ql/src/test/queries/clientpositive/create_udaf.q (revision 1515704) +++ ql/src/test/queries/clientpositive/create_udaf.q (working copy) @@ -9,4 +9,11 @@ SELECT dest1.* FROM dest1; +-- cover all the other value types: +SELECT test_max(CAST(length(src.value) AS SMALLINT)) FROM src; +SELECT test_max(CAST(length(src.value) AS BIGINT)) FROM src; +SELECT test_max(CAST(length(src.value) AS DOUBLE)) FROM src; +SELECT test_max(CAST(length(src.value) AS FLOAT)) FROM src; +SELECT test_max(substr(src.value,5)) FROM src; + DROP TEMPORARY FUNCTION test_max; Index: ql/src/test/queries/clientpositive/udf_to_long.q =================================================================== --- ql/src/test/queries/clientpositive/udf_to_long.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_to_long.q (revision 0) @@ -0,0 +1,15 @@ +-- Conversion of main primitive types to Long type: +SELECT CAST(NULL AS BIGINT) FROM src LIMIT 1; + +SELECT CAST(TRUE AS BIGINT) FROM src LIMIT 1; + +SELECT CAST(CAST(-7 AS TINYINT) AS BIGINT) FROM src LIMIT 1; +SELECT CAST(CAST(-18 AS SMALLINT) AS BIGINT) FROM src LIMIT 1; +SELECT CAST(-129 AS BIGINT) FROM src LIMIT 1; + +SELECT CAST(CAST(-3.14 AS DOUBLE) AS BIGINT) FROM src LIMIT 1; +SELECT CAST(CAST(-3.14 AS FLOAT) AS BIGINT) FROM src LIMIT 1; +SELECT CAST(CAST(-3.14 AS DECIMAL) AS BIGINT) FROM src LIMIT 1; + +SELECT CAST('-38' AS BIGINT) FROM src LIMIT 1; + Index: ql/src/test/queries/clientpositive/udf_to_byte.q =================================================================== --- ql/src/test/queries/clientpositive/udf_to_byte.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_to_byte.q (revision 0) @@ -0,0 +1,15 @@ +-- Conversion of main primitive types to Byte type: +SELECT CAST(NULL AS TINYINT) FROM src LIMIT 1; + +SELECT CAST(TRUE AS TINYINT) FROM src LIMIT 1; + +SELECT CAST(CAST(-18 AS SMALLINT) AS TINYINT) FROM src LIMIT 1; +SELECT CAST(-129 AS TINYINT) FROM src LIMIT 1; +SELECT CAST(CAST(-1025 AS BIGINT) AS TINYINT) FROM src LIMIT 1; + +SELECT CAST(CAST(-3.14 AS DOUBLE) AS TINYINT) FROM src LIMIT 1; +SELECT CAST(CAST(-3.14 AS FLOAT) AS TINYINT) FROM src LIMIT 1; +SELECT CAST(CAST(-3.14 AS DECIMAL) AS TINYINT) FROM src LIMIT 1; + +SELECT CAST('-38' AS TINYINT) FROM src LIMIT 1; + Index: ql/src/test/queries/clientpositive/udf_to_string.q =================================================================== --- ql/src/test/queries/clientpositive/udf_to_string.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_to_string.q (revision 0) @@ -0,0 +1,16 @@ +-- Conversion of main primitive types to String type: +SELECT CAST(NULL AS STRING) FROM src LIMIT 1; + +SELECT CAST(TRUE AS STRING) FROM src LIMIT 1; + +SELECT CAST(CAST(1 AS TINYINT) AS STRING) FROM src LIMIT 1; +SELECT CAST(CAST(-18 AS SMALLINT) AS STRING) FROM src LIMIT 1; +SELECT CAST(-129 AS STRING) FROM src LIMIT 1; +SELECT CAST(CAST(-1025 AS BIGINT) AS STRING) FROM src LIMIT 1; + +SELECT CAST(CAST(-3.14 AS DOUBLE) AS STRING) FROM src LIMIT 1; +SELECT CAST(CAST(-3.14 AS FLOAT) AS STRING) FROM src LIMIT 1; +SELECT CAST(CAST(-3.14 AS DECIMAL) AS STRING) FROM src LIMIT 1; + +SELECT CAST('Foo' AS STRING) FROM src LIMIT 1; + Index: ql/src/test/queries/clientpositive/udf4.q =================================================================== --- ql/src/test/queries/clientpositive/udf4.q (revision 1515704) +++ ql/src/test/queries/clientpositive/udf4.q (working copy) @@ -3,6 +3,49 @@ FROM src INSERT OVERWRITE TABLE dest1 SELECT ' abc ' WHERE src.key = 86; EXPLAIN -SELECT round(1.0), round(1.5), round(-1.5), floor(1.0), floor(1.5), floor(-1.5), sqrt(1.0), sqrt(-1.0), sqrt(0.0), ceil(1.0), ceil(1.5), ceil(-1.5), ceiling(1.0), rand(3), +3, -3, 1++2, 1+-2, ~1 FROM dest1; +SELECT round(1.0), round(1.5), round(-1.5), floor(1.0), floor(1.5), floor(-1.5), sqrt(1.0), sqrt(-1.0), sqrt(0.0), ceil(1.0), ceil(1.5), ceil(-1.5), ceiling(1.0), rand(3), +3, -3, 1++2, 1+-2, -SELECT round(1.0), round(1.5), round(-1.5), floor(1.0), floor(1.5), floor(-1.5), sqrt(1.0), sqrt(-1.0), sqrt(0.0), ceil(1.0), ceil(1.5), ceil(-1.5), ceiling(1.0), rand(3), +3, -3, 1++2, 1+-2, ~1 FROM dest1; +~1, +~CAST(1 AS TINYINT), +~CAST(1 AS SMALLINT), +~CAST(1 AS BIGINT), + +CAST(1 AS TINYINT) & CAST(2 AS TINYINT), +CAST(1 AS SMALLINT) & CAST(2 AS SMALLINT), +1 & 2, +CAST(1 AS BIGINT) & CAST(2 AS BIGINT), + +CAST(1 AS TINYINT) | CAST(2 AS TINYINT), +CAST(1 AS SMALLINT) | CAST(2 AS SMALLINT), +1 | 2, +CAST(1 AS BIGINT) | CAST(2 AS BIGINT), + +CAST(1 AS TINYINT) ^ CAST(3 AS TINYINT), +CAST(1 AS SMALLINT) ^ CAST(3 AS SMALLINT), +1 ^ 3, +CAST(1 AS BIGINT) ^ CAST(3 AS BIGINT) + +FROM dest1; + +SELECT round(1.0), round(1.5), round(-1.5), floor(1.0), floor(1.5), floor(-1.5), sqrt(1.0), sqrt(-1.0), sqrt(0.0), ceil(1.0), ceil(1.5), ceil(-1.5), ceiling(1.0), rand(3), +3, -3, 1++2, 1+-2, +~1, +~CAST(1 AS TINYINT), +~CAST(1 AS SMALLINT), +~CAST(1 AS BIGINT), + +CAST(1 AS TINYINT) & CAST(2 AS TINYINT), +CAST(1 AS SMALLINT) & CAST(2 AS SMALLINT), +1 & 2, +CAST(1 AS BIGINT) & CAST(2 AS BIGINT), + +CAST(1 AS TINYINT) | CAST(2 AS TINYINT), +CAST(1 AS SMALLINT) | CAST(2 AS SMALLINT), +1 | 2, +CAST(1 AS BIGINT) | CAST(2 AS BIGINT), + +CAST(1 AS TINYINT) ^ CAST(3 AS TINYINT), +CAST(1 AS SMALLINT) ^ CAST(3 AS SMALLINT), +1 ^ 3, +CAST(1 AS BIGINT) ^ CAST(3 AS BIGINT) + +FROM dest1; Index: ql/src/java/org/apache/hadoop/hive/ql/udf/UDFUnixTimeStamp.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/udf/UDFUnixTimeStamp.java (revision 1515704) +++ ql/src/java/org/apache/hadoop/hive/ql/udf/UDFUnixTimeStamp.java (working copy) @@ -1,127 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.hadoop.hive.ql.udf; - -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; - -import org.apache.hadoop.hive.ql.exec.Description; -import org.apache.hadoop.hive.ql.exec.UDF; -import org.apache.hadoop.hive.serde2.io.DateWritable; -import org.apache.hadoop.hive.serde2.io.TimestampWritable; -import org.apache.hadoop.io.LongWritable; -import org.apache.hadoop.io.Text; - -/** - * UDFUnixTimeStamp. - * - */ -@UDFType(deterministic = false) -@Description(name = "unix_timestamp", - value = "_FUNC_([date[, pattern]]) - Returns the UNIX timestamp", - extended = "Converts the current or specified time to number of seconds " - + "since 1970-01-01.") -public class UDFUnixTimeStamp extends UDF { - // For now, we just use the default time zone. - private final SimpleDateFormat formatter = new SimpleDateFormat( - "yyyy-MM-dd HH:mm:ss"); - - LongWritable result = new LongWritable(); - - public UDFUnixTimeStamp() { - } - - /** - * Return current UnixTime. - * - * @return long Number of seconds from 1970-01-01 00:00:00 - */ - public LongWritable evaluate() { - Date date = new Date(); - result.set(date.getTime() / 1000); - return result; - } - - /** - * Convert time string to UnixTime. - * - * @param dateText - * Time string in format yyyy-MM-dd HH:mm:ss - * @return long Number of seconds from 1970-01-01 00:00:00 - */ - public LongWritable evaluate(Text dateText) { - if (dateText == null) { - return null; - } - - try { - Date date = formatter.parse(dateText.toString()); - result.set(date.getTime() / 1000); - return result; - } catch (ParseException e) { - return null; - } - } - - Text lastPatternText = new Text(); - - /** - * Convert time string to UnixTime with user defined pattern. - * - * @param dateText - * Time string in format patternstring - * @param patternText - * Time patterns string supported by SimpleDateFormat - * @return long Number of seconds from 1970-01-01 00:00:00 - */ - public LongWritable evaluate(Text dateText, Text patternText) { - if (dateText == null || patternText == null) { - return null; - } - try { - if (!patternText.equals(lastPatternText)) { - formatter.applyPattern(patternText.toString()); - lastPatternText.set(patternText); - } - } catch (Exception e) { - return null; - } - - return evaluate(dateText); - } - - public LongWritable evaluate(DateWritable d) { - if (d == null) { - return null; - } else { - result.set(d.getTimeInSeconds()); - return result; - } - } - - public LongWritable evaluate(TimestampWritable i) { - if (i == null) { - return null; - } else { - result.set(i.getSeconds()); - return result; - } - } -} Index: ql/src/java/org/apache/hadoop/hive/ql/udf/UDFBaseCompare.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/udf/UDFBaseCompare.java (revision 1515704) +++ ql/src/java/org/apache/hadoop/hive/ql/udf/UDFBaseCompare.java (working copy) @@ -1,42 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.hadoop.hive.ql.udf; - -import org.apache.hadoop.hive.ql.exec.ComparisonOpMethodResolver; -import org.apache.hadoop.hive.ql.exec.UDF; -import org.apache.hadoop.hive.serde2.io.DoubleWritable; -import org.apache.hadoop.io.BooleanWritable; - -/** - * UDFBaseCompare. - * - */ -public abstract class UDFBaseCompare extends UDF { - - /** - * This constructor sets the resolver to be used for comparison operators. See - * {@link org.apache.hadoop.hive.ql.exec.UDFMethodResolver} - */ - public UDFBaseCompare() { - super(null); - setResolver(new ComparisonOpMethodResolver(this.getClass())); - } - - public abstract BooleanWritable evaluate(DoubleWritable a, DoubleWritable b); -} Index: ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToDate.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToDate.java (revision 1515704) +++ ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToDate.java (working copy) @@ -1,99 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.hadoop.hive.ql.udf; - -import org.apache.hadoop.hive.ql.exec.UDF; - -/** - * UDFToDate. - * - */ -public class UDFToDate extends UDF { - - public UDFToDate() { - } - - public java.sql.Date evaluate(String i) { - if (i == null) { - return null; - } else { - try { - // Supported format: "YYYY-MM-DD" - return java.sql.Date.valueOf(i); - } catch (IllegalArgumentException e) { - // We return NULL when the string is in a wrong format, which is - // conservative. - return null; - } - } - } - - public java.sql.Date evaluate(Void i) { - return null; - } - - public java.sql.Date evaluate(Byte i) { - if (i == null) { - return null; - } else { - return new java.sql.Date(i.longValue()); - } - } - - public java.sql.Date evaluate(Short i) { - if (i == null) { - return null; - } else { - return new java.sql.Date(i.longValue()); - } - } - - public java.sql.Date evaluate(Integer i) { - if (i == null) { - return null; - } else { - return new java.sql.Date(i.longValue()); - } - } - - public java.sql.Date evaluate(Long i) { - if (i == null) { - return null; - } else { - return new java.sql.Date(i.longValue()); - } - } - - public java.sql.Date evaluate(Float i) { - if (i == null) { - return null; - } else { - return new java.sql.Date(i.longValue()); - } - } - - public java.sql.Date evaluate(Double i) { - if (i == null) { - return null; - } else { - return new java.sql.Date(i.longValue()); - } - } - -}