Index: ql/src/test/results/clientpositive/udf_to_date.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_to_date.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_to_date.q.out (revision 0) @@ -0,0 +1,13 @@ +PREHOOK: query: DESCRIBE FUNCTION to_date +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION to_date +POSTHOOK: type: DESCFUNCTION +to_date(expr) - Extracts the date part of the date or datetime expression expr +PREHOOK: query: DESCRIBE FUNCTION EXTENDED to_date +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED to_date +POSTHOOK: type: DESCFUNCTION +to_date(expr) - Extracts the date part of the date or datetime expression expr +Example: + > SELECT to_date('2009-30-07 04:17:52') FROM src LIMIT 1; + '2009-30-07' Index: ql/src/test/results/clientpositive/udf_regexp_replace.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_regexp_replace.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_regexp_replace.q.out (revision 0) @@ -0,0 +1,13 @@ +PREHOOK: query: DESCRIBE FUNCTION regexp_replace +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION regexp_replace +POSTHOOK: type: DESCFUNCTION +regexp_replace(str, regexp, rep) - replace all substrings of str that match regexp with rep +PREHOOK: query: DESCRIBE FUNCTION EXTENDED regexp_replace +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED regexp_replace +POSTHOOK: type: DESCFUNCTION +regexp_replace(str, regexp, rep) - replace all substrings of str that match regexp with rep +Example: + > SELECT regexp_replace('100-200', '(\d+)', 'num') FROM src LIMIT 1; + 'num-num' Index: ql/src/test/results/clientpositive/udf_date_add.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_date_add.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_date_add.q.out (revision 0) @@ -0,0 +1,14 @@ +PREHOOK: query: DESCRIBE FUNCTION date_add +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION date_add +POSTHOOK: type: DESCFUNCTION +date_add(start_date, num_days) - Returns the date that is num_days after start_date. +PREHOOK: query: DESCRIBE FUNCTION EXTENDED date_add +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED date_add +POSTHOOK: type: DESCFUNCTION +date_add(start_date, num_days) - Returns the date that is num_days after start_date. +start_date is a string in the format 'yyyy-MM-dd HH:mm:ss' or 'yyyy-MM-dd'. num_days is a number. The time part of start_date is ignored. +Example: + > SELECT date_add('2009-30-07', 1) FROM src LIMIT 1; + '2009-31-07' Index: ql/src/test/results/clientpositive/udaf_max.q.out =================================================================== --- ql/src/test/results/clientpositive/udaf_max.q.out (revision 896748) +++ ql/src/test/results/clientpositive/udaf_max.q.out (working copy) @@ -1,20 +0,0 @@ -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/udaf_var_samp.q.out =================================================================== --- ql/src/test/results/clientpositive/udaf_var_samp.q.out (revision 896748) +++ ql/src/test/results/clientpositive/udaf_var_samp.q.out (working copy) @@ -1,20 +0,0 @@ -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_ln.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_ln.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_ln.q.out (revision 0) @@ -0,0 +1,13 @@ +PREHOOK: query: DESCRIBE FUNCTION ln +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION ln +POSTHOOK: type: DESCFUNCTION +ln(x) - Returns the natural logarithm of x +PREHOOK: query: DESCRIBE FUNCTION EXTENDED ln +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED ln +POSTHOOK: type: DESCFUNCTION +ln(x) - Returns the natural logarithm of x +Example: + > SELECT ln(1) FROM src LIMIT 1; + 0 Index: ql/src/test/results/clientpositive/udf_case.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_case.q.out (revision 896748) +++ ql/src/test/results/clientpositive/udf_case.q.out (working copy) @@ -1,15 +1,13 @@ -PREHOOK: query: -- Parsing bug requires us to quote case -DESCRIBE FUNCTION 'case' +PREHOOK: query: DESCRIBE FUNCTION case PREHOOK: type: DESCFUNCTION -POSTHOOK: query: -- Parsing bug requires us to quote case -DESCRIBE FUNCTION 'case' +POSTHOOK: query: DESCRIBE FUNCTION case POSTHOOK: type: DESCFUNCTION -There is no documentation for function case -PREHOOK: query: DESCRIBE FUNCTION EXTENDED 'case' +There is no documentation for function 'case' +PREHOOK: query: DESCRIBE FUNCTION EXTENDED case PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED 'case' +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED case POSTHOOK: type: DESCFUNCTION -There is no documentation for function case +There is no documentation for function 'case' PREHOOK: query: EXPLAIN SELECT CASE 1 WHEN 1 THEN 2 @@ -136,7 +134,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/908511377/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/24130903/10000 POSTHOOK: query: SELECT CASE 1 WHEN 1 THEN 2 WHEN 3 THEN 4 @@ -165,5 +163,5 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/908511377/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/24130903/10000 2 5 15 NULL 20 24 Index: ql/src/test/results/clientpositive/udf_boolean.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_boolean.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_boolean.q.out (revision 0) @@ -0,0 +1,10 @@ +PREHOOK: query: DESCRIBE FUNCTION boolean +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION boolean +POSTHOOK: type: DESCFUNCTION +There is no documentation for function 'boolean' +PREHOOK: query: DESCRIBE FUNCTION EXTENDED boolean +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED boolean +POSTHOOK: type: DESCFUNCTION +There is no documentation for function 'boolean' Index: ql/src/test/results/clientpositive/udf_explode.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_explode.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_explode.q.out (revision 0) @@ -0,0 +1,298 @@ +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 +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF src)) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_FUNCTION explode (TOK_FUNCTION array 1 2 3)) myCol)) (TOK_LIMIT 3))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + src + TableScan + alias: src + Select Operator + expressions: + expr: array(1,2,3) + type: array + outputColumnNames: _col0 + UDTF Operator + function name: explode + Limit + File Output Operator + compressed: false + GlobalTableId: 0 + directory: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/626057626/10001 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + properties: + columns col + serialization.format 1 + columns.types int + Needs Tagging: false + Path -> Alias: + file:/Users/carl/Projects/hd8/hive-trunk/build/ql/test/data/warehouse/src [src] + Path -> Partition: + file:/Users/carl/Projects/hd8/hive-trunk/build/ql/test/data/warehouse/src + Partition + base file name: src + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + properties: + name src + columns.types string:string + serialization.ddl struct src { string key, string value} + serialization.format 1 + columns key,value + bucket_count -1 + 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:/Users/carl/Projects/hd8/hive-trunk/build/ql/test/data/warehouse/src + transient_lastDdlTime 1262858387 + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + properties: + name src + columns.types string:string + serialization.ddl struct src { string key, string value} + serialization.format 1 + columns key,value + bucket_count -1 + 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:/Users/carl/Projects/hd8/hive-trunk/build/ql/test/data/warehouse/src + transient_lastDdlTime 1262858387 + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + name: src + name: src + + Stage: Stage-0 + Fetch Operator + limit: 3 + + +PREHOOK: query: 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 +PREHOOK: type: QUERY +POSTHOOK: query: 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 +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_SUBQUERY (TOK_QUERY (TOK_FROM (TOK_TABREF src)) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_FUNCTION explode (TOK_FUNCTION array 1 2 3)) myCol)) (TOK_LIMIT 3))) a)) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (. (TOK_TABLE_OR_COL a) myCol)) (TOK_SELEXPR (TOK_FUNCTION count 1))) (TOK_GROUPBY (. (TOK_TABLE_OR_COL a) myCol)))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-2 depends on stages: Stage-1 + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + a:src + TableScan + alias: src + Select Operator + expressions: + expr: array(1,2,3) + type: array + outputColumnNames: _col0 + UDTF Operator + function name: explode + Limit + Reduce Output Operator + sort order: + tag: -1 + value expressions: + expr: col + type: int + Needs Tagging: false + Path -> Alias: + file:/Users/carl/Projects/hd8/hive-trunk/build/ql/test/data/warehouse/src [a:src] + Path -> Partition: + file:/Users/carl/Projects/hd8/hive-trunk/build/ql/test/data/warehouse/src + Partition + base file name: src + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + properties: + name src + columns.types string:string + serialization.ddl struct src { string key, string value} + serialization.format 1 + columns key,value + bucket_count -1 + 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:/Users/carl/Projects/hd8/hive-trunk/build/ql/test/data/warehouse/src + transient_lastDdlTime 1262858387 + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + properties: + name src + columns.types string:string + serialization.ddl struct src { string key, string value} + serialization.format 1 + columns key,value + bucket_count -1 + 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:/Users/carl/Projects/hd8/hive-trunk/build/ql/test/data/warehouse/src + transient_lastDdlTime 1262858387 + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + name: src + name: src + Reduce Operator Tree: + Extract + Limit + Select Operator + expressions: + expr: _col0 + type: int + outputColumnNames: _col0 + Group By Operator + aggregations: + expr: count(1) + bucketGroup: false + keys: + expr: _col0 + type: int + mode: hash + outputColumnNames: _col0, _col1 + File Output Operator + compressed: false + GlobalTableId: 0 + directory: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1329975374/10002 + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + properties: + columns _col0,_col1 + columns.types int,bigint + escape.delim \ + + Stage: Stage-2 + Map Reduce + Alias -> Map Operator Tree: + file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1329975374/10002 + Reduce Output Operator + key expressions: + expr: _col0 + type: int + sort order: + + Map-reduce partition columns: + expr: _col0 + type: int + tag: -1 + value expressions: + expr: _col1 + type: bigint + Needs Tagging: false + Path -> Alias: + file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1329975374/10002 [file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1329975374/10002] + Path -> Partition: + file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1329975374/10002 + Partition + base file name: 10002 + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + properties: + columns _col0,_col1 + columns.types int,bigint + escape.delim \ + + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + properties: + columns _col0,_col1 + columns.types int,bigint + escape.delim \ + Reduce Operator Tree: + Group By Operator + aggregations: + expr: count(VALUE._col0) + bucketGroup: false + keys: + expr: KEY._col0 + type: int + mode: mergepartial + outputColumnNames: _col0, _col1 + Select Operator + expressions: + expr: _col0 + type: int + expr: _col1 + type: bigint + outputColumnNames: _col0, _col1 + File Output Operator + compressed: false + GlobalTableId: 0 + directory: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1329975374/10001 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + properties: + columns _col0,_col1 + serialization.format 1 + columns.types int:bigint + + Stage: Stage-0 + Fetch Operator + limit: -1 + + +PREHOOK: query: SELECT explode(array(1,2,3)) AS myCol FROM src LIMIT 3 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/374186866/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:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/374186866/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:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/83813908/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:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/83813908/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:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1571747562/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:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1571747562/10000 +1 1 +2 1 +3 1 Index: ql/src/test/results/clientpositive/udf_when.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_when.q.out (revision 896748) +++ ql/src/test/results/clientpositive/udf_when.q.out (working copy) @@ -1,3 +1,13 @@ +PREHOOK: query: DESCRIBE FUNCTION when +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION when +POSTHOOK: type: DESCFUNCTION +There is no documentation for function 'when' +PREHOOK: query: DESCRIBE FUNCTION EXTENDED when +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED when +POSTHOOK: type: DESCFUNCTION +There is no documentation for function 'when' PREHOOK: query: EXPLAIN SELECT CASE WHEN 1=1 THEN 2 @@ -124,7 +134,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1103797531/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/260148553/10000 POSTHOOK: query: SELECT CASE WHEN 1=1 THEN 2 WHEN 1=3 THEN 4 @@ -153,5 +163,5 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/1103797531/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/260148553/10000 2 9 14 NULL 24 NULL Index: ql/src/test/results/clientpositive/udf_isnull.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_isnull.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_isnull.q.out (revision 0) @@ -0,0 +1,10 @@ +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 Index: ql/src/test/results/clientpositive/udf_floor.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_floor.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_floor.q.out (revision 0) @@ -0,0 +1,15 @@ +PREHOOK: query: DESCRIBE FUNCTION floor +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION floor +POSTHOOK: type: DESCFUNCTION +floor(x) - Find the largest integer not greater than x +PREHOOK: query: DESCRIBE FUNCTION EXTENDED floor +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED floor +POSTHOOK: type: DESCFUNCTION +floor(x) - Find the largest integer not greater than x +Example: + > SELECT floor(-0.1) FROM src LIMIT 1; + -1 + > SELECT floor(5) FROM src LIMIT 1; + 5 Index: ql/src/test/results/clientpositive/udf_month.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_month.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_month.q.out (revision 0) @@ -0,0 +1,16 @@ +PREHOOK: query: DESCRIBE FUNCTION minute +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION minute +POSTHOOK: type: DESCFUNCTION +minute(date) - Returns the minute of date +PREHOOK: query: DESCRIBE FUNCTION EXTENDED minute +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED minute +POSTHOOK: type: DESCFUNCTION +minute(date) - Returns the minute of date +date is a string in the format of 'yyyy-MM-dd HH:mm:ss' or 'HH:mm:ss'. +Example: + > SELECT minute('2009-07-30 12:58:59') FROM src LIMIT 1; + 58 + > SELECT minute('12:58:59') FROM src LIMIT 1; + 58 Index: ql/src/test/results/clientpositive/udaf_variance.q.out =================================================================== --- ql/src/test/results/clientpositive/udaf_variance.q.out (revision 896748) +++ ql/src/test/results/clientpositive/udaf_variance.q.out (working copy) @@ -1,40 +0,0 @@ -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_stddev.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_stddev.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_stddev.q.out (revision 0) @@ -0,0 +1,11 @@ +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 +Synonyms: stddev_pop, std Index: ql/src/test/results/clientpositive/udf_rtrim.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_rtrim.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_rtrim.q.out (revision 0) @@ -0,0 +1,13 @@ +PREHOOK: query: DESCRIBE FUNCTION rtrim +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION rtrim +POSTHOOK: type: DESCFUNCTION +rtrim(str) - Removes the trailing space characters from str +PREHOOK: query: DESCRIBE FUNCTION EXTENDED rtrim +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED rtrim +POSTHOOK: type: DESCFUNCTION +rtrim(str) - Removes the trailing space characters from str +Example: + > SELECT rtrim('facebook ') FROM src LIMIT 1; + 'facebook' Index: ql/src/test/results/clientpositive/udf_tinyint.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_tinyint.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_tinyint.q.out (revision 0) @@ -0,0 +1,10 @@ +PREHOOK: query: DESCRIBE FUNCTION tinyint +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION tinyint +POSTHOOK: type: DESCFUNCTION +There is no documentation for function 'tinyint' +PREHOOK: query: DESCRIBE FUNCTION EXTENDED tinyint +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED tinyint +POSTHOOK: type: DESCFUNCTION +There is no documentation for function 'tinyint' Index: ql/src/test/results/clientpositive/udf_bitwise_or.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_bitwise_or.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_bitwise_or.q.out (revision 0) @@ -0,0 +1,13 @@ +PREHOOK: query: DESCRIBE FUNCTION | +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION | +POSTHOOK: type: DESCFUNCTION +a | b - Bitwise or +PREHOOK: query: DESCRIBE FUNCTION EXTENDED | +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED | +POSTHOOK: type: DESCFUNCTION +a | b - Bitwise or +Example: + > SELECT 3 | 5 FROM src LIMIT 1; + 7 Index: ql/src/test/results/clientpositive/udf_lower.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_lower.q.out (revision 896748) +++ ql/src/test/results/clientpositive/udf_lower.q.out (working copy) @@ -8,6 +8,7 @@ POSTHOOK: query: DESCRIBE FUNCTION EXTENDED lower POSTHOOK: type: DESCFUNCTION lower(str) - Returns str with all characters changed to lowercase +Synonyms: lcase Example: > SELECT lower('Facebook') FROM src LIMIT 1; 'facebook' @@ -61,9 +62,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:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1887044838/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1144815521/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:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1887044838/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1144815521/10000 abc 123 ABC 123 Index: ql/src/test/results/clientpositive/udf_sum.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_sum.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_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/show_functions.q.out =================================================================== --- ql/src/test/results/clientpositive/show_functions.q.out (revision 896748) +++ ql/src/test/results/clientpositive/show_functions.q.out (working copy) @@ -3,6 +3,7 @@ POSTHOOK: query: SHOW FUNCTIONS POSTHOOK: type: SHOWFUNCTIONS ! +!= % & * Index: ql/src/test/results/clientpositive/udf_ceiling.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_ceiling.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_ceiling.q.out (revision 0) @@ -0,0 +1,16 @@ +PREHOOK: query: DESCRIBE FUNCTION ceiling +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION ceiling +POSTHOOK: type: DESCFUNCTION +ceiling(x) - Find the smallest integer not smaller than x +PREHOOK: query: DESCRIBE FUNCTION EXTENDED ceiling +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED ceiling +POSTHOOK: type: DESCFUNCTION +ceiling(x) - Find the smallest integer not smaller than x +Synonyms: ceil +Example: + > SELECT ceiling(-0.1) FROM src LIMIT 1; + 0 + > SELECT ceiling(5) FROM src LIMIT 1; + 5 Index: ql/src/test/results/clientpositive/udf_substr.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_substr.q.out (revision 896748) +++ ql/src/test/results/clientpositive/udf_substr.q.out (working copy) @@ -8,6 +8,7 @@ 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 +Synonyms: substring 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; @@ -23,7 +24,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/385391222/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1212301644/10000 POSTHOOK: query: SELECT substr(null, 1), substr(null, 1, 1), substr('ABC', null), substr('ABC', null, 1), @@ -31,7 +32,7 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/385391222/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1212301644/10000 NULL NULL NULL NULL NULL PREHOOK: query: SELECT substr('ABC', 1, 0), substr('ABC', 1, -1), substr('ABC', 2, -100), @@ -43,7 +44,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1555439693/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/975822262/10000 POSTHOOK: query: SELECT substr('ABC', 1, 0), substr('ABC', 1, -1), substr('ABC', 2, -100), substr('ABC', 4), substr('ABC', 4, 100), @@ -54,7 +55,7 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1555439693/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/975822262/10000 PREHOOK: query: SELECT substr('ABCDEFG', 3, 4), substr('ABCDEFG', -5, 4), @@ -65,7 +66,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1351450825/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/967105187/10000 POSTHOOK: query: SELECT substr('ABCDEFG', 3, 4), substr('ABCDEFG', -5, 4), substr('ABCDEFG', 3), substr('ABCDEFG', -5), @@ -75,7 +76,7 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1351450825/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/967105187/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), @@ -86,7 +87,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1909380959/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/459634365/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), @@ -96,7 +97,7 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1909380959/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/459634365/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), @@ -106,7 +107,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/606649550/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/563894102/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), @@ -115,7 +116,7 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/606649550/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/563894102/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 @@ -127,7 +128,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1053388822/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/833687667/10000 POSTHOOK: query: -- substring() is a synonim of substr(), so just perform some basic tests SELECT substring('ABCDEFG', 3, 4), substring('ABCDEFG', -5, 4), @@ -138,5 +139,5 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1053388822/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/833687667/10000 CDEF CDEF CDEFG CDEFG ABC ABC BC C ABC BC A A A Index: ql/src/test/results/clientpositive/udf_count.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_count.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_count.q.out (revision 0) @@ -0,0 +1,10 @@ +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/udf_ucase.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_ucase.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_ucase.q.out (revision 0) @@ -0,0 +1,14 @@ +PREHOOK: query: DESCRIBE FUNCTION ucase +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION ucase +POSTHOOK: type: DESCFUNCTION +ucase(str) - Returns str with all characters changed to uppercase +PREHOOK: query: DESCRIBE FUNCTION EXTENDED ucase +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED ucase +POSTHOOK: type: DESCFUNCTION +ucase(str) - Returns str with all characters changed to uppercase +Synonyms: upper +Example: + > SELECT ucase('Facebook') FROM src LIMIT 1; + 'FACEBOOK' Index: ql/src/test/results/clientpositive/udf_positive.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_positive.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_positive.q.out (revision 0) @@ -0,0 +1,22 @@ +PREHOOK: query: DESCRIBE FUNCTION positive +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION positive +POSTHOOK: type: DESCFUNCTION +positive a - Returns a +PREHOOK: query: DESCRIBE FUNCTION EXTENDED positive +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED positive +POSTHOOK: type: DESCFUNCTION +positive a - Returns a +PREHOOK: query: -- synonym +DESCRIBE FUNCTION + +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: -- synonym +DESCRIBE FUNCTION + +POSTHOOK: type: DESCFUNCTION +a + b - Returns a+b +PREHOOK: query: DESCRIBE FUNCTION EXTENDED + +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED + +POSTHOOK: type: DESCFUNCTION +a + b - Returns a+b Index: ql/src/test/results/clientpositive/udf_var_samp.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_var_samp.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_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_ceil.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_ceil.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_ceil.q.out (revision 0) @@ -0,0 +1,16 @@ +PREHOOK: query: DESCRIBE FUNCTION ceil +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION ceil +POSTHOOK: type: DESCFUNCTION +ceil(x) - Find the smallest integer not smaller than x +PREHOOK: query: DESCRIBE FUNCTION EXTENDED ceil +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED ceil +POSTHOOK: type: DESCFUNCTION +ceil(x) - Find the smallest integer not smaller than x +Synonyms: ceiling +Example: + > SELECT ceil(-0.1) FROM src LIMIT 1; + 0 + > SELECT ceil(5) FROM src LIMIT 1; + 5 Index: ql/src/test/results/clientpositive/udf_substring.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_substring.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_substring.q.out (revision 0) @@ -0,0 +1,21 @@ +PREHOOK: query: -- Synonym. See udf_substr.q +DESCRIBE FUNCTION substring +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: -- Synonym. See udf_substr.q +DESCRIBE FUNCTION substring +POSTHOOK: type: DESCFUNCTION +substring(str, pos[, len]) - returns the substring of str that starts at pos and is of length len +PREHOOK: query: DESCRIBE FUNCTION EXTENDED substring +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED substring +POSTHOOK: type: DESCFUNCTION +substring(str, pos[, len]) - returns the substring of str that starts at pos and is of length len +Synonyms: substr +pos is a 1-based index. If pos<0 the starting position is determined by counting backwards from the end of str. +Example: + > SELECT substring('Facebook', 5) FROM src LIMIT 1; + 'book' + > SELECT substring('Facebook', -5) FROM src LIMIT 1; + 'ebook' + > SELECT substring('Facebook', 5, 1) FROM src LIMIT 1; + 'b' Index: ql/src/test/results/clientpositive/udf_min.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_min.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_min.q.out (revision 0) @@ -0,0 +1,10 @@ +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_smallint.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_smallint.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_smallint.q.out (revision 0) @@ -0,0 +1,10 @@ +PREHOOK: query: DESCRIBE FUNCTION smallint +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION smallint +POSTHOOK: type: DESCFUNCTION +There is no documentation for function 'smallint' +PREHOOK: query: DESCRIBE FUNCTION EXTENDED smallint +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED smallint +POSTHOOK: type: DESCFUNCTION +There is no documentation for function 'smallint' Index: ql/src/test/results/clientpositive/udf_add.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_add.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_add.q.out (revision 0) @@ -0,0 +1,10 @@ +PREHOOK: query: DESCRIBE FUNCTION + +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION + +POSTHOOK: type: DESCFUNCTION +a + b - Returns a+b +PREHOOK: query: DESCRIBE FUNCTION EXTENDED + +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED + +POSTHOOK: type: DESCFUNCTION +a + b - Returns a+b Index: ql/src/test/results/clientpositive/udf_sqrt.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_sqrt.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_sqrt.q.out (revision 0) @@ -0,0 +1,13 @@ +PREHOOK: query: DESCRIBE FUNCTION sqrt +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION sqrt +POSTHOOK: type: DESCFUNCTION +sqrt(x) - returns the square root of x +PREHOOK: query: DESCRIBE FUNCTION EXTENDED sqrt +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED sqrt +POSTHOOK: type: DESCFUNCTION +sqrt(x) - returns the square root of x +Example: + > SELECT sqrt(4) FROM src LIMIT 1; + 2 Index: ql/src/test/results/clientpositive/udf_regexp.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_regexp.q.out (revision 896748) +++ ql/src/test/results/clientpositive/udf_regexp.q.out (working copy) @@ -8,6 +8,7 @@ POSTHOOK: query: DESCRIBE FUNCTION EXTENDED regexp POSTHOOK: type: DESCFUNCTION str regexp regexp - Returns true if str matches regexp and false otherwise +Synonyms: rlike Example: > SELECT 'fb' regexp '.*' FROM src LIMIT 1; true @@ -16,11 +17,11 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/pyang/trunk/VENDOR.hive/trunk/build/ql/tmp/852993560/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1188479337/10000 POSTHOOK: query: SELECT 'fofo' REGEXP '^fo', 'fo\no' REGEXP '^fo\no$', 'Bn' REGEXP '^Ba*n', 'afofo' REGEXP 'fo', 'afofo' REGEXP '^fo', 'Baan' REGEXP '^Ba?n', 'axe' REGEXP 'pi|apa', 'pip' REGEXP '^(pi)*$' FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/pyang/trunk/VENDOR.hive/trunk/build/ql/tmp/852993560/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1188479337/10000 true true true true false false false false Index: ql/src/test/results/clientpositive/udf_avg.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_avg.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_avg.q.out (revision 0) @@ -0,0 +1,10 @@ +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_array.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_array.q.out (revision 896748) +++ ql/src/test/results/clientpositive/udf_array.q.out (working copy) @@ -1,13 +1,11 @@ -PREHOOK: query: -- Parsing bug requires us to quote array -DESCRIBE FUNCTION 'array' +PREHOOK: query: DESCRIBE FUNCTION array PREHOOK: type: DESCFUNCTION -POSTHOOK: query: -- Parsing bug requires us to quote array -DESCRIBE FUNCTION 'array' +POSTHOOK: query: DESCRIBE FUNCTION array POSTHOOK: type: DESCFUNCTION array(n0, n1...) - Creates an array with the given elements -PREHOOK: query: DESCRIBE FUNCTION EXTENDED 'array' +PREHOOK: query: DESCRIBE FUNCTION EXTENDED array PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED 'array' +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], @@ -64,10 +62,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:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1972672782/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1915910537/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:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1972672782/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1915910537/10000 [] NULL [1,2,3] 3 ["1","a","2","3"] 2 2 Index: ql/src/test/results/clientpositive/udf_lpad.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_lpad.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_lpad.q.out (revision 0) @@ -0,0 +1,80 @@ +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: EXPLAIN SELECT + lpad('hi', 1, '?'), + lpad('hi', 5, '.'), + lpad('hi', 6, '123') +FROM src LIMIT 1 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT + lpad('hi', 1, '?'), + lpad('hi', 5, '.'), + lpad('hi', 6, '123') +FROM src LIMIT 1 +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF src)) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_FUNCTION lpad 'hi' 1 '?')) (TOK_SELEXPR (TOK_FUNCTION lpad 'hi' 5 '.')) (TOK_SELEXPR (TOK_FUNCTION lpad 'hi' 6 '123'))) (TOK_LIMIT 1))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + src + TableScan + alias: src + Select Operator + expressions: + expr: lpad('hi', 1, '?') + type: string + expr: lpad('hi', 5, '.') + type: string + expr: lpad('hi', 6, '123') + type: string + outputColumnNames: _col0, _col1, _col2 + Limit + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: 1 + + +PREHOOK: query: SELECT + lpad('hi', 1, '?'), + lpad('hi', 5, '.'), + lpad('hi', 6, '123') +FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1156683769/10000 +POSTHOOK: query: SELECT + lpad('hi', 1, '?'), + lpad('hi', 5, '.'), + lpad('hi', 6, '123') +FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1156683769/10000 +h ...hi 1231hi Index: ql/src/test/results/clientpositive/udf_bitwise_not.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_bitwise_not.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_bitwise_not.q.out (revision 0) @@ -0,0 +1,13 @@ +PREHOOK: query: DESCRIBE FUNCTION ~ +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION ~ +POSTHOOK: type: DESCFUNCTION +~ n - Bitwise not +PREHOOK: query: DESCRIBE FUNCTION EXTENDED ~ +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED ~ +POSTHOOK: type: DESCFUNCTION +~ n - Bitwise not +Example: + > SELECT ~ 0 FROM src LIMIT 1; + -1 Index: ql/src/test/results/clientpositive/udf_ltrim.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_ltrim.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_ltrim.q.out (revision 0) @@ -0,0 +1,13 @@ +PREHOOK: query: DESCRIBE FUNCTION ltrim +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION ltrim +POSTHOOK: type: DESCFUNCTION +ltrim(str) - Removes the leading space characters from str +PREHOOK: query: DESCRIBE FUNCTION EXTENDED ltrim +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED ltrim +POSTHOOK: type: DESCFUNCTION +ltrim(str) - Removes the leading space characters from str +Example: + > SELECT ltrim(' facebook') FROM src LIMIT 1; + 'facebook' Index: ql/src/test/results/clientpositive/udf_variance.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_variance.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_variance.q.out (revision 0) @@ -0,0 +1,44 @@ +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 +Synonyms: var_pop +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 +Synonyms: variance +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 +Synonyms: var_pop +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 +Synonyms: variance Index: ql/src/test/results/clientpositive/udf_bitwise_and.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_bitwise_and.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_bitwise_and.q.out (revision 0) @@ -0,0 +1,13 @@ +PREHOOK: query: DESCRIBE FUNCTION & +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION & +POSTHOOK: type: DESCFUNCTION +a & b - Bitwise and +PREHOOK: query: DESCRIBE FUNCTION EXTENDED & +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED & +POSTHOOK: type: DESCFUNCTION +a & b - Bitwise and +Example: + > SELECT 3 & 5 FROM src LIMIT 1; + 1 Index: ql/src/test/results/clientpositive/udf_std.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_std.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_std.q.out (revision 0) @@ -0,0 +1,11 @@ +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 +Synonyms: stddev_pop, stddev Index: ql/src/test/results/clientpositive/udf_var_pop.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_var_pop.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_var_pop.q.out (revision 0) @@ -0,0 +1,11 @@ +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 +Synonyms: variance Index: ql/src/test/results/clientpositive/udf_day.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_day.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_day.q.out (revision 0) @@ -0,0 +1,15 @@ +PREHOOK: query: DESCRIBE FUNCTION day +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION day +POSTHOOK: type: DESCFUNCTION +day(date) - Returns the date of the month of date +PREHOOK: query: DESCRIBE FUNCTION EXTENDED day +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED day +POSTHOOK: type: DESCFUNCTION +day(date) - Returns the date of the month of date +Synonyms: dayofmonth +date is a string in the format of 'yyyy-MM-dd HH:mm:ss' or 'yyyy-MM-dd'. +Example: + > SELECT day('2009-30-07', 1) FROM src LIMIT 1; + 30 Index: ql/src/test/results/clientpositive/udf_lessthan.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_lessthan.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_lessthan.q.out (revision 0) @@ -0,0 +1,10 @@ +PREHOOK: query: DESCRIBE FUNCTION < +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION < +POSTHOOK: type: DESCFUNCTION +a < b - Returns TRUE if a is less than b +PREHOOK: query: DESCRIBE FUNCTION EXTENDED < +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED < +POSTHOOK: type: DESCFUNCTION +a < b - Returns TRUE if a is less than b Index: ql/src/test/results/clientpositive/udf_log10.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_log10.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_log10.q.out (revision 0) @@ -0,0 +1,13 @@ +PREHOOK: query: DESCRIBE FUNCTION log10 +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION log10 +POSTHOOK: type: DESCFUNCTION +log10(x) - Returns the logarithm of x with base 10 +PREHOOK: query: DESCRIBE FUNCTION EXTENDED log10 +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED log10 +POSTHOOK: type: DESCFUNCTION +log10(x) - Returns the logarithm of x with base 10 +Example: + > SELECT log10(10) FROM src LIMIT 1; + 1 Index: ql/src/test/results/clientpositive/udf_minute.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_minute.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_minute.q.out (revision 0) @@ -0,0 +1,78 @@ +PREHOOK: query: DESCRIBE FUNCTION minute +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION minute +POSTHOOK: type: DESCFUNCTION +minute(date) - Returns the minute of date +PREHOOK: query: DESCRIBE FUNCTION EXTENDED minute +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED minute +POSTHOOK: type: DESCFUNCTION +minute(date) - Returns the minute of date +date is a string in the format of 'yyyy-MM-dd HH:mm:ss' or 'HH:mm:ss'. +Example: + > SELECT minute('2009-07-30 12:58:59') FROM src LIMIT 1; + 58 + > SELECT minute('12:58:59') FROM src LIMIT 1; + 58 +PREHOOK: query: EXPLAIN +SELECT minute('2009-08-07 13:14:15'), minute('13:14:15'), minute('2009-08-07') +FROM src WHERE key = 86 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN +SELECT minute('2009-08-07 13:14:15'), minute('13:14:15'), minute('2009-08-07') +FROM src WHERE key = 86 +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF src)) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_FUNCTION minute '2009-08-07 13:14:15')) (TOK_SELEXPR (TOK_FUNCTION minute '13:14:15')) (TOK_SELEXPR (TOK_FUNCTION minute '2009-08-07'))) (TOK_WHERE (= (TOK_TABLE_OR_COL key) 86)))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + src + TableScan + alias: src + Filter Operator + predicate: + expr: (key = 86) + type: boolean + Filter Operator + predicate: + expr: (key = 86) + type: boolean + Select Operator + expressions: + expr: minute('2009-08-07 13:14:15') + type: int + expr: minute('13:14:15') + type: int + expr: minute('2009-08-07') + type: int + outputColumnNames: _col0, _col1, _col2 + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: -1 + + +PREHOOK: query: SELECT minute('2009-08-07 13:14:15'), minute('13:14:15'), minute('2009-08-07') +FROM src WHERE key = 86 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/113919951/10000 +POSTHOOK: query: SELECT minute('2009-08-07 13:14:15'), minute('13:14:15'), minute('2009-08-07') +FROM src WHERE key = 86 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/113919951/10000 +14 14 NULL Index: ql/src/test/results/clientpositive/udf_datediff.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_datediff.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_datediff.q.out (revision 0) @@ -0,0 +1,14 @@ +PREHOOK: query: DESCRIBE FUNCTION datediff +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION datediff +POSTHOOK: type: DESCFUNCTION +datediff(date1, date2) - Returns the number of days between date1 and date2 +PREHOOK: query: DESCRIBE FUNCTION EXTENDED datediff +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED datediff +POSTHOOK: type: DESCFUNCTION +datediff(date1, date2) - Returns the number of days between date1 and date2 +date1 and date2 are strings in the format 'yyyy-MM-dd HH:mm:ss' or 'yyyy-MM-dd'. The time parts are ignored.If date1 is earlier than date2, the result is negative. +Example: + > SELECT datediff('2009-30-07', '2009-31-07') FROM src LIMIT 1; + 1 Index: ql/src/test/results/clientpositive/udf_index.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_index.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_index.q.out (revision 0) @@ -0,0 +1,10 @@ +PREHOOK: query: DESCRIBE FUNCTION index +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION index +POSTHOOK: type: DESCFUNCTION +index(a, n) - Returns the n-th element of a +PREHOOK: query: DESCRIBE FUNCTION EXTENDED index +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED index +POSTHOOK: type: DESCFUNCTION +index(a, n) - Returns the n-th element of a Index: ql/src/test/results/clientpositive/udf_lpad_rpad.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_lpad_rpad.q.out (revision 896748) +++ ql/src/test/results/clientpositive/udf_lpad_rpad.q.out (working copy) @@ -1,160 +0,0 @@ -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, '.'), - lpad('hi', 6, '123') -FROM src LIMIT 1 -PREHOOK: type: QUERY -POSTHOOK: query: EXPLAIN SELECT - lpad('hi', 1, '?'), - lpad('hi', 5, '.'), - lpad('hi', 6, '123') -FROM src LIMIT 1 -POSTHOOK: type: QUERY -ABSTRACT SYNTAX TREE: - (TOK_QUERY (TOK_FROM (TOK_TABREF src)) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_FUNCTION lpad 'hi' 1 '?')) (TOK_SELEXPR (TOK_FUNCTION lpad 'hi' 5 '.')) (TOK_SELEXPR (TOK_FUNCTION lpad 'hi' 6 '123'))) (TOK_LIMIT 1))) - -STAGE DEPENDENCIES: - Stage-1 is a root stage - Stage-0 is a root stage - -STAGE PLANS: - Stage: Stage-1 - Map Reduce - Alias -> Map Operator Tree: - src - TableScan - alias: src - Select Operator - expressions: - expr: lpad('hi', 1, '?') - type: string - expr: lpad('hi', 5, '.') - type: string - expr: lpad('hi', 6, '123') - type: string - outputColumnNames: _col0, _col1, _col2 - Limit - File Output Operator - compressed: false - GlobalTableId: 0 - table: - input format: org.apache.hadoop.mapred.TextInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat - - Stage: Stage-0 - Fetch Operator - limit: 1 - - -PREHOOK: query: SELECT - lpad('hi', 1, '?'), - lpad('hi', 5, '.'), - lpad('hi', 6, '123') -FROM src LIMIT 1 -PREHOOK: type: QUERY -PREHOOK: Input: default@src -PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/361452356/10000 -POSTHOOK: query: SELECT - lpad('hi', 1, '?'), - lpad('hi', 5, '.'), - lpad('hi', 6, '123') -FROM src LIMIT 1 -POSTHOOK: type: QUERY -POSTHOOK: Input: default@src -POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/361452356/10000 -h ...hi 1231hi -PREHOOK: query: EXPLAIN SELECT - rpad('hi', 1, '?'), - rpad('hi', 5, '.'), - rpad('hi', 6, '123') -FROM src LIMIT 1 -PREHOOK: type: QUERY -POSTHOOK: query: EXPLAIN SELECT - rpad('hi', 1, '?'), - rpad('hi', 5, '.'), - rpad('hi', 6, '123') -FROM src LIMIT 1 -POSTHOOK: type: QUERY -ABSTRACT SYNTAX TREE: - (TOK_QUERY (TOK_FROM (TOK_TABREF src)) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_FUNCTION rpad 'hi' 1 '?')) (TOK_SELEXPR (TOK_FUNCTION rpad 'hi' 5 '.')) (TOK_SELEXPR (TOK_FUNCTION rpad 'hi' 6 '123'))) (TOK_LIMIT 1))) - -STAGE DEPENDENCIES: - Stage-1 is a root stage - Stage-0 is a root stage - -STAGE PLANS: - Stage: Stage-1 - Map Reduce - Alias -> Map Operator Tree: - src - TableScan - alias: src - Select Operator - expressions: - expr: rpad('hi', 1, '?') - type: string - expr: rpad('hi', 5, '.') - type: string - expr: rpad('hi', 6, '123') - type: string - outputColumnNames: _col0, _col1, _col2 - Limit - File Output Operator - compressed: false - GlobalTableId: 0 - table: - input format: org.apache.hadoop.mapred.TextInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat - - Stage: Stage-0 - Fetch Operator - limit: 1 - - -PREHOOK: query: SELECT - rpad('hi', 1, '?'), - rpad('hi', 5, '.'), - rpad('hi', 6, '123') -FROM src LIMIT 1 -PREHOOK: type: QUERY -PREHOOK: Input: default@src -PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1704470803/10000 -POSTHOOK: query: SELECT - rpad('hi', 1, '?'), - rpad('hi', 5, '.'), - rpad('hi', 6, '123') -FROM src LIMIT 1 -POSTHOOK: type: QUERY -POSTHOOK: Input: default@src -POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1704470803/10000 -h hi... hi1231 Index: ql/src/test/results/clientpositive/udf_greaterthanorequal.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_greaterthanorequal.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_greaterthanorequal.q.out (revision 0) @@ -0,0 +1,10 @@ +PREHOOK: query: DESCRIBE FUNCTION >= +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION >= +POSTHOOK: type: DESCFUNCTION +a >= b - Returns TRUE if b is not smaller than a +PREHOOK: query: DESCRIBE FUNCTION EXTENDED >= +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED >= +POSTHOOK: type: DESCFUNCTION +a >= b - Returns TRUE if b is not smaller than a Index: ql/src/test/results/clientpositive/udf_map.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_map.q.out (revision 896748) +++ ql/src/test/results/clientpositive/udf_map.q.out (working copy) @@ -1,13 +1,11 @@ -PREHOOK: query: -- Parsing bug requires us to quote map -DESCRIBE FUNCTION 'map' +PREHOOK: query: DESCRIBE FUNCTION map PREHOOK: type: DESCFUNCTION -POSTHOOK: query: -- Parsing bug requires us to quote map -DESCRIBE FUNCTION 'map' +POSTHOOK: query: 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: query: DESCRIBE FUNCTION EXTENDED map PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED 'map' +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"), @@ -62,10 +60,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:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1878909043/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/304295935/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:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1878909043/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/304295935/10000 {} {1:"a",2:"b",3:"c"} {"1":"2","a":"b"} b b a Index: ql/src/test/results/clientpositive/udf_max.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_max.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_max.q.out (revision 0) @@ -0,0 +1,10 @@ +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_subtract.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_subtract.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_subtract.q.out (revision 0) @@ -0,0 +1,10 @@ +PREHOOK: query: DESCRIBE FUNCTION - +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION - +POSTHOOK: type: DESCFUNCTION +a - b - Returns the difference a-b +PREHOOK: query: DESCRIBE FUNCTION EXTENDED - +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED - +POSTHOOK: type: DESCFUNCTION +a - b - Returns the difference a-b Index: ql/src/test/results/clientpositive/udf_notequal.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_notequal.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_notequal.q.out (revision 0) @@ -0,0 +1,1146 @@ +PREHOOK: query: DESCRIBE FUNCTION <> +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION <> +POSTHOOK: type: DESCFUNCTION +a <> b - Returns TRUE if a is not equal to b +PREHOOK: query: DESCRIBE FUNCTION EXTENDED <> +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED <> +POSTHOOK: type: DESCFUNCTION +a <> b - Returns TRUE if a is not equal to b +Synonyms: != +PREHOOK: query: DESCRIBE FUNCTION != +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION != +POSTHOOK: type: DESCFUNCTION +a != b - Returns TRUE if a is not equal to b +PREHOOK: query: DESCRIBE FUNCTION EXTENDED != +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED != +POSTHOOK: type: DESCFUNCTION +a != b - Returns TRUE if a is not equal to b +Synonyms: <> +PREHOOK: query: EXPLAIN +SELECT key, value +FROM src +WHERE key <> '302' +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN +SELECT key, value +FROM src +WHERE key <> '302' +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF src)) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL key)) (TOK_SELEXPR (TOK_TABLE_OR_COL value))) (TOK_WHERE (<> (TOK_TABLE_OR_COL key) '302')))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + src + TableScan + alias: src + Filter Operator + predicate: + expr: (key <> '302') + type: boolean + Filter Operator + predicate: + expr: (key <> '302') + type: boolean + Select Operator + expressions: + expr: key + type: string + expr: value + type: string + outputColumnNames: _col0, _col1 + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: -1 + + +PREHOOK: query: SELECT key, value +FROM src +WHERE key <> '302' +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/250131163/10000 +POSTHOOK: query: SELECT key, value +FROM src +WHERE key <> '302' +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/250131163/10000 +238 val_238 +86 val_86 +311 val_311 +27 val_27 +165 val_165 +409 val_409 +255 val_255 +278 val_278 +98 val_98 +484 val_484 +265 val_265 +193 val_193 +401 val_401 +150 val_150 +273 val_273 +224 val_224 +369 val_369 +66 val_66 +128 val_128 +213 val_213 +146 val_146 +406 val_406 +429 val_429 +374 val_374 +152 val_152 +469 val_469 +145 val_145 +495 val_495 +37 val_37 +327 val_327 +281 val_281 +277 val_277 +209 val_209 +15 val_15 +82 val_82 +403 val_403 +166 val_166 +417 val_417 +430 val_430 +252 val_252 +292 val_292 +219 val_219 +287 val_287 +153 val_153 +193 val_193 +338 val_338 +446 val_446 +459 val_459 +394 val_394 +237 val_237 +482 val_482 +174 val_174 +413 val_413 +494 val_494 +207 val_207 +199 val_199 +466 val_466 +208 val_208 +174 val_174 +399 val_399 +396 val_396 +247 val_247 +417 val_417 +489 val_489 +162 val_162 +377 val_377 +397 val_397 +309 val_309 +365 val_365 +266 val_266 +439 val_439 +342 val_342 +367 val_367 +325 val_325 +167 val_167 +195 val_195 +475 val_475 +17 val_17 +113 val_113 +155 val_155 +203 val_203 +339 val_339 +0 val_0 +455 val_455 +128 val_128 +311 val_311 +316 val_316 +57 val_57 +205 val_205 +149 val_149 +438 val_438 +345 val_345 +129 val_129 +170 val_170 +20 val_20 +489 val_489 +157 val_157 +378 val_378 +221 val_221 +92 val_92 +111 val_111 +47 val_47 +72 val_72 +4 val_4 +280 val_280 +35 val_35 +427 val_427 +277 val_277 +208 val_208 +356 val_356 +399 val_399 +169 val_169 +382 val_382 +498 val_498 +125 val_125 +386 val_386 +437 val_437 +469 val_469 +192 val_192 +286 val_286 +187 val_187 +176 val_176 +54 val_54 +459 val_459 +51 val_51 +138 val_138 +103 val_103 +239 val_239 +213 val_213 +216 val_216 +430 val_430 +278 val_278 +176 val_176 +289 val_289 +221 val_221 +65 val_65 +318 val_318 +332 val_332 +311 val_311 +275 val_275 +137 val_137 +241 val_241 +83 val_83 +333 val_333 +180 val_180 +284 val_284 +12 val_12 +230 val_230 +181 val_181 +67 val_67 +260 val_260 +404 val_404 +384 val_384 +489 val_489 +353 val_353 +373 val_373 +272 val_272 +138 val_138 +217 val_217 +84 val_84 +348 val_348 +466 val_466 +58 val_58 +8 val_8 +411 val_411 +230 val_230 +208 val_208 +348 val_348 +24 val_24 +463 val_463 +431 val_431 +179 val_179 +172 val_172 +42 val_42 +129 val_129 +158 val_158 +119 val_119 +496 val_496 +0 val_0 +322 val_322 +197 val_197 +468 val_468 +393 val_393 +454 val_454 +100 val_100 +298 val_298 +199 val_199 +191 val_191 +418 val_418 +96 val_96 +26 val_26 +165 val_165 +327 val_327 +230 val_230 +205 val_205 +120 val_120 +131 val_131 +51 val_51 +404 val_404 +43 val_43 +436 val_436 +156 val_156 +469 val_469 +468 val_468 +308 val_308 +95 val_95 +196 val_196 +288 val_288 +481 val_481 +457 val_457 +98 val_98 +282 val_282 +197 val_197 +187 val_187 +318 val_318 +318 val_318 +409 val_409 +470 val_470 +137 val_137 +369 val_369 +316 val_316 +169 val_169 +413 val_413 +85 val_85 +77 val_77 +0 val_0 +490 val_490 +87 val_87 +364 val_364 +179 val_179 +118 val_118 +134 val_134 +395 val_395 +282 val_282 +138 val_138 +238 val_238 +419 val_419 +15 val_15 +118 val_118 +72 val_72 +90 val_90 +307 val_307 +19 val_19 +435 val_435 +10 val_10 +277 val_277 +273 val_273 +306 val_306 +224 val_224 +309 val_309 +389 val_389 +327 val_327 +242 val_242 +369 val_369 +392 val_392 +272 val_272 +331 val_331 +401 val_401 +242 val_242 +452 val_452 +177 val_177 +226 val_226 +5 val_5 +497 val_497 +402 val_402 +396 val_396 +317 val_317 +395 val_395 +58 val_58 +35 val_35 +336 val_336 +95 val_95 +11 val_11 +168 val_168 +34 val_34 +229 val_229 +233 val_233 +143 val_143 +472 val_472 +322 val_322 +498 val_498 +160 val_160 +195 val_195 +42 val_42 +321 val_321 +430 val_430 +119 val_119 +489 val_489 +458 val_458 +78 val_78 +76 val_76 +41 val_41 +223 val_223 +492 val_492 +149 val_149 +449 val_449 +218 val_218 +228 val_228 +138 val_138 +453 val_453 +30 val_30 +209 val_209 +64 val_64 +468 val_468 +76 val_76 +74 val_74 +342 val_342 +69 val_69 +230 val_230 +33 val_33 +368 val_368 +103 val_103 +296 val_296 +113 val_113 +216 val_216 +367 val_367 +344 val_344 +167 val_167 +274 val_274 +219 val_219 +239 val_239 +485 val_485 +116 val_116 +223 val_223 +256 val_256 +263 val_263 +70 val_70 +487 val_487 +480 val_480 +401 val_401 +288 val_288 +191 val_191 +5 val_5 +244 val_244 +438 val_438 +128 val_128 +467 val_467 +432 val_432 +202 val_202 +316 val_316 +229 val_229 +469 val_469 +463 val_463 +280 val_280 +2 val_2 +35 val_35 +283 val_283 +331 val_331 +235 val_235 +80 val_80 +44 val_44 +193 val_193 +321 val_321 +335 val_335 +104 val_104 +466 val_466 +366 val_366 +175 val_175 +403 val_403 +483 val_483 +53 val_53 +105 val_105 +257 val_257 +406 val_406 +409 val_409 +190 val_190 +406 val_406 +401 val_401 +114 val_114 +258 val_258 +90 val_90 +203 val_203 +262 val_262 +348 val_348 +424 val_424 +12 val_12 +396 val_396 +201 val_201 +217 val_217 +164 val_164 +431 val_431 +454 val_454 +478 val_478 +298 val_298 +125 val_125 +431 val_431 +164 val_164 +424 val_424 +187 val_187 +382 val_382 +5 val_5 +70 val_70 +397 val_397 +480 val_480 +291 val_291 +24 val_24 +351 val_351 +255 val_255 +104 val_104 +70 val_70 +163 val_163 +438 val_438 +119 val_119 +414 val_414 +200 val_200 +491 val_491 +237 val_237 +439 val_439 +360 val_360 +248 val_248 +479 val_479 +305 val_305 +417 val_417 +199 val_199 +444 val_444 +120 val_120 +429 val_429 +169 val_169 +443 val_443 +323 val_323 +325 val_325 +277 val_277 +230 val_230 +478 val_478 +178 val_178 +468 val_468 +310 val_310 +317 val_317 +333 val_333 +493 val_493 +460 val_460 +207 val_207 +249 val_249 +265 val_265 +480 val_480 +83 val_83 +136 val_136 +353 val_353 +172 val_172 +214 val_214 +462 val_462 +233 val_233 +406 val_406 +133 val_133 +175 val_175 +189 val_189 +454 val_454 +375 val_375 +401 val_401 +421 val_421 +407 val_407 +384 val_384 +256 val_256 +26 val_26 +134 val_134 +67 val_67 +384 val_384 +379 val_379 +18 val_18 +462 val_462 +492 val_492 +100 val_100 +298 val_298 +9 val_9 +341 val_341 +498 val_498 +146 val_146 +458 val_458 +362 val_362 +186 val_186 +285 val_285 +348 val_348 +167 val_167 +18 val_18 +273 val_273 +183 val_183 +281 val_281 +344 val_344 +97 val_97 +469 val_469 +315 val_315 +84 val_84 +28 val_28 +37 val_37 +448 val_448 +152 val_152 +348 val_348 +307 val_307 +194 val_194 +414 val_414 +477 val_477 +222 val_222 +126 val_126 +90 val_90 +169 val_169 +403 val_403 +400 val_400 +200 val_200 +97 val_97 +PREHOOK: query: EXPLAIN +SELECT key, value +FROM src +WHERE key != '302' +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN +SELECT key, value +FROM src +WHERE key != '302' +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF src)) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL key)) (TOK_SELEXPR (TOK_TABLE_OR_COL value))) (TOK_WHERE (!= (TOK_TABLE_OR_COL key) '302')))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + src + TableScan + alias: src + Filter Operator + predicate: + expr: (key <> '302') + type: boolean + Filter Operator + predicate: + expr: (key <> '302') + type: boolean + Select Operator + expressions: + expr: key + type: string + expr: value + type: string + outputColumnNames: _col0, _col1 + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: -1 + + +PREHOOK: query: SELECT key, value +FROM src +WHERE key != '302' +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/414907244/10000 +POSTHOOK: query: SELECT key, value +FROM src +WHERE key != '302' +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/414907244/10000 +238 val_238 +86 val_86 +311 val_311 +27 val_27 +165 val_165 +409 val_409 +255 val_255 +278 val_278 +98 val_98 +484 val_484 +265 val_265 +193 val_193 +401 val_401 +150 val_150 +273 val_273 +224 val_224 +369 val_369 +66 val_66 +128 val_128 +213 val_213 +146 val_146 +406 val_406 +429 val_429 +374 val_374 +152 val_152 +469 val_469 +145 val_145 +495 val_495 +37 val_37 +327 val_327 +281 val_281 +277 val_277 +209 val_209 +15 val_15 +82 val_82 +403 val_403 +166 val_166 +417 val_417 +430 val_430 +252 val_252 +292 val_292 +219 val_219 +287 val_287 +153 val_153 +193 val_193 +338 val_338 +446 val_446 +459 val_459 +394 val_394 +237 val_237 +482 val_482 +174 val_174 +413 val_413 +494 val_494 +207 val_207 +199 val_199 +466 val_466 +208 val_208 +174 val_174 +399 val_399 +396 val_396 +247 val_247 +417 val_417 +489 val_489 +162 val_162 +377 val_377 +397 val_397 +309 val_309 +365 val_365 +266 val_266 +439 val_439 +342 val_342 +367 val_367 +325 val_325 +167 val_167 +195 val_195 +475 val_475 +17 val_17 +113 val_113 +155 val_155 +203 val_203 +339 val_339 +0 val_0 +455 val_455 +128 val_128 +311 val_311 +316 val_316 +57 val_57 +205 val_205 +149 val_149 +438 val_438 +345 val_345 +129 val_129 +170 val_170 +20 val_20 +489 val_489 +157 val_157 +378 val_378 +221 val_221 +92 val_92 +111 val_111 +47 val_47 +72 val_72 +4 val_4 +280 val_280 +35 val_35 +427 val_427 +277 val_277 +208 val_208 +356 val_356 +399 val_399 +169 val_169 +382 val_382 +498 val_498 +125 val_125 +386 val_386 +437 val_437 +469 val_469 +192 val_192 +286 val_286 +187 val_187 +176 val_176 +54 val_54 +459 val_459 +51 val_51 +138 val_138 +103 val_103 +239 val_239 +213 val_213 +216 val_216 +430 val_430 +278 val_278 +176 val_176 +289 val_289 +221 val_221 +65 val_65 +318 val_318 +332 val_332 +311 val_311 +275 val_275 +137 val_137 +241 val_241 +83 val_83 +333 val_333 +180 val_180 +284 val_284 +12 val_12 +230 val_230 +181 val_181 +67 val_67 +260 val_260 +404 val_404 +384 val_384 +489 val_489 +353 val_353 +373 val_373 +272 val_272 +138 val_138 +217 val_217 +84 val_84 +348 val_348 +466 val_466 +58 val_58 +8 val_8 +411 val_411 +230 val_230 +208 val_208 +348 val_348 +24 val_24 +463 val_463 +431 val_431 +179 val_179 +172 val_172 +42 val_42 +129 val_129 +158 val_158 +119 val_119 +496 val_496 +0 val_0 +322 val_322 +197 val_197 +468 val_468 +393 val_393 +454 val_454 +100 val_100 +298 val_298 +199 val_199 +191 val_191 +418 val_418 +96 val_96 +26 val_26 +165 val_165 +327 val_327 +230 val_230 +205 val_205 +120 val_120 +131 val_131 +51 val_51 +404 val_404 +43 val_43 +436 val_436 +156 val_156 +469 val_469 +468 val_468 +308 val_308 +95 val_95 +196 val_196 +288 val_288 +481 val_481 +457 val_457 +98 val_98 +282 val_282 +197 val_197 +187 val_187 +318 val_318 +318 val_318 +409 val_409 +470 val_470 +137 val_137 +369 val_369 +316 val_316 +169 val_169 +413 val_413 +85 val_85 +77 val_77 +0 val_0 +490 val_490 +87 val_87 +364 val_364 +179 val_179 +118 val_118 +134 val_134 +395 val_395 +282 val_282 +138 val_138 +238 val_238 +419 val_419 +15 val_15 +118 val_118 +72 val_72 +90 val_90 +307 val_307 +19 val_19 +435 val_435 +10 val_10 +277 val_277 +273 val_273 +306 val_306 +224 val_224 +309 val_309 +389 val_389 +327 val_327 +242 val_242 +369 val_369 +392 val_392 +272 val_272 +331 val_331 +401 val_401 +242 val_242 +452 val_452 +177 val_177 +226 val_226 +5 val_5 +497 val_497 +402 val_402 +396 val_396 +317 val_317 +395 val_395 +58 val_58 +35 val_35 +336 val_336 +95 val_95 +11 val_11 +168 val_168 +34 val_34 +229 val_229 +233 val_233 +143 val_143 +472 val_472 +322 val_322 +498 val_498 +160 val_160 +195 val_195 +42 val_42 +321 val_321 +430 val_430 +119 val_119 +489 val_489 +458 val_458 +78 val_78 +76 val_76 +41 val_41 +223 val_223 +492 val_492 +149 val_149 +449 val_449 +218 val_218 +228 val_228 +138 val_138 +453 val_453 +30 val_30 +209 val_209 +64 val_64 +468 val_468 +76 val_76 +74 val_74 +342 val_342 +69 val_69 +230 val_230 +33 val_33 +368 val_368 +103 val_103 +296 val_296 +113 val_113 +216 val_216 +367 val_367 +344 val_344 +167 val_167 +274 val_274 +219 val_219 +239 val_239 +485 val_485 +116 val_116 +223 val_223 +256 val_256 +263 val_263 +70 val_70 +487 val_487 +480 val_480 +401 val_401 +288 val_288 +191 val_191 +5 val_5 +244 val_244 +438 val_438 +128 val_128 +467 val_467 +432 val_432 +202 val_202 +316 val_316 +229 val_229 +469 val_469 +463 val_463 +280 val_280 +2 val_2 +35 val_35 +283 val_283 +331 val_331 +235 val_235 +80 val_80 +44 val_44 +193 val_193 +321 val_321 +335 val_335 +104 val_104 +466 val_466 +366 val_366 +175 val_175 +403 val_403 +483 val_483 +53 val_53 +105 val_105 +257 val_257 +406 val_406 +409 val_409 +190 val_190 +406 val_406 +401 val_401 +114 val_114 +258 val_258 +90 val_90 +203 val_203 +262 val_262 +348 val_348 +424 val_424 +12 val_12 +396 val_396 +201 val_201 +217 val_217 +164 val_164 +431 val_431 +454 val_454 +478 val_478 +298 val_298 +125 val_125 +431 val_431 +164 val_164 +424 val_424 +187 val_187 +382 val_382 +5 val_5 +70 val_70 +397 val_397 +480 val_480 +291 val_291 +24 val_24 +351 val_351 +255 val_255 +104 val_104 +70 val_70 +163 val_163 +438 val_438 +119 val_119 +414 val_414 +200 val_200 +491 val_491 +237 val_237 +439 val_439 +360 val_360 +248 val_248 +479 val_479 +305 val_305 +417 val_417 +199 val_199 +444 val_444 +120 val_120 +429 val_429 +169 val_169 +443 val_443 +323 val_323 +325 val_325 +277 val_277 +230 val_230 +478 val_478 +178 val_178 +468 val_468 +310 val_310 +317 val_317 +333 val_333 +493 val_493 +460 val_460 +207 val_207 +249 val_249 +265 val_265 +480 val_480 +83 val_83 +136 val_136 +353 val_353 +172 val_172 +214 val_214 +462 val_462 +233 val_233 +406 val_406 +133 val_133 +175 val_175 +189 val_189 +454 val_454 +375 val_375 +401 val_401 +421 val_421 +407 val_407 +384 val_384 +256 val_256 +26 val_26 +134 val_134 +67 val_67 +384 val_384 +379 val_379 +18 val_18 +462 val_462 +492 val_492 +100 val_100 +298 val_298 +9 val_9 +341 val_341 +498 val_498 +146 val_146 +458 val_458 +362 val_362 +186 val_186 +285 val_285 +348 val_348 +167 val_167 +18 val_18 +273 val_273 +183 val_183 +281 val_281 +344 val_344 +97 val_97 +469 val_469 +315 val_315 +84 val_84 +28 val_28 +37 val_37 +448 val_448 +152 val_152 +348 val_348 +307 val_307 +194 val_194 +414 val_414 +477 val_477 +222 val_222 +126 val_126 +90 val_90 +169 val_169 +403 val_403 +400 val_400 +200 val_200 +97 val_97 Index: ql/src/test/results/clientpositive/udf_hour_minute_second.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_hour_minute_second.q.out (revision 896748) +++ ql/src/test/results/clientpositive/udf_hour_minute_second.q.out (working copy) @@ -1,130 +0,0 @@ -PREHOOK: query: DESCRIBE FUNCTION hour -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION hour -POSTHOOK: type: DESCFUNCTION -hour(date) - Returns the hour of date -PREHOOK: query: DESCRIBE FUNCTION minute -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION minute -POSTHOOK: type: DESCFUNCTION -minute(date) - Returns the minute of date -PREHOOK: query: DESCRIBE FUNCTION second -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION second -POSTHOOK: type: DESCFUNCTION -second(date) - Returns the second of date -PREHOOK: query: DESCRIBE FUNCTION EXTENDED hour -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED hour -POSTHOOK: type: DESCFUNCTION -hour(date) - Returns the hour of date -date is a string in the format of 'yyyy-MM-dd HH:mm:ss' or 'HH:mm:ss'. -Example: - > SELECT hour('2009-07-30 12:58:59') FROM src LIMIT 1; - 12 - > SELECT hour('12:58:59') FROM src LIMIT 1; - 12 -PREHOOK: query: DESCRIBE FUNCTION EXTENDED minute -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED minute -POSTHOOK: type: DESCFUNCTION -minute(date) - Returns the minute of date -date is a string in the format of 'yyyy-MM-dd HH:mm:ss' or 'HH:mm:ss'. -Example: - > SELECT minute('2009-07-30 12:58:59') FROM src LIMIT 1; - 58 - > SELECT minute('12:58:59') FROM src LIMIT 1; - 58 -PREHOOK: query: DESCRIBE FUNCTION EXTENDED second -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED second -POSTHOOK: type: DESCFUNCTION -second(date) - Returns the second of date -date is a string in the format of 'yyyy-MM-dd HH:mm:ss' or 'HH:mm:ss'. -Example: - > SELECT second('2009-07-30 12:58:59') FROM src LIMIT 1; - 59 - > SELECT second('12:58:59') FROM src LIMIT 1; - 59 -PREHOOK: query: EXPLAIN -SELECT hour('2009-08-07 13:14:15'), hour('13:14:15'), hour('2009-08-07'), - minute('2009-08-07 13:14:15'), minute('13:14:15'), minute('2009-08-07'), - second('2009-08-07 13:14:15'), second('13:14:15'), second('2009-08-07') -FROM src WHERE key = 86 -PREHOOK: type: QUERY -POSTHOOK: query: EXPLAIN -SELECT hour('2009-08-07 13:14:15'), hour('13:14:15'), hour('2009-08-07'), - minute('2009-08-07 13:14:15'), minute('13:14:15'), minute('2009-08-07'), - second('2009-08-07 13:14:15'), second('13:14:15'), second('2009-08-07') -FROM src WHERE key = 86 -POSTHOOK: type: QUERY -ABSTRACT SYNTAX TREE: - (TOK_QUERY (TOK_FROM (TOK_TABREF src)) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_FUNCTION hour '2009-08-07 13:14:15')) (TOK_SELEXPR (TOK_FUNCTION hour '13:14:15')) (TOK_SELEXPR (TOK_FUNCTION hour '2009-08-07')) (TOK_SELEXPR (TOK_FUNCTION minute '2009-08-07 13:14:15')) (TOK_SELEXPR (TOK_FUNCTION minute '13:14:15')) (TOK_SELEXPR (TOK_FUNCTION minute '2009-08-07')) (TOK_SELEXPR (TOK_FUNCTION second '2009-08-07 13:14:15')) (TOK_SELEXPR (TOK_FUNCTION second '13:14:15')) (TOK_SELEXPR (TOK_FUNCTION second '2009-08-07'))) (TOK_WHERE (= (TOK_TABLE_OR_COL key) 86)))) - -STAGE DEPENDENCIES: - Stage-1 is a root stage - Stage-0 is a root stage - -STAGE PLANS: - Stage: Stage-1 - Map Reduce - Alias -> Map Operator Tree: - src - TableScan - alias: src - Filter Operator - predicate: - expr: (key = 86) - type: boolean - Filter Operator - predicate: - expr: (key = 86) - type: boolean - Select Operator - expressions: - expr: hour('2009-08-07 13:14:15') - type: int - expr: hour('13:14:15') - type: int - expr: hour('2009-08-07') - type: int - expr: minute('2009-08-07 13:14:15') - type: int - expr: minute('13:14:15') - type: int - expr: minute('2009-08-07') - type: int - expr: second('2009-08-07 13:14:15') - type: int - expr: second('13:14:15') - type: int - expr: second('2009-08-07') - type: int - outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8 - File Output Operator - compressed: false - GlobalTableId: 0 - table: - input format: org.apache.hadoop.mapred.TextInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat - - Stage: Stage-0 - Fetch Operator - limit: -1 - - -PREHOOK: query: SELECT hour('2009-08-07 13:14:15'), hour('13:14:15'), hour('2009-08-07'), - minute('2009-08-07 13:14:15'), minute('13:14:15'), minute('2009-08-07'), - second('2009-08-07 13:14:15'), second('13:14:15'), second('2009-08-07') -FROM src WHERE key = 86 -PREHOOK: type: QUERY -PREHOOK: Input: default@src -PREHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/785767007/10000 -POSTHOOK: query: SELECT hour('2009-08-07 13:14:15'), hour('13:14:15'), hour('2009-08-07'), - minute('2009-08-07 13:14:15'), minute('13:14:15'), minute('2009-08-07'), - second('2009-08-07 13:14:15'), second('13:14:15'), second('2009-08-07') -FROM src WHERE key = 86 -POSTHOOK: type: QUERY -POSTHOOK: Input: default@src -POSTHOOK: Output: file:/data/users/njain/hive5/hive5/build/ql/tmp/785767007/10000 -13 13 NULL 14 14 NULL 15 15 NULL Index: ql/src/test/results/clientpositive/udtf_explode.q.out =================================================================== --- ql/src/test/results/clientpositive/udtf_explode.q.out (revision 896748) +++ ql/src/test/results/clientpositive/udtf_explode.q.out (working copy) @@ -1,298 +0,0 @@ -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 -POSTHOOK: type: QUERY -ABSTRACT SYNTAX TREE: - (TOK_QUERY (TOK_FROM (TOK_TABREF src)) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_FUNCTION explode (TOK_FUNCTION array 1 2 3)) myCol)) (TOK_LIMIT 3))) - -STAGE DEPENDENCIES: - Stage-1 is a root stage - Stage-0 is a root stage - -STAGE PLANS: - Stage: Stage-1 - Map Reduce - Alias -> Map Operator Tree: - src - TableScan - alias: src - Select Operator - expressions: - expr: array(1,2,3) - type: array - outputColumnNames: _col0 - UDTF Operator - function name: explode - Limit - File Output Operator - compressed: false - GlobalTableId: 0 - 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 - properties: - columns col - serialization.format 1 - columns.types int - Needs Tagging: false - Path -> Alias: - file:/Users/carl/Projects/hd9/hive-trunk/build/ql/test/data/warehouse/src [src] - Path -> Partition: - 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 - output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat - properties: - name src - columns.types string:string - serialization.ddl struct src { string key, string value} - serialization.format 1 - columns key,value - bucket_count -1 - 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:/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 - output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat - properties: - name src - columns.types string:string - serialization.ddl struct src { string key, string value} - serialization.format 1 - columns key,value - bucket_count -1 - 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:/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 - - Stage: Stage-0 - Fetch Operator - limit: 3 - - -PREHOOK: query: 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 -PREHOOK: type: QUERY -POSTHOOK: query: 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 -POSTHOOK: type: QUERY -ABSTRACT SYNTAX TREE: - (TOK_QUERY (TOK_FROM (TOK_SUBQUERY (TOK_QUERY (TOK_FROM (TOK_TABREF src)) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_FUNCTION explode (TOK_FUNCTION array 1 2 3)) myCol)) (TOK_LIMIT 3))) a)) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (. (TOK_TABLE_OR_COL a) myCol)) (TOK_SELEXPR (TOK_FUNCTION count 1))) (TOK_GROUPBY (. (TOK_TABLE_OR_COL a) myCol)))) - -STAGE DEPENDENCIES: - Stage-1 is a root stage - Stage-2 depends on stages: Stage-1 - Stage-0 is a root stage - -STAGE PLANS: - Stage: Stage-1 - Map Reduce - Alias -> Map Operator Tree: - a:src - TableScan - alias: src - Select Operator - expressions: - expr: array(1,2,3) - type: array - outputColumnNames: _col0 - UDTF Operator - function name: explode - Limit - Reduce Output Operator - sort order: - tag: -1 - value expressions: - expr: col - type: int - Needs Tagging: false - Path -> Alias: - file:/Users/carl/Projects/hd9/hive-trunk/build/ql/test/data/warehouse/src [a:src] - Path -> Partition: - 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 - output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat - properties: - name src - columns.types string:string - serialization.ddl struct src { string key, string value} - serialization.format 1 - columns key,value - bucket_count -1 - 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:/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 - output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat - properties: - name src - columns.types string:string - serialization.ddl struct src { string key, string value} - serialization.format 1 - columns key,value - bucket_count -1 - 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:/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 - Reduce Operator Tree: - Extract - Limit - Select Operator - expressions: - expr: _col0 - type: int - outputColumnNames: _col0 - Group By Operator - aggregations: - expr: count(1) - bucketGroup: false - keys: - expr: _col0 - type: int - mode: hash - outputColumnNames: _col0, _col1 - File Output Operator - compressed: false - GlobalTableId: 0 - 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 - properties: - columns _col0,_col1 - columns.types int,bigint - escape.delim \ - - Stage: Stage-2 - Map Reduce - Alias -> Map Operator Tree: - file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/894782310/10002 - Reduce Output Operator - key expressions: - expr: _col0 - type: int - sort order: + - Map-reduce partition columns: - expr: _col0 - type: int - tag: -1 - value expressions: - expr: _col1 - type: bigint - Needs Tagging: false - Path -> Alias: - 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:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/894782310/10002 - Partition - base file name: 10002 - input format: org.apache.hadoop.mapred.SequenceFileInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat - properties: - columns _col0,_col1 - columns.types int,bigint - escape.delim \ - - input format: org.apache.hadoop.mapred.SequenceFileInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat - properties: - columns _col0,_col1 - columns.types int,bigint - escape.delim \ - Reduce Operator Tree: - Group By Operator - aggregations: - expr: count(VALUE._col0) - bucketGroup: false - keys: - expr: KEY._col0 - type: int - mode: mergepartial - outputColumnNames: _col0, _col1 - Select Operator - expressions: - expr: _col0 - type: int - expr: _col1 - type: bigint - outputColumnNames: _col0, _col1 - File Output Operator - compressed: false - GlobalTableId: 0 - 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 - properties: - columns _col0,_col1 - serialization.format 1 - columns.types int:bigint - - Stage: Stage-0 - Fetch Operator - limit: -1 - - -PREHOOK: query: SELECT explode(array(1,2,3)) AS myCol FROM src LIMIT 3 -PREHOOK: type: QUERY -PREHOOK: Input: default@src -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:/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:/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:/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:/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:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1245396324/10000 -1 1 -2 1 -3 1 Index: ql/src/test/results/clientpositive/udf_lcase.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_lcase.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_lcase.q.out (revision 0) @@ -0,0 +1,14 @@ +PREHOOK: query: DESCRIBE FUNCTION lcase +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION lcase +POSTHOOK: type: DESCFUNCTION +lcase(str) - Returns str with all characters changed to lowercase +PREHOOK: query: DESCRIBE FUNCTION EXTENDED lcase +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED lcase +POSTHOOK: type: DESCFUNCTION +lcase(str) - Returns str with all characters changed to lowercase +Synonyms: lower +Example: + > SELECT lcase('Facebook') FROM src LIMIT 1; + 'facebook' Index: ql/src/test/results/clientpositive/udf_exp.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_exp.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_exp.q.out (revision 0) @@ -0,0 +1,13 @@ +PREHOOK: query: DESCRIBE FUNCTION exp +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION exp +POSTHOOK: type: DESCFUNCTION +exp(x) - Returns e to the power of x +PREHOOK: query: DESCRIBE FUNCTION EXTENDED exp +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED exp +POSTHOOK: type: DESCFUNCTION +exp(x) - Returns e to the power of x +Example: + > SELECT exp(0) FROM src LIMIT 1; + 1 Index: ql/src/test/results/clientpositive/udf_bitwise_xor.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_bitwise_xor.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_bitwise_xor.q.out (revision 0) @@ -0,0 +1,13 @@ +PREHOOK: query: DESCRIBE FUNCTION ^ +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION ^ +POSTHOOK: type: DESCFUNCTION +a ^ b - Bitwise exclusive or +PREHOOK: query: DESCRIBE FUNCTION EXTENDED ^ +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED ^ +POSTHOOK: type: DESCFUNCTION +a ^ b - Bitwise exclusive or +Example: + > SELECT 3 ^ 5 FROM src LIMIT 1; + 2 Index: ql/src/test/results/clientpositive/udf_log2.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_log2.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_log2.q.out (revision 0) @@ -0,0 +1,13 @@ +PREHOOK: query: DESCRIBE FUNCTION log2 +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION log2 +POSTHOOK: type: DESCFUNCTION +log2(x) - Returns the logarithm of x with base 2 +PREHOOK: query: DESCRIBE FUNCTION EXTENDED log2 +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED log2 +POSTHOOK: type: DESCFUNCTION +log2(x) - Returns the logarithm of x with base 2 +Example: + > SELECT log2(2) FROM src LIMIT 1; + 1 Index: ql/src/test/results/clientpositive/udaf_sum.q.out =================================================================== --- ql/src/test/results/clientpositive/udaf_sum.q.out (revision 896748) +++ ql/src/test/results/clientpositive/udaf_sum.q.out (working copy) @@ -1,20 +0,0 @@ -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 896748) +++ ql/src/test/results/clientpositive/udf_json.q.out (working copy) @@ -1,147 +0,0 @@ -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 -POSTHOOK: type: CREATETABLE -POSTHOOK: Output: default@dest1 -PREHOOK: query: FROM src INSERT OVERWRITE TABLE dest1 SELECT ' abc ' WHERE src.key = 86 -PREHOOK: type: QUERY -PREHOOK: Input: default@src -PREHOOK: Output: default@dest1 -POSTHOOK: query: FROM src INSERT OVERWRITE TABLE dest1 SELECT ' abc ' WHERE src.key = 86 -POSTHOOK: type: QUERY -POSTHOOK: Input: default@src -POSTHOOK: Output: default@dest1 -PREHOOK: query: EXPLAIN -SELECT get_json_object(src_json.json, '$.owner') FROM src_json -PREHOOK: type: QUERY -POSTHOOK: query: EXPLAIN -SELECT get_json_object(src_json.json, '$.owner') FROM src_json -POSTHOOK: type: QUERY -ABSTRACT SYNTAX TREE: - (TOK_QUERY (TOK_FROM (TOK_TABREF src_json)) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_FUNCTION get_json_object (. (TOK_TABLE_OR_COL src_json) json) '$.owner'))))) - -STAGE DEPENDENCIES: - Stage-1 is a root stage - Stage-0 is a root stage - -STAGE PLANS: - Stage: Stage-1 - Map Reduce - Alias -> Map Operator Tree: - src_json - TableScan - alias: src_json - Select Operator - expressions: - expr: get_json_object(json, '$.owner') - type: string - outputColumnNames: _col0 - File Output Operator - compressed: false - GlobalTableId: 0 - table: - input format: org.apache.hadoop.mapred.TextInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat - - Stage: Stage-0 - Fetch Operator - limit: -1 - - -PREHOOK: query: SELECT get_json_object(src_json.json, '$') FROM src_json -PREHOOK: type: QUERY -PREHOOK: Input: default@src_json -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:/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:/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:/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:/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:/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:/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:/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:/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:/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:/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:/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:/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:/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:/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:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1780114809/10000 -NULL NULL NULL NULL NULL NULL Index: ql/src/test/results/clientpositive/udf_lessthanorequal.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_lessthanorequal.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_lessthanorequal.q.out (revision 0) @@ -0,0 +1,10 @@ +PREHOOK: query: DESCRIBE FUNCTION <= +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION <= +POSTHOOK: type: DESCFUNCTION +a <= b - Returns TRUE if b is not greater than a +PREHOOK: query: DESCRIBE FUNCTION EXTENDED <= +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED <= +POSTHOOK: type: DESCFUNCTION +a <= b - Returns TRUE if b is not greater than a Index: ql/src/test/results/clientpositive/udf_hour.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_hour.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_hour.q.out (revision 0) @@ -0,0 +1,78 @@ +PREHOOK: query: DESCRIBE FUNCTION hour +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION hour +POSTHOOK: type: DESCFUNCTION +hour(date) - Returns the hour of date +PREHOOK: query: DESCRIBE FUNCTION EXTENDED hour +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED hour +POSTHOOK: type: DESCFUNCTION +hour(date) - Returns the hour of date +date is a string in the format of 'yyyy-MM-dd HH:mm:ss' or 'HH:mm:ss'. +Example: + > SELECT hour('2009-07-30 12:58:59') FROM src LIMIT 1; + 12 + > SELECT hour('12:58:59') FROM src LIMIT 1; + 12 +PREHOOK: query: EXPLAIN +SELECT hour('2009-08-07 13:14:15'), hour('13:14:15'), hour('2009-08-07') +FROM src WHERE key = 86 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN +SELECT hour('2009-08-07 13:14:15'), hour('13:14:15'), hour('2009-08-07') +FROM src WHERE key = 86 +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF src)) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_FUNCTION hour '2009-08-07 13:14:15')) (TOK_SELEXPR (TOK_FUNCTION hour '13:14:15')) (TOK_SELEXPR (TOK_FUNCTION hour '2009-08-07'))) (TOK_WHERE (= (TOK_TABLE_OR_COL key) 86)))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + src + TableScan + alias: src + Filter Operator + predicate: + expr: (key = 86) + type: boolean + Filter Operator + predicate: + expr: (key = 86) + type: boolean + Select Operator + expressions: + expr: hour('2009-08-07 13:14:15') + type: int + expr: hour('13:14:15') + type: int + expr: hour('2009-08-07') + type: int + outputColumnNames: _col0, _col1, _col2 + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: -1 + + +PREHOOK: query: SELECT hour('2009-08-07 13:14:15'), hour('13:14:15'), hour('2009-08-07') +FROM src WHERE key = 86 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1371344681/10000 +POSTHOOK: query: SELECT hour('2009-08-07 13:14:15'), hour('13:14:15'), hour('2009-08-07') +FROM src WHERE key = 86 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1371344681/10000 +13 13 NULL Index: ql/src/test/results/clientpositive/describe_function.q.out =================================================================== --- ql/src/test/results/clientpositive/describe_function.q.out (revision 896748) +++ ql/src/test/results/clientpositive/describe_function.q.out (working copy) @@ -1,1098 +0,0 @@ -PREHOOK: query: DESCRIBE FUNCTION concat -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION concat -POSTHOOK: type: DESCFUNCTION -concat(str1, str2, ... strN) - returns the concatenation of str1, str2, ... strN -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 substring -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION substring -POSTHOOK: type: DESCFUNCTION -substring(str, pos[, len]) - returns the substring of str that starts at pos and is of length len -PREHOOK: query: DESCRIBE FUNCTION find_in_set -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION find_in_set -POSTHOOK: type: DESCFUNCTION -find_in_set(str,str_array) - Returns the first occurrence of str in str_array where str_array is a comma-delimited string. Returns null if either argument is null. Returns 0 if the first argument has any commas. -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 repeat -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION repeat -POSTHOOK: type: DESCFUNCTION -repeat(str, n) - repeat str n times -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 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 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 size -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION size -POSTHOOK: type: DESCFUNCTION -size(a) - Returns the size of a -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 floor -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION floor -POSTHOOK: type: DESCFUNCTION -floor(x) - Find the largest integer not greater than x -PREHOOK: query: DESCRIBE FUNCTION sqrt -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION sqrt -POSTHOOK: type: DESCFUNCTION -sqrt(x) - returns the square root of x -PREHOOK: query: DESCRIBE FUNCTION ceil -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION ceil -POSTHOOK: type: DESCFUNCTION -ceil(x) - Find the smallest integer not smaller than x -PREHOOK: query: DESCRIBE FUNCTION ceiling -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION ceiling -POSTHOOK: type: DESCFUNCTION -ceiling(x) - Find the smallest integer not smaller than x -PREHOOK: query: DESCRIBE FUNCTION rand -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION rand -POSTHOOK: type: DESCFUNCTION -rand([seed]) - Returns a pseudorandom number between 0 and 1 -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 pmod -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION pmod -POSTHOOK: type: DESCFUNCTION -a pmod b - Compute the positive modulo -PREHOOK: query: DESCRIBE FUNCTION ln -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION ln -POSTHOOK: type: DESCFUNCTION -ln(x) - Returns the natural logarithm of x -PREHOOK: query: DESCRIBE FUNCTION log2 -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION log2 -POSTHOOK: type: DESCFUNCTION -log2(x) - Returns the logarithm of x with base 2 -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 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 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 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 log10 -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION log10 -POSTHOOK: type: DESCFUNCTION -log10(x) - Returns the logarithm of x with base 10 -PREHOOK: query: DESCRIBE FUNCTION log -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION log -POSTHOOK: type: DESCFUNCTION -log([b], x) - Returns the logarithm of x with base b -PREHOOK: query: DESCRIBE FUNCTION exp -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION exp -POSTHOOK: type: DESCFUNCTION -exp(x) - Returns e to the power of x -PREHOOK: query: DESCRIBE FUNCTION power -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION power -POSTHOOK: type: DESCFUNCTION -power(x1, x2) - raise x1 to the power of x2 -PREHOOK: query: DESCRIBE FUNCTION pow -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION pow -POSTHOOK: type: DESCFUNCTION -pow(x1, x2) - raise x1 to the power of x2 -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 bin -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION bin -POSTHOOK: type: DESCFUNCTION -bin(n) - returns n in binary -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 unhex -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION unhex -POSTHOOK: type: DESCFUNCTION -unhex(str) - Converts hexadecimal argument to string -PREHOOK: query: DESCRIBE FUNCTION upper -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION upper -POSTHOOK: type: DESCFUNCTION -upper(str) - Returns str with all characters changed to uppercase -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 ucase -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION ucase -POSTHOOK: type: DESCFUNCTION -ucase(str) - Returns str with all characters changed to uppercase -PREHOOK: query: DESCRIBE FUNCTION lcase -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION lcase -POSTHOOK: type: DESCFUNCTION -lcase(str) - Returns str with all characters changed to lowercase -PREHOOK: query: DESCRIBE FUNCTION trim -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION trim -POSTHOOK: type: DESCFUNCTION -trim(str) - Removes the leading and trailing space characters from str -PREHOOK: query: DESCRIBE FUNCTION ltrim -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION ltrim -POSTHOOK: type: DESCFUNCTION -ltrim(str) - Removes the leading space characters from str -PREHOOK: query: DESCRIBE FUNCTION rtrim -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION rtrim -POSTHOOK: type: DESCFUNCTION -rtrim(str) - Removes the trailing space characters from str -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 reverse -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION reverse -POSTHOOK: type: DESCFUNCTION -reverse(str) - reverse str -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 rlike -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION rlike -POSTHOOK: type: DESCFUNCTION -str rlike regexp - Returns true if str matches regexp and false otherwise -PREHOOK: query: DESCRIBE FUNCTION regexp -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION regexp -POSTHOOK: type: DESCFUNCTION -str regexp regexp - Returns true if str matches regexp and false otherwise -PREHOOK: query: DESCRIBE FUNCTION regexp_replace -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION regexp_replace -POSTHOOK: type: DESCFUNCTION -regexp_replace(str, regexp, rep) - replace all substrings of str that match regexp with rep -PREHOOK: query: DESCRIBE FUNCTION regexp_extract -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION regexp_extract -POSTHOOK: type: DESCFUNCTION -regexp_extract(str, regexp[, idx]) - extracts a group that matches regexp -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 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 positive -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION positive -POSTHOOK: type: DESCFUNCTION -positive a - Returns a -PREHOOK: query: DESCRIBE FUNCTION negative -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION negative -POSTHOOK: type: DESCFUNCTION -negative a - Returns -a -PREHOOK: query: DESCRIBE FUNCTION day -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION day -POSTHOOK: type: DESCFUNCTION -day(date) - Returns the date of the month of date -PREHOOK: query: DESCRIBE FUNCTION dayofmonth -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION dayofmonth -POSTHOOK: type: DESCFUNCTION -dayofmonth(date) - Returns the date of the month of date -PREHOOK: query: DESCRIBE FUNCTION month -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION month -POSTHOOK: type: DESCFUNCTION -month(date) - Returns the month of date -PREHOOK: query: DESCRIBE FUNCTION year -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION year -POSTHOOK: type: DESCFUNCTION -year(date) - Returns the year of date -PREHOOK: query: DESCRIBE FUNCTION from_unixtime -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION from_unixtime -POSTHOOK: type: DESCFUNCTION -from_unixtime(unix_time, format) - returns unix_time in the specified format -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 to_date -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION to_date -POSTHOOK: type: DESCFUNCTION -to_date(expr) - Extracts the date part of the date or datetime expression expr -PREHOOK: query: DESCRIBE FUNCTION date_add -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION date_add -POSTHOOK: type: DESCFUNCTION -date_add(start_date, num_days) - Returns the date that is num_days after start_date. -PREHOOK: query: DESCRIBE FUNCTION date_sub -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION date_sub -POSTHOOK: type: DESCFUNCTION -date_sub(start_date, num_days) - Returns the date that is num_days before start_date. -PREHOOK: query: DESCRIBE FUNCTION datediff -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION datediff -POSTHOOK: type: DESCFUNCTION -datediff(date1, date2) - Returns the number of days between date1 and date2 -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 + -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION + -POSTHOOK: type: DESCFUNCTION -a + b - Returns a+b -PREHOOK: query: DESCRIBE FUNCTION - -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION - -POSTHOOK: type: DESCFUNCTION -a - b - Returns the difference a-b -PREHOOK: query: DESCRIBE FUNCTION * -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION * -POSTHOOK: type: DESCFUNCTION -a * b - Multiplies a by b -PREHOOK: query: DESCRIBE FUNCTION / -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION / -POSTHOOK: type: DESCFUNCTION -a / b - Divide a by b -PREHOOK: query: DESCRIBE FUNCTION % -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION % -POSTHOOK: type: DESCFUNCTION -a % b - Returns the remainder when dividing a by b -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 & -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION & -POSTHOOK: type: DESCFUNCTION -a & b - Bitwise and -PREHOOK: query: DESCRIBE FUNCTION | -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION | -POSTHOOK: type: DESCFUNCTION -a | b - Bitwise or -PREHOOK: query: DESCRIBE FUNCTION ^ -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION ^ -POSTHOOK: type: DESCFUNCTION -a ^ b - Bitwise exclusive or -PREHOOK: query: DESCRIBE FUNCTION ~ -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION ~ -POSTHOOK: type: DESCFUNCTION -~ n - Bitwise not -PREHOOK: query: DESCRIBE FUNCTION = -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION = -POSTHOOK: type: DESCFUNCTION -a = b - Returns TRUE if a equals b and false otherwise -PREHOOK: query: DESCRIBE FUNCTION <> -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION <> -POSTHOOK: type: DESCFUNCTION -a <> b - Returns TRUE if a is not equal to b -PREHOOK: query: DESCRIBE FUNCTION < -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION < -POSTHOOK: type: DESCFUNCTION -a < b - Returns TRUE if a is less than b -PREHOOK: query: DESCRIBE FUNCTION <= -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION <= -POSTHOOK: type: DESCFUNCTION -a <= b - Returns TRUE if b is not greater than a -PREHOOK: query: DESCRIBE FUNCTION > -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION > -POSTHOOK: type: DESCFUNCTION -a > b - Returns TRUE if a is greater than b -PREHOOK: query: DESCRIBE FUNCTION >= -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION >= -POSTHOOK: type: DESCFUNCTION -a >= b - Returns TRUE if b is not smaller than a -PREHOOK: query: DESCRIBE FUNCTION and -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION and -POSTHOOK: type: DESCFUNCTION -a and b - Logical and -PREHOOK: query: DESCRIBE FUNCTION or -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION or -POSTHOOK: type: DESCFUNCTION -a or b - Logical or -PREHOOK: query: DESCRIBE FUNCTION not -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION not -POSTHOOK: type: DESCFUNCTION -not a - Logical not -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 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 concat -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED concat -POSTHOOK: type: DESCFUNCTION -concat(str1, str2, ... strN) - returns the concatenation of str1, str2, ... strN -Returns NULL if any argument is NULL. -Example: - > SELECT concat('abc', 'def') FROM src LIMIT 1; - 'abcdef' -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: DESCRIBE FUNCTION EXTENDED substring -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED substring -POSTHOOK: type: DESCFUNCTION -substring(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 substring('Facebook', 5) FROM src LIMIT 1; - 'book' - > SELECT substring('Facebook', -5) FROM src LIMIT 1; - 'ebook' - > SELECT substring('Facebook', 5, 1) FROM src LIMIT 1; - 'b' -PREHOOK: query: DESCRIBE FUNCTION EXTENDED find_in_set -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED find_in_set -POSTHOOK: type: DESCFUNCTION -find_in_set(str,str_array) - Returns the first occurrence of str in str_array where str_array is a comma-delimited string. Returns null if either argument is null. Returns 0 if the first argument has any commas. -Example: - > SELECT find_in_set('ab','abc,b,ab,c,def') FROM src LIMIT 1; - 3 - > SELECT * FROM src1 WHERE NOT find_in_set(key,'311,128,345,956')=0; - 311 val_311 - 128 -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: 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: 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: 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 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: 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: 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: DESCRIBE FUNCTION EXTENDED floor -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED floor -POSTHOOK: type: DESCFUNCTION -floor(x) - Find the largest integer not greater than x -Example: - > SELECT floor(-0.1) FROM src LIMIT 1; - -1 - > SELECT floor(5) FROM src LIMIT 1; - 5 -PREHOOK: query: DESCRIBE FUNCTION EXTENDED sqrt -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED sqrt -POSTHOOK: type: DESCFUNCTION -sqrt(x) - returns the square root of x -Example: - > SELECT sqrt(4) FROM src LIMIT 1; - 2 -PREHOOK: query: DESCRIBE FUNCTION EXTENDED ceil -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED ceil -POSTHOOK: type: DESCFUNCTION -ceil(x) - Find the smallest integer not smaller than x -Example: - > SELECT ceil(-0.1) FROM src LIMIT 1; - 0 - > SELECT ceil(5) FROM src LIMIT 1; - 5 -PREHOOK: query: DESCRIBE FUNCTION EXTENDED ceiling -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED ceiling -POSTHOOK: type: DESCFUNCTION -ceiling(x) - Find the smallest integer not smaller than x -Example: - > SELECT ceiling(-0.1) FROM src LIMIT 1; - 0 - > SELECT ceiling(5) FROM src LIMIT 1; - 5 -PREHOOK: query: DESCRIBE FUNCTION EXTENDED rand -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED rand -POSTHOOK: type: DESCFUNCTION -rand([seed]) - Returns a pseudorandom number between 0 and 1 -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: 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: DESCRIBE FUNCTION EXTENDED ln -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED ln -POSTHOOK: type: DESCFUNCTION -ln(x) - Returns the natural logarithm of x -Example: - > SELECT ln(1) FROM src LIMIT 1; - 0 -PREHOOK: query: DESCRIBE FUNCTION EXTENDED log2 -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED log2 -POSTHOOK: type: DESCFUNCTION -log2(x) - Returns the logarithm of x with base 2 -Example: - > SELECT log2(2) FROM src LIMIT 1; - 1 -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: 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: 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: 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: DESCRIBE FUNCTION EXTENDED log10 -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED log10 -POSTHOOK: type: DESCFUNCTION -log10(x) - Returns the logarithm of x with base 10 -Example: - > SELECT log10(10) FROM src LIMIT 1; - 1 -PREHOOK: query: DESCRIBE FUNCTION EXTENDED log -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED log -POSTHOOK: type: DESCFUNCTION -log([b], x) - Returns the logarithm of x with base b -Example: - > SELECT log(13, 13) FROM src LIMIT 1; - 1 -PREHOOK: query: DESCRIBE FUNCTION EXTENDED exp -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED exp -POSTHOOK: type: DESCFUNCTION -exp(x) - Returns e to the power of x -Example: - > SELECT exp(0) FROM src LIMIT 1; - 1 -PREHOOK: query: DESCRIBE FUNCTION EXTENDED power -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED power -POSTHOOK: type: DESCFUNCTION -power(x1, x2) - raise x1 to the power of x2 -Example: - > SELECT power(2, 3) FROM src LIMIT 1; - 8 -PREHOOK: query: DESCRIBE FUNCTION EXTENDED pow -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED pow -POSTHOOK: type: DESCFUNCTION -pow(x1, x2) - raise x1 to the power of x2 -Example: - > SELECT pow(2, 3) FROM src LIMIT 1; - 8 -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: 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: 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: 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: DESCRIBE FUNCTION EXTENDED upper -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED upper -POSTHOOK: type: DESCFUNCTION -upper(str) - Returns str with all characters changed to uppercase -Example: - > SELECT upper('Facebook') FROM src LIMIT 1; - 'FACEBOOK' -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: DESCRIBE FUNCTION EXTENDED ucase -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED ucase -POSTHOOK: type: DESCFUNCTION -ucase(str) - Returns str with all characters changed to uppercase -Example: - > SELECT ucase('Facebook') FROM src LIMIT 1; - 'FACEBOOK' -PREHOOK: query: DESCRIBE FUNCTION EXTENDED lcase -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED lcase -POSTHOOK: type: DESCFUNCTION -lcase(str) - Returns str with all characters changed to lowercase -Example: - > SELECT lcase('Facebook') FROM src LIMIT 1; - 'facebook' -PREHOOK: query: DESCRIBE FUNCTION EXTENDED trim -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED trim -POSTHOOK: type: DESCFUNCTION -trim(str) - Removes the leading and trailing space characters from str -Example: - > SELECT trim(' facebook ') FROM src LIMIT 1; - 'facebook' -PREHOOK: query: DESCRIBE FUNCTION EXTENDED ltrim -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED ltrim -POSTHOOK: type: DESCFUNCTION -ltrim(str) - Removes the leading space characters from str -Example: - > SELECT ltrim(' facebook') FROM src LIMIT 1; - 'facebook' -PREHOOK: query: DESCRIBE FUNCTION EXTENDED rtrim -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED rtrim -POSTHOOK: type: DESCFUNCTION -rtrim(str) - Removes the trailing space characters from str -Example: - > SELECT rtrim('facebook ') FROM src LIMIT 1; - 'facebook' -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: 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: 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: DESCRIBE FUNCTION EXTENDED rlike -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED rlike -POSTHOOK: type: DESCFUNCTION -str rlike regexp - Returns true if str matches regexp and false otherwise -Example: - > SELECT 'fb' rlike '.*' FROM src LIMIT 1; - true -PREHOOK: query: DESCRIBE FUNCTION EXTENDED regexp -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED regexp -POSTHOOK: type: DESCFUNCTION -str regexp regexp - Returns true if str matches regexp and false otherwise -Example: - > SELECT 'fb' regexp '.*' FROM src LIMIT 1; - true -PREHOOK: query: DESCRIBE FUNCTION EXTENDED regexp_replace -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED regexp_replace -POSTHOOK: type: DESCFUNCTION -regexp_replace(str, regexp, rep) - replace all substrings of str that match regexp with rep -Example: - > SELECT regexp_replace('100-200', '(\d+)', 'num') FROM src LIMIT 1; - 'num-num' -PREHOOK: query: DESCRIBE FUNCTION EXTENDED regexp_extract -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED regexp_extract -POSTHOOK: type: DESCFUNCTION -regexp_extract(str, regexp[, idx]) - extracts a group that matches regexp -Example: - > SELECT regexp_extract('100-200', '(\d+)-(\d+)', 1) FROM src LIMIT 1; - '100' -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: 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: DESCRIBE FUNCTION EXTENDED positive -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED positive -POSTHOOK: type: DESCFUNCTION -positive 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: DESCRIBE FUNCTION EXTENDED day -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED day -POSTHOOK: type: DESCFUNCTION -day(date) - Returns the date of the month of date -date is a string in the format of 'yyyy-MM-dd HH:mm:ss' or 'yyyy-MM-dd'. -Example: - > SELECT day('2009-30-07', 1) FROM src LIMIT 1; - 30 -PREHOOK: query: DESCRIBE FUNCTION EXTENDED dayofmonth -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED dayofmonth -POSTHOOK: type: DESCFUNCTION -dayofmonth(date) - Returns the date of the month of date -date is a string in the format of 'yyyy-MM-dd HH:mm:ss' or 'yyyy-MM-dd'. -Example: - > SELECT dayofmonth('2009-30-07', 1) FROM src LIMIT 1; - 30 -PREHOOK: query: DESCRIBE FUNCTION EXTENDED month -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED month -POSTHOOK: type: DESCFUNCTION -month(date) - Returns the month of date -Example: - > SELECT month('2009-30-07') FROM src LIMIT 1; - 7 -PREHOOK: query: DESCRIBE FUNCTION EXTENDED year -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED year -POSTHOOK: type: DESCFUNCTION -year(date) - Returns the year of date -date is a string in the format of 'yyyy-MM-dd HH:mm:ss' or 'yyyy-MM-dd'. -Example: - > SELECT year('2009-30-07', 1) FROM src LIMIT 1; - 2009 -PREHOOK: query: DESCRIBE FUNCTION EXTENDED from_unixtime -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED from_unixtime -POSTHOOK: type: DESCFUNCTION -from_unixtime(unix_time, format) - returns unix_time in the specified format -Example: - > SELECT from_unixtime(0, 'yyyy-MM-dd HH:mm:ss') FROM src LIMIT 1; - '1970-01-01 00:00:00' -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: DESCRIBE FUNCTION EXTENDED to_date -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED to_date -POSTHOOK: type: DESCFUNCTION -to_date(expr) - Extracts the date part of the date or datetime expression expr -Example: - > SELECT to_date('2009-30-07 04:17:52') FROM src LIMIT 1; - '2009-30-07' -PREHOOK: query: DESCRIBE FUNCTION EXTENDED date_add -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED date_add -POSTHOOK: type: DESCFUNCTION -date_add(start_date, num_days) - Returns the date that is num_days after start_date. -start_date is a string in the format 'yyyy-MM-dd HH:mm:ss' or 'yyyy-MM-dd'. num_days is a number. The time part of start_date is ignored. -Example: - > SELECT date_add('2009-30-07', 1) FROM src LIMIT 1; - '2009-31-07' -PREHOOK: query: DESCRIBE FUNCTION EXTENDED date_sub -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED date_sub -POSTHOOK: type: DESCFUNCTION -date_sub(start_date, num_days) - Returns the date that is num_days before start_date. -start_date is a string in the format 'yyyy-MM-dd HH:mm:ss' or 'yyyy-MM-dd'. num_days is a number. The time part of start_date is ignored. -Example: - > SELECT date_sub('2009-30-07', 1) FROM src LIMIT 1; - '2009-29-07' -PREHOOK: query: DESCRIBE FUNCTION EXTENDED datediff -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED datediff -POSTHOOK: type: DESCFUNCTION -datediff(date1, date2) - Returns the number of days between date1 and date2 -date1 and date2 are strings in the format 'yyyy-MM-dd HH:mm:ss' or 'yyyy-MM-dd'. The time parts are ignored.If date1 is earlier than date2, the result is negative. -Example: - > SELECT datediff('2009-30-07', '2009-31-07') FROM src LIMIT 1; - 1 -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: DESCRIBE FUNCTION EXTENDED + -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED + -POSTHOOK: type: DESCFUNCTION -a + b - Returns a+b -PREHOOK: query: DESCRIBE FUNCTION EXTENDED - -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED - -POSTHOOK: type: DESCFUNCTION -a - b - Returns the difference a-b -PREHOOK: query: DESCRIBE FUNCTION EXTENDED * -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED * -POSTHOOK: type: DESCFUNCTION -a * b - Multiplies a by b -PREHOOK: query: DESCRIBE FUNCTION EXTENDED / -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED / -POSTHOOK: type: DESCFUNCTION -a / b - Divide a by b -Example: - > SELECT 3 / 2 FROM src LIMIT 1; - 1.5 -PREHOOK: query: DESCRIBE FUNCTION EXTENDED % -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED % -POSTHOOK: type: DESCFUNCTION -a % b - Returns the remainder when dividing a by b -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: DESCRIBE FUNCTION EXTENDED & -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED & -POSTHOOK: type: DESCFUNCTION -a & b - Bitwise and -Example: - > SELECT 3 & 5 FROM src LIMIT 1; - 1 -PREHOOK: query: DESCRIBE FUNCTION EXTENDED | -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED | -POSTHOOK: type: DESCFUNCTION -a | b - Bitwise or -Example: - > SELECT 3 | 5 FROM src LIMIT 1; - 7 -PREHOOK: query: DESCRIBE FUNCTION EXTENDED ^ -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED ^ -POSTHOOK: type: DESCFUNCTION -a ^ b - Bitwise exclusive or -Example: - > SELECT 3 ^ 5 FROM src LIMIT 1; - 2 -PREHOOK: query: DESCRIBE FUNCTION EXTENDED ~ -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED ~ -POSTHOOK: type: DESCFUNCTION -~ n - Bitwise not -Example: - > SELECT ~ 0 FROM src LIMIT 1; - -1 -PREHOOK: query: DESCRIBE FUNCTION EXTENDED = -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED = -POSTHOOK: type: DESCFUNCTION -a = b - Returns TRUE if a equals b and false otherwise -PREHOOK: query: DESCRIBE FUNCTION EXTENDED <> -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED <> -POSTHOOK: type: DESCFUNCTION -a <> b - Returns TRUE if a is not equal to b -PREHOOK: query: DESCRIBE FUNCTION EXTENDED < -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED < -POSTHOOK: type: DESCFUNCTION -a < b - Returns TRUE if a is less than b -PREHOOK: query: DESCRIBE FUNCTION EXTENDED <= -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED <= -POSTHOOK: type: DESCFUNCTION -a <= b - Returns TRUE if b is not greater than a -PREHOOK: query: DESCRIBE FUNCTION EXTENDED > -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED > -POSTHOOK: type: DESCFUNCTION -a > b - Returns TRUE if a is greater than b -PREHOOK: query: DESCRIBE FUNCTION EXTENDED >= -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED >= -POSTHOOK: type: DESCFUNCTION -a >= b - Returns TRUE if b is not smaller than a -PREHOOK: query: DESCRIBE FUNCTION EXTENDED and -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED and -POSTHOOK: type: DESCFUNCTION -a and b - Logical and -Example: - > SELECT * FROM srcpart WHERE src.hr=12 and src.hr='2008-04-08' LIMIT 1; - 27 val_27 2008-04-08 12 -PREHOOK: query: DESCRIBE FUNCTION EXTENDED or -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED or -POSTHOOK: type: DESCFUNCTION -a or b - Logical or -PREHOOK: query: DESCRIBE FUNCTION EXTENDED not -PREHOOK: type: DESCFUNCTION -POSTHOOK: query: DESCRIBE FUNCTION EXTENDED not -POSTHOOK: type: DESCFUNCTION -not a - Logical not -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 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 Index: ql/src/test/results/clientpositive/udf_power.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_power.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_power.q.out (revision 0) @@ -0,0 +1,14 @@ +PREHOOK: query: DESCRIBE FUNCTION power +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION power +POSTHOOK: type: DESCFUNCTION +power(x1, x2) - raise x1 to the power of x2 +PREHOOK: query: DESCRIBE FUNCTION EXTENDED power +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED power +POSTHOOK: type: DESCFUNCTION +power(x1, x2) - raise x1 to the power of x2 +Synonyms: pow +Example: + > SELECT power(2, 3) FROM src LIMIT 1; + 8 Index: ql/src/test/results/clientpositive/udf_if.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_if.q.out (revision 896748) +++ ql/src/test/results/clientpositive/udf_if.q.out (working copy) @@ -2,12 +2,12 @@ PREHOOK: type: DESCFUNCTION POSTHOOK: query: DESCRIBE FUNCTION if POSTHOOK: type: DESCFUNCTION -There is no documentation for function if +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 +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, @@ -77,7 +77,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1635207375/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1694401467/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, @@ -87,7 +87,7 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1635207375/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1694401467/10000 1 1 1 1 NULL 2 PREHOOK: query: -- Type conversions EXPLAIN @@ -150,7 +150,7 @@ FROM src LIMIT 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1478265880/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/984666042/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, @@ -158,5 +158,5 @@ FROM src LIMIT 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1478265880/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/984666042/10000 128 1.1 ABC 12.3 Index: ql/src/test/results/clientpositive/udf_not.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_not.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_not.q.out (revision 0) @@ -0,0 +1,24 @@ +PREHOOK: query: DESCRIBE FUNCTION not +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION not +POSTHOOK: type: DESCFUNCTION +not a - Logical not +PREHOOK: query: DESCRIBE FUNCTION EXTENDED not +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED not +POSTHOOK: type: DESCFUNCTION +not a - Logical not +Synonyms: ! +PREHOOK: query: -- synonym +DESCRIBE FUNCTION ! +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: -- synonym +DESCRIBE FUNCTION ! +POSTHOOK: type: DESCFUNCTION +! a - Logical not +PREHOOK: query: DESCRIBE FUNCTION EXTENDED ! +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED ! +POSTHOOK: type: DESCFUNCTION +! a - Logical not +Synonyms: not Index: ql/src/test/results/clientpositive/udf_divide.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_divide.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_divide.q.out (revision 0) @@ -0,0 +1,22 @@ +PREHOOK: query: DESCRIBE FUNCTION / +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION / +POSTHOOK: type: DESCFUNCTION +a / b - Divide a by b +PREHOOK: query: DESCRIBE FUNCTION EXTENDED / +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED / +POSTHOOK: type: DESCFUNCTION +a / b - Divide a by b +Example: + > SELECT 3 / 2 FROM src LIMIT 1; + 1.5 +PREHOOK: query: SELECT 3 / 2 FROM SRC LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1123393035/10000 +POSTHOOK: query: SELECT 3 / 2 FROM SRC LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1123393035/10000 +1.5 Index: ql/src/test/results/clientpositive/udf_float.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_float.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_float.q.out (revision 0) @@ -0,0 +1,10 @@ +PREHOOK: query: DESCRIBE FUNCTION float +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION float +POSTHOOK: type: DESCFUNCTION +There is no documentation for function 'float' +PREHOOK: query: DESCRIBE FUNCTION EXTENDED float +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED float +POSTHOOK: type: DESCFUNCTION +There is no documentation for function 'float' Index: ql/src/test/results/clientpositive/udaf_min.q.out =================================================================== --- ql/src/test/results/clientpositive/udaf_min.q.out (revision 896748) +++ ql/src/test/results/clientpositive/udaf_min.q.out (working copy) @@ -1,20 +0,0 @@ -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_from_unixtime.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_from_unixtime.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_from_unixtime.q.out (revision 0) @@ -0,0 +1,13 @@ +PREHOOK: query: DESCRIBE FUNCTION from_unixtime +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION from_unixtime +POSTHOOK: type: DESCFUNCTION +from_unixtime(unix_time, format) - returns unix_time in the specified format +PREHOOK: query: DESCRIBE FUNCTION EXTENDED from_unixtime +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED from_unixtime +POSTHOOK: type: DESCFUNCTION +from_unixtime(unix_time, format) - returns unix_time in the specified format +Example: + > SELECT from_unixtime(0, 'yyyy-MM-dd HH:mm:ss') FROM src LIMIT 1; + '1970-01-01 00:00:00' Index: ql/src/test/results/clientpositive/udf_date_sub.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_date_sub.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_date_sub.q.out (revision 0) @@ -0,0 +1,14 @@ +PREHOOK: query: DESCRIBE FUNCTION date_sub +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION date_sub +POSTHOOK: type: DESCFUNCTION +date_sub(start_date, num_days) - Returns the date that is num_days before start_date. +PREHOOK: query: DESCRIBE FUNCTION EXTENDED date_sub +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED date_sub +POSTHOOK: type: DESCFUNCTION +date_sub(start_date, num_days) - Returns the date that is num_days before start_date. +start_date is a string in the format 'yyyy-MM-dd HH:mm:ss' or 'yyyy-MM-dd'. num_days is a number. The time part of start_date is ignored. +Example: + > SELECT date_sub('2009-30-07', 1) FROM src LIMIT 1; + '2009-29-07' Index: ql/src/test/results/clientpositive/udf_rpad.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_rpad.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_rpad.q.out (revision 0) @@ -0,0 +1,80 @@ +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 + rpad('hi', 1, '?'), + rpad('hi', 5, '.'), + rpad('hi', 6, '123') +FROM src LIMIT 1 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT + rpad('hi', 1, '?'), + rpad('hi', 5, '.'), + rpad('hi', 6, '123') +FROM src LIMIT 1 +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF src)) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_FUNCTION rpad 'hi' 1 '?')) (TOK_SELEXPR (TOK_FUNCTION rpad 'hi' 5 '.')) (TOK_SELEXPR (TOK_FUNCTION rpad 'hi' 6 '123'))) (TOK_LIMIT 1))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + src + TableScan + alias: src + Select Operator + expressions: + expr: rpad('hi', 1, '?') + type: string + expr: rpad('hi', 5, '.') + type: string + expr: rpad('hi', 6, '123') + type: string + outputColumnNames: _col0, _col1, _col2 + Limit + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: 1 + + +PREHOOK: query: SELECT + rpad('hi', 1, '?'), + rpad('hi', 5, '.'), + rpad('hi', 6, '123') +FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/523452931/10000 +POSTHOOK: query: SELECT + rpad('hi', 1, '?'), + rpad('hi', 5, '.'), + rpad('hi', 6, '123') +FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/523452931/10000 +h hi... hi1231 Index: ql/src/test/results/clientpositive/udf_int.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_int.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_int.q.out (revision 0) @@ -0,0 +1,10 @@ +PREHOOK: query: DESCRIBE FUNCTION int +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION int +POSTHOOK: type: DESCFUNCTION +There is no documentation for function 'int' +PREHOOK: query: DESCRIBE FUNCTION EXTENDED int +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED int +POSTHOOK: type: DESCFUNCTION +There is no documentation for function 'int' Index: ql/src/test/results/clientpositive/udf_get_json_object.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_get_json_object.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_get_json_object.q.out (revision 0) @@ -0,0 +1,147 @@ +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 +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: default@dest1 +PREHOOK: query: FROM src INSERT OVERWRITE TABLE dest1 SELECT ' abc ' WHERE src.key = 86 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: default@dest1 +POSTHOOK: query: FROM src INSERT OVERWRITE TABLE dest1 SELECT ' abc ' WHERE src.key = 86 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: default@dest1 +PREHOOK: query: EXPLAIN +SELECT get_json_object(src_json.json, '$.owner') FROM src_json +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN +SELECT get_json_object(src_json.json, '$.owner') FROM src_json +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF src_json)) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_FUNCTION get_json_object (. (TOK_TABLE_OR_COL src_json) json) '$.owner'))))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + src_json + TableScan + alias: src_json + Select Operator + expressions: + expr: get_json_object(json, '$.owner') + type: string + outputColumnNames: _col0 + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: -1 + + +PREHOOK: query: SELECT get_json_object(src_json.json, '$') FROM src_json +PREHOOK: type: QUERY +PREHOOK: Input: default@src_json +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1615998931/10000 +POSTHOOK: query: SELECT get_json_object(src_json.json, '$') FROM src_json +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src_json +POSTHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1615998931/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:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/543860321/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:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/543860321/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:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1327255777/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:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1327255777/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:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/563232699/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:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/563232699/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:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1253200680/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:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1253200680/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:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1931998473/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:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1931998473/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:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1551395780/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:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1551395780/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:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1199445708/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:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1199445708/10000 +NULL NULL NULL NULL NULL NULL Index: ql/src/test/results/clientpositive/udf_trim.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_trim.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_trim.q.out (revision 0) @@ -0,0 +1,13 @@ +PREHOOK: query: DESCRIBE FUNCTION trim +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION trim +POSTHOOK: type: DESCFUNCTION +trim(str) - Removes the leading and trailing space characters from str +PREHOOK: query: DESCRIBE FUNCTION EXTENDED trim +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED trim +POSTHOOK: type: DESCFUNCTION +trim(str) - Removes the leading and trailing space characters from str +Example: + > SELECT trim(' facebook ') FROM src LIMIT 1; + 'facebook' Index: ql/src/test/results/clientpositive/udaf_avg.q.out =================================================================== --- ql/src/test/results/clientpositive/udaf_avg.q.out (revision 896748) +++ ql/src/test/results/clientpositive/udaf_avg.q.out (working copy) @@ -1,20 +0,0 @@ -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_log.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_log.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_log.q.out (revision 0) @@ -0,0 +1,13 @@ +PREHOOK: query: DESCRIBE FUNCTION log +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION log +POSTHOOK: type: DESCFUNCTION +log([b], x) - Returns the logarithm of x with base b +PREHOOK: query: DESCRIBE FUNCTION EXTENDED log +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED log +POSTHOOK: type: DESCFUNCTION +log([b], x) - Returns the logarithm of x with base b +Example: + > SELECT log(13, 13) FROM src LIMIT 1; + 1 Index: ql/src/test/results/clientpositive/udf_div.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_div.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_div.q.out (revision 0) @@ -0,0 +1,22 @@ +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 DIV 2 FROM SRC LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1061563438/10000 +POSTHOOK: query: SELECT 3 DIV 2 FROM SRC LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1061563438/10000 +1 Index: ql/src/test/results/clientpositive/udaf_count.q.out =================================================================== --- ql/src/test/results/clientpositive/udaf_count.q.out (revision 896748) +++ ql/src/test/results/clientpositive/udaf_count.q.out (working copy) @@ -1,20 +0,0 @@ -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 896748) +++ ql/src/test/results/clientpositive/udaf_std.q.out (working copy) @@ -1,60 +0,0 @@ -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_modulo.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_modulo.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_modulo.q.out (revision 0) @@ -0,0 +1,10 @@ +PREHOOK: query: DESCRIBE FUNCTION % +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION % +POSTHOOK: type: DESCFUNCTION +a % b - Returns the remainder when dividing a by b +PREHOOK: query: DESCRIBE FUNCTION EXTENDED % +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED % +POSTHOOK: type: DESCFUNCTION +a % b - Returns the remainder when dividing a by b Index: ql/src/test/results/clientpositive/udf_negative.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_negative.q.out (revision 896748) +++ ql/src/test/results/clientpositive/udf_negative.q.out (working copy) @@ -8,57 +8,69 @@ POSTHOOK: query: DESCRIBE FUNCTION EXTENDED negative POSTHOOK: type: DESCFUNCTION negative a - Returns -a +PREHOOK: query: -- synonym +DESCRIBE FUNCTION - +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: -- synonym +DESCRIBE FUNCTION - +POSTHOOK: type: DESCFUNCTION +a - b - Returns the difference a-b +PREHOOK: query: DESCRIBE FUNCTION EXTENDED - +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED - +POSTHOOK: type: DESCFUNCTION +a - b - Returns the difference a-b PREHOOK: query: select - null from src limit 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1255375616/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1454545320/10000 POSTHOOK: query: select - null from src limit 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1255375616/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1454545320/10000 NULL PREHOOK: query: select - cast(null as int) from src limit 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/925422494/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1079502691/10000 POSTHOOK: query: select - cast(null as int) from src limit 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/925422494/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1079502691/10000 NULL PREHOOK: query: select - cast(null as smallint) from src limit 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/75605941/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/224532150/10000 POSTHOOK: query: select - cast(null as smallint) from src limit 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/75605941/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/224532150/10000 NULL PREHOOK: query: select - cast(null as bigint) from src limit 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/914031656/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1782782294/10000 POSTHOOK: query: select - cast(null as bigint) from src limit 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/914031656/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1782782294/10000 NULL PREHOOK: query: select - cast(null as double) from src limit 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/551335924/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/19357445/10000 POSTHOOK: query: select - cast(null as double) from src limit 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/551335924/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/19357445/10000 NULL PREHOOK: query: select - cast(null as float) from src limit 1 PREHOOK: type: QUERY PREHOOK: Input: default@src -PREHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/708448995/10000 +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1723958918/10000 POSTHOOK: query: select - cast(null as float) from src limit 1 POSTHOOK: type: QUERY POSTHOOK: Input: default@src -POSTHOOK: Output: file:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/708448995/10000 +POSTHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1723958918/10000 NULL Index: ql/src/test/results/clientpositive/udf_pow.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_pow.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_pow.q.out (revision 0) @@ -0,0 +1,14 @@ +PREHOOK: query: DESCRIBE FUNCTION pow +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION pow +POSTHOOK: type: DESCFUNCTION +pow(x1, x2) - raise x1 to the power of x2 +PREHOOK: query: DESCRIBE FUNCTION EXTENDED pow +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED pow +POSTHOOK: type: DESCFUNCTION +pow(x1, x2) - raise x1 to the power of x2 +Synonyms: power +Example: + > SELECT pow(2, 3) FROM src LIMIT 1; + 8 Index: ql/src/test/results/clientpositive/udf_string.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_string.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_string.q.out (revision 0) @@ -0,0 +1,10 @@ +PREHOOK: query: DESCRIBE FUNCTION string +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION string +POSTHOOK: type: DESCFUNCTION +There is no documentation for function 'string' +PREHOOK: query: DESCRIBE FUNCTION EXTENDED string +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED string +POSTHOOK: type: DESCFUNCTION +There is no documentation for function 'string' Index: ql/src/test/results/clientpositive/udf_dayofmonth.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_dayofmonth.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_dayofmonth.q.out (revision 0) @@ -0,0 +1,15 @@ +PREHOOK: query: DESCRIBE FUNCTION dayofmonth +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION dayofmonth +POSTHOOK: type: DESCFUNCTION +dayofmonth(date) - Returns the date of the month of date +PREHOOK: query: DESCRIBE FUNCTION EXTENDED dayofmonth +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED dayofmonth +POSTHOOK: type: DESCFUNCTION +dayofmonth(date) - Returns the date of the month of date +Synonyms: day +date is a string in the format of 'yyyy-MM-dd HH:mm:ss' or 'yyyy-MM-dd'. +Example: + > SELECT dayofmonth('2009-30-07', 1) FROM src LIMIT 1; + 30 Index: ql/src/test/results/clientpositive/udaf_stddev_samp.q.out =================================================================== --- ql/src/test/results/clientpositive/udaf_stddev_samp.q.out (revision 896748) +++ ql/src/test/results/clientpositive/udaf_stddev_samp.q.out (working copy) @@ -1,20 +0,0 @@ -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_second.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_second.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_second.q.out (revision 0) @@ -0,0 +1,78 @@ +PREHOOK: query: DESCRIBE FUNCTION second +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION second +POSTHOOK: type: DESCFUNCTION +second(date) - Returns the second of date +PREHOOK: query: DESCRIBE FUNCTION EXTENDED second +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED second +POSTHOOK: type: DESCFUNCTION +second(date) - Returns the second of date +date is a string in the format of 'yyyy-MM-dd HH:mm:ss' or 'HH:mm:ss'. +Example: + > SELECT second('2009-07-30 12:58:59') FROM src LIMIT 1; + 59 + > SELECT second('12:58:59') FROM src LIMIT 1; + 59 +PREHOOK: query: EXPLAIN +SELECT second('2009-08-07 13:14:15'), second('13:14:15'), second('2009-08-07') +FROM src WHERE key = 86 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN +SELECT second('2009-08-07 13:14:15'), second('13:14:15'), second('2009-08-07') +FROM src WHERE key = 86 +POSTHOOK: type: QUERY +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF src)) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_FUNCTION second '2009-08-07 13:14:15')) (TOK_SELEXPR (TOK_FUNCTION second '13:14:15')) (TOK_SELEXPR (TOK_FUNCTION second '2009-08-07'))) (TOK_WHERE (= (TOK_TABLE_OR_COL key) 86)))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + src + TableScan + alias: src + Filter Operator + predicate: + expr: (key = 86) + type: boolean + Filter Operator + predicate: + expr: (key = 86) + type: boolean + Select Operator + expressions: + expr: second('2009-08-07 13:14:15') + type: int + expr: second('13:14:15') + type: int + expr: second('2009-08-07') + type: int + outputColumnNames: _col0, _col1, _col2 + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: -1 + + +PREHOOK: query: SELECT second('2009-08-07 13:14:15'), second('13:14:15'), second('2009-08-07') +FROM src WHERE key = 86 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1610069945/10000 +POSTHOOK: query: SELECT second('2009-08-07 13:14:15'), second('13:14:15'), second('2009-08-07') +FROM src WHERE key = 86 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/Users/carl/Projects/hd8/hive-trunk/build/ql/tmp/1610069945/10000 +15 15 NULL Index: ql/src/test/results/clientpositive/udf_or.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_or.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_or.q.out (revision 0) @@ -0,0 +1,10 @@ +PREHOOK: query: DESCRIBE FUNCTION or +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION or +POSTHOOK: type: DESCFUNCTION +a or b - Logical or +PREHOOK: query: DESCRIBE FUNCTION EXTENDED or +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED or +POSTHOOK: type: DESCFUNCTION +a or b - Logical or Index: ql/src/test/results/clientpositive/udf_regexp_extract.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_regexp_extract.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_regexp_extract.q.out (revision 0) @@ -0,0 +1,13 @@ +PREHOOK: query: DESCRIBE FUNCTION regexp_extract +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION regexp_extract +POSTHOOK: type: DESCFUNCTION +regexp_extract(str, regexp[, idx]) - extracts a group that matches regexp +PREHOOK: query: DESCRIBE FUNCTION EXTENDED regexp_extract +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED regexp_extract +POSTHOOK: type: DESCFUNCTION +regexp_extract(str, regexp[, idx]) - extracts a group that matches regexp +Example: + > SELECT regexp_extract('100-200', '(\d+)-(\d+)', 1) FROM src LIMIT 1; + '100' Index: ql/src/test/results/clientpositive/udf_divider.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_divider.q.out (revision 896748) +++ ql/src/test/results/clientpositive/udf_divider.q.out (working copy) @@ -1,31 +0,0 @@ -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:/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:/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:/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:/Users/carl/Projects/hd9/hive-trunk/build/ql/tmp/1585227313/10000 -1 Index: ql/src/test/results/clientpositive/udf_upper.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_upper.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_upper.q.out (revision 0) @@ -0,0 +1,14 @@ +PREHOOK: query: DESCRIBE FUNCTION upper +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION upper +POSTHOOK: type: DESCFUNCTION +upper(str) - Returns str with all characters changed to uppercase +PREHOOK: query: DESCRIBE FUNCTION EXTENDED upper +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED upper +POSTHOOK: type: DESCFUNCTION +upper(str) - Returns str with all characters changed to uppercase +Synonyms: ucase +Example: + > SELECT upper('Facebook') FROM src LIMIT 1; + 'FACEBOOK' Index: ql/src/test/results/clientpositive/udf_equal.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_equal.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_equal.q.out (revision 0) @@ -0,0 +1,22 @@ +PREHOOK: query: DESCRIBE FUNCTION = +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION = +POSTHOOK: type: DESCFUNCTION +a = b - Returns TRUE if a equals b and false otherwise +PREHOOK: query: DESCRIBE FUNCTION EXTENDED = +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED = +POSTHOOK: type: DESCFUNCTION +a = b - Returns TRUE if a equals b and false otherwise +Synonyms: == +PREHOOK: query: DESCRIBE FUNCTION == +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION == +POSTHOOK: type: DESCFUNCTION +a == b - Returns TRUE if a equals b and false otherwise +PREHOOK: query: DESCRIBE FUNCTION EXTENDED == +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED == +POSTHOOK: type: DESCFUNCTION +a == b - Returns TRUE if a equals b and false otherwise +Synonyms: = Index: ql/src/test/results/clientpositive/udf_stddev_samp.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_stddev_samp.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_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_double.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_double.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_double.q.out (revision 0) @@ -0,0 +1,10 @@ +PREHOOK: query: DESCRIBE FUNCTION double +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION double +POSTHOOK: type: DESCFUNCTION +There is no documentation for function 'double' +PREHOOK: query: DESCRIBE FUNCTION EXTENDED double +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED double +POSTHOOK: type: DESCFUNCTION +There is no documentation for function 'double' Index: ql/src/test/results/clientpositive/udf_bigint.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_bigint.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_bigint.q.out (revision 0) @@ -0,0 +1,10 @@ +PREHOOK: query: DESCRIBE FUNCTION bigint +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION bigint +POSTHOOK: type: DESCFUNCTION +There is no documentation for function 'bigint' +PREHOOK: query: DESCRIBE FUNCTION EXTENDED bigint +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED bigint +POSTHOOK: type: DESCFUNCTION +There is no documentation for function 'bigint' Index: ql/src/test/results/clientpositive/udf_rand.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_rand.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_rand.q.out (revision 0) @@ -0,0 +1,10 @@ +PREHOOK: query: DESCRIBE FUNCTION rand +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION rand +POSTHOOK: type: DESCFUNCTION +rand([seed]) - Returns a pseudorandom number between 0 and 1 +PREHOOK: query: DESCRIBE FUNCTION EXTENDED rand +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED rand +POSTHOOK: type: DESCFUNCTION +rand([seed]) - Returns a pseudorandom number between 0 and 1 Index: ql/src/test/results/clientpositive/udf_isnotnull.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_isnotnull.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_isnotnull.q.out (revision 0) @@ -0,0 +1,10 @@ +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 Index: ql/src/test/results/clientpositive/udf_greaterthan.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_greaterthan.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_greaterthan.q.out (revision 0) @@ -0,0 +1,10 @@ +PREHOOK: query: DESCRIBE FUNCTION > +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION > +POSTHOOK: type: DESCFUNCTION +a > b - Returns TRUE if a is greater than b +PREHOOK: query: DESCRIBE FUNCTION EXTENDED > +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED > +POSTHOOK: type: DESCFUNCTION +a > b - Returns TRUE if a is greater than b Index: ql/src/test/results/clientpositive/udf_rlike.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_rlike.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_rlike.q.out (revision 0) @@ -0,0 +1,14 @@ +PREHOOK: query: DESCRIBE FUNCTION rlike +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION rlike +POSTHOOK: type: DESCFUNCTION +str rlike regexp - Returns true if str matches regexp and false otherwise +PREHOOK: query: DESCRIBE FUNCTION EXTENDED rlike +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED rlike +POSTHOOK: type: DESCFUNCTION +str rlike regexp - Returns true if str matches regexp and false otherwise +Synonyms: regexp +Example: + > SELECT 'fb' rlike '.*' FROM src LIMIT 1; + true Index: ql/src/test/results/clientpositive/udf_stddev_pop.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_stddev_pop.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_stddev_pop.q.out (revision 0) @@ -0,0 +1,10 @@ +PREHOOK: query: DESCRIBE FUNCTION udf_stddev_pop +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION udf_stddev_pop +POSTHOOK: type: DESCFUNCTION +Function 'udf_stddev_pop' does not exist. +PREHOOK: query: DESCRIBE FUNCTION EXTENDED udf_stddev_pop +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED udf_stddev_pop +POSTHOOK: type: DESCFUNCTION +Function 'udf_stddev_pop' does not exist. Index: ql/src/test/queries/clientpositive/udf_sqrt.q =================================================================== --- ql/src/test/queries/clientpositive/udf_sqrt.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_sqrt.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION sqrt; +DESCRIBE FUNCTION EXTENDED sqrt; Index: ql/src/test/queries/clientpositive/udaf_std.q =================================================================== --- ql/src/test/queries/clientpositive/udaf_std.q (revision 896748) +++ ql/src/test/queries/clientpositive/udaf_std.q (working copy) @@ -1,16 +0,0 @@ -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_modulo.q =================================================================== --- ql/src/test/queries/clientpositive/udf_modulo.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_modulo.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION %; +DESCRIBE FUNCTION EXTENDED %; Index: ql/src/test/queries/clientpositive/udf_explode.q =================================================================== --- ql/src/test/queries/clientpositive/udf_explode.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_explode.q (revision 0) @@ -0,0 +1,9 @@ +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; + +SELECT explode(array(1,2,3)) AS myCol FROM src LIMIT 3; +SELECT explode(array(1,2,3)) AS (myCol) FROM src LIMIT 3; +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_second.q =================================================================== --- ql/src/test/queries/clientpositive/udf_second.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_second.q (revision 0) @@ -0,0 +1,9 @@ +DESCRIBE FUNCTION second; +DESCRIBE FUNCTION EXTENDED second; + +EXPLAIN +SELECT second('2009-08-07 13:14:15'), second('13:14:15'), second('2009-08-07') +FROM src WHERE key = 86; + +SELECT second('2009-08-07 13:14:15'), second('13:14:15'), second('2009-08-07') +FROM src WHERE key = 86; Index: ql/src/test/queries/clientpositive/udf_avg.q =================================================================== --- ql/src/test/queries/clientpositive/udf_avg.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_avg.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION avg; +DESCRIBE FUNCTION EXTENDED avg; Index: ql/src/test/queries/clientpositive/udf_upper.q =================================================================== --- ql/src/test/queries/clientpositive/udf_upper.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_upper.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION upper; +DESCRIBE FUNCTION EXTENDED upper; Index: ql/src/test/queries/clientpositive/udf_bitwise_xor.q =================================================================== --- ql/src/test/queries/clientpositive/udf_bitwise_xor.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_bitwise_xor.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION ^; +DESCRIBE FUNCTION EXTENDED ^; Index: ql/src/test/queries/clientpositive/udf_equal.q =================================================================== --- ql/src/test/queries/clientpositive/udf_equal.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_equal.q (revision 0) @@ -0,0 +1,6 @@ +DESCRIBE FUNCTION =; +DESCRIBE FUNCTION EXTENDED =; + +DESCRIBE FUNCTION ==; +DESCRIBE FUNCTION EXTENDED ==; + Index: ql/src/test/queries/clientpositive/udf_lessthanorequal.q =================================================================== --- ql/src/test/queries/clientpositive/udf_lessthanorequal.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_lessthanorequal.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION <=; +DESCRIBE FUNCTION EXTENDED <=; Index: ql/src/test/queries/clientpositive/udf_day.q =================================================================== --- ql/src/test/queries/clientpositive/udf_day.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_day.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION day; +DESCRIBE FUNCTION EXTENDED day; Index: ql/src/test/queries/clientpositive/udf_lessthan.q =================================================================== --- ql/src/test/queries/clientpositive/udf_lessthan.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_lessthan.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION <; +DESCRIBE FUNCTION EXTENDED <; Index: ql/src/test/queries/clientpositive/udf_isnotnull.q =================================================================== --- ql/src/test/queries/clientpositive/udf_isnotnull.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_isnotnull.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION isnotnull; +DESCRIBE FUNCTION EXTENDED isnotnull; Index: ql/src/test/queries/clientpositive/udf_minute.q =================================================================== --- ql/src/test/queries/clientpositive/udf_minute.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_minute.q (revision 0) @@ -0,0 +1,9 @@ +DESCRIBE FUNCTION minute; +DESCRIBE FUNCTION EXTENDED minute; + +EXPLAIN +SELECT minute('2009-08-07 13:14:15'), minute('13:14:15'), minute('2009-08-07') +FROM src WHERE key = 86; + +SELECT minute('2009-08-07 13:14:15'), minute('13:14:15'), minute('2009-08-07') +FROM src WHERE key = 86; Index: ql/src/test/queries/clientpositive/udf_sum.q =================================================================== --- ql/src/test/queries/clientpositive/udf_sum.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_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_stddev_pop.q =================================================================== --- ql/src/test/queries/clientpositive/udf_stddev_pop.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_stddev_pop.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION udf_stddev_pop; +DESCRIBE FUNCTION EXTENDED udf_stddev_pop; Index: ql/src/test/queries/clientpositive/udf_to_date.q =================================================================== --- ql/src/test/queries/clientpositive/udf_to_date.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_to_date.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION to_date; +DESCRIBE FUNCTION EXTENDED to_date; Index: ql/src/test/queries/clientpositive/udf_date_sub.q =================================================================== --- ql/src/test/queries/clientpositive/udf_date_sub.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_date_sub.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION date_sub; +DESCRIBE FUNCTION EXTENDED date_sub; Index: ql/src/test/queries/clientpositive/udf_rpad.q =================================================================== --- ql/src/test/queries/clientpositive/udf_rpad.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_rpad.q (revision 0) @@ -0,0 +1,14 @@ +DESCRIBE FUNCTION rpad; +DESCRIBE FUNCTION EXTENDED rpad; + +EXPLAIN SELECT + rpad('hi', 1, '?'), + rpad('hi', 5, '.'), + rpad('hi', 6, '123') +FROM src LIMIT 1; + +SELECT + rpad('hi', 1, '?'), + rpad('hi', 5, '.'), + rpad('hi', 6, '123') +FROM src LIMIT 1; Index: ql/src/test/queries/clientpositive/udf_count.q =================================================================== --- ql/src/test/queries/clientpositive/udf_count.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_count.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION count; +DESCRIBE FUNCTION EXTENDED count; Index: ql/src/test/queries/clientpositive/udf_int.q =================================================================== --- ql/src/test/queries/clientpositive/udf_int.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_int.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION int; +DESCRIBE FUNCTION EXTENDED int; Index: ql/src/test/queries/clientpositive/udf_greaterthanorequal.q =================================================================== --- ql/src/test/queries/clientpositive/udf_greaterthanorequal.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_greaterthanorequal.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION >=; +DESCRIBE FUNCTION EXTENDED >=; Index: ql/src/test/queries/clientpositive/udf_get_json_object.q =================================================================== --- ql/src/test/queries/clientpositive/udf_get_json_object.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_get_json_object.q (revision 0) @@ -0,0 +1,25 @@ +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; + +EXPLAIN +SELECT get_json_object(src_json.json, '$.owner') FROM src_json; + +SELECT get_json_object(src_json.json, '$') FROM src_json; + +SELECT get_json_object(src_json.json, '$.owner'), get_json_object(src_json.json, '$.store') FROM src_json; + +SELECT get_json_object(src_json.json, '$.store.bicycle'), get_json_object(src_json.json, '$.store.book') FROM src_json; + +SELECT get_json_object(src_json.json, '$.store.book[0]'), get_json_object(src_json.json, '$.store.book[*]') FROM src_json; + +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; + +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; + +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; + +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; Index: ql/src/test/queries/clientpositive/udf_ucase.q =================================================================== --- ql/src/test/queries/clientpositive/udf_ucase.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_ucase.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION ucase; +DESCRIBE FUNCTION EXTENDED ucase; Index: ql/src/test/queries/clientpositive/udf_var_samp.q =================================================================== --- ql/src/test/queries/clientpositive/udf_var_samp.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_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_case.q =================================================================== --- ql/src/test/queries/clientpositive/udf_case.q (revision 896748) +++ ql/src/test/queries/clientpositive/udf_case.q (working copy) @@ -1,6 +1,5 @@ --- Parsing bug requires us to quote case -DESCRIBE FUNCTION 'case'; -DESCRIBE FUNCTION EXTENDED 'case'; +DESCRIBE FUNCTION case; +DESCRIBE FUNCTION EXTENDED case; EXPLAIN SELECT CASE 1 Index: ql/src/test/queries/clientpositive/udf_ceil.q =================================================================== --- ql/src/test/queries/clientpositive/udf_ceil.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_ceil.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION ceil; +DESCRIBE FUNCTION EXTENDED ceil; Index: ql/src/test/queries/clientpositive/udf_map.q =================================================================== --- ql/src/test/queries/clientpositive/udf_map.q (revision 896748) +++ ql/src/test/queries/clientpositive/udf_map.q (working copy) @@ -1,6 +1,5 @@ --- Parsing bug requires us to quote map -DESCRIBE FUNCTION 'map'; -DESCRIBE FUNCTION EXTENDED '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 896748) +++ ql/src/test/queries/clientpositive/udaf_avg.q (working copy) @@ -1,4 +0,0 @@ -DESCRIBE FUNCTION avg; -DESCRIBE FUNCTION EXTENDED avg; -DESCRIBE FUNCTION avg; -DESCRIBE FUNCTION EXTENDED avg; Index: ql/src/test/queries/clientpositive/udf_boolean.q =================================================================== --- ql/src/test/queries/clientpositive/udf_boolean.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_boolean.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION boolean; +DESCRIBE FUNCTION EXTENDED boolean; Index: ql/src/test/queries/clientpositive/udf_substring.q =================================================================== --- ql/src/test/queries/clientpositive/udf_substring.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_substring.q (revision 0) @@ -0,0 +1,3 @@ +-- Synonym. See udf_substr.q +DESCRIBE FUNCTION substring; +DESCRIBE FUNCTION EXTENDED substring; Index: ql/src/test/queries/clientpositive/udf_div.q =================================================================== --- ql/src/test/queries/clientpositive/udf_div.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_div.q (revision 0) @@ -0,0 +1,4 @@ +DESCRIBE FUNCTION div; +DESCRIBE FUNCTION EXTENDED div; + +SELECT 3 DIV 2 FROM SRC LIMIT 1; Index: ql/src/test/queries/clientpositive/udf_max.q =================================================================== --- ql/src/test/queries/clientpositive/udf_max.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_max.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION max; +DESCRIBE FUNCTION EXTENDED max; Index: ql/src/test/queries/clientpositive/udf_add.q =================================================================== --- ql/src/test/queries/clientpositive/udf_add.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_add.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION +; +DESCRIBE FUNCTION EXTENDED +; Index: ql/src/test/queries/clientpositive/udf_hour_minute_second.q =================================================================== --- ql/src/test/queries/clientpositive/udf_hour_minute_second.q (revision 896748) +++ ql/src/test/queries/clientpositive/udf_hour_minute_second.q (working copy) @@ -1,20 +0,0 @@ -DESCRIBE FUNCTION hour; -DESCRIBE FUNCTION minute; -DESCRIBE FUNCTION second; - - -DESCRIBE FUNCTION EXTENDED hour; -DESCRIBE FUNCTION EXTENDED minute; -DESCRIBE FUNCTION EXTENDED second; - - -EXPLAIN -SELECT hour('2009-08-07 13:14:15'), hour('13:14:15'), hour('2009-08-07'), - minute('2009-08-07 13:14:15'), minute('13:14:15'), minute('2009-08-07'), - second('2009-08-07 13:14:15'), second('13:14:15'), second('2009-08-07') -FROM src WHERE key = 86; - -SELECT hour('2009-08-07 13:14:15'), hour('13:14:15'), hour('2009-08-07'), - minute('2009-08-07 13:14:15'), minute('13:14:15'), minute('2009-08-07'), - second('2009-08-07 13:14:15'), second('13:14:15'), second('2009-08-07') -FROM src WHERE key = 86; Index: ql/src/test/queries/clientpositive/udf_negative.q =================================================================== --- ql/src/test/queries/clientpositive/udf_negative.q (revision 896748) +++ ql/src/test/queries/clientpositive/udf_negative.q (working copy) @@ -1,6 +1,10 @@ DESCRIBE FUNCTION negative; DESCRIBE FUNCTION EXTENDED negative; +-- synonym +DESCRIBE FUNCTION -; +DESCRIBE FUNCTION EXTENDED -; + 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/udf_string.q =================================================================== --- ql/src/test/queries/clientpositive/udf_string.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_string.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION string; +DESCRIBE FUNCTION EXTENDED string; Index: ql/src/test/queries/clientpositive/udaf_stddev_samp.q =================================================================== --- ql/src/test/queries/clientpositive/udaf_stddev_samp.q (revision 896748) +++ ql/src/test/queries/clientpositive/udaf_stddev_samp.q (working copy) @@ -1,4 +0,0 @@ -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_lpad.q =================================================================== --- ql/src/test/queries/clientpositive/udf_lpad.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_lpad.q (revision 0) @@ -0,0 +1,14 @@ +DESCRIBE FUNCTION lpad; +DESCRIBE FUNCTION EXTENDED lpad; + +EXPLAIN SELECT + lpad('hi', 1, '?'), + lpad('hi', 5, '.'), + lpad('hi', 6, '123') +FROM src LIMIT 1; + +SELECT + lpad('hi', 1, '?'), + lpad('hi', 5, '.'), + lpad('hi', 6, '123') +FROM src LIMIT 1; Index: ql/src/test/queries/clientpositive/udf_divider.q =================================================================== --- ql/src/test/queries/clientpositive/udf_divider.q (revision 896748) +++ ql/src/test/queries/clientpositive/udf_divider.q (working copy) @@ -1,6 +0,0 @@ -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_bitwise_and.q =================================================================== --- ql/src/test/queries/clientpositive/udf_bitwise_and.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_bitwise_and.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION &; +DESCRIBE FUNCTION EXTENDED &; Index: ql/src/test/queries/clientpositive/udf_variance.q =================================================================== --- ql/src/test/queries/clientpositive/udf_variance.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_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/udaf_sum.q =================================================================== --- ql/src/test/queries/clientpositive/udaf_sum.q (revision 896748) +++ ql/src/test/queries/clientpositive/udaf_sum.q (working copy) @@ -1,6 +0,0 @@ -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 896748) +++ ql/src/test/queries/clientpositive/udf_json.q (working copy) @@ -1,25 +0,0 @@ -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; - -EXPLAIN -SELECT get_json_object(src_json.json, '$.owner') FROM src_json; - -SELECT get_json_object(src_json.json, '$') FROM src_json; - -SELECT get_json_object(src_json.json, '$.owner'), get_json_object(src_json.json, '$.store') FROM src_json; - -SELECT get_json_object(src_json.json, '$.store.bicycle'), get_json_object(src_json.json, '$.store.book') FROM src_json; - -SELECT get_json_object(src_json.json, '$.store.book[0]'), get_json_object(src_json.json, '$.store.book[*]') FROM src_json; - -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; - -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; - -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; - -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; Index: ql/src/test/queries/clientpositive/udf_double.q =================================================================== --- ql/src/test/queries/clientpositive/udf_double.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_double.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION double; +DESCRIBE FUNCTION EXTENDED double; Index: ql/src/test/queries/clientpositive/udf_hour.q =================================================================== --- ql/src/test/queries/clientpositive/udf_hour.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_hour.q (revision 0) @@ -0,0 +1,9 @@ +DESCRIBE FUNCTION hour; +DESCRIBE FUNCTION EXTENDED hour; + +EXPLAIN +SELECT hour('2009-08-07 13:14:15'), hour('13:14:15'), hour('2009-08-07') +FROM src WHERE key = 86; + +SELECT hour('2009-08-07 13:14:15'), hour('13:14:15'), hour('2009-08-07') +FROM src WHERE key = 86; Index: ql/src/test/queries/clientpositive/udf_float.q =================================================================== --- ql/src/test/queries/clientpositive/udf_float.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_float.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION float; +DESCRIBE FUNCTION EXTENDED float; Index: ql/src/test/queries/clientpositive/udf_rlike.q =================================================================== --- ql/src/test/queries/clientpositive/udf_rlike.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_rlike.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION rlike; +DESCRIBE FUNCTION EXTENDED rlike; Index: ql/src/test/queries/clientpositive/udf_from_unixtime.q =================================================================== --- ql/src/test/queries/clientpositive/udf_from_unixtime.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_from_unixtime.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION from_unixtime; +DESCRIBE FUNCTION EXTENDED from_unixtime; Index: ql/src/test/queries/clientpositive/udaf_max.q =================================================================== --- ql/src/test/queries/clientpositive/udaf_max.q (revision 896748) +++ ql/src/test/queries/clientpositive/udaf_max.q (working copy) @@ -1,4 +0,0 @@ -DESCRIBE FUNCTION max; -DESCRIBE FUNCTION EXTENDED max; -DESCRIBE FUNCTION max; -DESCRIBE FUNCTION EXTENDED max; Index: ql/src/test/queries/clientpositive/udf_log.q =================================================================== --- ql/src/test/queries/clientpositive/udf_log.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_log.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION log; +DESCRIBE FUNCTION EXTENDED log; Index: ql/src/test/queries/clientpositive/udf_smallint.q =================================================================== --- ql/src/test/queries/clientpositive/udf_smallint.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_smallint.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION smallint; +DESCRIBE FUNCTION EXTENDED smallint; Index: ql/src/test/queries/clientpositive/udf_min.q =================================================================== --- ql/src/test/queries/clientpositive/udf_min.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_min.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION min; +DESCRIBE FUNCTION EXTENDED min; Index: ql/src/test/queries/clientpositive/udf_notequal.q =================================================================== --- ql/src/test/queries/clientpositive/udf_notequal.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_notequal.q (revision 0) @@ -0,0 +1,23 @@ +DESCRIBE FUNCTION <>; +DESCRIBE FUNCTION EXTENDED <>; + +DESCRIBE FUNCTION !=; +DESCRIBE FUNCTION EXTENDED !=; + +EXPLAIN +SELECT key, value +FROM src +WHERE key <> '302'; + +SELECT key, value +FROM src +WHERE key <> '302'; + +EXPLAIN +SELECT key, value +FROM src +WHERE key != '302'; + +SELECT key, value +FROM src +WHERE key != '302'; Index: ql/src/test/queries/clientpositive/udaf_count.q =================================================================== --- ql/src/test/queries/clientpositive/udaf_count.q (revision 896748) +++ ql/src/test/queries/clientpositive/udaf_count.q (working copy) @@ -1,4 +0,0 @@ -DESCRIBE FUNCTION count; -DESCRIBE FUNCTION EXTENDED count; -DESCRIBE FUNCTION count; -DESCRIBE FUNCTION EXTENDED count; Index: ql/src/test/queries/clientpositive/udf_pow.q =================================================================== --- ql/src/test/queries/clientpositive/udf_pow.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_pow.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION pow; +DESCRIBE FUNCTION EXTENDED pow; Index: ql/src/test/queries/clientpositive/udf_isnull.q =================================================================== --- ql/src/test/queries/clientpositive/udf_isnull.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_isnull.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION isnull; +DESCRIBE FUNCTION EXTENDED isnull; Index: ql/src/test/queries/clientpositive/udtf_explode.q =================================================================== --- ql/src/test/queries/clientpositive/udtf_explode.q (revision 896748) +++ ql/src/test/queries/clientpositive/udtf_explode.q (working copy) @@ -1,9 +0,0 @@ -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; - -SELECT explode(array(1,2,3)) AS myCol FROM src LIMIT 3; -SELECT explode(array(1,2,3)) AS (myCol) FROM src LIMIT 3; -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_ltrim.q =================================================================== --- ql/src/test/queries/clientpositive/udf_ltrim.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_ltrim.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION ltrim; +DESCRIBE FUNCTION EXTENDED ltrim; Index: ql/src/test/queries/clientpositive/udf_exp.q =================================================================== --- ql/src/test/queries/clientpositive/udf_exp.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_exp.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION exp; +DESCRIBE FUNCTION EXTENDED exp; Index: ql/src/test/queries/clientpositive/udf_tinyint.q =================================================================== --- ql/src/test/queries/clientpositive/udf_tinyint.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_tinyint.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION tinyint; +DESCRIBE FUNCTION EXTENDED tinyint; Index: ql/src/test/queries/clientpositive/udf_bitwise_or.q =================================================================== --- ql/src/test/queries/clientpositive/udf_bitwise_or.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_bitwise_or.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION |; +DESCRIBE FUNCTION EXTENDED |; Index: ql/src/test/queries/clientpositive/udf_stddev_samp.q =================================================================== --- ql/src/test/queries/clientpositive/udf_stddev_samp.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_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_power.q =================================================================== --- ql/src/test/queries/clientpositive/udf_power.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_power.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION power; +DESCRIBE FUNCTION EXTENDED power; Index: ql/src/test/queries/clientpositive/udf_not.q =================================================================== --- ql/src/test/queries/clientpositive/udf_not.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_not.q (revision 0) @@ -0,0 +1,6 @@ +DESCRIBE FUNCTION not; +DESCRIBE FUNCTION EXTENDED not; + +-- synonym +DESCRIBE FUNCTION !; +DESCRIBE FUNCTION EXTENDED !; Index: ql/src/test/queries/clientpositive/udf_divide.q =================================================================== --- ql/src/test/queries/clientpositive/udf_divide.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_divide.q (revision 0) @@ -0,0 +1,4 @@ +DESCRIBE FUNCTION /; +DESCRIBE FUNCTION EXTENDED /; + +SELECT 3 / 2 FROM SRC LIMIT 1; Index: ql/src/test/queries/clientpositive/udf_index.q =================================================================== --- ql/src/test/queries/clientpositive/udf_index.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_index.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION index; +DESCRIBE FUNCTION EXTENDED index; Index: ql/src/test/queries/clientpositive/udf_ceiling.q =================================================================== --- ql/src/test/queries/clientpositive/udf_ceiling.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_ceiling.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION ceiling; +DESCRIBE FUNCTION EXTENDED ceiling; Index: ql/src/test/queries/clientpositive/udaf_min.q =================================================================== --- ql/src/test/queries/clientpositive/udaf_min.q (revision 896748) +++ ql/src/test/queries/clientpositive/udaf_min.q (working copy) @@ -1,4 +0,0 @@ -DESCRIBE FUNCTION min; -DESCRIBE FUNCTION EXTENDED min; -DESCRIBE FUNCTION min; -DESCRIBE FUNCTION EXTENDED min; Index: ql/src/test/queries/clientpositive/udf_date_add.q =================================================================== --- ql/src/test/queries/clientpositive/udf_date_add.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_date_add.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION date_add; +DESCRIBE FUNCTION EXTENDED date_add; Index: ql/src/test/queries/clientpositive/udf_regexp_replace.q =================================================================== --- ql/src/test/queries/clientpositive/udf_regexp_replace.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_regexp_replace.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION regexp_replace; +DESCRIBE FUNCTION EXTENDED regexp_replace; \ No newline at end of file Index: ql/src/test/queries/clientpositive/udf_positive.q =================================================================== --- ql/src/test/queries/clientpositive/udf_positive.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_positive.q (revision 0) @@ -0,0 +1,6 @@ +DESCRIBE FUNCTION positive; +DESCRIBE FUNCTION EXTENDED positive; + +-- synonym +DESCRIBE FUNCTION +; +DESCRIBE FUNCTION EXTENDED +; Index: ql/src/test/queries/clientpositive/udaf_var_samp.q =================================================================== --- ql/src/test/queries/clientpositive/udaf_var_samp.q (revision 896748) +++ ql/src/test/queries/clientpositive/udaf_var_samp.q (working copy) @@ -1,4 +0,0 @@ -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_ln.q =================================================================== --- ql/src/test/queries/clientpositive/udf_ln.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_ln.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION ln; +DESCRIBE FUNCTION EXTENDED ln; Index: ql/src/test/queries/clientpositive/udf_subtract.q =================================================================== --- ql/src/test/queries/clientpositive/udf_subtract.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_subtract.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION -; +DESCRIBE FUNCTION EXTENDED -; Index: ql/src/test/queries/clientpositive/udf_when.q =================================================================== --- ql/src/test/queries/clientpositive/udf_when.q (revision 896748) +++ ql/src/test/queries/clientpositive/udf_when.q (working copy) @@ -1,3 +1,6 @@ +DESCRIBE FUNCTION when; +DESCRIBE FUNCTION EXTENDED when; + EXPLAIN SELECT CASE WHEN 1=1 THEN 2 Index: ql/src/test/queries/clientpositive/udf_dayofmonth.q =================================================================== --- ql/src/test/queries/clientpositive/udf_dayofmonth.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_dayofmonth.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION dayofmonth; +DESCRIBE FUNCTION EXTENDED dayofmonth; Index: ql/src/test/queries/clientpositive/udf_array.q =================================================================== --- ql/src/test/queries/clientpositive/udf_array.q (revision 896748) +++ ql/src/test/queries/clientpositive/udf_array.q (working copy) @@ -1,6 +1,5 @@ --- Parsing bug requires us to quote array -DESCRIBE FUNCTION 'array'; -DESCRIBE FUNCTION EXTENDED '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_or.q =================================================================== --- ql/src/test/queries/clientpositive/udf_or.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_or.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION or; +DESCRIBE FUNCTION EXTENDED or; Index: ql/src/test/queries/clientpositive/udf_floor.q =================================================================== --- ql/src/test/queries/clientpositive/udf_floor.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_floor.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION floor; +DESCRIBE FUNCTION EXTENDED floor; Index: ql/src/test/queries/clientpositive/udf_regexp_extract.q =================================================================== --- ql/src/test/queries/clientpositive/udf_regexp_extract.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_regexp_extract.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION regexp_extract; +DESCRIBE FUNCTION EXTENDED regexp_extract; Index: ql/src/test/queries/clientpositive/udf_month.q =================================================================== --- ql/src/test/queries/clientpositive/udf_month.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_month.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION minute; +DESCRIBE FUNCTION EXTENDED minute; Index: ql/src/test/queries/clientpositive/udf_bitwise_not.q =================================================================== --- ql/src/test/queries/clientpositive/udf_bitwise_not.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_bitwise_not.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION ~; +DESCRIBE FUNCTION EXTENDED ~; Index: ql/src/test/queries/clientpositive/udf_lcase.q =================================================================== --- ql/src/test/queries/clientpositive/udf_lcase.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_lcase.q (revision 0) @@ -0,0 +1,3 @@ +DESCRIBE FUNCTION lcase; +DESCRIBE FUNCTION EXTENDED lcase; + Index: ql/src/test/queries/clientpositive/udaf_variance.q =================================================================== --- ql/src/test/queries/clientpositive/udaf_variance.q (revision 896748) +++ ql/src/test/queries/clientpositive/udaf_variance.q (working copy) @@ -1,10 +0,0 @@ -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_stddev.q =================================================================== --- ql/src/test/queries/clientpositive/udf_stddev.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_stddev.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION stddev; +DESCRIBE FUNCTION EXTENDED stddev; Index: ql/src/test/queries/clientpositive/udf_std.q =================================================================== --- ql/src/test/queries/clientpositive/udf_std.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_std.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION std; +DESCRIBE FUNCTION EXTENDED std; Index: ql/src/test/queries/clientpositive/udf_rtrim.q =================================================================== --- ql/src/test/queries/clientpositive/udf_rtrim.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_rtrim.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION rtrim; +DESCRIBE FUNCTION EXTENDED rtrim; Index: ql/src/test/queries/clientpositive/udf_log2.q =================================================================== --- ql/src/test/queries/clientpositive/udf_log2.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_log2.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION log2; +DESCRIBE FUNCTION EXTENDED log2; Index: ql/src/test/queries/clientpositive/udf_var_pop.q =================================================================== --- ql/src/test/queries/clientpositive/udf_var_pop.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_var_pop.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION var_pop; +DESCRIBE FUNCTION EXTENDED var_pop; Index: ql/src/test/queries/clientpositive/udf_bigint.q =================================================================== --- ql/src/test/queries/clientpositive/udf_bigint.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_bigint.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION bigint; +DESCRIBE FUNCTION EXTENDED bigint; Index: ql/src/test/queries/clientpositive/udf_log10.q =================================================================== --- ql/src/test/queries/clientpositive/udf_log10.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_log10.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION log10; +DESCRIBE FUNCTION EXTENDED log10; Index: ql/src/test/queries/clientpositive/udf_rand.q =================================================================== --- ql/src/test/queries/clientpositive/udf_rand.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_rand.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION rand; +DESCRIBE FUNCTION EXTENDED rand; Index: ql/src/test/queries/clientpositive/describe_function.q =================================================================== --- ql/src/test/queries/clientpositive/describe_function.q (revision 896748) +++ ql/src/test/queries/clientpositive/describe_function.q (working copy) @@ -1,168 +0,0 @@ -DESCRIBE FUNCTION concat; -DESCRIBE FUNCTION substr; -DESCRIBE FUNCTION substring; -DESCRIBE FUNCTION find_in_set; -DESCRIBE FUNCTION space; -DESCRIBE FUNCTION repeat; -DESCRIBE FUNCTION ascii; -DESCRIBE FUNCTION lpad; -DESCRIBE FUNCTION rpad; -DESCRIBE FUNCTION size; -DESCRIBE FUNCTION round; -DESCRIBE FUNCTION floor; -DESCRIBE FUNCTION sqrt; -DESCRIBE FUNCTION ceil; -DESCRIBE FUNCTION ceiling; -DESCRIBE FUNCTION rand; -DESCRIBE FUNCTION abs; -DESCRIBE FUNCTION pmod; -DESCRIBE FUNCTION ln; -DESCRIBE FUNCTION log2; -DESCRIBE FUNCTION sin; -DESCRIBE FUNCTION asin; -DESCRIBE FUNCTION cos; -DESCRIBE FUNCTION acos; -DESCRIBE FUNCTION log10; -DESCRIBE FUNCTION log; -DESCRIBE FUNCTION exp; -DESCRIBE FUNCTION power; -DESCRIBE FUNCTION pow; -DESCRIBE FUNCTION conv; -DESCRIBE FUNCTION bin; -DESCRIBE FUNCTION hex; -DESCRIBE FUNCTION unhex; -DESCRIBE FUNCTION upper; -DESCRIBE FUNCTION lower; -DESCRIBE FUNCTION ucase; -DESCRIBE FUNCTION lcase; -DESCRIBE FUNCTION trim; -DESCRIBE FUNCTION ltrim; -DESCRIBE FUNCTION rtrim; -DESCRIBE FUNCTION length; -DESCRIBE FUNCTION reverse; -DESCRIBE FUNCTION like; -DESCRIBE FUNCTION rlike; -DESCRIBE FUNCTION regexp; -DESCRIBE FUNCTION regexp_replace; -DESCRIBE FUNCTION regexp_extract; -DESCRIBE FUNCTION parse_url; -DESCRIBE FUNCTION split; -DESCRIBE FUNCTION positive; -DESCRIBE FUNCTION negative; -DESCRIBE FUNCTION day; -DESCRIBE FUNCTION dayofmonth; -DESCRIBE FUNCTION month; -DESCRIBE FUNCTION year; -DESCRIBE FUNCTION from_unixtime; -DESCRIBE FUNCTION unix_timestamp; -DESCRIBE FUNCTION to_date; -DESCRIBE FUNCTION date_add; -DESCRIBE FUNCTION date_sub; -DESCRIBE FUNCTION datediff; -DESCRIBE FUNCTION get_json_object; -DESCRIBE FUNCTION +; -DESCRIBE FUNCTION -; -DESCRIBE FUNCTION *; -DESCRIBE FUNCTION /; -DESCRIBE FUNCTION %; -DESCRIBE FUNCTION div; -DESCRIBE FUNCTION &; -DESCRIBE FUNCTION |; -DESCRIBE FUNCTION ^; -DESCRIBE FUNCTION ~; -DESCRIBE FUNCTION =; -DESCRIBE FUNCTION <>; -DESCRIBE FUNCTION <; -DESCRIBE FUNCTION <=; -DESCRIBE FUNCTION >; -DESCRIBE FUNCTION >=; -DESCRIBE FUNCTION and; -DESCRIBE FUNCTION or; -DESCRIBE FUNCTION not; -DESCRIBE FUNCTION isnull; -DESCRIBE FUNCTION isnotnull; - - -DESCRIBE FUNCTION EXTENDED concat; -DESCRIBE FUNCTION EXTENDED substr; -DESCRIBE FUNCTION EXTENDED substring; -DESCRIBE FUNCTION EXTENDED find_in_set; -DESCRIBE FUNCTION EXTENDED space; -DESCRIBE FUNCTION EXTENDED repeat; -DESCRIBE FUNCTION EXTENDED ascii; -DESCRIBE FUNCTION EXTENDED lpad; -DESCRIBE FUNCTION EXTENDED rpad; -DESCRIBE FUNCTION EXTENDED size; -DESCRIBE FUNCTION EXTENDED round; -DESCRIBE FUNCTION EXTENDED floor; -DESCRIBE FUNCTION EXTENDED sqrt; -DESCRIBE FUNCTION EXTENDED ceil; -DESCRIBE FUNCTION EXTENDED ceiling; -DESCRIBE FUNCTION EXTENDED rand; -DESCRIBE FUNCTION EXTENDED abs; -DESCRIBE FUNCTION EXTENDED pmod; -DESCRIBE FUNCTION EXTENDED ln; -DESCRIBE FUNCTION EXTENDED log2; -DESCRIBE FUNCTION EXTENDED sin; -DESCRIBE FUNCTION EXTENDED asin; -DESCRIBE FUNCTION EXTENDED cos; -DESCRIBE FUNCTION EXTENDED acos; -DESCRIBE FUNCTION EXTENDED log10; -DESCRIBE FUNCTION EXTENDED log; -DESCRIBE FUNCTION EXTENDED exp; -DESCRIBE FUNCTION EXTENDED power; -DESCRIBE FUNCTION EXTENDED pow; -DESCRIBE FUNCTION EXTENDED conv; -DESCRIBE FUNCTION EXTENDED bin; -DESCRIBE FUNCTION EXTENDED hex; -DESCRIBE FUNCTION EXTENDED unhex; -DESCRIBE FUNCTION EXTENDED upper; -DESCRIBE FUNCTION EXTENDED lower; -DESCRIBE FUNCTION EXTENDED ucase; -DESCRIBE FUNCTION EXTENDED lcase; -DESCRIBE FUNCTION EXTENDED trim; -DESCRIBE FUNCTION EXTENDED ltrim; -DESCRIBE FUNCTION EXTENDED rtrim; -DESCRIBE FUNCTION EXTENDED length; -DESCRIBE FUNCTION EXTENDED reverse; -DESCRIBE FUNCTION EXTENDED like; -DESCRIBE FUNCTION EXTENDED rlike; -DESCRIBE FUNCTION EXTENDED regexp; -DESCRIBE FUNCTION EXTENDED regexp_replace; -DESCRIBE FUNCTION EXTENDED regexp_extract; -DESCRIBE FUNCTION EXTENDED parse_url; -DESCRIBE FUNCTION EXTENDED split; -DESCRIBE FUNCTION EXTENDED positive; -DESCRIBE FUNCTION EXTENDED negative; -DESCRIBE FUNCTION EXTENDED day; -DESCRIBE FUNCTION EXTENDED dayofmonth; -DESCRIBE FUNCTION EXTENDED month; -DESCRIBE FUNCTION EXTENDED year; -DESCRIBE FUNCTION EXTENDED from_unixtime; -DESCRIBE FUNCTION EXTENDED unix_timestamp; -DESCRIBE FUNCTION EXTENDED to_date; -DESCRIBE FUNCTION EXTENDED date_add; -DESCRIBE FUNCTION EXTENDED date_sub; -DESCRIBE FUNCTION EXTENDED datediff; -DESCRIBE FUNCTION EXTENDED get_json_object; -DESCRIBE FUNCTION EXTENDED +; -DESCRIBE FUNCTION EXTENDED -; -DESCRIBE FUNCTION EXTENDED *; -DESCRIBE FUNCTION EXTENDED /; -DESCRIBE FUNCTION EXTENDED %; -DESCRIBE FUNCTION EXTENDED div; -DESCRIBE FUNCTION EXTENDED &; -DESCRIBE FUNCTION EXTENDED |; -DESCRIBE FUNCTION EXTENDED ^; -DESCRIBE FUNCTION EXTENDED ~; -DESCRIBE FUNCTION EXTENDED =; -DESCRIBE FUNCTION EXTENDED <>; -DESCRIBE FUNCTION EXTENDED <; -DESCRIBE FUNCTION EXTENDED <=; -DESCRIBE FUNCTION EXTENDED >; -DESCRIBE FUNCTION EXTENDED >=; -DESCRIBE FUNCTION EXTENDED and; -DESCRIBE FUNCTION EXTENDED or; -DESCRIBE FUNCTION EXTENDED not; -DESCRIBE FUNCTION EXTENDED isnull; -DESCRIBE FUNCTION EXTENDED isnotnull; Index: ql/src/test/queries/clientpositive/udf_greaterthan.q =================================================================== --- ql/src/test/queries/clientpositive/udf_greaterthan.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_greaterthan.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION >; +DESCRIBE FUNCTION EXTENDED >; Index: ql/src/test/queries/clientpositive/udf_datediff.q =================================================================== --- ql/src/test/queries/clientpositive/udf_datediff.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_datediff.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION datediff; +DESCRIBE FUNCTION EXTENDED datediff; Index: ql/src/test/queries/clientpositive/udf_lpad_rpad.q =================================================================== --- ql/src/test/queries/clientpositive/udf_lpad_rpad.q (revision 896748) +++ ql/src/test/queries/clientpositive/udf_lpad_rpad.q (working copy) @@ -1,29 +0,0 @@ -DESCRIBE FUNCTION lpad; -DESCRIBE FUNCTION EXTENDED lpad; - -DESCRIBE FUNCTION rpad; -DESCRIBE FUNCTION EXTENDED rpad; - -EXPLAIN SELECT - lpad('hi', 1, '?'), - lpad('hi', 5, '.'), - lpad('hi', 6, '123') -FROM src LIMIT 1; - -SELECT - lpad('hi', 1, '?'), - lpad('hi', 5, '.'), - lpad('hi', 6, '123') -FROM src LIMIT 1; - -EXPLAIN SELECT - rpad('hi', 1, '?'), - rpad('hi', 5, '.'), - rpad('hi', 6, '123') -FROM src LIMIT 1; - -SELECT - rpad('hi', 1, '?'), - rpad('hi', 5, '.'), - rpad('hi', 6, '123') -FROM src LIMIT 1; Index: ql/src/test/queries/clientpositive/udf_trim.q =================================================================== --- ql/src/test/queries/clientpositive/udf_trim.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_trim.q (revision 0) @@ -0,0 +1,2 @@ +DESCRIBE FUNCTION trim; +DESCRIBE FUNCTION EXTENDED trim; Index: ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java (revision 896748) +++ ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java (working copy) @@ -25,6 +25,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; +import java.util.HashSet; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -37,9 +38,124 @@ import org.apache.hadoop.hive.ql.parse.SemanticException; import org.apache.hadoop.hive.ql.plan.exprNodeDesc; import org.apache.hadoop.hive.ql.plan.exprNodeGenericFuncDesc; -import org.apache.hadoop.hive.ql.plan.groupByDesc; -import org.apache.hadoop.hive.ql.udf.*; -import org.apache.hadoop.hive.ql.udf.generic.*; +import org.apache.hadoop.hive.ql.udf.UDAFMax; +import org.apache.hadoop.hive.ql.udf.UDAFMin; +import org.apache.hadoop.hive.ql.udf.UDFAbs; +import org.apache.hadoop.hive.ql.udf.UDFAcos; +import org.apache.hadoop.hive.ql.udf.UDFAscii; +import org.apache.hadoop.hive.ql.udf.UDFAsin; +import org.apache.hadoop.hive.ql.udf.UDFBin; +import org.apache.hadoop.hive.ql.udf.UDFCeil; +import org.apache.hadoop.hive.ql.udf.UDFConcat; +import org.apache.hadoop.hive.ql.udf.UDFConv; +import org.apache.hadoop.hive.ql.udf.UDFCos; +import org.apache.hadoop.hive.ql.udf.UDFDate; +import org.apache.hadoop.hive.ql.udf.UDFDateAdd; +import org.apache.hadoop.hive.ql.udf.UDFDateDiff; +import org.apache.hadoop.hive.ql.udf.UDFDateSub; +import org.apache.hadoop.hive.ql.udf.UDFDayOfMonth; +import org.apache.hadoop.hive.ql.udf.UDFExp; +import org.apache.hadoop.hive.ql.udf.UDFFindInSet; +import org.apache.hadoop.hive.ql.udf.UDFFloor; +import org.apache.hadoop.hive.ql.udf.UDFFromUnixTime; +import org.apache.hadoop.hive.ql.udf.UDFHex; +import org.apache.hadoop.hive.ql.udf.UDFHour; +import org.apache.hadoop.hive.ql.udf.UDFJson; +import org.apache.hadoop.hive.ql.udf.UDFLTrim; +import org.apache.hadoop.hive.ql.udf.UDFLength; +import org.apache.hadoop.hive.ql.udf.UDFLike; +import org.apache.hadoop.hive.ql.udf.UDFLn; +import org.apache.hadoop.hive.ql.udf.UDFLog; +import org.apache.hadoop.hive.ql.udf.UDFLog10; +import org.apache.hadoop.hive.ql.udf.UDFLog2; +import org.apache.hadoop.hive.ql.udf.UDFLower; +import org.apache.hadoop.hive.ql.udf.UDFLpad; +import org.apache.hadoop.hive.ql.udf.UDFMinute; +import org.apache.hadoop.hive.ql.udf.UDFMonth; +import org.apache.hadoop.hive.ql.udf.UDFOPAnd; +import org.apache.hadoop.hive.ql.udf.UDFOPBitAnd; +import org.apache.hadoop.hive.ql.udf.UDFOPBitNot; +import org.apache.hadoop.hive.ql.udf.UDFOPBitOr; +import org.apache.hadoop.hive.ql.udf.UDFOPBitXor; +import org.apache.hadoop.hive.ql.udf.UDFOPDivide; +import org.apache.hadoop.hive.ql.udf.UDFOPEqual; +import org.apache.hadoop.hive.ql.udf.UDFOPEqualOrGreaterThan; +import org.apache.hadoop.hive.ql.udf.UDFOPEqualOrLessThan; +import org.apache.hadoop.hive.ql.udf.UDFOPGreaterThan; +import org.apache.hadoop.hive.ql.udf.UDFOPLessThan; +import org.apache.hadoop.hive.ql.udf.UDFOPLongDivide; +import org.apache.hadoop.hive.ql.udf.UDFOPMinus; +import org.apache.hadoop.hive.ql.udf.UDFOPMod; +import org.apache.hadoop.hive.ql.udf.UDFOPMultiply; +import org.apache.hadoop.hive.ql.udf.UDFOPNegative; +import org.apache.hadoop.hive.ql.udf.UDFOPNot; +import org.apache.hadoop.hive.ql.udf.UDFOPNotEqual; +import org.apache.hadoop.hive.ql.udf.UDFOPOr; +import org.apache.hadoop.hive.ql.udf.UDFOPPlus; +import org.apache.hadoop.hive.ql.udf.UDFOPPositive; +import org.apache.hadoop.hive.ql.udf.UDFParseUrl; +import org.apache.hadoop.hive.ql.udf.UDFPosMod; +import org.apache.hadoop.hive.ql.udf.UDFPower; +import org.apache.hadoop.hive.ql.udf.UDFRTrim; +import org.apache.hadoop.hive.ql.udf.UDFRand; +import org.apache.hadoop.hive.ql.udf.UDFRegExp; +import org.apache.hadoop.hive.ql.udf.UDFRegExpExtract; +import org.apache.hadoop.hive.ql.udf.UDFRegExpReplace; +import org.apache.hadoop.hive.ql.udf.UDFRepeat; +import org.apache.hadoop.hive.ql.udf.UDFReverse; +import org.apache.hadoop.hive.ql.udf.UDFRound; +import org.apache.hadoop.hive.ql.udf.UDFRpad; +import org.apache.hadoop.hive.ql.udf.UDFSecond; +import org.apache.hadoop.hive.ql.udf.UDFSin; +import org.apache.hadoop.hive.ql.udf.UDFSpace; +import org.apache.hadoop.hive.ql.udf.UDFSqrt; +import org.apache.hadoop.hive.ql.udf.UDFSubstr; +import org.apache.hadoop.hive.ql.udf.UDFToBoolean; +import org.apache.hadoop.hive.ql.udf.UDFToByte; +import org.apache.hadoop.hive.ql.udf.UDFToDouble; +import org.apache.hadoop.hive.ql.udf.UDFToFloat; +import org.apache.hadoop.hive.ql.udf.UDFToInteger; +import org.apache.hadoop.hive.ql.udf.UDFToLong; +import org.apache.hadoop.hive.ql.udf.UDFToShort; +import org.apache.hadoop.hive.ql.udf.UDFToString; +import org.apache.hadoop.hive.ql.udf.UDFTrim; +import org.apache.hadoop.hive.ql.udf.UDFType; +import org.apache.hadoop.hive.ql.udf.UDFUnhex; +import org.apache.hadoop.hive.ql.udf.UDFUnixTimeStamp; +import org.apache.hadoop.hive.ql.udf.UDFUpper; +import org.apache.hadoop.hive.ql.udf.UDFWeekOfYear; +import org.apache.hadoop.hive.ql.udf.UDFYear; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFAverage; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFBridge; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFCount; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFStd; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFStdSample; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFSum; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFResolver; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFVariance; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFVarianceSample; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDF; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDFArray; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDFBridge; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDFCase; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDFCoalesce; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDFConcatWS; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDFElt; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDFField; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDFHash; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDFIf; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDFIndex; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDFInstr; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDFLocate; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDFMap; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPNotNull; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPNull; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDFSize; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDFSplit; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDTF; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDFWhen; +import org.apache.hadoop.hive.ql.udf.generic.GenericUDTFExplode; import org.apache.hadoop.hive.serde.Constants; import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector.Category; import org.apache.hadoop.hive.serde2.typeinfo.ListTypeInfo; @@ -151,6 +267,7 @@ registerUDF("=", UDFOPEqual.class, true); registerUDF("==", UDFOPEqual.class, true, "="); registerUDF("<>", UDFOPNotEqual.class, true); + registerUDF("!=", UDFOPNotEqual.class, true, "<>"); registerUDF("<", UDFOPLessThan.class, true); registerUDF("<=", UDFOPEqualOrLessThan.class, true); registerUDF(">", UDFOPGreaterThan.class, true); @@ -304,11 +421,11 @@ * Returns a set of registered function names. * This is used for the CLI command "SHOW FUNCTIONS 'regular expression';" * Returns an empty set when the regular expression is not valid. - * @param funcPatternStr regular expression of the intersted function names + * @param funcPatternStr regular expression of the interested function names * @return set of strings contains function names */ public static Set getFunctionNames(String funcPatternStr) { - TreeSet funcNames = new TreeSet(); + Set funcNames = new TreeSet(); Pattern funcPattern = null; try { funcPattern = Pattern.compile(funcPatternStr); @@ -323,6 +440,33 @@ return funcNames; } + /** + * Returns the set of synonyms of the supplied function. + * @param funcName the name of the function + * @return Set of synonyms for funcName + */ + public static Set getFunctionSynonyms(String funcName) { + Set synonyms = new HashSet(); + + FunctionInfo funcInfo = getFunctionInfo(funcName); + if (null == funcInfo) { + return synonyms; + } + + Class funcClass = funcInfo.getFunctionClass(); + for (String name : mFunctions.keySet()) { + if (name.equals(funcName)) { + continue; + } + if (mFunctions.get(name).getFunctionClass().equals(funcClass)) { + synonyms.add(name); + } + } + + return synonyms; + } + + static Map numericTypes = new HashMap(); static List numericTypeList = new ArrayList(); static void registerNumericType(String typeName, int level) { @@ -429,7 +573,7 @@ public static Method getMethodInternal(Class udfClass, String methodName, boolean exact, List argumentClasses) { - ArrayList mlist = new ArrayList(); + List mlist = new ArrayList(); for(Method m: Arrays.asList(udfClass.getMethods())) { if (m.getName().equals(methodName)) { @@ -574,7 +718,7 @@ * @param argumentsPassed The classes for the argument. * @return The matching method. */ - public static Method getMethodInternal(ArrayList mlist, boolean exact, + public static Method getMethodInternal(List mlist, boolean exact, List argumentsPassed) { int leastConversionCost = Integer.MAX_VALUE; Method udfMethod = null; Index: ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java (revision 896748) +++ ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java (working copy) @@ -82,8 +82,10 @@ import org.apache.hadoop.hive.serde2.dynamic_type.DynamicSerDe; import org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe; import org.apache.hadoop.hive.shims.ShimLoader; -import org.apache.hadoop.util.StringUtils; +import static org.apache.hadoop.util.StringUtils.stringifyException; +import static org.apache.commons.lang.StringUtils.join; + /** * DDLTask implementation * @@ -174,14 +176,14 @@ } catch (InvalidTableException e) { console.printError("Table " + e.getTableName() + " does not exist"); - LOG.debug(StringUtils.stringifyException(e)); + LOG.debug(stringifyException(e)); return 1; } catch (HiveException e) { - console.printError("FAILED: Error in metadata: " + e.getMessage(), "\n" + StringUtils.stringifyException(e)); - LOG.debug(StringUtils.stringifyException(e)); + console.printError("FAILED: Error in metadata: " + e.getMessage(), "\n" + stringifyException(e)); + LOG.debug(stringifyException(e)); return 1; } catch (Exception e) { - console.printError("Failed with exception " + e.getMessage(), "\n" + StringUtils.stringifyException(e)); + console.printError("Failed with exception " + e.getMessage(), "\n" + stringifyException(e)); return (1); } assert false; @@ -363,10 +365,10 @@ } ((FSDataOutputStream)outStream).close(); } catch (FileNotFoundException e) { - LOG.info("show partitions: " + StringUtils.stringifyException(e)); + LOG.info("show partitions: " + stringifyException(e)); throw new HiveException(e.toString()); } catch (IOException e) { - LOG.info("show partitions: " + StringUtils.stringifyException(e)); + LOG.info("show partitions: " + stringifyException(e)); throw new HiveException(e.toString()); } catch (Exception e) { throw new HiveException(e.toString()); @@ -408,10 +410,10 @@ } ((FSDataOutputStream)outStream).close(); } catch (FileNotFoundException e) { - LOG.warn("show table: " + StringUtils.stringifyException(e)); + LOG.warn("show table: " + stringifyException(e)); return 1; } catch (IOException e) { - LOG.warn("show table: " + StringUtils.stringifyException(e)); + LOG.warn("show table: " + stringifyException(e)); return 1; } catch (Exception e) { throw new HiveException(e.toString()); @@ -451,10 +453,10 @@ } ((FSDataOutputStream)outStream).close(); } catch (FileNotFoundException e) { - LOG.warn("show function: " + StringUtils.stringifyException(e)); + LOG.warn("show function: " + stringifyException(e)); return 1; } catch (IOException e) { - LOG.warn("show function: " + StringUtils.stringifyException(e)); + LOG.warn("show function: " + stringifyException(e)); return 1; } catch (Exception e) { throw new HiveException(e.toString()); @@ -489,14 +491,20 @@ } if (desc != null) { outStream.writeBytes(desc.value().replace("_FUNC_", funcName)); - if(descFunc.isExtended() && desc.extended().length() > 0) { - outStream.writeBytes("\n"+desc.extended().replace("_FUNC_", funcName)); + if(descFunc.isExtended()) { + Set synonyms = FunctionRegistry.getFunctionSynonyms(funcName); + if (synonyms.size() > 0) { + outStream.writeBytes("\nSynonyms: " + join(synonyms, ", ")); + } + if (desc.extended().length() > 0) { + outStream.writeBytes("\n"+desc.extended().replace("_FUNC_", funcName)); + } } } else { if (funcClass != null) { - outStream.writeBytes("There is no documentation for function " + funcName); + outStream.writeBytes("There is no documentation for function '" + funcName + "'"); } else { - outStream.writeBytes("Function " + funcName + " does not exist."); + outStream.writeBytes("Function '" + funcName + "' does not exist."); } } @@ -504,10 +512,10 @@ ((FSDataOutputStream)outStream).close(); } catch (FileNotFoundException e) { - LOG.warn("describe function: " + StringUtils.stringifyException(e)); + LOG.warn("describe function: " + stringifyException(e)); return 1; } catch (IOException e) { - LOG.warn("describe function: " + StringUtils.stringifyException(e)); + LOG.warn("describe function: " + stringifyException(e)); return 1; } catch (Exception e) { throw new HiveException(e.toString()); @@ -619,10 +627,10 @@ } ((FSDataOutputStream) outStream).close(); } catch (FileNotFoundException e) { - LOG.info("show table status: " + StringUtils.stringifyException(e)); + LOG.info("show table status: " + stringifyException(e)); return 1; } catch (IOException e) { - LOG.info("show table status: " + StringUtils.stringifyException(e)); + LOG.info("show table status: " + stringifyException(e)); return 1; } catch (Exception e) { throw new HiveException(e.toString()); @@ -670,10 +678,10 @@ tbl = part.getTable(); } } catch (FileNotFoundException e) { - LOG.info("describe table: " + StringUtils.stringifyException(e)); + LOG.info("describe table: " + stringifyException(e)); return 1; } catch (IOException e) { - LOG.info("describe table: " + StringUtils.stringifyException(e)); + LOG.info("describe table: " + stringifyException(e)); return 1; } @@ -746,10 +754,10 @@ ((FSDataOutputStream) outStream).close(); } catch (FileNotFoundException e) { - LOG.info("describe table: " + StringUtils.stringifyException(e)); + LOG.info("describe table: " + stringifyException(e)); return 1; } catch (IOException e) { - LOG.info("describe table: " + StringUtils.stringifyException(e)); + LOG.info("describe table: " + stringifyException(e)); return 1; } catch (Exception e) { throw new HiveException(e.toString()); @@ -1026,7 +1034,7 @@ try { tbl.setProperty("last_modified_by", conf.getUser()); } catch (IOException e) { - console.printError("Unable to get current user: " + e.getMessage(), StringUtils.stringifyException(e)); + console.printError("Unable to get current user: " + e.getMessage(), stringifyException(e)); return 1; } tbl.setProperty("last_modified_time", Long.toString(System @@ -1035,7 +1043,7 @@ try { tbl.checkValidity(); } catch (HiveException e) { - console.printError("Invalid table columns : " + e.getMessage(), StringUtils.stringifyException(e)); + console.printError("Invalid table columns : " + e.getMessage(), stringifyException(e)); return 1; } @@ -1043,7 +1051,7 @@ db.alterTable(alterTbl.getOldName(), tbl); } catch (InvalidOperationException e) { console.printError("Invalid alter operation: " + e.getMessage()); - LOG.info("alter table: " + StringUtils.stringifyException(e)); + LOG.info("alter table: " + stringifyException(e)); return 1; } catch (HiveException e) { return 1; @@ -1252,7 +1260,7 @@ try { tbl.setOwner(conf.getUser()); } catch (IOException e) { - console.printError("Unable to get current user: " + e.getMessage(), StringUtils.stringifyException(e)); + console.printError("Unable to get current user: " + e.getMessage(), stringifyException(e)); return 1; } // set create time Index: ql/src/java/org/apache/hadoop/hive/ql/parse/Hive.g =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/parse/Hive.g (revision 896748) +++ ql/src/java/org/apache/hadoop/hive/ql/parse/Hive.g (working copy) @@ -1305,6 +1305,18 @@ | KW_NOT | KW_LIKE | KW_IF + | KW_CASE + | KW_WHEN + | KW_TINYINT + | KW_SMALLINT + | KW_INT + | KW_BIGINT + | KW_FLOAT + | KW_DOUBLE + | KW_BOOLEAN + | KW_STRING + | KW_ARRAY + | KW_MAP | EQUAL | NOTEQUAL | LESSTHANOREQUALTO @@ -1338,7 +1350,7 @@ KW_ALL : 'ALL'; KW_AND : 'AND'; KW_OR : 'OR'; -KW_NOT : 'NOT'; +KW_NOT : 'NOT' | '!'; KW_LIKE : 'LIKE'; KW_IF : 'IF'; @@ -1522,8 +1534,8 @@ LCURLY : '{'; RCURLY : '}'; -EQUAL : '='; -NOTEQUAL : '<>'; +EQUAL : '=' | '=='; +NOTEQUAL : '<>' | '!='; LESSTHANOREQUALTO : '<='; LESSTHAN : '<'; GREATERTHANOREQUALTO : '>=';