Index: ql/src/test/results/clientpositive/udf_hash.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_hash.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_hash.q.out (working copy) @@ -1,3 +1,13 @@ +PREHOOK: query: DESCRIBE FUNCTION hash +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION hash +POSTHOOK: type: DESCFUNCTION +hash(a1, a2, ...) - Returns a hash value of the arguments +PREHOOK: query: DESCRIBE FUNCTION EXTENDED hash +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED hash +POSTHOOK: type: DESCFUNCTION +hash(a1, a2, ...) - Returns a hash value of the arguments PREHOOK: query: EXPLAIN SELECT hash(CAST(1 AS TINYINT)), hash(CAST(2 AS SMALLINT)), hash(3), hash(CAST('123456789012' AS BIGINT)), @@ -74,7 +84,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/875530574/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/697748715/10000 POSTHOOK: query: SELECT hash(CAST(1 AS TINYINT)), hash(CAST(2 AS SMALLINT)), hash(3), hash(CAST('123456789012' AS BIGINT)), hash(CAST(1.25 AS FLOAT)), hash(CAST(16.0 AS DOUBLE)), @@ -83,5 +93,5 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/875530574/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/697748715/10000 1 2 3 -1097262584 1067450368 1076887552 51508 96354 1 0 1026 Index: ql/src/test/results/clientpositive/udaf_max.q.out =================================================================== --- ql/src/test/results/clientpositive/udaf_max.q.out (revision 0) +++ ql/src/test/results/clientpositive/udaf_max.q.out (revision 0) @@ -0,0 +1,20 @@ +PREHOOK: query: DESCRIBE FUNCTION max +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION max +POSTHOOK: type: DESCFUNCTION +max(expr) - Returns the maximum value of expr +PREHOOK: query: DESCRIBE FUNCTION EXTENDED max +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED max +POSTHOOK: type: DESCFUNCTION +max(expr) - Returns the maximum value of expr +PREHOOK: query: DESCRIBE FUNCTION max +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION max +POSTHOOK: type: DESCFUNCTION +max(expr) - Returns the maximum value of expr +PREHOOK: query: DESCRIBE FUNCTION EXTENDED max +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED max +POSTHOOK: type: DESCFUNCTION +max(expr) - Returns the maximum value of expr Index: ql/src/test/results/clientpositive/udf_unhex.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_unhex.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_unhex.q.out (working copy) @@ -1,3 +1,30 @@ +PREHOOK: query: DESCRIBE FUNCTION unhex +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION unhex +POSTHOOK: type: DESCFUNCTION +unhex(str) - Converts hexadecimal argument to string +PREHOOK: query: DESCRIBE FUNCTION EXTENDED unhex +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED unhex +POSTHOOK: type: DESCFUNCTION +unhex(str) - Converts hexadecimal argument to string +Performs the inverse operation of HEX(str). That is, it interprets +each pair of hexadecimal digits in the argument as a number and +converts it to the character represented by the number. The +resulting characters are returned as a binary string. + +Example: +> SELECT UNHEX('4D7953514C') from src limit 1; +'MySQL' +> SELECT UNHEX(HEX('string')) from src limit 1; +'string' +> SELECT HEX(UNHEX('1267')) from src limit 1; +'1267' + +The characters in the argument string must be legal hexadecimal +digits: '0' .. '9', 'A' .. 'F', 'a' .. 'f'. If UNHEX() encounters +any nonhexadecimal digits in the argument, it returns NULL. Also, +if there are an odd number of characters a leading 0 is appended. PREHOOK: query: -- Good inputs SELECT @@ -9,7 +36,7 @@ FROM src limit 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/791570897/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1211131149/10000 POSTHOOK: query: -- Good inputs SELECT @@ -21,7 +48,7 @@ FROM src limit 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/791570897/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1211131149/10000 MySQL 1267 a -4 PREHOOK: query: -- Bad inputs SELECT @@ -31,7 +58,7 @@ FROM src limit 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1722929824/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1374300168/10000 POSTHOOK: query: -- Bad inputs SELECT unhex('MySQL'), @@ -40,5 +67,5 @@ FROM src limit 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1722929824/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1374300168/10000 NULL NULL NULL Index: ql/src/test/results/clientpositive/udaf_var_samp.q.out =================================================================== --- ql/src/test/results/clientpositive/udaf_var_samp.q.out (revision 0) +++ ql/src/test/results/clientpositive/udaf_var_samp.q.out (revision 0) @@ -0,0 +1,20 @@ +PREHOOK: query: DESCRIBE FUNCTION var_samp +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION var_samp +POSTHOOK: type: DESCFUNCTION +var_samp(x) - Returns the sample variance of a set of numbers +PREHOOK: query: DESCRIBE FUNCTION EXTENDED var_samp +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED var_samp +POSTHOOK: type: DESCFUNCTION +var_samp(x) - Returns the sample variance of a set of numbers +PREHOOK: query: DESCRIBE FUNCTION var_samp +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION var_samp +POSTHOOK: type: DESCFUNCTION +var_samp(x) - Returns the sample variance of a set of numbers +PREHOOK: query: DESCRIBE FUNCTION EXTENDED var_samp +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED var_samp +POSTHOOK: type: DESCFUNCTION +var_samp(x) - Returns the sample variance of a set of numbers Index: ql/src/test/results/clientpositive/udf_case.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_case.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_case.q.out (working copy) @@ -1,3 +1,15 @@ +PREHOOK: query: -- Parsing bug requires us to quote case +DESCRIBE FUNCTION 'case' +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: -- Parsing bug requires us to quote case +DESCRIBE FUNCTION 'case' +POSTHOOK: type: DESCFUNCTION +There is no documentation for function case +PREHOOK: query: DESCRIBE FUNCTION EXTENDED 'case' +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED 'case' +POSTHOOK: type: DESCFUNCTION +There is no documentation for function case PREHOOK: query: EXPLAIN SELECT CASE 1 WHEN 1 THEN 2 @@ -124,7 +136,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/606727511/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/908511377/10000 POSTHOOK: query: SELECT CASE 1 WHEN 1 THEN 2 WHEN 3 THEN 4 @@ -153,5 +165,5 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/606727511/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/908511377/10000 2 5 15 NULL 20 24 Index: ql/src/test/results/clientpositive/udf_abs.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_abs.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_abs.q.out (working copy) @@ -1,3 +1,18 @@ +PREHOOK: query: DESCRIBE FUNCTION abs +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION abs +POSTHOOK: type: DESCFUNCTION +abs(x) - returns the absolute value of x +PREHOOK: query: DESCRIBE FUNCTION EXTENDED abs +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED abs +POSTHOOK: type: DESCFUNCTION +abs(x) - returns the absolute value of x +Example: + > SELECT abs(0) FROM src LIMIT 1; + 0 + > SELECT abs(-5) FROM src LIMIT 1; + 5 PREHOOK: query: EXPLAIN SELECT abs(0), abs(-1), @@ -63,7 +78,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/2094182155/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1461910312/10000 POSTHOOK: query: SELECT abs(0), abs(-1), @@ -73,7 +88,7 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/2094182155/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1461910312/10000 0 1 123 9223372036854775807 9223372036854775807 PREHOOK: query: EXPLAIN SELECT abs(0.0), @@ -130,7 +145,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/108724608/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1794760562/10000 POSTHOOK: query: SELECT abs(0.0), abs(-3.14159265), @@ -138,5 +153,5 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/108724608/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1794760562/10000 0.0 3.14159265 3.14159265 Index: ql/src/test/results/clientpositive/udaf_variance.q.out =================================================================== --- ql/src/test/results/clientpositive/udaf_variance.q.out (revision 0) +++ ql/src/test/results/clientpositive/udaf_variance.q.out (revision 0) @@ -0,0 +1,40 @@ +PREHOOK: query: DESCRIBE FUNCTION variance +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION variance +POSTHOOK: type: DESCFUNCTION +variance(x) - Returns the variance of a set of numbers +PREHOOK: query: DESCRIBE FUNCTION EXTENDED variance +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED variance +POSTHOOK: type: DESCFUNCTION +variance(x) - Returns the variance of a set of numbers +PREHOOK: query: DESCRIBE FUNCTION var_pop +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION var_pop +POSTHOOK: type: DESCFUNCTION +var_pop(x) - Returns the variance of a set of numbers +PREHOOK: query: DESCRIBE FUNCTION EXTENDED var_pop +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED var_pop +POSTHOOK: type: DESCFUNCTION +var_pop(x) - Returns the variance of a set of numbers +PREHOOK: query: DESCRIBE FUNCTION variance +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION variance +POSTHOOK: type: DESCFUNCTION +variance(x) - Returns the variance of a set of numbers +PREHOOK: query: DESCRIBE FUNCTION EXTENDED variance +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED variance +POSTHOOK: type: DESCFUNCTION +variance(x) - Returns the variance of a set of numbers +PREHOOK: query: DESCRIBE FUNCTION var_pop +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION var_pop +POSTHOOK: type: DESCFUNCTION +var_pop(x) - Returns the variance of a set of numbers +PREHOOK: query: DESCRIBE FUNCTION EXTENDED var_pop +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED var_pop +POSTHOOK: type: DESCFUNCTION +var_pop(x) - Returns the variance of a set of numbers Index: ql/src/test/results/clientpositive/udf_split.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_split.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_split.q.out (working copy) @@ -1,3 +1,16 @@ +PREHOOK: query: DESCRIBE FUNCTION split +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION split +POSTHOOK: type: DESCFUNCTION +split(str, regex) - Splits str around occurances that match regex +PREHOOK: query: DESCRIBE FUNCTION EXTENDED split +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED split +POSTHOOK: type: DESCFUNCTION +split(str, regex) - Splits str around occurances that match regex +Example: + > SELECT split('oneAtwoBthreeC', '[ABC]') FROM src LIMIT 1; + ["one", "two", "three"] PREHOOK: query: EXPLAIN SELECT split('a b c', ' '), split('oneAtwoBthreeC', '[ABC]'), @@ -58,7 +71,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/415947738/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1731015690/10000 POSTHOOK: query: SELECT split('a b c', ' '), split('oneAtwoBthreeC', '[ABC]'), @@ -67,5 +80,5 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/415947738/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1731015690/10000 ["a","b","c"] ["one","two","three"] [] ["5","4","1","2"] Index: ql/src/test/results/clientpositive/udf_size.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_size.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_size.q.out (working copy) @@ -1,3 +1,13 @@ +PREHOOK: query: DESCRIBE FUNCTION size +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION size +POSTHOOK: type: DESCFUNCTION +size(a) - Returns the size of a +PREHOOK: query: DESCRIBE FUNCTION EXTENDED size +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED size +POSTHOOK: type: DESCFUNCTION +size(a) - Returns the size of a PREHOOK: query: EXPLAIN FROM src_thrift SELECT size(src_thrift.lint), @@ -71,7 +81,7 @@ AND NOT (src_thrift.mstringstring IS NULL) LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src_thrift -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1116336737/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/961043186/10000 POSTHOOK: query: FROM src_thrift SELECT size(src_thrift.lint), size(src_thrift.lintstring), @@ -81,5 +91,5 @@ AND NOT (src_thrift.mstringstring IS NULL) LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src_thrift -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1116336737/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/961043186/10000 3 1 1 -1 Index: ql/src/test/results/clientpositive/udf_isnull_isnotnull.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_isnull_isnotnull.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_isnull_isnotnull.q.out (working copy) @@ -1,3 +1,23 @@ +PREHOOK: query: DESCRIBE FUNCTION isnull +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION isnull +POSTHOOK: type: DESCFUNCTION +isnull a - Returns true if a is NULL and false otherwise +PREHOOK: query: DESCRIBE FUNCTION EXTENDED isnull +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED isnull +POSTHOOK: type: DESCFUNCTION +isnull a - Returns true if a is NULL and false otherwise +PREHOOK: query: DESCRIBE FUNCTION isnotnull +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION isnotnull +POSTHOOK: type: DESCFUNCTION +isnotnull a - Returns true if a is not NULL and false otherwise +PREHOOK: query: DESCRIBE FUNCTION EXTENDED isnotnull +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED isnotnull +POSTHOOK: type: DESCFUNCTION +isnotnull a - Returns true if a is not NULL and false otherwise PREHOOK: query: EXPLAIN SELECT NULL IS NULL, 1 IS NOT NULL, @@ -63,7 +83,7 @@ WHERE true IS NOT NULL LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1106726580/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1963364824/10000 POSTHOOK: query: SELECT NULL IS NULL, 1 IS NOT NULL, 'my string' IS NOT NULL @@ -71,7 +91,7 @@ WHERE true IS NOT NULL LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1106726580/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1963364824/10000 true true true PREHOOK: query: EXPLAIN FROM src_thrift @@ -141,7 +161,7 @@ AND NOT (src_thrift.mstringstring IS NULL) LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src_thrift -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1995556677/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/609638755/10000 POSTHOOK: query: FROM src_thrift SELECT src_thrift.lint IS NOT NULL, src_thrift.lintstring IS NOT NULL, @@ -150,5 +170,5 @@ AND NOT (src_thrift.mstringstring IS NULL) LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src_thrift -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1995556677/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/609638755/10000 true true true Index: ql/src/test/results/clientpositive/udf_lower.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_lower.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_lower.q.out (working copy) @@ -1,3 +1,16 @@ +PREHOOK: query: DESCRIBE FUNCTION lower +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION lower +POSTHOOK: type: DESCFUNCTION +lower(str) - Returns str with all characters changed to lowercase +PREHOOK: query: DESCRIBE FUNCTION EXTENDED lower +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED lower +POSTHOOK: type: DESCFUNCTION +lower(str) - Returns str with all characters changed to lowercase +Example: + > SELECT lower('Facebook') FROM src LIMIT 1; + 'facebook' PREHOOK: query: EXPLAIN SELECT lower('AbC 123'), upper('AbC 123') FROM src WHERE key = 86 PREHOOK: type: QUERY @@ -48,9 +61,9 @@ PREHOOK: query: SELECT lower('AbC 123'), upper('AbC 123') FROM src WHERE key = 86 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/655858125/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1887044838/10000 POSTHOOK: query: SELECT lower('AbC 123'), upper('AbC 123') FROM src WHERE key = 86 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/655858125/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1887044838/10000 abc 123 ABC 123 Index: ql/src/test/results/clientpositive/udf_unix_timestamp.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_unix_timestamp.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_unix_timestamp.q.out (working copy) @@ -1,3 +1,14 @@ +PREHOOK: query: DESCRIBE FUNCTION unix_timestamp +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION unix_timestamp +POSTHOOK: type: DESCFUNCTION +unix_timestamp([date[, pattern]]) - Returns the UNIX timestamp +PREHOOK: query: DESCRIBE FUNCTION EXTENDED unix_timestamp +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED unix_timestamp +POSTHOOK: type: DESCFUNCTION +unix_timestamp([date[, pattern]]) - Returns the UNIX timestamp +Converts the current or specified time to number of seconds since 1970-01-01. PREHOOK: query: SELECT '2009-03-20 11:30:01', unix_timestamp('2009-03-20 11:30:01') @@ -4,14 +15,14 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/490859379/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1659161710/10000 POSTHOOK: query: SELECT '2009-03-20 11:30:01', unix_timestamp('2009-03-20 11:30:01') FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/490859379/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1659161710/10000 2009-03-20 11:30:01 1237573801 PREHOOK: query: SELECT '2009-03-20', @@ -19,14 +30,14 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1674908517/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1103088265/10000 POSTHOOK: query: SELECT '2009-03-20', unix_timestamp('2009-03-20', 'yyyy-MM-dd') FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1674908517/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1103088265/10000 2009-03-20 1237532400 PREHOOK: query: SELECT '2009 Mar 20 11:30:01 am', @@ -34,14 +45,14 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/265278879/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1519095937/10000 POSTHOOK: query: SELECT '2009 Mar 20 11:30:01 am', unix_timestamp('2009 Mar 20 11:30:01 am', 'yyyy MMM dd h:mm:ss a') FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/265278879/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1519095937/10000 2009 Mar 20 11:30:01 am 1237573801 PREHOOK: query: SELECT 'random_string', @@ -49,12 +60,12 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/568226360/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1021450138/10000 POSTHOOK: query: SELECT 'random_string', unix_timestamp('random_string') FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/568226360/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1021450138/10000 random_string NULL Index: ql/src/test/results/clientpositive/udf_substr.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_substr.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_substr.q.out (working copy) @@ -1,3 +1,21 @@ +PREHOOK: query: DESCRIBE FUNCTION substr +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION substr +POSTHOOK: type: DESCFUNCTION +substr(str, pos[, len]) - returns the substring of str that starts at pos and is of length len +PREHOOK: query: DESCRIBE FUNCTION EXTENDED substr +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED substr +POSTHOOK: type: DESCFUNCTION +substr(str, pos[, len]) - returns the substring of str that starts at pos and is of length len +pos is a 1-based index. If pos<0 the starting position is determined by counting backwards from the end of str. +Example: + > SELECT substr('Facebook', 5) FROM src LIMIT 1; + 'book' + > SELECT substr('Facebook', -5) FROM src LIMIT 1; + 'ebook' + > SELECT substr('Facebook', 5, 1) FROM src LIMIT 1; + 'b' PREHOOK: query: SELECT substr(null, 1), substr(null, 1, 1), substr('ABC', null), substr('ABC', null, 1), @@ -5,7 +23,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1163670295/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/385391222/10000 POSTHOOK: query: SELECT substr(null, 1), substr(null, 1, 1), substr('ABC', null), substr('ABC', null, 1), @@ -13,7 +31,7 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1163670295/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/385391222/10000 NULL NULL NULL NULL NULL PREHOOK: query: SELECT substr('ABC', 1, 0), substr('ABC', 1, -1), substr('ABC', 2, -100), @@ -25,7 +43,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1047004193/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1555439693/10000 POSTHOOK: query: SELECT substr('ABC', 1, 0), substr('ABC', 1, -1), substr('ABC', 2, -100), substr('ABC', 4), substr('ABC', 4, 100), @@ -36,7 +54,7 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1047004193/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1555439693/10000 PREHOOK: query: SELECT substr('ABCDEFG', 3, 4), substr('ABCDEFG', -5, 4), @@ -47,7 +65,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/633389211/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1351450825/10000 POSTHOOK: query: SELECT substr('ABCDEFG', 3, 4), substr('ABCDEFG', -5, 4), substr('ABCDEFG', 3), substr('ABCDEFG', -5), @@ -57,7 +75,7 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/633389211/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1351450825/10000 CDEF CDEF CDEFG CDEFG ABC ABC BC C ABC BC A A A PREHOOK: query: SELECT substr('ABC', 0, 1), substr('ABC', 0, 2), substr('ABC', 0, 3), substr('ABC', 0, 4), @@ -68,7 +86,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1247257569/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1909380959/10000 POSTHOOK: query: SELECT substr('ABC', 0, 1), substr('ABC', 0, 2), substr('ABC', 0, 3), substr('ABC', 0, 4), substr('ABC', 1, 1), substr('ABC', 1, 2), substr('ABC', 1, 3), substr('ABC', 1, 4), @@ -78,7 +96,7 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1247257569/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1909380959/10000 A AB ABC ABC A AB ABC ABC B BC BC BC C C C C PREHOOK: query: SELECT substr('ABC', -1, 1), substr('ABC', -1, 2), substr('ABC', -1, 3), substr('ABC', -1, 4), @@ -88,7 +106,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1569190573/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/606649550/10000 POSTHOOK: query: SELECT substr('ABC', -1, 1), substr('ABC', -1, 2), substr('ABC', -1, 3), substr('ABC', -1, 4), substr('ABC', -2, 1), substr('ABC', -2, 2), substr('ABC', -2, 3), substr('ABC', -2, 4), @@ -97,7 +115,7 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1569190573/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/606649550/10000 C C C C B BC BC BC A AB ABC ABC PREHOOK: query: -- substring() is a synonim of substr(), so just perform some basic tests SELECT @@ -109,7 +127,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1899515229/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1053388822/10000 POSTHOOK: query: -- substring() is a synonim of substr(), so just perform some basic tests SELECT substring('ABCDEFG', 3, 4), substring('ABCDEFG', -5, 4), @@ -120,5 +138,5 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1899515229/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1053388822/10000 CDEF CDEF CDEFG CDEFG ABC ABC BC C ABC BC A A A Index: ql/src/test/results/clientpositive/udf_pmod.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_pmod.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_pmod.q.out (working copy) @@ -1,3 +1,13 @@ +PREHOOK: query: DESCRIBE FUNCTION pmod +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION pmod +POSTHOOK: type: DESCFUNCTION +a pmod b - Compute the positive modulo +PREHOOK: query: DESCRIBE FUNCTION EXTENDED pmod +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED pmod +POSTHOOK: type: DESCFUNCTION +a pmod b - Compute the positive modulo PREHOOK: query: SELECT pmod(null, null) FROM src LIMIT 1 PREHOOK: type: QUERY @@ -2,8 +12,8 @@ PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1384517913/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1159318893/10000 POSTHOOK: query: SELECT pmod(null, null) FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1384517913/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1159318893/10000 NULL @@ -13,21 +23,21 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1606180544/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1059038526/10000 POSTHOOK: query: SELECT pmod(-100,9), pmod(-50,101), pmod(-1000,29) FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1606180544/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1059038526/10000 8 51 15 PREHOOK: query: SELECT pmod(100,19), pmod(50,125), pmod(300,15) FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1250421811/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/2064781823/10000 POSTHOOK: query: SELECT pmod(100,19), pmod(50,125), pmod(300,15) FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1250421811/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/2064781823/10000 5 50 0 Index: ql/src/test/results/clientpositive/udf_conv.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_conv.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_conv.q.out (working copy) @@ -1,3 +1,19 @@ +PREHOOK: query: DESCRIBE FUNCTION conv +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION conv +POSTHOOK: type: DESCFUNCTION +conv(num, from_base, to_base) - convert num from from_base to to_base +PREHOOK: query: DESCRIBE FUNCTION EXTENDED conv +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED conv +POSTHOOK: type: DESCFUNCTION +conv(num, from_base, to_base) - convert num from from_base to to_base +If to_base is negative, treat num as a signed integer,otherwise, treat it as an unsigned integer. +Example: + > SELECT conv('100', 2, 10) FROM src LIMIT 1; + '4' + > SELECT conv(-10, 16, -10) FROM src LIMIT 1; + '16' PREHOOK: query: -- conv must work on both strings and integers up to 64-bit precision -- Some simple conversions to test different bases @@ -9,7 +25,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1394785532/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/502953018/10000 POSTHOOK: query: -- conv must work on both strings and integers up to 64-bit precision -- Some simple conversions to test different bases @@ -21,7 +37,7 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1394785532/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/502953018/10000 3HL 22 33 116ED2B2FB4 PREHOOK: query: -- Test negative numbers. If to_base is positive, the number should be handled -- as a two's complement (64-bit) @@ -33,7 +49,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/297144160/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1045444731/10000 POSTHOOK: query: -- Test negative numbers. If to_base is positive, the number should be handled -- as a two's complement (64-bit) SELECT @@ -44,7 +60,7 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/297144160/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1045444731/10000 -641 B FFFFFFFFFFFFFFFF FFFFFFFFFFFFFFF1 PREHOOK: query: -- Test overflow. If a number is two large, the result should be -1 (if signed) -- or MAX_LONG (if unsigned) @@ -56,7 +72,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/311355603/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/901682273/10000 POSTHOOK: query: -- Test overflow. If a number is two large, the result should be -1 (if signed) -- or MAX_LONG (if unsigned) SELECT @@ -67,7 +83,7 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/311355603/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/901682273/10000 FFFFFFFFFFFFFFFF -1 FFFFFFFFFFFFFFFF -1 PREHOOK: query: -- Test with invalid input. If one of the bases is invalid, the result should -- be NULL. If there is an invalid digit in the number, the longest valid @@ -80,7 +96,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1893103412/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1068643579/10000 POSTHOOK: query: -- Test with invalid input. If one of the bases is invalid, the result should -- be NULL. If there is an invalid digit in the number, the longest valid -- prefix should be converted. @@ -92,7 +108,7 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1893103412/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1068643579/10000 5 NULL NULL NULL PREHOOK: query: -- Perform the same tests with number arguments. @@ -103,7 +119,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/374689536/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/877878753/10000 POSTHOOK: query: -- Perform the same tests with number arguments. SELECT @@ -113,7 +129,7 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/374689536/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/877878753/10000 3HL 22 33 PREHOOK: query: SELECT conv(-641, 10, -10), @@ -123,7 +139,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/117827629/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1990388663/10000 POSTHOOK: query: SELECT conv(-641, 10, -10), conv(1011, 2, -16), @@ -132,7 +148,7 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/117827629/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1990388663/10000 -641 B FFFFFFFFFFFFFFFF FFFFFFFFFFFFFFF1 PREHOOK: query: SELECT conv(9223372036854775807, 36, 16), @@ -142,7 +158,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/638334947/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1540368732/10000 POSTHOOK: query: SELECT conv(9223372036854775807, 36, 16), conv(9223372036854775807, 36, -16), @@ -151,7 +167,7 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/638334947/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1540368732/10000 FFFFFFFFFFFFFFFF -1 FFFFFFFFFFFFFFFF -1 PREHOOK: query: SELECT conv(123455, 3, 10), @@ -161,7 +177,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/315464649/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1788821246/10000 POSTHOOK: query: SELECT conv(123455, 3, 10), conv(131, 1, 5), @@ -170,5 +186,5 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/315464649/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1788821246/10000 5 NULL NULL NULL Index: ql/src/test/results/clientpositive/udf_locate.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_locate.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_locate.q.out (working copy) @@ -1,3 +1,16 @@ +PREHOOK: query: DESCRIBE FUNCTION locate +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION locate +POSTHOOK: type: DESCFUNCTION +locate(substr, str[, pos]) - Returns the position of the first occurance of substr in str after position pos +PREHOOK: query: DESCRIBE FUNCTION EXTENDED locate +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED locate +POSTHOOK: type: DESCFUNCTION +locate(substr, str[, pos]) - Returns the position of the first occurance of substr in str after position pos +Example: + > SELECT locate('bar', 'foobarbar', 5) FROM src LIMIT 1; + 7 PREHOOK: query: EXPLAIN SELECT locate('abc', 'abcd'), locate('ccc', 'abcabc'), @@ -122,7 +135,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/572327680/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/155745966/10000 POSTHOOK: query: SELECT locate('abc', 'abcd'), locate('ccc', 'abcabc'), locate('23', 123), @@ -143,5 +156,5 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/572327680/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/155745966/10000 1 0 2 2 4 4 0 0 2 3 4 2 3 NULL NULL 0 0 Index: ql/src/test/results/clientpositive/udf_sin.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_sin.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_sin.q.out (working copy) @@ -1,3 +1,16 @@ +PREHOOK: query: DESCRIBE FUNCTION sin +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION sin +POSTHOOK: type: DESCFUNCTION +sin(x) - returns the sine of x (x is in radians) +PREHOOK: query: DESCRIBE FUNCTION EXTENDED sin +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED sin +POSTHOOK: type: DESCFUNCTION +sin(x) - returns the sine of x (x is in radians) +Example: + > SELECT sin(0) FROM src LIMIT 1; + 0 PREHOOK: query: SELECT sin(null) FROM src LIMIT 1 PREHOOK: type: QUERY @@ -2,8 +15,8 @@ PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1281720904/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1659199524/10000 POSTHOOK: query: SELECT sin(null) FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1281720904/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1659199524/10000 NULL @@ -13,10 +26,10 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/820458381/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1109863230/10000 POSTHOOK: query: SELECT sin(0.98), sin(1.57), sin(-0.5) FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/820458381/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1109863230/10000 0.8304973704919705 0.9999996829318346 -0.479425538604203 Index: ql/src/test/results/clientpositive/udf_space.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_space.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_space.q.out (working copy) @@ -1,3 +1,16 @@ +PREHOOK: query: DESCRIBE FUNCTION space +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION space +POSTHOOK: type: DESCFUNCTION +space(n) - returns n spaces +PREHOOK: query: DESCRIBE FUNCTION EXTENDED space +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED space +POSTHOOK: type: DESCFUNCTION +space(n) - returns n spaces +Example: + > SELECT space(2) FROM src LIMIT 1; + ' ' PREHOOK: query: EXPLAIN SELECT space(10), space(0), @@ -63,7 +76,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/228561399/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1208254968/10000 POSTHOOK: query: SELECT length(space(10)), length(space(0)), @@ -73,7 +86,7 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/228561399/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1208254968/10000 10 0 1 0 0 PREHOOK: query: SELECT space(10), @@ -84,7 +97,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/201745127/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/888230107/10000 POSTHOOK: query: SELECT space(10), space(0), @@ -94,5 +107,5 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/201745127/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/888230107/10000 Index: ql/src/test/results/clientpositive/udf_instr.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_instr.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_instr.q.out (working copy) @@ -1,3 +1,16 @@ +PREHOOK: query: DESCRIBE FUNCTION instr +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION instr +POSTHOOK: type: DESCFUNCTION +instr(str, substr) - Returns the index of the first occurance of substr in str +PREHOOK: query: DESCRIBE FUNCTION EXTENDED instr +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED instr +POSTHOOK: type: DESCFUNCTION +instr(str, substr) - Returns the index of the first occurance of substr in str +Example: + > SELECT instr('Facebook', 'boo') FROM src LIMIT 1; + 5 PREHOOK: query: EXPLAIN SELECT instr('abcd', 'abc'), instr('abcabc', 'ccc'), @@ -102,7 +115,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1088179989/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1069925328/10000 POSTHOOK: query: SELECT instr('abcd', 'abc'), instr('abcabc', 'ccc'), instr(123, '23'), @@ -119,5 +132,5 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1088179989/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1069925328/10000 1 0 2 2 0 0 2 3 4 2 3 NULL NULL Index: ql/src/test/results/clientpositive/udf_array.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_array.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_array.q.out (working copy) @@ -1,3 +1,15 @@ +PREHOOK: query: -- Parsing bug requires us to quote array +DESCRIBE FUNCTION 'array' +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: -- Parsing bug requires us to quote array +DESCRIBE FUNCTION 'array' +POSTHOOK: type: DESCFUNCTION +array(n0, n1...) - Creates an array with the given elements +PREHOOK: query: DESCRIBE FUNCTION EXTENDED 'array' +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED 'array' +POSTHOOK: type: DESCFUNCTION +array(n0, n1...) - Creates an array with the given elements PREHOOK: query: EXPLAIN SELECT array(), array()[1], array(1, 2, 3), array(1, 2, 3)[2], array(1,"a", 2, 3), array(1,"a", 2, 3)[2], array(array(1), array(2), array(3), array(4))[1][0] FROM src LIMIT 1 PREHOOK: type: QUERY @@ -52,10 +64,10 @@ array(array(1), array(2), array(3), array(4))[1][0] FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/pyang/trunk-HIVE-554/VENDOR.hive/trunk/build/ql/tmp/1854297096/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1972672782/10000 POSTHOOK: query: SELECT array(), array()[1], array(1, 2, 3), array(1, 2, 3)[2], array(1,"a", 2, 3), array(1,"a", 2, 3)[2], array(array(1), array(2), array(3), array(4))[1][0] FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/pyang/trunk-HIVE-554/VENDOR.hive/trunk/build/ql/tmp/1854297096/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1972672782/10000 [] NULL [1,2,3] 3 ["1","a","2","3"] 2 2 Index: ql/src/test/results/clientpositive/udf_coalesce.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_coalesce.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_coalesce.q.out (working copy) @@ -1,3 +1,16 @@ +PREHOOK: query: DESCRIBE FUNCTION coalesce +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION coalesce +POSTHOOK: type: DESCFUNCTION +coalesce(a1, a2, ...) - Returns the first non-null argument +PREHOOK: query: DESCRIBE FUNCTION EXTENDED coalesce +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED coalesce +POSTHOOK: type: DESCFUNCTION +coalesce(a1, a2, ...) - Returns the first non-null argument +Example: + > SELECT coalesce(NULL, 1, NULL) FROM src LIMIT 1; + 1 PREHOOK: query: EXPLAIN SELECT COALESCE(1), COALESCE(1, 2), @@ -127,7 +140,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1848821474/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1867907378/10000 POSTHOOK: query: SELECT COALESCE(1), COALESCE(1, 2), COALESCE(NULL, 2), @@ -149,7 +162,7 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1848821474/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1867907378/10000 1 1 2 1 3 4 1 1 2 1 3 4 1.0 1.0 2.0 2.0 2.0 NULL PREHOOK: query: EXPLAIN SELECT COALESCE(src_thrift.lint[1], 999), @@ -204,14 +217,14 @@ FROM src_thrift PREHOOK: type: QUERY PREHOOK: Input: default@src_thrift -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1800031969/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/791594604/10000 POSTHOOK: query: SELECT COALESCE(src_thrift.lint[1], 999), COALESCE(src_thrift.lintstring[0].mystring, '999'), COALESCE(src_thrift.mstringstring['key_2'], '999') FROM src_thrift POSTHOOK: type: QUERY POSTHOOK: Input: default@src_thrift -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1800031969/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/791594604/10000 0 0 999 2 1 999 4 8 value_2 Index: ql/src/test/results/clientpositive/udf_length.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_length.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_length.q.out (working copy) @@ -1,3 +1,16 @@ +PREHOOK: query: DESCRIBE FUNCTION length +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION length +POSTHOOK: type: DESCFUNCTION +length(str) - Returns the length of str +PREHOOK: query: DESCRIBE FUNCTION EXTENDED length +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED length +POSTHOOK: type: DESCFUNCTION +length(str) - Returns the length of str +Example: + > SELECT length('Facebook') FROM src LIMIT 1; + 8 PREHOOK: query: CREATE TABLE dest1(len INT) PREHOOK: type: CREATETABLE POSTHOOK: query: CREATE TABLE dest1(len INT) @@ -42,10 +55,10 @@ Move Operator files: hdfs directory: true - destination: file:/data/users/njain/hive5/hive5/build/ql/tmp/777850344/10000 + destination: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1622212784/10000 Map Reduce Alias -> Map Operator Tree: - file:/data/users/njain/hive5/hive5/build/ql/tmp/1274386623/10002 + file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/92165457/10002 Reduce Output Operator sort order: Map-reduce partition columns: @@ -88,11 +101,11 @@ PREHOOK: query: SELECT dest1.* FROM dest1 PREHOOK: type: QUERY PREHOOK: Input: default@dest1 -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/775750892/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/2077609609/10000 POSTHOOK: query: SELECT dest1.* FROM dest1 POSTHOOK: type: QUERY POSTHOOK: Input: default@dest1 -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/775750892/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/2077609609/10000 7 0 7 @@ -173,11 +186,11 @@ PREHOOK: query: SELECT length(dest1.name) FROM dest1 PREHOOK: type: QUERY PREHOOK: Input: default@dest1 -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1564729330/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/394449121/10000 POSTHOOK: query: SELECT length(dest1.name) FROM dest1 POSTHOOK: type: QUERY POSTHOOK: Input: default@dest1 -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1564729330/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/394449121/10000 2 PREHOOK: query: DROP TABLE dest1 PREHOOK: type: DROPTABLE Index: ql/src/test/results/clientpositive/udf_acos.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_acos.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_acos.q.out (working copy) @@ -1,3 +1,18 @@ +PREHOOK: query: DESCRIBE FUNCTION acos +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION acos +POSTHOOK: type: DESCFUNCTION +acos(x) - returns the arc cosine of x if -1<=x<=1 or NULL otherwise +PREHOOK: query: DESCRIBE FUNCTION EXTENDED acos +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED acos +POSTHOOK: type: DESCFUNCTION +acos(x) - returns the arc cosine of x if -1<=x<=1 or NULL otherwise +Example: + > SELECT acos(1) FROM src LIMIT 1; + 0 + > SELECT acos(2) FROM src LIMIT 1; + NULL PREHOOK: query: SELECT acos(null) FROM src LIMIT 1 PREHOOK: type: QUERY @@ -2,8 +17,8 @@ PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1457812629/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/959577580/10000 POSTHOOK: query: SELECT acos(null) FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1457812629/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/959577580/10000 NULL @@ -13,32 +28,32 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1180311283/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/227674626/10000 POSTHOOK: query: SELECT acos(0) FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1180311283/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/227674626/10000 1.5707963267948966 PREHOOK: query: SELECT acos(-0.5), asin(0.66) FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/804897720/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1521007936/10000 POSTHOOK: query: SELECT acos(-0.5), asin(0.66) FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/804897720/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1521007936/10000 2.0943951023931957 0.7208187608700897 PREHOOK: query: SELECT acos(2) FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/615514597/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/325299096/10000 POSTHOOK: query: SELECT acos(2) FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/615514597/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/325299096/10000 NaN Index: ql/src/test/results/clientpositive/udf_lpad_rpad.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_lpad_rpad.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_lpad_rpad.q.out (working copy) @@ -1,3 +1,33 @@ +PREHOOK: query: DESCRIBE FUNCTION lpad +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION lpad +POSTHOOK: type: DESCFUNCTION +lpad(str, len, pad) - Returns str, left-padded with pad to a length of len +PREHOOK: query: DESCRIBE FUNCTION EXTENDED lpad +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED lpad +POSTHOOK: type: DESCFUNCTION +lpad(str, len, pad) - Returns str, left-padded with pad to a length of len +If str is longer than len, the return value is shortened to len characters. +Example: + > SELECT lpad('hi', 5, '??') FROM src LIMIT 1; + '???hi' > SELECT lpad('hi', 1, '??') FROM src LIMIT 1; + 'h' +PREHOOK: query: DESCRIBE FUNCTION rpad +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION rpad +POSTHOOK: type: DESCFUNCTION +rpad(str, len, pad) - Returns str, right-padded with pad to a length of len +PREHOOK: query: DESCRIBE FUNCTION EXTENDED rpad +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED rpad +POSTHOOK: type: DESCFUNCTION +rpad(str, len, pad) - Returns str, right-padded with pad to a length of len +If str is longer than len, the return value is shortened to len characters. +Example: + > SELECT rpad('hi', 5, '??') FROM src LIMIT 1; + 'hi???' > SELECT rpad('hi', 1, '??') FROM src LIMIT 1; + 'h' PREHOOK: query: EXPLAIN SELECT lpad('hi', 1, '?'), lpad('hi', 5, '.'), @@ -53,7 +83,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/369345424/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/361452356/10000 POSTHOOK: query: SELECT lpad('hi', 1, '?'), lpad('hi', 5, '.'), @@ -61,7 +91,7 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/369345424/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/361452356/10000 h ...hi 1231hi PREHOOK: query: EXPLAIN SELECT rpad('hi', 1, '?'), @@ -118,7 +148,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/975123871/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1704470803/10000 POSTHOOK: query: SELECT rpad('hi', 1, '?'), rpad('hi', 5, '.'), @@ -126,5 +156,5 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/975123871/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1704470803/10000 h hi... hi1231 Index: ql/src/test/results/clientpositive/udf_map.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_map.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_map.q.out (working copy) @@ -1,3 +1,15 @@ +PREHOOK: query: -- Parsing bug requires us to quote map +DESCRIBE FUNCTION 'map' +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: -- Parsing bug requires us to quote map +DESCRIBE FUNCTION 'map' +POSTHOOK: type: DESCFUNCTION +map(key0, value0, key1, value1...) - Creates a map with the given key/value pairs +PREHOOK: query: DESCRIBE FUNCTION EXTENDED 'map' +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED 'map' +POSTHOOK: type: DESCFUNCTION +map(key0, value0, key1, value1...) - Creates a map with the given key/value pairs PREHOOK: query: EXPLAIN SELECT map(), map(1, "a", 2, "b", 3, "c"), map(1, 2, "a", "b"), map(1, "a", 2, "b", 3, "c")[2], map(1, 2, "a", "b")["a"], map(1, array("a"))[1][0] FROM src LIMIT 1 PREHOOK: type: QUERY @@ -50,10 +62,10 @@ map(1, "a", 2, "b", 3, "c")[2], map(1, 2, "a", "b")["a"], map(1, array("a"))[1][0] FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/pyang/trunk-HIVE-554/VENDOR.hive/trunk/build/ql/tmp/802535376/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1878909043/10000 POSTHOOK: query: SELECT map(), map(1, "a", 2, "b", 3, "c"), map(1, 2, "a", "b"), map(1, "a", 2, "b", 3, "c")[2], map(1, 2, "a", "b")["a"], map(1, array("a"))[1][0] FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/pyang/trunk-HIVE-554/VENDOR.hive/trunk/build/ql/tmp/802535376/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1878909043/10000 {} {1:"a",2:"b",3:"c"} {"1":"2","a":"b"} b b a Index: ql/src/test/results/clientpositive/udf_like.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_like.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_like.q.out (working copy) @@ -1,3 +1,16 @@ +PREHOOK: query: DESCRIBE FUNCTION like +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION like +POSTHOOK: type: DESCFUNCTION +like(str, pattern) - Checks if str matches pattern +PREHOOK: query: DESCRIBE FUNCTION EXTENDED like +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED like +POSTHOOK: type: DESCFUNCTION +like(str, pattern) - Checks if str matches pattern +Example: + > SELECT a.* FROM srcpart a WHERE a.hr like '%2' LIMIT 1; + 27 val_27 2008-04-08 12 PREHOOK: query: EXPLAIN SELECT '_%_' LIKE '%\_\%\_%', '__' LIKE '%\_\%\_%', '%%_%_' LIKE '%\_\%\_%', '%_%_%' LIKE '%\%\_\%', '_%_' LIKE '\%\_%', '%__' LIKE '__\%%', '_%' LIKE '\_\%\_\%%', '_%' LIKE '\_\%_%', @@ -77,12 +90,12 @@ FROM src WHERE src.key = 86 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/148481666/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1557896001/10000 POSTHOOK: query: SELECT '_%_' LIKE '%\_\%\_%', '__' LIKE '%\_\%\_%', '%%_%_' LIKE '%\_\%\_%', '%_%_%' LIKE '%\%\_\%', '_%_' LIKE '\%\_%', '%__' LIKE '__\%%', '_%' LIKE '\_\%\_\%%', '_%' LIKE '\_\%_%', '%_' LIKE '\%\_', 'ab' LIKE '\%\_', 'ab' LIKE '_a%', 'ab' LIKE 'a' FROM src WHERE src.key = 86 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/148481666/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1557896001/10000 true false true true false false false false true false false false Index: ql/src/test/results/clientpositive/udtf_explode.q.out =================================================================== --- ql/src/test/results/clientpositive/udtf_explode.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udtf_explode.q.out (working copy) @@ -1,3 +1,13 @@ +PREHOOK: query: DESCRIBE FUNCTION explode +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION explode +POSTHOOK: type: DESCFUNCTION +explode(a) - separates the elements of array a into multiple rows +PREHOOK: query: DESCRIBE FUNCTION EXTENDED explode +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED explode +POSTHOOK: type: DESCFUNCTION +explode(a) - separates the elements of array a into multiple rows PREHOOK: query: EXPLAIN EXTENDED SELECT explode(array(1,2,3)) AS myCol FROM src LIMIT 3 PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN EXTENDED SELECT explode(array(1,2,3)) AS myCol FROM src LIMIT 3 @@ -27,7 +37,7 @@ File Output Operator compressed: false GlobalTableId: 0 - directory: file:/data/users/jsichi/open/hive-trunk/build/ql/tmp/784241868/10001 + directory: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1666222499/10001 table: input format: org.apache.hadoop.mapred.TextInputFormat output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat @@ -37,9 +47,9 @@ columns.types int Needs Tagging: false Path -> Alias: - file:/data/users/jsichi/open/hive-trunk/build/ql/test/data/warehouse/src [src] + file:/Users/carl/Projects/hd9/hive-trunk/build/ql/test/data/warehouse/src [src] Path -> Partition: - file:/data/users/jsichi/open/hive-trunk/build/ql/test/data/warehouse/src + file:/Users/carl/Projects/hd9/hive-trunk/build/ql/test/data/warehouse/src Partition base file name: src input format: org.apache.hadoop.mapred.TextInputFormat @@ -54,8 +64,8 @@ serialization.lib org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe file.inputformat org.apache.hadoop.mapred.TextInputFormat file.outputformat org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat - location file:/data/users/jsichi/open/hive-trunk/build/ql/test/data/warehouse/src - transient_lastDdlTime 1262138345 + location file:/Users/carl/Projects/hd9/hive-trunk/build/ql/test/data/warehouse/src + transient_lastDdlTime 1262809225 serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe input format: org.apache.hadoop.mapred.TextInputFormat @@ -70,8 +80,8 @@ serialization.lib org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe file.inputformat org.apache.hadoop.mapred.TextInputFormat file.outputformat org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat - location file:/data/users/jsichi/open/hive-trunk/build/ql/test/data/warehouse/src - transient_lastDdlTime 1262138345 + location file:/Users/carl/Projects/hd9/hive-trunk/build/ql/test/data/warehouse/src + transient_lastDdlTime 1262809225 serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe name: src name: src @@ -116,9 +126,9 @@ type: int Needs Tagging: false Path -> Alias: - file:/data/users/jsichi/open/hive-trunk/build/ql/test/data/warehouse/src [a:src] + file:/Users/carl/Projects/hd9/hive-trunk/build/ql/test/data/warehouse/src [a:src] Path -> Partition: - file:/data/users/jsichi/open/hive-trunk/build/ql/test/data/warehouse/src + file:/Users/carl/Projects/hd9/hive-trunk/build/ql/test/data/warehouse/src Partition base file name: src input format: org.apache.hadoop.mapred.TextInputFormat @@ -133,8 +143,8 @@ serialization.lib org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe file.inputformat org.apache.hadoop.mapred.TextInputFormat file.outputformat org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat - location file:/data/users/jsichi/open/hive-trunk/build/ql/test/data/warehouse/src - transient_lastDdlTime 1262138345 + location file:/Users/carl/Projects/hd9/hive-trunk/build/ql/test/data/warehouse/src + transient_lastDdlTime 1262809225 serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe input format: org.apache.hadoop.mapred.TextInputFormat @@ -149,8 +159,8 @@ serialization.lib org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe file.inputformat org.apache.hadoop.mapred.TextInputFormat file.outputformat org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat - location file:/data/users/jsichi/open/hive-trunk/build/ql/test/data/warehouse/src - transient_lastDdlTime 1262138345 + location file:/Users/carl/Projects/hd9/hive-trunk/build/ql/test/data/warehouse/src + transient_lastDdlTime 1262809225 serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe name: src name: src @@ -174,7 +184,7 @@ File Output Operator compressed: false GlobalTableId: 0 - directory: file:/data/users/jsichi/open/hive-trunk/build/ql/tmp/467070148/10002 + directory: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/894782310/10002 table: input format: org.apache.hadoop.mapred.SequenceFileInputFormat output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat @@ -186,7 +196,7 @@ Stage: Stage-2 Map Reduce Alias -> Map Operator Tree: - file:/data/users/jsichi/open/hive-trunk/build/ql/tmp/467070148/10002 + file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/894782310/10002 Reduce Output Operator key expressions: expr: _col0 @@ -201,9 +211,9 @@ type: bigint Needs Tagging: false Path -> Alias: - file:/data/users/jsichi/open/hive-trunk/build/ql/tmp/467070148/10002 [file:/data/users/jsichi/open/hive-trunk/build/ql/tmp/467070148/10002] + file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/894782310/10002 [file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/894782310/10002] Path -> Partition: - file:/data/users/jsichi/open/hive-trunk/build/ql/tmp/467070148/10002 + file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/894782310/10002 Partition base file name: 10002 input format: org.apache.hadoop.mapred.SequenceFileInputFormat @@ -239,7 +249,7 @@ File Output Operator compressed: false GlobalTableId: 0 - directory: file:/data/users/jsichi/open/hive-trunk/build/ql/tmp/467070148/10001 + directory: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/894782310/10001 table: input format: org.apache.hadoop.mapred.TextInputFormat output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat @@ -256,33 +266,33 @@ PREHOOK: query: SELECT explode(array(1,2,3)) AS myCol FROM src LIMIT 3 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/jsichi/open/hive-trunk/build/ql/tmp/1534071913/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/882248436/10000 POSTHOOK: query: SELECT explode(array(1,2,3)) AS myCol FROM src LIMIT 3 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/jsichi/open/hive-trunk/build/ql/tmp/1534071913/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/882248436/10000 1 2 3 PREHOOK: query: SELECT explode(array(1,2,3)) AS (myCol) FROM src LIMIT 3 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/jsichi/open/hive-trunk/build/ql/tmp/730345114/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1127088300/10000 POSTHOOK: query: SELECT explode(array(1,2,3)) AS (myCol) FROM src LIMIT 3 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/jsichi/open/hive-trunk/build/ql/tmp/730345114/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1127088300/10000 1 2 3 PREHOOK: query: SELECT a.myCol, count(1) FROM (SELECT explode(array(1,2,3)) AS myCol FROM src LIMIT 3) a GROUP BY a.myCol PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/jsichi/open/hive-trunk/build/ql/tmp/1456413188/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1245396324/10000 POSTHOOK: query: SELECT a.myCol, count(1) FROM (SELECT explode(array(1,2,3)) AS myCol FROM src LIMIT 3) a GROUP BY a.myCol POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/jsichi/open/hive-trunk/build/ql/tmp/1456413188/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1245396324/10000 1 1 2 1 3 1 Index: ql/src/test/results/clientpositive/udf_round.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_round.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_round.q.out (working copy) @@ -1,3 +1,16 @@ +PREHOOK: query: DESCRIBE FUNCTION round +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION round +POSTHOOK: type: DESCFUNCTION +round(x[, d]) - round x to d decimal places +PREHOOK: query: DESCRIBE FUNCTION EXTENDED round +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED round +POSTHOOK: type: DESCFUNCTION +round(x[, d]) - round x to d decimal places +Example: + > SELECT round(12.3456, 1) FROM src LIMIT 1; + 12.3' PREHOOK: query: SELECT round(null), round(null, 0), round(125, null) FROM src LIMIT 1 PREHOOK: type: QUERY @@ -2,8 +15,8 @@ PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1931880581/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1736987523/10000 POSTHOOK: query: SELECT round(null), round(null, 0), round(125, null) FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1931880581/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1736987523/10000 NULL NULL NULL @@ -16,7 +29,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1954748857/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1549949974/10000 POSTHOOK: query: SELECT round(55555), round(55555, 0), round(55555, 1), round(55555, 2), round(55555, 3), round(55555, -1), round(55555, -2), round(55555, -3), round(55555, -4), @@ -24,7 +37,7 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1954748857/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1549949974/10000 55555 55555.0 55555.0 55555.0 55555.0 55560.0 55600.0 56000.0 60000.0 100000.0 0.0 0.0 0.0 PREHOOK: query: SELECT round(125.315), round(125.315, 0), @@ -36,7 +49,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/372474214/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/148858111/10000 POSTHOOK: query: SELECT round(125.315), round(125.315, 0), round(125.315, 1), round(125.315, 2), round(125.315, 3), round(125.315, 4), @@ -47,7 +60,7 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/372474214/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/148858111/10000 125 125.0 125.3 125.32 125.315 125.315 130.0 100.0 0.0 0.0 -125 -125.0 -125.3 -125.32 -125.315 -125.315 -130.0 -100.0 0.0 0.0 PREHOOK: query: SELECT round(3.141592653589793, -15), round(3.141592653589793, -16), @@ -70,7 +83,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/412153419/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/624837434/10000 POSTHOOK: query: SELECT round(3.141592653589793, -15), round(3.141592653589793, -16), round(3.141592653589793, -13), round(3.141592653589793, -14), @@ -92,16 +105,16 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/412153419/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/624837434/10000 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 3.0 3.1 3.14 3.142 3.1416 3.14159 3.141593 3.1415927 3.14159265 3.141592654 3.1415926536 3.14159265359 3.14159265359 3.1415926535898 3.1415926535898 3.14159265358979 3.141592653589793 3.141592653589793 PREHOOK: query: SELECT round(1809242.3151111344, 9), round(-1809242.3151111344, 9) FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/667136403/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/599098185/10000 POSTHOOK: query: SELECT round(1809242.3151111344, 9), round(-1809242.3151111344, 9) FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/667136403/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/599098185/10000 1809242.315111134 -1809242.315111134 Index: ql/src/test/results/clientpositive/udaf_sum.q.out =================================================================== --- ql/src/test/results/clientpositive/udaf_sum.q.out (revision 0) +++ ql/src/test/results/clientpositive/udaf_sum.q.out (revision 0) @@ -0,0 +1,20 @@ +PREHOOK: query: DESCRIBE FUNCTION sum +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION sum +POSTHOOK: type: DESCFUNCTION +sum(x) - Returns the sum of a set of numbers +PREHOOK: query: DESCRIBE FUNCTION EXTENDED sum +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED sum +POSTHOOK: type: DESCFUNCTION +sum(x) - Returns the sum of a set of numbers +PREHOOK: query: DESCRIBE FUNCTION sum +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION sum +POSTHOOK: type: DESCFUNCTION +sum(x) - Returns the sum of a set of numbers +PREHOOK: query: DESCRIBE FUNCTION EXTENDED sum +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED sum +POSTHOOK: type: DESCFUNCTION +sum(x) - Returns the sum of a set of numbers Index: ql/src/test/results/clientpositive/udf_json.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_json.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_json.q.out (working copy) @@ -1,3 +1,28 @@ +PREHOOK: query: DESCRIBE FUNCTION get_json_object +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION get_json_object +POSTHOOK: type: DESCFUNCTION +get_json_object(json_txt, path) - Extract a json object from path +PREHOOK: query: DESCRIBE FUNCTION EXTENDED get_json_object +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED get_json_object +POSTHOOK: type: DESCFUNCTION +get_json_object(json_txt, path) - Extract a json object from path +Extract json object from a json string based on json path specified, and return json string of the extracted json object. It will return null if the input json string is invalid. +A limited version of JSONPath supported: + $ : Root object + . : Child operator + [] : Subscript operator for array + * : Wildcard for [] +Syntax not supported that's worth noticing: + '' : Zero length string as key + .. : Recursive descent + &#064; : Current object/element + () : Script expression + ?() : Filter (script) expression. + [,] : Union operator + [start:end:step] : array slice operator + PREHOOK: query: CREATE TABLE dest1(c1 STRING) STORED AS TEXTFILE PREHOOK: type: CREATETABLE POSTHOOK: query: CREATE TABLE dest1(c1 STRING) STORED AS TEXTFILE @@ -51,72 +76,72 @@ PREHOOK: query: SELECT get_json_object(src_json.json, '$') FROM src_json PREHOOK: type: QUERY PREHOOK: Input: default@src_json -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1368089221/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/483712443/10000 POSTHOOK: query: SELECT get_json_object(src_json.json, '$') FROM src_json POSTHOOK: type: QUERY POSTHOOK: Input: default@src_json -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1368089221/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/483712443/10000 {"store":{"fruit":[{"weight":8,"type":"apple"},{"weight":9,"type":"pear"}],"book":[{"author":"Nigel Rees","category":"reference","title":"Sayings of the Century","price":8.95},{"author":"Herman Melville","category":"fiction","title":"Moby Dick","price":8.99,"isbn":"0-553-21311-3"},{"author":"J. R. R. Tolkien","category":"fiction","title":"The Lord of the Rings","price":22.99,"reader":[{"name":"bob","age":25},{"name":"jack","age":26}],"isbn":"0-395-19395-8"}],"basket":[[1,2,{"b":"y","a":"x"}],[3,4],[5,6]],"bicycle":{"price":19.95,"color":"red"}},"email":"amy@only_for_json_udf_test.net","owner":"amy"} PREHOOK: query: SELECT get_json_object(src_json.json, '$.owner'), get_json_object(src_json.json, '$.store') FROM src_json PREHOOK: type: QUERY PREHOOK: Input: default@src_json -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/726130120/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1962032537/10000 POSTHOOK: query: SELECT get_json_object(src_json.json, '$.owner'), get_json_object(src_json.json, '$.store') FROM src_json POSTHOOK: type: QUERY POSTHOOK: Input: default@src_json -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/726130120/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1962032537/10000 amy {"fruit":[{"weight":8,"type":"apple"},{"weight":9,"type":"pear"}],"book":[{"author":"Nigel Rees","category":"reference","title":"Sayings of the Century","price":8.95},{"author":"Herman Melville","category":"fiction","title":"Moby Dick","price":8.99,"isbn":"0-553-21311-3"},{"author":"J. R. R. Tolkien","category":"fiction","title":"The Lord of the Rings","price":22.99,"reader":[{"name":"bob","age":25},{"name":"jack","age":26}],"isbn":"0-395-19395-8"}],"basket":[[1,2,{"b":"y","a":"x"}],[3,4],[5,6]],"bicycle":{"price":19.95,"color":"red"}} PREHOOK: query: SELECT get_json_object(src_json.json, '$.store.bicycle'), get_json_object(src_json.json, '$.store.book') FROM src_json PREHOOK: type: QUERY PREHOOK: Input: default@src_json -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/794700282/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/2019032273/10000 POSTHOOK: query: SELECT get_json_object(src_json.json, '$.store.bicycle'), get_json_object(src_json.json, '$.store.book') FROM src_json POSTHOOK: type: QUERY POSTHOOK: Input: default@src_json -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/794700282/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/2019032273/10000 {"price":19.95,"color":"red"} [{"author":"Nigel Rees","category":"reference","title":"Sayings of the Century","price":8.95},{"author":"Herman Melville","category":"fiction","title":"Moby Dick","price":8.99,"isbn":"0-553-21311-3"},{"author":"J. R. R. Tolkien","category":"fiction","title":"The Lord of the Rings","price":22.99,"reader":[{"name":"bob","age":25},{"name":"jack","age":26}],"isbn":"0-395-19395-8"}] PREHOOK: query: SELECT get_json_object(src_json.json, '$.store.book[0]'), get_json_object(src_json.json, '$.store.book[*]') FROM src_json PREHOOK: type: QUERY PREHOOK: Input: default@src_json -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1885237550/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/2005938063/10000 POSTHOOK: query: SELECT get_json_object(src_json.json, '$.store.book[0]'), get_json_object(src_json.json, '$.store.book[*]') FROM src_json POSTHOOK: type: QUERY POSTHOOK: Input: default@src_json -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1885237550/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/2005938063/10000 {"author":"Nigel Rees","category":"reference","title":"Sayings of the Century","price":8.95} [{"author":"Nigel Rees","category":"reference","title":"Sayings of the Century","price":8.95},{"author":"Herman Melville","category":"fiction","title":"Moby Dick","price":8.99,"isbn":"0-553-21311-3"},{"author":"J. R. R. Tolkien","category":"fiction","title":"The Lord of the Rings","price":22.99,"reader":[{"name":"bob","age":25},{"name":"jack","age":26}],"isbn":"0-395-19395-8"}] PREHOOK: query: SELECT get_json_object(src_json.json, '$.store.book[0].category'), get_json_object(src_json.json, '$.store.book[*].category'), get_json_object(src_json.json, '$.store.book[*].isbn'), get_json_object(src_json.json, '$.store.book[*].reader') FROM src_json PREHOOK: type: QUERY PREHOOK: Input: default@src_json -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/988296584/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/132584872/10000 POSTHOOK: query: SELECT get_json_object(src_json.json, '$.store.book[0].category'), get_json_object(src_json.json, '$.store.book[*].category'), get_json_object(src_json.json, '$.store.book[*].isbn'), get_json_object(src_json.json, '$.store.book[*].reader') FROM src_json POSTHOOK: type: QUERY POSTHOOK: Input: default@src_json -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/988296584/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/132584872/10000 reference ["reference","fiction","fiction"] ["0-553-21311-3","0-395-19395-8"] [{"name":"bob","age":25},{"name":"jack","age":26}] PREHOOK: query: SELECT get_json_object(src_json.json, '$.store.book[*].reader[0].age'), get_json_object(src_json.json, '$.store.book[*].reader[*].age') FROM src_json PREHOOK: type: QUERY PREHOOK: Input: default@src_json -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1571323043/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1371238792/10000 POSTHOOK: query: SELECT get_json_object(src_json.json, '$.store.book[*].reader[0].age'), get_json_object(src_json.json, '$.store.book[*].reader[*].age') FROM src_json POSTHOOK: type: QUERY POSTHOOK: Input: default@src_json -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1571323043/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1371238792/10000 25 [25,26] PREHOOK: query: SELECT get_json_object(src_json.json, '$.store.basket[0][1]'), get_json_object(src_json.json, '$.store.basket[*]'), get_json_object(src_json.json, '$.store.basket[*][0]'), get_json_object(src_json.json, '$.store.basket[0][*]'), get_json_object(src_json.json, '$.store.basket[*][*]'), get_json_object(src_json.json, '$.store.basket[0][2].b'), get_json_object(src_json.json, '$.store.basket[0][*].b') FROM src_json PREHOOK: type: QUERY PREHOOK: Input: default@src_json -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/86832583/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1801151655/10000 POSTHOOK: query: SELECT get_json_object(src_json.json, '$.store.basket[0][1]'), get_json_object(src_json.json, '$.store.basket[*]'), get_json_object(src_json.json, '$.store.basket[*][0]'), get_json_object(src_json.json, '$.store.basket[0][*]'), get_json_object(src_json.json, '$.store.basket[*][*]'), get_json_object(src_json.json, '$.store.basket[0][2].b'), get_json_object(src_json.json, '$.store.basket[0][*].b') FROM src_json POSTHOOK: type: QUERY POSTHOOK: Input: default@src_json -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/86832583/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1801151655/10000 2 [[1,2,{"b":"y","a":"x"}],[3,4],[5,6]] 1 [1,2,{"b":"y","a":"x"}] [1,2,{"b":"y","a":"x"},3,4,5,6] y ["y"] PREHOOK: query: SELECT get_json_object(src_json.json, '$.non_exist_key'), get_json_object(src_json.json, '$..no_recursive'), get_json_object(src_json.json, '$.store.book[10]'), get_json_object(src_json.json, '$.store.book[0].non_exist_key'), get_json_object(src_json.json, '$.store.basket[*].non_exist_key'), get_json_object(src_json.json, '$.store.basket[0][*].non_exist_key') FROM src_json PREHOOK: type: QUERY PREHOOK: Input: default@src_json -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1655279596/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1780114809/10000 POSTHOOK: query: SELECT get_json_object(src_json.json, '$.non_exist_key'), get_json_object(src_json.json, '$..no_recursive'), get_json_object(src_json.json, '$.store.book[10]'), get_json_object(src_json.json, '$.store.book[0].non_exist_key'), get_json_object(src_json.json, '$.store.basket[*].non_exist_key'), get_json_object(src_json.json, '$.store.basket[0][*].non_exist_key') FROM src_json POSTHOOK: type: QUERY POSTHOOK: Input: default@src_json -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1655279596/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1780114809/10000 NULL NULL NULL NULL NULL NULL Index: ql/src/test/results/clientpositive/udf_reverse.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_reverse.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_reverse.q.out (working copy) @@ -1,3 +1,16 @@ +PREHOOK: query: DESCRIBE FUNCTION reverse +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION reverse +POSTHOOK: type: DESCFUNCTION +reverse(str) - reverse str +PREHOOK: query: DESCRIBE FUNCTION EXTENDED reverse +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED reverse +POSTHOOK: type: DESCFUNCTION +reverse(str) - reverse str +Example: + > SELECT reverse('Facebook') FROM src LIMIT 1; + 'koobecaF' PREHOOK: query: CREATE TABLE dest1(len STRING) PREHOOK: type: CREATETABLE POSTHOOK: query: CREATE TABLE dest1(len STRING) @@ -42,10 +55,10 @@ Move Operator files: hdfs directory: true - destination: file:/data/users/njain/hive5/hive5/build/ql/tmp/1305154928/10000 + destination: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/520090506/10000 Map Reduce Alias -> Map Operator Tree: - file:/data/users/njain/hive5/hive5/build/ql/tmp/925020569/10002 + file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/468564432/10002 Reduce Output Operator sort order: Map-reduce partition columns: @@ -88,11 +101,11 @@ PREHOOK: query: SELECT dest1.* FROM dest1 PREHOOK: type: QUERY PREHOOK: Input: default@dest1 -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/516796328/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/255390900/10000 POSTHOOK: query: SELECT dest1.* FROM dest1 POSTHOOK: type: QUERY POSTHOOK: Input: default@dest1 -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/516796328/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/255390900/10000 832_lav 113_lav @@ -142,11 +155,11 @@ PREHOOK: query: SELECT count(1) FROM dest1 WHERE reverse(dest1.name) = _UTF-8 0xE993AEE982B5 PREHOOK: type: QUERY PREHOOK: Input: default@dest1 -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/465925440/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1130378645/10000 POSTHOOK: query: SELECT count(1) FROM dest1 WHERE reverse(dest1.name) = _UTF-8 0xE993AEE982B5 POSTHOOK: type: QUERY POSTHOOK: Input: default@dest1 -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/465925440/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1130378645/10000 1 PREHOOK: query: DROP TABLE dest1 PREHOOK: type: DROPTABLE Index: ql/src/test/results/clientpositive/udf_if.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_if.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_if.q.out (working copy) @@ -1,3 +1,13 @@ +PREHOOK: query: DESCRIBE FUNCTION if +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION if +POSTHOOK: type: DESCFUNCTION +There is no documentation for function if +PREHOOK: query: DESCRIBE FUNCTION EXTENDED if +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED if +POSTHOOK: type: DESCFUNCTION +There is no documentation for function if PREHOOK: query: EXPLAIN SELECT IF(TRUE, 1, 2) AS COL1, IF(FALSE, CAST(NULL AS STRING), CAST(1 AS STRING)) AS COL2, @@ -67,7 +77,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1333420658/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1635207375/10000 POSTHOOK: query: SELECT IF(TRUE, 1, 2) AS COL1, IF(FALSE, CAST(NULL AS STRING), CAST(1 AS STRING)) AS COL2, IF(1=1, IF(2=2, 1, 2), IF(3=3, 3, 4)) AS COL3, @@ -77,7 +87,7 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1333420658/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1635207375/10000 1 1 1 1 NULL 2 PREHOOK: query: -- Type conversions EXPLAIN @@ -140,7 +150,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/2081932428/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1478265880/10000 POSTHOOK: query: SELECT IF(TRUE, CAST(128 AS SMALLINT), CAST(1 AS TINYINT)) AS COL1, IF(FALSE, 1, 1.1) AS COL2, IF(FALSE, 1, 'ABC') AS COL3, @@ -148,5 +158,5 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/2081932428/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1478265880/10000 128 1.1 ABC 12.3 Index: ql/src/test/results/clientpositive/udaf_min.q.out =================================================================== --- ql/src/test/results/clientpositive/udaf_min.q.out (revision 0) +++ ql/src/test/results/clientpositive/udaf_min.q.out (revision 0) @@ -0,0 +1,20 @@ +PREHOOK: query: DESCRIBE FUNCTION min +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION min +POSTHOOK: type: DESCFUNCTION +min(expr) - Returns the minimum value of expr +PREHOOK: query: DESCRIBE FUNCTION EXTENDED min +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED min +POSTHOOK: type: DESCFUNCTION +min(expr) - Returns the minimum value of expr +PREHOOK: query: DESCRIBE FUNCTION min +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION min +POSTHOOK: type: DESCFUNCTION +min(expr) - Returns the minimum value of expr +PREHOOK: query: DESCRIBE FUNCTION EXTENDED min +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED min +POSTHOOK: type: DESCFUNCTION +min(expr) - Returns the minimum value of expr Index: ql/src/test/results/clientpositive/udf_bin.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_bin.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_bin.q.out (working copy) @@ -1,3 +1,17 @@ +PREHOOK: query: DESCRIBE FUNCTION bin +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION bin +POSTHOOK: type: DESCFUNCTION +bin(n) - returns n in binary +PREHOOK: query: DESCRIBE FUNCTION EXTENDED bin +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED bin +POSTHOOK: type: DESCFUNCTION +bin(n) - returns n in binary +n is a BIGINT. Returns NULL if n is NULL. +Example: + > SELECT bin(13) FROM src LIMIT 1 + '1101' PREHOOK: query: SELECT bin(1), bin(0), @@ -5,7 +19,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/359409613/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/888920394/10000 POSTHOOK: query: SELECT bin(1), bin(0), @@ -13,16 +27,16 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/359409613/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/888920394/10000 1 0 101111101011100001101100101 PREHOOK: query: -- Negative numbers should be treated as two's complement (64 bit). SELECT bin(-5) FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/991182455/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1468739151/10000 POSTHOOK: query: -- Negative numbers should be treated as two's complement (64 bit). SELECT bin(-5) FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/991182455/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1468739151/10000 1111111111111111111111111111111111111111111111111111111111111011 Index: ql/src/test/results/clientpositive/udaf_avg.q.out =================================================================== --- ql/src/test/results/clientpositive/udaf_avg.q.out (revision 0) +++ ql/src/test/results/clientpositive/udaf_avg.q.out (revision 0) @@ -0,0 +1,20 @@ +PREHOOK: query: DESCRIBE FUNCTION avg +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION avg +POSTHOOK: type: DESCFUNCTION +avg(x) - Returns the mean of a set of numbers +PREHOOK: query: DESCRIBE FUNCTION EXTENDED avg +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED avg +POSTHOOK: type: DESCFUNCTION +avg(x) - Returns the mean of a set of numbers +PREHOOK: query: DESCRIBE FUNCTION avg +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION avg +POSTHOOK: type: DESCFUNCTION +avg(x) - Returns the mean of a set of numbers +PREHOOK: query: DESCRIBE FUNCTION EXTENDED avg +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED avg +POSTHOOK: type: DESCFUNCTION +avg(x) - Returns the mean of a set of numbers Index: ql/src/test/results/clientpositive/udf_repeat.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_repeat.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_repeat.q.out (working copy) @@ -1,3 +1,16 @@ +PREHOOK: query: DESCRIBE FUNCTION repeat +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION repeat +POSTHOOK: type: DESCFUNCTION +repeat(str, n) - repeat str n times +PREHOOK: query: DESCRIBE FUNCTION EXTENDED repeat +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED repeat +POSTHOOK: type: DESCFUNCTION +repeat(str, n) - repeat str n times +Example: + > SELECT repeat('123', 2) FROM src LIMIT 1; + '123123' PREHOOK: query: EXPLAIN SELECT repeat("Facebook", 3), repeat("", 4), @@ -58,7 +71,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/208533019/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1513627133/10000 POSTHOOK: query: SELECT repeat("Facebook", 3), repeat("", 4), @@ -67,5 +80,5 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/208533019/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1513627133/10000 FacebookFacebookFacebook Index: ql/src/test/results/clientpositive/udf_cos.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_cos.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_cos.q.out (working copy) @@ -1,3 +1,16 @@ +PREHOOK: query: DESCRIBE FUNCTION cos +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION cos +POSTHOOK: type: DESCFUNCTION +cos(x) - returns the cosine of x (x is in radians) +PREHOOK: query: DESCRIBE FUNCTION EXTENDED cos +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED cos +POSTHOOK: type: DESCFUNCTION +cos(x) - returns the cosine of x (x is in radians) +Example: + > SELECT cos(0) FROM src LIMIT 1; + 1 PREHOOK: query: SELECT cos(null) FROM src LIMIT 1 PREHOOK: type: QUERY @@ -2,8 +15,8 @@ PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1521763480/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/2017515612/10000 POSTHOOK: query: SELECT cos(null) FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1521763480/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/2017515612/10000 NULL @@ -13,10 +26,10 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1918624552/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1873387849/10000 POSTHOOK: query: SELECT cos(0.98), cos(1.57), cos(-0.5) FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1918624552/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1873387849/10000 0.5570225467662173 7.963267107332633E-4 0.8775825618903728 Index: ql/src/test/results/clientpositive/udf_hex.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_hex.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_hex.q.out (working copy) @@ -1,3 +1,20 @@ +PREHOOK: query: DESCRIBE FUNCTION hex +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION hex +POSTHOOK: type: DESCFUNCTION +hex(n or str) - Convert the argument to hexadecimal +PREHOOK: query: DESCRIBE FUNCTION EXTENDED hex +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED hex +POSTHOOK: type: DESCFUNCTION +hex(n or str) - Convert the argument to hexadecimal +If the argument is a string, returns two hex digits for each character in the string. +If the argument is a number, returns the hexadecimal representation. +Example: + > SELECT hex(17) FROM src LIMIT 1; + 'H1' + > SELECT hex('Facebook') FROM src LIMIT 1; + '46616365626F6F6B' PREHOOK: query: -- If the argument is a string, hex should return a string containing two hex -- digits for every character in the input. SELECT @@ -7,7 +24,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1894329188/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/871424994/10000 POSTHOOK: query: -- If the argument is a string, hex should return a string containing two hex -- digits for every character in the input. SELECT @@ -17,7 +34,7 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1894329188/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/871424994/10000 46616365626F6F6B 00 71776572747975696F706173646667686A6B6C PREHOOK: query: -- If the argument is a number, hex should convert it to hexadecimal. SELECT @@ -27,7 +44,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1277538639/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1308427474/10000 POSTHOOK: query: -- If the argument is a number, hex should convert it to hexadecimal. SELECT hex(1), @@ -36,16 +53,16 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1277538639/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1308427474/10000 1 0 FACEB005 PREHOOK: query: -- Negative numbers should be treated as two's complement (64 bit). SELECT hex(-5) FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/2119469168/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/2089947529/10000 POSTHOOK: query: -- Negative numbers should be treated as two's complement (64 bit). SELECT hex(-5) FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/2119469168/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/2089947529/10000 FFFFFFFFFFFFFFFB Index: ql/src/test/results/clientpositive/udaf_count.q.out =================================================================== --- ql/src/test/results/clientpositive/udaf_count.q.out (revision 0) +++ ql/src/test/results/clientpositive/udaf_count.q.out (revision 0) @@ -0,0 +1,20 @@ +PREHOOK: query: DESCRIBE FUNCTION count +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION count +POSTHOOK: type: DESCFUNCTION +count(x) - Returns the count +PREHOOK: query: DESCRIBE FUNCTION EXTENDED count +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED count +POSTHOOK: type: DESCFUNCTION +count(x) - Returns the count +PREHOOK: query: DESCRIBE FUNCTION count +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION count +POSTHOOK: type: DESCFUNCTION +count(x) - Returns the count +PREHOOK: query: DESCRIBE FUNCTION EXTENDED count +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED count +POSTHOOK: type: DESCFUNCTION +count(x) - Returns the count Index: ql/src/test/results/clientpositive/udaf_std.q.out =================================================================== --- ql/src/test/results/clientpositive/udaf_std.q.out (revision 0) +++ ql/src/test/results/clientpositive/udaf_std.q.out (revision 0) @@ -0,0 +1,60 @@ +PREHOOK: query: DESCRIBE FUNCTION std +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION std +POSTHOOK: type: DESCFUNCTION +std(x) - Returns the standard deviation of a set of numbers +PREHOOK: query: DESCRIBE FUNCTION EXTENDED std +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED std +POSTHOOK: type: DESCFUNCTION +std(x) - Returns the standard deviation of a set of numbers +PREHOOK: query: DESCRIBE FUNCTION stddev +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION stddev +POSTHOOK: type: DESCFUNCTION +stddev(x) - Returns the standard deviation of a set of numbers +PREHOOK: query: DESCRIBE FUNCTION EXTENDED stddev +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED stddev +POSTHOOK: type: DESCFUNCTION +stddev(x) - Returns the standard deviation of a set of numbers +PREHOOK: query: DESCRIBE FUNCTION stddev_pop +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION stddev_pop +POSTHOOK: type: DESCFUNCTION +stddev_pop(x) - Returns the standard deviation of a set of numbers +PREHOOK: query: DESCRIBE FUNCTION EXTENDED stddev_pop +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED stddev_pop +POSTHOOK: type: DESCFUNCTION +stddev_pop(x) - Returns the standard deviation of a set of numbers +PREHOOK: query: DESCRIBE FUNCTION std +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION std +POSTHOOK: type: DESCFUNCTION +std(x) - Returns the standard deviation of a set of numbers +PREHOOK: query: DESCRIBE FUNCTION EXTENDED std +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED std +POSTHOOK: type: DESCFUNCTION +std(x) - Returns the standard deviation of a set of numbers +PREHOOK: query: DESCRIBE FUNCTION stddev +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION stddev +POSTHOOK: type: DESCFUNCTION +stddev(x) - Returns the standard deviation of a set of numbers +PREHOOK: query: DESCRIBE FUNCTION EXTENDED stddev +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED stddev +POSTHOOK: type: DESCFUNCTION +stddev(x) - Returns the standard deviation of a set of numbers +PREHOOK: query: DESCRIBE FUNCTION stddev_pop +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION stddev_pop +POSTHOOK: type: DESCFUNCTION +stddev_pop(x) - Returns the standard deviation of a set of numbers +PREHOOK: query: DESCRIBE FUNCTION EXTENDED stddev_pop +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED stddev_pop +POSTHOOK: type: DESCFUNCTION +stddev_pop(x) - Returns the standard deviation of a set of numbers Index: ql/src/test/results/clientpositive/udf_negative.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_negative.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_negative.q.out (working copy) @@ -1,54 +1,64 @@ +PREHOOK: query: DESCRIBE FUNCTION negative +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION negative +POSTHOOK: type: DESCFUNCTION +negative a - Returns -a +PREHOOK: query: DESCRIBE FUNCTION EXTENDED negative +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED negative +POSTHOOK: type: DESCFUNCTION +negative a - Returns -a PREHOOK: query: select - null from src limit 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/nzhang/work/876/apache-hive/build/ql/tmp/928832343/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1255375616/10000 POSTHOOK: query: select - null from src limit 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/nzhang/work/876/apache-hive/build/ql/tmp/928832343/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1255375616/10000 NULL PREHOOK: query: select - cast(null as int) from src limit 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/nzhang/work/876/apache-hive/build/ql/tmp/1834056910/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/925422494/10000 POSTHOOK: query: select - cast(null as int) from src limit 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/nzhang/work/876/apache-hive/build/ql/tmp/1834056910/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/925422494/10000 NULL PREHOOK: query: select - cast(null as smallint) from src limit 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/nzhang/work/876/apache-hive/build/ql/tmp/677639104/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/75605941/10000 POSTHOOK: query: select - cast(null as smallint) from src limit 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/nzhang/work/876/apache-hive/build/ql/tmp/677639104/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/75605941/10000 NULL PREHOOK: query: select - cast(null as bigint) from src limit 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/nzhang/work/876/apache-hive/build/ql/tmp/1891198169/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/914031656/10000 POSTHOOK: query: select - cast(null as bigint) from src limit 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/nzhang/work/876/apache-hive/build/ql/tmp/1891198169/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/914031656/10000 NULL PREHOOK: query: select - cast(null as double) from src limit 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/nzhang/work/876/apache-hive/build/ql/tmp/856616351/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/551335924/10000 POSTHOOK: query: select - cast(null as double) from src limit 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/nzhang/work/876/apache-hive/build/ql/tmp/856616351/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/551335924/10000 NULL PREHOOK: query: select - cast(null as float) from src limit 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/nzhang/work/876/apache-hive/build/ql/tmp/277516197/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/708448995/10000 POSTHOOK: query: select - cast(null as float) from src limit 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/nzhang/work/876/apache-hive/build/ql/tmp/277516197/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/708448995/10000 NULL Index: ql/src/test/results/clientpositive/udaf_stddev_samp.q.out =================================================================== --- ql/src/test/results/clientpositive/udaf_stddev_samp.q.out (revision 0) +++ ql/src/test/results/clientpositive/udaf_stddev_samp.q.out (revision 0) @@ -0,0 +1,20 @@ +PREHOOK: query: DESCRIBE FUNCTION stddev_samp +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION stddev_samp +POSTHOOK: type: DESCFUNCTION +stddev_samp(x) - Returns the sample standard deviation of a set of numbers +PREHOOK: query: DESCRIBE FUNCTION EXTENDED stddev_samp +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED stddev_samp +POSTHOOK: type: DESCFUNCTION +stddev_samp(x) - Returns the sample standard deviation of a set of numbers +PREHOOK: query: DESCRIBE FUNCTION stddev_samp +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION stddev_samp +POSTHOOK: type: DESCFUNCTION +stddev_samp(x) - Returns the sample standard deviation of a set of numbers +PREHOOK: query: DESCRIBE FUNCTION EXTENDED stddev_samp +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED stddev_samp +POSTHOOK: type: DESCFUNCTION +stddev_samp(x) - Returns the sample standard deviation of a set of numbers Index: ql/src/test/results/clientpositive/udf_elt.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_elt.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_elt.q.out (working copy) @@ -1,3 +1,16 @@ +PREHOOK: query: DESCRIBE FUNCTION elt +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION elt +POSTHOOK: type: DESCFUNCTION +elt(n, str1, str2, ...) - returns the n-th string +PREHOOK: query: DESCRIBE FUNCTION EXTENDED elt +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED elt +POSTHOOK: type: DESCFUNCTION +elt(n, str1, str2, ...) - returns the n-th string +Example: + > SELECT elt(1, 'face', 'book') FROM src LIMIT 1; + 'face' PREHOOK: query: EXPLAIN SELECT elt(2, 'abc', 'defg'), elt(3, 'aa', 'bb', 'cc', 'dd', 'ee', 'ff', 'gg'), @@ -92,7 +105,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1564252056/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1020024876/10000 POSTHOOK: query: SELECT elt(2, 'abc', 'defg'), elt(3, 'aa', 'bb', 'cc', 'dd', 'ee', 'ff', 'gg'), elt('1', 'abc', 'defg'), @@ -107,5 +120,5 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1564252056/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1020024876/10000 defg cc abc 2 12345 123456789012 1.25 16.0 NULL NULL NULL Index: ql/src/test/results/clientpositive/udf_divider.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_divider.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_divider.q.out (working copy) @@ -1,18 +1,31 @@ +PREHOOK: query: DESCRIBE FUNCTION div +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION div +POSTHOOK: type: DESCFUNCTION +a div b - Divide a by b rounded to the long integer +PREHOOK: query: DESCRIBE FUNCTION EXTENDED div +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED div +POSTHOOK: type: DESCFUNCTION +a div b - Divide a by b rounded to the long integer +Example: + > SELECT 3 div 2 FROM src LIMIT 1; + 1 PREHOOK: query: SELECT 3 / 2 FROM SRC LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/399492793/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/173284244/10000 POSTHOOK: query: SELECT 3 / 2 FROM SRC LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/399492793/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/173284244/10000 1.5 PREHOOK: query: SELECT 3 DIV 2 FROM SRC LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1110831247/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1585227313/10000 POSTHOOK: query: SELECT 3 DIV 2 FROM SRC LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1110831247/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1585227313/10000 1 Index: ql/src/test/results/clientpositive/udf_ascii.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_ascii.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_ascii.q.out (working copy) @@ -1,3 +1,18 @@ +PREHOOK: query: DESCRIBE FUNCTION ascii +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION ascii +POSTHOOK: type: DESCFUNCTION +ascii(str) - returns the numeric value of the first character of str +PREHOOK: query: DESCRIBE FUNCTION EXTENDED ascii +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED ascii +POSTHOOK: type: DESCFUNCTION +ascii(str) - returns the numeric value of the first character of str +Returns 0 if str is empty or NULL if str is NULL +Example: + > SELECT ascii('222') FROM src LIMIT 1; 50 + > SELECT ascii(2) FROM src LIMIT 1; + 50 PREHOOK: query: EXPLAIN SELECT ascii('Facebook'), ascii(''), @@ -53,7 +68,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/772117818/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1375319396/10000 POSTHOOK: query: SELECT ascii('Facebook'), ascii(''), @@ -61,5 +76,5 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/772117818/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1375319396/10000 70 0 33 Index: ql/src/test/results/clientpositive/udf_asin.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_asin.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_asin.q.out (working copy) @@ -1,3 +1,18 @@ +PREHOOK: query: DESCRIBE FUNCTION asin +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION asin +POSTHOOK: type: DESCFUNCTION +asin(x) - returns the arc sine of x if -1<=x<=1 or NULL otherwise +PREHOOK: query: DESCRIBE FUNCTION EXTENDED asin +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED asin +POSTHOOK: type: DESCFUNCTION +asin(x) - returns the arc sine of x if -1<=x<=1 or NULL otherwise +Example: + > SELECT asin(0) FROM src LIMIT 1; + 0 + > SELECT asin(2) FROM src LIMIT 1; + NULL PREHOOK: query: SELECT asin(null) FROM src LIMIT 1 PREHOOK: type: QUERY @@ -2,8 +17,8 @@ PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/335338053/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/267750936/10000 POSTHOOK: query: SELECT asin(null) FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/335338053/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/267750936/10000 NULL @@ -13,32 +28,32 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1930989265/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/833606284/10000 POSTHOOK: query: SELECT asin(0) FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1930989265/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/833606284/10000 0.0 PREHOOK: query: SELECT asin(-0.5), asin(0.66) FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1036919646/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/604043294/10000 POSTHOOK: query: SELECT asin(-0.5), asin(0.66) FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1036919646/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/604043294/10000 -0.5235987755982989 0.7208187608700897 PREHOOK: query: SELECT asin(2) FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1231279693/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1494381105/10000 POSTHOOK: query: SELECT asin(2) FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1231279693/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1494381105/10000 NaN Index: ql/src/test/results/clientpositive/udf_parse_url.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_parse_url.q.out (revision 896724) +++ ql/src/test/results/clientpositive/udf_parse_url.q.out (working copy) @@ -1,3 +1,22 @@ +PREHOOK: query: DESCRIBE FUNCTION parse_url +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION parse_url +POSTHOOK: type: DESCFUNCTION +parse_url(url, partToExtract[, key]) - extracts a part from a URL +PREHOOK: query: DESCRIBE FUNCTION EXTENDED parse_url +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED parse_url +POSTHOOK: type: DESCFUNCTION +parse_url(url, partToExtract[, key]) - extracts a part from a URL +Parts: HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, USERINFO +key specifies which query to extract +Example: + > SELECT parse_url('http://facebook.com/path/p1.php?query=1', 'HOST') FROM src LIMIT 1; + 'facebook.com' + > SELECT parse_url('http://facebook.com/path/p1.php?query=1', 'QUERY') FROM src LIMIT 1; + 'query=1' + > SELECT parse_url('http://facebook.com/path/p1.php?query=1', 'QUERY', 'query') FROM src LIMIT 1; + '1' PREHOOK: query: EXPLAIN SELECT parse_url('http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1', 'HOST'), parse_url('http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1', 'PATH'), @@ -99,7 +118,7 @@ FROM src WHERE key = 86 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1215092102/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/482859701/10000 POSTHOOK: query: SELECT parse_url('http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1', 'HOST'), parse_url('http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1', 'PATH'), parse_url('http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1', 'QUERY') , @@ -114,5 +133,5 @@ FROM src WHERE key = 86 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1215092102/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/482859701/10000 facebook.com /path1/p.php k1=v1&k2=v2 Ref1 v2 v1 NULL /path1/p.php?k1=v1&k2=v2 http NULL facebook.com Index: ql/src/test/queries/clientpositive/udf_sin.q =================================================================== --- ql/src/test/queries/clientpositive/udf_sin.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_sin.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION sin; +DESCRIBE FUNCTION EXTENDED sin; + SELECT sin(null) FROM src LIMIT 1; Index: ql/src/test/queries/clientpositive/udaf_std.q =================================================================== --- ql/src/test/queries/clientpositive/udaf_std.q (revision 0) +++ ql/src/test/queries/clientpositive/udaf_std.q (revision 0) @@ -0,0 +1,16 @@ +DESCRIBE FUNCTION std; +DESCRIBE FUNCTION EXTENDED std; + +DESCRIBE FUNCTION stddev; +DESCRIBE FUNCTION EXTENDED stddev; + +DESCRIBE FUNCTION stddev_pop; +DESCRIBE FUNCTION EXTENDED stddev_pop; +DESCRIBE FUNCTION std; +DESCRIBE FUNCTION EXTENDED std; + +DESCRIBE FUNCTION stddev; +DESCRIBE FUNCTION EXTENDED stddev; + +DESCRIBE FUNCTION stddev_pop; +DESCRIBE FUNCTION EXTENDED stddev_pop; Index: ql/src/test/queries/clientpositive/udf_length.q =================================================================== --- ql/src/test/queries/clientpositive/udf_length.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_length.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION length; +DESCRIBE FUNCTION EXTENDED length; + CREATE TABLE dest1(len INT); EXPLAIN FROM src1 INSERT OVERWRITE TABLE dest1 SELECT length(src1.value); FROM src1 INSERT OVERWRITE TABLE dest1 SELECT length(src1.value); Index: ql/src/test/queries/clientpositive/udf_acos.q =================================================================== --- ql/src/test/queries/clientpositive/udf_acos.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_acos.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION acos; +DESCRIBE FUNCTION EXTENDED acos; + SELECT acos(null) FROM src LIMIT 1; Index: ql/src/test/queries/clientpositive/udf_lower.q =================================================================== --- ql/src/test/queries/clientpositive/udf_lower.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_lower.q (working copy) @@ -1,3 +1,5 @@ +DESCRIBE FUNCTION lower; +DESCRIBE FUNCTION EXTENDED lower; EXPLAIN SELECT lower('AbC 123'), upper('AbC 123') FROM src WHERE key = 86; Index: ql/src/test/queries/clientpositive/udf_if.q =================================================================== --- ql/src/test/queries/clientpositive/udf_if.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_if.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION if; +DESCRIBE FUNCTION EXTENDED if; + EXPLAIN SELECT IF(TRUE, 1, 2) AS COL1, IF(FALSE, CAST(NULL AS STRING), CAST(1 AS STRING)) AS COL2, Index: ql/src/test/queries/clientpositive/udf_hash.q =================================================================== --- ql/src/test/queries/clientpositive/udf_hash.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_hash.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION hash; +DESCRIBE FUNCTION EXTENDED hash; + EXPLAIN SELECT hash(CAST(1 AS TINYINT)), hash(CAST(2 AS SMALLINT)), hash(3), hash(CAST('123456789012' AS BIGINT)), Index: ql/src/test/queries/clientpositive/udf_unhex.q =================================================================== --- ql/src/test/queries/clientpositive/udf_unhex.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_unhex.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION unhex; +DESCRIBE FUNCTION EXTENDED unhex; + -- Good inputs SELECT Index: ql/src/test/queries/clientpositive/udf_case.q =================================================================== --- ql/src/test/queries/clientpositive/udf_case.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_case.q (working copy) @@ -1,3 +1,7 @@ +-- Parsing bug requires us to quote case +DESCRIBE FUNCTION 'case'; +DESCRIBE FUNCTION EXTENDED 'case'; + EXPLAIN SELECT CASE 1 WHEN 1 THEN 2 Index: ql/src/test/queries/clientpositive/udf_map.q =================================================================== --- ql/src/test/queries/clientpositive/udf_map.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_map.q (working copy) @@ -1,3 +1,7 @@ +-- Parsing bug requires us to quote map +DESCRIBE FUNCTION 'map'; +DESCRIBE FUNCTION EXTENDED 'map'; + EXPLAIN SELECT map(), map(1, "a", 2, "b", 3, "c"), map(1, 2, "a", "b"), map(1, "a", 2, "b", 3, "c")[2], map(1, 2, "a", "b")["a"], map(1, array("a"))[1][0] FROM src LIMIT 1; Index: ql/src/test/queries/clientpositive/udaf_avg.q =================================================================== --- ql/src/test/queries/clientpositive/udaf_avg.q (revision 0) +++ ql/src/test/queries/clientpositive/udaf_avg.q (revision 0) @@ -0,0 +1,4 @@ +DESCRIBE FUNCTION avg; +DESCRIBE FUNCTION EXTENDED avg; +DESCRIBE FUNCTION avg; +DESCRIBE FUNCTION EXTENDED avg; Index: ql/src/test/queries/clientpositive/udf_negative.q =================================================================== --- ql/src/test/queries/clientpositive/udf_negative.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_negative.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION negative; +DESCRIBE FUNCTION EXTENDED negative; + select - null from src limit 1; select - cast(null as int) from src limit 1; select - cast(null as smallint) from src limit 1; Index: ql/src/test/queries/clientpositive/udaf_stddev_samp.q =================================================================== --- ql/src/test/queries/clientpositive/udaf_stddev_samp.q (revision 0) +++ ql/src/test/queries/clientpositive/udaf_stddev_samp.q (revision 0) @@ -0,0 +1,4 @@ +DESCRIBE FUNCTION stddev_samp; +DESCRIBE FUNCTION EXTENDED stddev_samp; +DESCRIBE FUNCTION stddev_samp; +DESCRIBE FUNCTION EXTENDED stddev_samp; Index: ql/src/test/queries/clientpositive/udf_divider.q =================================================================== --- ql/src/test/queries/clientpositive/udf_divider.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_divider.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION div; +DESCRIBE FUNCTION EXTENDED div; + SELECT 3 / 2 FROM SRC LIMIT 1; SELECT 3 DIV 2 FROM SRC LIMIT 1; Index: ql/src/test/queries/clientpositive/udf_split.q =================================================================== --- ql/src/test/queries/clientpositive/udf_split.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_split.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION split; +DESCRIBE FUNCTION EXTENDED split; + EXPLAIN SELECT split('a b c', ' '), split('oneAtwoBthreeC', '[ABC]'), Index: ql/src/test/queries/clientpositive/udaf_sum.q =================================================================== --- ql/src/test/queries/clientpositive/udaf_sum.q (revision 0) +++ ql/src/test/queries/clientpositive/udaf_sum.q (revision 0) @@ -0,0 +1,6 @@ +DESCRIBE FUNCTION sum; +DESCRIBE FUNCTION EXTENDED sum; + +DESCRIBE FUNCTION sum; +DESCRIBE FUNCTION EXTENDED sum; + Index: ql/src/test/queries/clientpositive/udf_json.q =================================================================== --- ql/src/test/queries/clientpositive/udf_json.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_json.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION get_json_object; +DESCRIBE FUNCTION EXTENDED get_json_object; + CREATE TABLE dest1(c1 STRING) STORED AS TEXTFILE; FROM src INSERT OVERWRITE TABLE dest1 SELECT ' abc ' WHERE src.key = 86; Index: ql/src/test/queries/clientpositive/udf_asin.q =================================================================== --- ql/src/test/queries/clientpositive/udf_asin.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_asin.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION asin; +DESCRIBE FUNCTION EXTENDED asin; + SELECT asin(null) FROM src LIMIT 1; Index: ql/src/test/queries/clientpositive/udaf_max.q =================================================================== --- ql/src/test/queries/clientpositive/udaf_max.q (revision 0) +++ ql/src/test/queries/clientpositive/udaf_max.q (revision 0) @@ -0,0 +1,4 @@ +DESCRIBE FUNCTION max; +DESCRIBE FUNCTION EXTENDED max; +DESCRIBE FUNCTION max; +DESCRIBE FUNCTION EXTENDED max; Index: ql/src/test/queries/clientpositive/udf_pmod.q =================================================================== --- ql/src/test/queries/clientpositive/udf_pmod.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_pmod.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION pmod; +DESCRIBE FUNCTION EXTENDED pmod; + SELECT pmod(null, null) FROM src LIMIT 1; Index: ql/src/test/queries/clientpositive/udaf_number_format.q =================================================================== --- ql/src/test/queries/clientpositive/udaf_number_format.q (revision 896724) +++ ql/src/test/queries/clientpositive/udaf_number_format.q (working copy) @@ -1,3 +1,4 @@ + EXPLAIN SELECT sum('a'), avg('a'), Index: ql/src/test/queries/clientpositive/udf_locate.q =================================================================== --- ql/src/test/queries/clientpositive/udf_locate.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_locate.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION locate; +DESCRIBE FUNCTION EXTENDED locate; + EXPLAIN SELECT locate('abc', 'abcd'), locate('ccc', 'abcabc'), Index: ql/src/test/queries/clientpositive/udaf_count.q =================================================================== --- ql/src/test/queries/clientpositive/udaf_count.q (revision 0) +++ ql/src/test/queries/clientpositive/udaf_count.q (revision 0) @@ -0,0 +1,4 @@ +DESCRIBE FUNCTION count; +DESCRIBE FUNCTION EXTENDED count; +DESCRIBE FUNCTION count; +DESCRIBE FUNCTION EXTENDED count; Index: ql/src/test/queries/clientpositive/udf_space.q =================================================================== --- ql/src/test/queries/clientpositive/udf_space.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_space.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION space; +DESCRIBE FUNCTION EXTENDED space; + EXPLAIN SELECT space(10), space(0), Index: ql/src/test/queries/clientpositive/udf_instr.q =================================================================== --- ql/src/test/queries/clientpositive/udf_instr.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_instr.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION instr; +DESCRIBE FUNCTION EXTENDED instr; + EXPLAIN SELECT instr('abcd', 'abc'), instr('abcabc', 'ccc'), Index: ql/src/test/queries/clientpositive/udf_like.q =================================================================== --- ql/src/test/queries/clientpositive/udf_like.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_like.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION like; +DESCRIBE FUNCTION EXTENDED like; + EXPLAIN SELECT '_%_' LIKE '%\_\%\_%', '__' LIKE '%\_\%\_%', '%%_%_' LIKE '%\_\%\_%', '%_%_%' LIKE '%\%\_\%', '_%_' LIKE '\%\_%', '%__' LIKE '__\%%', '_%' LIKE '\_\%\_\%%', '_%' LIKE '\_\%_%', Index: ql/src/test/queries/clientpositive/udtf_explode.q =================================================================== --- ql/src/test/queries/clientpositive/udtf_explode.q (revision 896724) +++ ql/src/test/queries/clientpositive/udtf_explode.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION explode; +DESCRIBE FUNCTION EXTENDED explode; + EXPLAIN EXTENDED SELECT explode(array(1,2,3)) AS myCol FROM src LIMIT 3; EXPLAIN EXTENDED SELECT a.myCol, count(1) FROM (SELECT explode(array(1,2,3)) AS myCol FROM src LIMIT 3) a GROUP BY a.myCol; Index: ql/src/test/queries/clientpositive/udf_size.q =================================================================== --- ql/src/test/queries/clientpositive/udf_size.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_size.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION size; +DESCRIBE FUNCTION EXTENDED size; + EXPLAIN FROM src_thrift SELECT size(src_thrift.lint), Index: ql/src/test/queries/clientpositive/udf_unix_timestamp.q =================================================================== --- ql/src/test/queries/clientpositive/udf_unix_timestamp.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_unix_timestamp.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION unix_timestamp; +DESCRIBE FUNCTION EXTENDED unix_timestamp; + SELECT '2009-03-20 11:30:01', unix_timestamp('2009-03-20 11:30:01') Index: ql/src/test/queries/clientpositive/udf_substr.q =================================================================== --- ql/src/test/queries/clientpositive/udf_substr.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_substr.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION substr; +DESCRIBE FUNCTION EXTENDED substr; + SELECT substr(null, 1), substr(null, 1, 1), substr('ABC', null), substr('ABC', null, 1), Index: ql/src/test/queries/clientpositive/udaf_min.q =================================================================== --- ql/src/test/queries/clientpositive/udaf_min.q (revision 0) +++ ql/src/test/queries/clientpositive/udaf_min.q (revision 0) @@ -0,0 +1,4 @@ +DESCRIBE FUNCTION min; +DESCRIBE FUNCTION EXTENDED min; +DESCRIBE FUNCTION min; +DESCRIBE FUNCTION EXTENDED min; Index: ql/src/test/queries/clientpositive/udf_bin.q =================================================================== --- ql/src/test/queries/clientpositive/udf_bin.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_bin.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION bin; +DESCRIBE FUNCTION EXTENDED bin; + SELECT bin(1), bin(0), Index: ql/src/test/queries/clientpositive/udaf_var_samp.q =================================================================== --- ql/src/test/queries/clientpositive/udaf_var_samp.q (revision 0) +++ ql/src/test/queries/clientpositive/udaf_var_samp.q (revision 0) @@ -0,0 +1,4 @@ +DESCRIBE FUNCTION var_samp; +DESCRIBE FUNCTION EXTENDED var_samp; +DESCRIBE FUNCTION var_samp; +DESCRIBE FUNCTION EXTENDED var_samp; Index: ql/src/test/queries/clientpositive/udf_repeat.q =================================================================== --- ql/src/test/queries/clientpositive/udf_repeat.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_repeat.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION repeat; +DESCRIBE FUNCTION EXTENDED repeat; + EXPLAIN SELECT repeat("Facebook", 3), repeat("", 4), Index: ql/src/test/queries/clientpositive/udf_cos.q =================================================================== --- ql/src/test/queries/clientpositive/udf_cos.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_cos.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION cos; +DESCRIBE FUNCTION EXTENDED cos; + SELECT cos(null) FROM src LIMIT 1; Index: ql/src/test/queries/clientpositive/udf_hex.q =================================================================== --- ql/src/test/queries/clientpositive/udf_hex.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_hex.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION hex; +DESCRIBE FUNCTION EXTENDED hex; + -- If the argument is a string, hex should return a string containing two hex -- digits for every character in the input. SELECT Index: ql/src/test/queries/clientpositive/udf_regexp.q =================================================================== --- ql/src/test/queries/clientpositive/udf_regexp.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_regexp.q (working copy) @@ -1,5 +1,4 @@ DESCRIBE FUNCTION regexp; - DESCRIBE FUNCTION EXTENDED regexp; SELECT 'fofo' REGEXP '^fo', 'fo\no' REGEXP '^fo\no$', 'Bn' REGEXP '^Ba*n', 'afofo' REGEXP 'fo', Index: ql/src/test/queries/clientpositive/udf_abs.q =================================================================== --- ql/src/test/queries/clientpositive/udf_abs.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_abs.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION abs; +DESCRIBE FUNCTION EXTENDED abs; + EXPLAIN SELECT abs(0), abs(-1), Index: ql/src/test/queries/clientpositive/udf_concat.q =================================================================== --- ql/src/test/queries/clientpositive/udf_concat.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_concat.q (working copy) @@ -1,5 +1,4 @@ DESCRIBE FUNCTION concat; - DESCRIBE FUNCTION EXTENDED concat; SELECT Index: ql/src/test/queries/clientpositive/udf_array.q =================================================================== --- ql/src/test/queries/clientpositive/udf_array.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_array.q (working copy) @@ -1,3 +1,7 @@ +-- Parsing bug requires us to quote array +DESCRIBE FUNCTION 'array'; +DESCRIBE FUNCTION EXTENDED 'array'; + EXPLAIN SELECT array(), array()[1], array(1, 2, 3), array(1, 2, 3)[2], array(1,"a", 2, 3), array(1,"a", 2, 3)[2], array(array(1), array(2), array(3), array(4))[1][0] FROM src LIMIT 1; Index: ql/src/test/queries/clientpositive/udf_coalesce.q =================================================================== --- ql/src/test/queries/clientpositive/udf_coalesce.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_coalesce.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION coalesce; +DESCRIBE FUNCTION EXTENDED coalesce; + EXPLAIN SELECT COALESCE(1), COALESCE(1, 2), Index: ql/src/test/queries/clientpositive/udf_elt.q =================================================================== --- ql/src/test/queries/clientpositive/udf_elt.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_elt.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION elt; +DESCRIBE FUNCTION EXTENDED elt; + EXPLAIN SELECT elt(2, 'abc', 'defg'), elt(3, 'aa', 'bb', 'cc', 'dd', 'ee', 'ff', 'gg'), Index: ql/src/test/queries/clientpositive/udf_round.q =================================================================== --- ql/src/test/queries/clientpositive/udf_round.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_round.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION round; +DESCRIBE FUNCTION EXTENDED round; + SELECT round(null), round(null, 0), round(125, null) FROM src LIMIT 1; Index: ql/src/test/queries/clientpositive/udf_ascii.q =================================================================== --- ql/src/test/queries/clientpositive/udf_ascii.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_ascii.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION ascii; +DESCRIBE FUNCTION EXTENDED ascii; + EXPLAIN SELECT ascii('Facebook'), ascii(''), Index: ql/src/test/queries/clientpositive/udaf_variance.q =================================================================== --- ql/src/test/queries/clientpositive/udaf_variance.q (revision 0) +++ ql/src/test/queries/clientpositive/udaf_variance.q (revision 0) @@ -0,0 +1,10 @@ +DESCRIBE FUNCTION variance; +DESCRIBE FUNCTION EXTENDED variance; + +DESCRIBE FUNCTION var_pop; +DESCRIBE FUNCTION EXTENDED var_pop; +DESCRIBE FUNCTION variance; +DESCRIBE FUNCTION EXTENDED variance; + +DESCRIBE FUNCTION var_pop; +DESCRIBE FUNCTION EXTENDED var_pop; Index: ql/src/test/queries/clientpositive/udf_reverse.q =================================================================== --- ql/src/test/queries/clientpositive/udf_reverse.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_reverse.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION reverse; +DESCRIBE FUNCTION EXTENDED reverse; + CREATE TABLE dest1(len STRING); EXPLAIN FROM src1 INSERT OVERWRITE TABLE dest1 SELECT reverse(src1.value); FROM src1 INSERT OVERWRITE TABLE dest1 SELECT reverse(src1.value); Index: ql/src/test/queries/clientpositive/udf_isnull_isnotnull.q =================================================================== --- ql/src/test/queries/clientpositive/udf_isnull_isnotnull.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_isnull_isnotnull.q (working copy) @@ -1,3 +1,10 @@ +DESCRIBE FUNCTION isnull; +DESCRIBE FUNCTION EXTENDED isnull; + +DESCRIBE FUNCTION isnotnull; +DESCRIBE FUNCTION EXTENDED isnotnull; + + EXPLAIN SELECT NULL IS NULL, 1 IS NOT NULL, Index: ql/src/test/queries/clientpositive/udf_parse_url.q =================================================================== --- ql/src/test/queries/clientpositive/udf_parse_url.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_parse_url.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION parse_url; +DESCRIBE FUNCTION EXTENDED parse_url; + EXPLAIN SELECT parse_url('http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1', 'HOST'), parse_url('http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1', 'PATH'), Index: ql/src/test/queries/clientpositive/udf_lpad_rpad.q =================================================================== --- ql/src/test/queries/clientpositive/udf_lpad_rpad.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_lpad_rpad.q (working copy) @@ -1,3 +1,9 @@ +DESCRIBE FUNCTION lpad; +DESCRIBE FUNCTION EXTENDED lpad; + +DESCRIBE FUNCTION rpad; +DESCRIBE FUNCTION EXTENDED rpad; + EXPLAIN SELECT lpad('hi', 1, '?'), lpad('hi', 5, '.'), Index: ql/src/test/queries/clientpositive/udf_weekofyear.q =================================================================== --- ql/src/test/queries/clientpositive/udf_weekofyear.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_weekofyear.q (working copy) @@ -1,5 +1,4 @@ DESCRIBE FUNCTION weekofyear; - DESCRIBE FUNCTION EXTENDED weekofyear; SELECT weekofyear('1980-01-01'), weekofyear('1980-01-06'), weekofyear('1980-01-07'), weekofyear('1980-12-31'), Index: ql/src/test/queries/clientpositive/udf_conv.q =================================================================== --- ql/src/test/queries/clientpositive/udf_conv.q (revision 896724) +++ ql/src/test/queries/clientpositive/udf_conv.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION conv; +DESCRIBE FUNCTION EXTENDED conv; + -- conv must work on both strings and integers up to 64-bit precision -- Some simple conversions to test different bases Index: ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionInfo.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionInfo.java (revision 896724) +++ ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionInfo.java (working copy) @@ -18,8 +18,10 @@ package org.apache.hadoop.hive.ql.exec; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFBridge; import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFResolver; import org.apache.hadoop.hive.ql.udf.generic.GenericUDF; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge; import org.apache.hadoop.hive.ql.udf.generic.GenericUDTF; public class FunctionInfo { @@ -28,11 +30,11 @@ private String displayName; - private GenericUDF genericUDF = null; + private GenericUDF genericUDF; - private GenericUDTF genericUDTF = null; + private GenericUDTF genericUDTF; - private GenericUDAFResolver genericUDAFResolver = null; + private GenericUDAFResolver genericUDAFResolver; public FunctionInfo(boolean isNative, String displayName, GenericUDF genericUDF) { this.isNative = isNative; @@ -57,6 +59,9 @@ */ public GenericUDF getGenericUDF() { // GenericUDF is stateful - we have to make a copy here + if (genericUDF == null) { + return null; + } return FunctionRegistry.cloneGenericUDF(genericUDF); } @@ -65,8 +70,9 @@ */ public GenericUDTF getGenericUDTF() { // GenericUDTF is stateful too, copy - if (genericUDTF == null) + if (genericUDTF == null) { return null; + } return FunctionRegistry.cloneGenericUDTF(genericUDTF); } @@ -78,6 +84,28 @@ } /** + * Get the Class of the UDF + */ + public Class getFunctionClass() { + if (isGenericUDF()) { + if (genericUDF instanceof GenericUDFBridge) { + return ((GenericUDFBridge)genericUDF).getUdfClass(); + } else { + return genericUDF.getClass(); + } + } else if (isGenericUDAF()) { + if (genericUDAFResolver instanceof GenericUDAFBridge) { + return ((GenericUDAFBridge)genericUDAFResolver).getUDAFClass(); + } else { + return genericUDAFResolver.getClass(); + } + } else if (isGenericUDTF()) { + return genericUDTF.getClass(); + } + return null; + } + + /** * Get the display name for this function. * This should be transfered into exprNodeGenericUDFDesc, and will be * used as the first parameter to GenericUDF.getDisplayName() call, instead @@ -94,4 +122,25 @@ public boolean isNative() { return isNative; } + + /** + * @return TRUE if the function is a GenericUDF + */ + public boolean isGenericUDF() { + return null != genericUDF; + } + + /** + * @return TRUE if the function is a GenericUDAF + */ + public boolean isGenericUDAF() { + return null != genericUDAFResolver; + } + + /** + * @return TRUE if the function is a GenericUDTF + */ + public boolean isGenericUDTF() { + return null != genericUDTF; + } } Index: ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java (revision 896724) +++ ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java (working copy) @@ -56,9 +56,8 @@ /** * The mapping from expression function names to expression classes. */ - static LinkedHashMap mFunctions; + static Map mFunctions = new LinkedHashMap(); static { - mFunctions = new LinkedHashMap(); registerUDF("concat", UDFConcat.class, false); registerUDF("substr", UDFSubstr.class, false); registerUDF("substring", UDFSubstr.class, false); @@ -641,19 +640,26 @@ * Create a copy of an existing GenericUDF. */ public static GenericUDF cloneGenericUDF(GenericUDF genericUDF) { + if (null == genericUDF) { + return null; + } + if (genericUDF instanceof GenericUDFBridge) { GenericUDFBridge bridge = (GenericUDFBridge)genericUDF; return new GenericUDFBridge(bridge.getUdfName(), bridge.isOperator(), bridge.getUdfClass()); - } else { - return (GenericUDF)ReflectionUtils.newInstance(genericUDF.getClass(), null); } + + return (GenericUDF)ReflectionUtils.newInstance(genericUDF.getClass(), null); } /** * Create a copy of an existing GenericUDTF. */ public static GenericUDTF cloneGenericUDTF(GenericUDTF genericUDTF) { - return (GenericUDTF)ReflectionUtils.newInstance(genericUDTF.getClass(), null); + if (null == genericUDTF) { + return null; + } + return (GenericUDTF)ReflectionUtils.newInstance(genericUDTF.getClass(), null); } /** Index: ql/src/java/org/apache/hadoop/hive/ql/exec/UDAF.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/exec/UDAF.java (revision 896724) +++ ql/src/java/org/apache/hadoop/hive/ql/exec/UDAF.java (working copy) @@ -17,6 +17,8 @@ */ package org.apache.hadoop.hive.ql.exec; + +import org.apache.hadoop.hive.ql.udf.UDFType; //import org.apache.hadoop.hive.serde.ReflectionSerDe; /** Index: ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java (revision 896724) +++ ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java (working copy) @@ -26,10 +26,8 @@ import java.io.Serializable; import java.io.Writer; import java.util.ArrayList; -import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; -import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; @@ -75,8 +73,6 @@ import org.apache.hadoop.hive.ql.plan.showTableStatusDesc; import org.apache.hadoop.hive.ql.plan.showTablesDesc; import org.apache.hadoop.hive.ql.plan.api.StageType; -import org.apache.hadoop.hive.ql.udf.generic.GenericUDF; -import org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge; import org.apache.hadoop.hive.serde.Constants; import org.apache.hadoop.hive.serde2.Deserializer; import org.apache.hadoop.hive.serde2.MetadataTypedColumnsetSerDe; @@ -473,8 +469,8 @@ * @throws HiveException */ private int describeFunction(descFunctionDesc descFunc) - throws HiveException { - String name = descFunc.getName(); + throws HiveException { + String funcName = descFunc.getName(); // write the results in the file try { @@ -483,30 +479,25 @@ // get the function documentation description desc = null; - FunctionInfo fi = FunctionRegistry.getFunctionInfo(name); - Class funcClass = null; - GenericUDF udf = fi.getGenericUDF(); - if (udf != null) { - // If it's a GenericUDFBridge, then let's use the - if (udf instanceof GenericUDFBridge) { - funcClass = ((GenericUDFBridge)udf).getUdfClass(); - } else { - funcClass = udf.getClass(); - } + FunctionInfo functionInfo = FunctionRegistry.getFunctionInfo(funcName); + if (functionInfo != null) { + funcClass = functionInfo.getFunctionClass(); } - if (funcClass != null) { desc = funcClass.getAnnotation(description.class); } if (desc != null) { - outStream.writeBytes(desc.value().replace("_FUNC_", name)); - if(descFunc.isExtended() && desc.extended().length()>0) { - outStream.writeBytes("\n"+desc.extended().replace("_FUNC_", name)); + outStream.writeBytes(desc.value().replace("_FUNC_", funcName)); + if(descFunc.isExtended() && desc.extended().length() > 0) { + outStream.writeBytes("\n"+desc.extended().replace("_FUNC_", funcName)); } } else { - outStream.writeBytes("Function " + name + " does not exist or cannot" + - " find documentation for it."); + if (funcClass != null) { + outStream.writeBytes("There is no documentation for function " + funcName); + } else { + outStream.writeBytes("Function " + funcName + " does not exist."); + } } outStream.write(terminator); @@ -533,10 +524,10 @@ * @return Return 0 when execution succeeds and above 0 if it fails. */ private int showTableStatus(Hive db, showTableStatusDesc showTblStatus) - throws HiveException { + throws HiveException { // get the tables for the desired pattenn - populate the output stream List tbls = new ArrayList
(); - HashMap part = showTblStatus.getPartSpec(); + Map part = showTblStatus.getPartSpec(); Partition par = null; if (part != null) { Table tbl = db.getTable(showTblStatus.getDbName(), showTblStatus @@ -613,10 +604,9 @@ List locations = new ArrayList(); if (isPartitioned) { if (par == null) { - List parts = db.getPartitions(tbl); - for (Partition curPart : parts) - locations.add(new Path(curPart.getTPartition().getSd() - .getLocation())); + for (Partition curPart : db.getPartitions(tbl)) { + locations.add(new Path(curPart.getTPartition().getSd().getLocation())); + } } else { locations.add(new Path(par.getTPartition().getSd().getLocation())); } @@ -649,7 +639,7 @@ * @throws HiveException Throws this exception if an unexpected error occurs. */ private int describeTable(Hive db, descTableDesc descTbl) - throws HiveException { + throws HiveException { String colPath = descTbl.getTableName(); String tableName = colPath.substring(0, colPath.indexOf('.') == -1 ? colPath.length() : colPath.indexOf('.')); Index: ql/src/java/org/apache/hadoop/hive/ql/udf/UDAFMin.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/udf/UDAFMin.java (revision 896724) +++ ql/src/java/org/apache/hadoop/hive/ql/udf/UDAFMin.java (working copy) @@ -20,6 +20,7 @@ import org.apache.hadoop.hive.ql.exec.UDAF; import org.apache.hadoop.hive.ql.exec.UDAFEvaluator; +import org.apache.hadoop.hive.ql.exec.description; import org.apache.hadoop.hive.serde2.io.DoubleWritable; import org.apache.hadoop.hive.serde2.io.ShortWritable; import org.apache.hadoop.hive.shims.ShimLoader; @@ -28,7 +29,10 @@ import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; - +@description( + name = "min", + value = "_FUNC_(expr) - Returns the minimum value of expr" + ) public class UDAFMin extends UDAF { static public class MinShortEvaluator implements UDAFEvaluator { Index: ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFBridge.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFBridge.java (revision 896724) +++ ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFBridge.java (working copy) @@ -27,16 +27,12 @@ import org.apache.hadoop.hive.ql.exec.UDAFEvaluator; import org.apache.hadoop.hive.ql.metadata.HiveException; import org.apache.hadoop.hive.ql.parse.SemanticException; -import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator.Mode; import org.apache.hadoop.hive.ql.udf.generic.GenericUDFUtils.ConversionHelper; import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector; import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorFactory; import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorFactory.ObjectInspectorOptions; -import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory; -import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils; import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo; import org.apache.hadoop.util.ReflectionUtils; -import org.apache.hadoop.io.Writable; /** * This class is a bridge between GenericUDAF and UDAF. @@ -51,6 +47,10 @@ this.udaf = udaf; } + public Class getUDAFClass() { + return udaf.getClass(); + } + @Override public GenericUDAFEvaluator getEvaluator( TypeInfo[] parameters) throws SemanticException { Index: ql/src/java/org/apache/hadoop/hive/ql/udf/UDAFMax.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/udf/UDAFMax.java (revision 896724) +++ ql/src/java/org/apache/hadoop/hive/ql/udf/UDAFMax.java (working copy) @@ -20,6 +20,7 @@ import org.apache.hadoop.hive.ql.exec.UDAF; import org.apache.hadoop.hive.ql.exec.UDAFEvaluator; +import org.apache.hadoop.hive.ql.exec.description; import org.apache.hadoop.hive.serde2.io.DoubleWritable; import org.apache.hadoop.hive.serde2.io.ShortWritable; import org.apache.hadoop.hive.shims.ShimLoader; @@ -29,7 +30,10 @@ import org.apache.hadoop.io.Text; - +@description( + name = "max", + value = "_FUNC_(expr) - Returns the maximum value of expr" + ) public class UDAFMax extends UDAF { static public class MaxShortEvaluator implements UDAFEvaluator {