Index: ql/src/test/results/clientpositive/udf_sign.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_sign.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_sign.q.out (revision 0) @@ -0,0 +1,156 @@ +PREHOOK: query: explain +select sign(0) FROM src LIMIT 1 +PREHOOK: type: QUERY +POSTHOOK: query: explain +select sign(0) 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 sign 0))) (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: sign(0) + type: double + outputColumnNames: _col0 + 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 sign(0) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/home/ecapriolo/downloads/hive/build/ql/tmp/1803045958/10000 +POSTHOOK: query: select sign(0) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/home/ecapriolo/downloads/hive/build/ql/tmp/1803045958/10000 +0.0 +PREHOOK: query: select sign(-45) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/home/ecapriolo/downloads/hive/build/ql/tmp/1722830539/10000 +POSTHOOK: query: select sign(-45) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/home/ecapriolo/downloads/hive/build/ql/tmp/1722830539/10000 +-1.0 +PREHOOK: query: select sign(46) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/home/ecapriolo/downloads/hive/build/ql/tmp/1321927279/10000 +POSTHOOK: query: select sign(46) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/home/ecapriolo/downloads/hive/build/ql/tmp/1321927279/10000 +1.0 +PREHOOK: query: DESCRIBE FUNCTION sign +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION sign +POSTHOOK: type: DESCFUNCTION +sign(x) - returns the sign of x ) +PREHOOK: query: DESCRIBE FUNCTION EXTENDED sign +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED sign +POSTHOOK: type: DESCFUNCTION +sign(x) - returns the sign of x ) +Example: + > SELECT sign(40) FROM src LIMIT 1; + 1 +PREHOOK: query: explain +select sign(0) FROM src LIMIT 1 +PREHOOK: type: QUERY +POSTHOOK: query: explain +select sign(0) 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 sign 0))) (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: sign(0) + type: double + outputColumnNames: _col0 + 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 sign(0) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/home/ecapriolo/downloads/hive/build/ql/tmp/1803045958/10000 +POSTHOOK: query: select sign(0) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/home/ecapriolo/downloads/hive/build/ql/tmp/1803045958/10000 +0.0 +PREHOOK: query: select sign(-45) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/home/ecapriolo/downloads/hive/build/ql/tmp/1722830539/10000 +POSTHOOK: query: select sign(-45) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/home/ecapriolo/downloads/hive/build/ql/tmp/1722830539/10000 +-1.0 +PREHOOK: query: select sign(46) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/home/ecapriolo/downloads/hive/build/ql/tmp/1321927279/10000 +POSTHOOK: query: select sign(46) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/home/ecapriolo/downloads/hive/build/ql/tmp/1321927279/10000 +1.0 +PREHOOK: query: DESCRIBE FUNCTION sign +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION sign +POSTHOOK: type: DESCFUNCTION +sign(x) - returns the sign of x ) +PREHOOK: query: DESCRIBE FUNCTION EXTENDED sign +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED sign +POSTHOOK: type: DESCFUNCTION +sign(x) - returns the sign of x ) +Example: + > SELECT sign(40) FROM src LIMIT 1; + 1 Index: ql/src/test/results/clientpositive/udf_E.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_E.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_E.q.out (revision 0) @@ -0,0 +1,122 @@ +PREHOOK: query: explain +select E() FROM src LIMIT 1 +PREHOOK: type: QUERY +POSTHOOK: query: explain +select E() 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 E))) (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: e() + type: double + outputColumnNames: _col0 + 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 E() FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/home/edward/hive/hive/build/ql/scratchdir/hive_2010-03-25_06-20-54_669_28844682742749235/10000 +POSTHOOK: query: select E() FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/home/edward/hive/hive/build/ql/scratchdir/hive_2010-03-25_06-20-54_669_28844682742749235/10000 +2.718281828459045 +PREHOOK: query: DESCRIBE FUNCTION E +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION E +POSTHOOK: type: DESCFUNCTION +E() - returns E +PREHOOK: query: DESCRIBE FUNCTION EXTENDED E +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED E +POSTHOOK: type: DESCFUNCTION +E() - returns E +Synonyms: e +Example: + > SELECT E() FROM src LIMIT 1; + 2.718281828459045 +PREHOOK: query: explain +select E() FROM src LIMIT 1 +PREHOOK: type: QUERY +POSTHOOK: query: explain +select E() 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 E))) (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: e() + type: double + outputColumnNames: _col0 + 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 E() FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/home/edward/hive/hive/build/ql/scratchdir/hive_2010-03-25_06-21-02_250_7318325770859337186/10000 +POSTHOOK: query: select E() FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/home/edward/hive/hive/build/ql/scratchdir/hive_2010-03-25_06-21-02_250_7318325770859337186/10000 +2.718281828459045 +PREHOOK: query: DESCRIBE FUNCTION E +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION E +POSTHOOK: type: DESCFUNCTION +E() - returns E +PREHOOK: query: DESCRIBE FUNCTION EXTENDED E +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED E +POSTHOOK: type: DESCFUNCTION +E() - returns E +Synonyms: e +Example: + > SELECT E() FROM src LIMIT 1; + 2.718281828459045 Index: ql/src/test/results/clientpositive/udf_tan.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_tan.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_tan.q.out (revision 0) @@ -0,0 +1,70 @@ +PREHOOK: query: DESCRIBE FUNCTION tan +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION tan +POSTHOOK: type: DESCFUNCTION +tan(x) - returns the tangent of x (x is in radians) +PREHOOK: query: DESCRIBE FUNCTION EXTENDED tan +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED tan +POSTHOOK: type: DESCFUNCTION +tan(x) - returns the tangent of x (x is in radians) +Example: + > SELECT tan(0) FROM src LIMIT 1; + 1 +PREHOOK: query: SELECT tan(null) +FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/home/ecapriolo/hive/hive/build/ql/scratchdir/hive_2010-03-20_09-47-58_254_8202003455468604473/10000 +POSTHOOK: query: SELECT tan(null) +FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/home/ecapriolo/hive/hive/build/ql/scratchdir/hive_2010-03-20_09-47-58_254_8202003455468604473/10000 +NULL +PREHOOK: query: SELECT tan(1), tan(6), tan(-1.0) +FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/home/ecapriolo/hive/hive/build/ql/scratchdir/hive_2010-03-20_09-48-03_619_4671353277889120706/10000 +POSTHOOK: query: SELECT tan(1), tan(6), tan(-1.0) +FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/home/ecapriolo/hive/hive/build/ql/scratchdir/hive_2010-03-20_09-48-03_619_4671353277889120706/10000 +1.5574077246549023 -0.29100619138474915 -1.5574077246549023 +PREHOOK: query: DESCRIBE FUNCTION tan +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION tan +POSTHOOK: type: DESCFUNCTION +tan(x) - returns the tangent of x (x is in radians) +PREHOOK: query: DESCRIBE FUNCTION EXTENDED tan +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED tan +POSTHOOK: type: DESCFUNCTION +tan(x) - returns the tangent of x (x is in radians) +Example: + > SELECT tan(0) FROM src LIMIT 1; + 1 +PREHOOK: query: SELECT tan(null) +FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/home/ecapriolo/hive/hive/build/ql/scratchdir/hive_2010-03-20_09-47-58_254_8202003455468604473/10000 +POSTHOOK: query: SELECT tan(null) +FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/home/ecapriolo/hive/hive/build/ql/scratchdir/hive_2010-03-20_09-47-58_254_8202003455468604473/10000 +NULL +PREHOOK: query: SELECT tan(1), tan(6), tan(-1.0) +FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/home/ecapriolo/hive/hive/build/ql/scratchdir/hive_2010-03-20_09-48-03_619_4671353277889120706/10000 +POSTHOOK: query: SELECT tan(1), tan(6), tan(-1.0) +FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/home/ecapriolo/hive/hive/build/ql/scratchdir/hive_2010-03-20_09-48-03_619_4671353277889120706/10000 +1.5574077246549023 -0.29100619138474915 -1.5574077246549023 Index: ql/src/test/results/clientpositive/udf_radians.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_radians.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_radians.q.out (revision 0) @@ -0,0 +1,140 @@ +PREHOOK: query: explain +select radians(57.2958) FROM src LIMIT 1 +PREHOOK: type: QUERY +POSTHOOK: query: explain +select radians(57.2958) 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 radians 57.2958))) (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: radians(57.2958) + type: double + outputColumnNames: _col0 + 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 radians(57.2958) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/home/edward/hive/hive/build/ql/scratchdir/hive_2010-03-25_07-41-40_585_4074288577412212093/10000 +POSTHOOK: query: select radians(57.2958) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/home/edward/hive/hive/build/ql/scratchdir/hive_2010-03-25_07-41-40_585_4074288577412212093/10000 +1.000000357564167 +PREHOOK: query: select radians(143.2394) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/home/edward/hive/hive/build/ql/scratchdir/hive_2010-03-25_07-41-49_329_7599870839384039656/10000 +POSTHOOK: query: select radians(143.2394) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/home/edward/hive/hive/build/ql/scratchdir/hive_2010-03-25_07-41-49_329_7599870839384039656/10000 +2.4999991485811655 +PREHOOK: query: DESCRIBE FUNCTION radians +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION radians +POSTHOOK: type: DESCFUNCTION +radians(x) - Converts degrees to radians +PREHOOK: query: DESCRIBE FUNCTION EXTENDED radians +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED radians +POSTHOOK: type: DESCFUNCTION +radians(x) - Converts degrees to radians +Example: + > SELECT radians(90) FROM src LIMIT 1; + 1.5707963267949mo + +PREHOOK: query: explain +select radians(57.2958) FROM src LIMIT 1 +PREHOOK: type: QUERY +POSTHOOK: query: explain +select radians(57.2958) 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 radians 57.2958))) (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: radians(57.2958) + type: double + outputColumnNames: _col0 + 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 radians(57.2958) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/home/edward/hive/hive/build/ql/scratchdir/hive_2010-03-25_07-41-57_755_2267469268422543769/10000 +POSTHOOK: query: select radians(57.2958) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/home/edward/hive/hive/build/ql/scratchdir/hive_2010-03-25_07-41-57_755_2267469268422543769/10000 +1.000000357564167 +PREHOOK: query: select radians(143.2394) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/home/edward/hive/hive/build/ql/scratchdir/hive_2010-03-25_07-42-05_384_6924630684028722794/10000 +POSTHOOK: query: select radians(143.2394) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/home/edward/hive/hive/build/ql/scratchdir/hive_2010-03-25_07-42-05_384_6924630684028722794/10000 +2.4999991485811655 +PREHOOK: query: DESCRIBE FUNCTION radians +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION radians +POSTHOOK: type: DESCFUNCTION +radians(x) - Converts degrees to radians +PREHOOK: query: DESCRIBE FUNCTION EXTENDED radians +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED radians +POSTHOOK: type: DESCFUNCTION +radians(x) - Converts degrees to radians +Example: + > SELECT radians(90) FROM src LIMIT 1; + 1.5707963267949mo + Index: ql/src/test/results/clientpositive/udf_PI.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_PI.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_PI.q.out (revision 0) @@ -0,0 +1,122 @@ +PREHOOK: query: explain +select PI() FROM src LIMIT 1 +PREHOOK: type: QUERY +POSTHOOK: query: explain +select PI() 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 PI))) (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: pi() + type: double + outputColumnNames: _col0 + 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 PI() FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/home/edward/hive/hive/build/ql/scratchdir/hive_2010-03-25_08-06-26_172_7876648036956003091/10000 +POSTHOOK: query: select PI() FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/home/edward/hive/hive/build/ql/scratchdir/hive_2010-03-25_08-06-26_172_7876648036956003091/10000 +3.141592653589793 +PREHOOK: query: DESCRIBE FUNCTION PI +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION PI +POSTHOOK: type: DESCFUNCTION +PI() - returns pi +PREHOOK: query: DESCRIBE FUNCTION EXTENDED PI +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED PI +POSTHOOK: type: DESCFUNCTION +PI() - returns pi +Synonyms: pi +Example: + > SELECT PI() FROM src LIMIT 1; + 3.14159... +PREHOOK: query: explain +select PI() FROM src LIMIT 1 +PREHOOK: type: QUERY +POSTHOOK: query: explain +select PI() 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 PI))) (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: pi() + type: double + outputColumnNames: _col0 + 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 PI() FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/home/edward/hive/hive/build/ql/scratchdir/hive_2010-03-25_08-06-36_503_790918184243965542/10000 +POSTHOOK: query: select PI() FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/home/edward/hive/hive/build/ql/scratchdir/hive_2010-03-25_08-06-36_503_790918184243965542/10000 +3.141592653589793 +PREHOOK: query: DESCRIBE FUNCTION PI +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION PI +POSTHOOK: type: DESCFUNCTION +PI() - returns pi +PREHOOK: query: DESCRIBE FUNCTION EXTENDED PI +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED PI +POSTHOOK: type: DESCFUNCTION +PI() - returns pi +Synonyms: pi +Example: + > SELECT PI() FROM src LIMIT 1; + 3.14159... Index: ql/src/test/results/clientpositive/udf_atan.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_atan.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_atan.q.out (revision 0) @@ -0,0 +1,70 @@ +PREHOOK: query: DESCRIBE FUNCTION atan +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION atan +POSTHOOK: type: DESCFUNCTION +atan(x) - returns the atan (arctan) of x (x is in radians) +PREHOOK: query: DESCRIBE FUNCTION EXTENDED atan +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED atan +POSTHOOK: type: DESCFUNCTION +atan(x) - returns the atan (arctan) of x (x is in radians) +Example: + > SELECT atan(0) FROM src LIMIT 1; + 0 +PREHOOK: query: SELECT atan(null) +FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/home/edward/hive/hive/build/ql/scratchdir/hive_2010-03-25_07-50-44_404_5907852377719330358/10000 +POSTHOOK: query: SELECT atan(null) +FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/home/edward/hive/hive/build/ql/scratchdir/hive_2010-03-25_07-50-44_404_5907852377719330358/10000 +NULL +PREHOOK: query: SELECT atan(1), atan(6), atan(-1.0) +FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/home/edward/hive/hive/build/ql/scratchdir/hive_2010-03-25_07-50-53_625_8550808324982957261/10000 +POSTHOOK: query: SELECT atan(1), atan(6), atan(-1.0) +FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/home/edward/hive/hive/build/ql/scratchdir/hive_2010-03-25_07-50-53_625_8550808324982957261/10000 +0.7853981633974483 1.4056476493802699 -0.7853981633974483 +PREHOOK: query: DESCRIBE FUNCTION atan +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION atan +POSTHOOK: type: DESCFUNCTION +atan(x) - returns the atan (arctan) of x (x is in radians) +PREHOOK: query: DESCRIBE FUNCTION EXTENDED atan +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED atan +POSTHOOK: type: DESCFUNCTION +atan(x) - returns the atan (arctan) of x (x is in radians) +Example: + > SELECT atan(0) FROM src LIMIT 1; + 0 +PREHOOK: query: SELECT atan(null) +FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/home/edward/hive/hive/build/ql/scratchdir/hive_2010-03-25_07-51-02_451_2254439065849671450/10000 +POSTHOOK: query: SELECT atan(null) +FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/home/edward/hive/hive/build/ql/scratchdir/hive_2010-03-25_07-51-02_451_2254439065849671450/10000 +NULL +PREHOOK: query: SELECT atan(1), atan(6), atan(-1.0) +FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/home/edward/hive/hive/build/ql/scratchdir/hive_2010-03-25_07-51-10_588_592143662617614500/10000 +POSTHOOK: query: SELECT atan(1), atan(6), atan(-1.0) +FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/home/edward/hive/hive/build/ql/scratchdir/hive_2010-03-25_07-51-10_588_592143662617614500/10000 +0.7853981633974483 1.4056476493802699 -0.7853981633974483 Index: ql/src/test/results/clientpositive/show_functions.q.out =================================================================== --- ql/src/test/results/clientpositive/show_functions.q.out (revision 955109) +++ ql/src/test/results/clientpositive/show_functions.q.out (working copy) @@ -24,6 +24,7 @@ array ascii asin +atan avg bigint bin @@ -42,8 +43,10 @@ datediff day dayofmonth +degrees div double +e elt exp explode @@ -84,10 +87,12 @@ or parse_url percentile +pi pmod positive pow power +radians rand regexp regexp_extract @@ -99,6 +104,7 @@ rpad rtrim second +sign sin size smallint @@ -114,6 +120,7 @@ substr substring sum +tan tinyint to_date trim @@ -158,6 +165,7 @@ case coalesce double +e explode from_unixtime lcase Index: ql/src/test/results/clientpositive/udf_degrees.q.out =================================================================== --- ql/src/test/results/clientpositive/udf_degrees.q.out (revision 0) +++ ql/src/test/results/clientpositive/udf_degrees.q.out (revision 0) @@ -0,0 +1,122 @@ +PREHOOK: query: explain +select degrees(PI()) FROM src LIMIT 1 +PREHOOK: type: QUERY +POSTHOOK: query: explain +select degrees(PI()) 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 degrees (TOK_FUNCTION PI)))) (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: degrees(pi()) + type: double + outputColumnNames: _col0 + 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 degrees(PI()) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/home/ecapriolo/downloads/hive/build/ql/tmp/864830697/10000 +POSTHOOK: query: select degrees(PI()) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/home/ecapriolo/downloads/hive/build/ql/tmp/864830697/10000 +180.0 +PREHOOK: query: DESCRIBE FUNCTION degrees +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION degrees +POSTHOOK: type: DESCFUNCTION +degrees(x) - Converts radians to degrees +PREHOOK: query: DESCRIBE FUNCTION EXTENDED degrees +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED degrees +POSTHOOK: type: DESCFUNCTION +degrees(x) - Converts radians to degrees +Example: + > SELECT degrees(30) FROM src LIMIT 1; + -1 + +PREHOOK: query: explain +select degrees(PI()) FROM src LIMIT 1 +PREHOOK: type: QUERY +POSTHOOK: query: explain +select degrees(PI()) 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 degrees (TOK_FUNCTION PI)))) (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: degrees(pi()) + type: double + outputColumnNames: _col0 + 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 degrees(PI()) FROM src LIMIT 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: file:/home/ecapriolo/downloads/hive/build/ql/tmp/864830697/10000 +POSTHOOK: query: select degrees(PI()) FROM src LIMIT 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: file:/home/ecapriolo/downloads/hive/build/ql/tmp/864830697/10000 +180.0 +PREHOOK: query: DESCRIBE FUNCTION degrees +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION degrees +POSTHOOK: type: DESCFUNCTION +degrees(x) - Converts radians to degrees +PREHOOK: query: DESCRIBE FUNCTION EXTENDED degrees +PREHOOK: type: DESCFUNCTION +POSTHOOK: query: DESCRIBE FUNCTION EXTENDED degrees +POSTHOOK: type: DESCFUNCTION +degrees(x) - Converts radians to degrees +Example: + > SELECT degrees(30) FROM src LIMIT 1; + -1 + Index: ql/src/test/queries/clientpositive/udf_degrees.q =================================================================== --- ql/src/test/queries/clientpositive/udf_degrees.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_degrees.q (revision 0) @@ -0,0 +1,14 @@ +explain +select degrees(PI()) FROM src LIMIT 1; + +select degrees(PI()) FROM src LIMIT 1; + +DESCRIBE FUNCTION degrees; +DESCRIBE FUNCTION EXTENDED degrees; +explain +select degrees(PI()) FROM src LIMIT 1; + +select degrees(PI()) FROM src LIMIT 1; + +DESCRIBE FUNCTION degrees; +DESCRIBE FUNCTION EXTENDED degrees; \ No newline at end of file Index: ql/src/test/queries/clientpositive/udf_radians.q =================================================================== --- ql/src/test/queries/clientpositive/udf_radians.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_radians.q (revision 0) @@ -0,0 +1,16 @@ +explain +select radians(57.2958) FROM src LIMIT 1; + +select radians(57.2958) FROM src LIMIT 1; +select radians(143.2394) FROM src LIMIT 1; + +DESCRIBE FUNCTION radians; +DESCRIBE FUNCTION EXTENDED radians; +explain +select radians(57.2958) FROM src LIMIT 1; + +select radians(57.2958) FROM src LIMIT 1; +select radians(143.2394) FROM src LIMIT 1; + +DESCRIBE FUNCTION radians; +DESCRIBE FUNCTION EXTENDED radians; \ No newline at end of file Index: ql/src/test/queries/clientpositive/udf_atan.q =================================================================== --- ql/src/test/queries/clientpositive/udf_atan.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_atan.q (revision 0) @@ -0,0 +1,16 @@ +DESCRIBE FUNCTION atan; +DESCRIBE FUNCTION EXTENDED atan; + +SELECT atan(null) +FROM src LIMIT 1; + +SELECT atan(1), atan(6), atan(-1.0) +FROM src LIMIT 1; +DESCRIBE FUNCTION atan; +DESCRIBE FUNCTION EXTENDED atan; + +SELECT atan(null) +FROM src LIMIT 1; + +SELECT atan(1), atan(6), atan(-1.0) +FROM src LIMIT 1; Index: ql/src/test/queries/clientpositive/udf_sign.q =================================================================== --- ql/src/test/queries/clientpositive/udf_sign.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_sign.q (revision 0) @@ -0,0 +1,20 @@ +explain +select sign(0) FROM src LIMIT 1; +select sign(0) FROM src LIMIT 1; + +select sign(-45) FROM src LIMIT 1; + +select sign(46) FROM src LIMIT 1; + +DESCRIBE FUNCTION sign; +DESCRIBE FUNCTION EXTENDED sign; +explain +select sign(0) FROM src LIMIT 1; +select sign(0) FROM src LIMIT 1; + +select sign(-45) FROM src LIMIT 1; + +select sign(46) FROM src LIMIT 1; + +DESCRIBE FUNCTION sign; +DESCRIBE FUNCTION EXTENDED sign; Index: ql/src/test/queries/clientpositive/udf_PI.q =================================================================== --- ql/src/test/queries/clientpositive/udf_PI.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_PI.q (revision 0) @@ -0,0 +1,14 @@ +explain +select PI() FROM src LIMIT 1; + +select PI() FROM src LIMIT 1; + +DESCRIBE FUNCTION PI; +DESCRIBE FUNCTION EXTENDED PI; +explain +select PI() FROM src LIMIT 1; + +select PI() FROM src LIMIT 1; + +DESCRIBE FUNCTION PI; +DESCRIBE FUNCTION EXTENDED PI; \ No newline at end of file Index: ql/src/test/queries/clientpositive/udf_E.q =================================================================== --- ql/src/test/queries/clientpositive/udf_E.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_E.q (revision 0) @@ -0,0 +1,14 @@ +explain +select E() FROM src LIMIT 1; + +select E() FROM src LIMIT 1; + +DESCRIBE FUNCTION E; +DESCRIBE FUNCTION EXTENDED E; +explain +select E() FROM src LIMIT 1; + +select E() FROM src LIMIT 1; + +DESCRIBE FUNCTION E; +DESCRIBE FUNCTION EXTENDED E; Index: ql/src/test/queries/clientpositive/udf_tan.q =================================================================== --- ql/src/test/queries/clientpositive/udf_tan.q (revision 0) +++ ql/src/test/queries/clientpositive/udf_tan.q (revision 0) @@ -0,0 +1,16 @@ +DESCRIBE FUNCTION tan; +DESCRIBE FUNCTION EXTENDED tan; + +SELECT tan(null) +FROM src LIMIT 1; + +SELECT tan(1), tan(6), tan(-1.0) +FROM src LIMIT 1; +DESCRIBE FUNCTION tan; +DESCRIBE FUNCTION EXTENDED tan; + +SELECT tan(null) +FROM src LIMIT 1; + +SELECT tan(1), tan(6), tan(-1.0) +FROM src LIMIT 1; Index: ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java (revision 955109) +++ ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java (working copy) @@ -42,6 +42,7 @@ 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.UDFAtan; import org.apache.hadoop.hive.ql.udf.UDFBin; import org.apache.hadoop.hive.ql.udf.UDFCeil; import org.apache.hadoop.hive.ql.udf.UDFConcat; @@ -52,6 +53,8 @@ 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.UDFDegrees; +import org.apache.hadoop.hive.ql.udf.UDFE; import org.apache.hadoop.hive.ql.udf.UDFExp; import org.apache.hadoop.hive.ql.udf.UDFFindInSet; import org.apache.hadoop.hive.ql.udf.UDFFloor; @@ -91,10 +94,12 @@ 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.UDFPI; 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.UDFRadians; import org.apache.hadoop.hive.ql.udf.UDFRand; import org.apache.hadoop.hive.ql.udf.UDFRegExp; import org.apache.hadoop.hive.ql.udf.UDFRegExpExtract; @@ -104,10 +109,12 @@ 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.UDFSign; 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.UDFTan; import org.apache.hadoop.hive.ql.udf.UDFToBoolean; import org.apache.hadoop.hive.ql.udf.UDFToByte; import org.apache.hadoop.hive.ql.udf.UDFToDouble; @@ -175,6 +182,7 @@ import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils; import org.apache.hadoop.util.ReflectionUtils; + /** * FunctionRegistry. */ @@ -218,6 +226,13 @@ registerUDF("exp", UDFExp.class, false); registerUDF("power", UDFPower.class, false); registerUDF("pow", UDFPower.class, false); + registerUDF("sign", UDFSign.class, false); + registerUDF("pi", UDFPI.class, false); + registerUDF("degrees", UDFDegrees.class, false); + registerUDF("radians", UDFRadians.class, false); + registerUDF("atan", UDFAtan.class, false); + registerUDF("tan", UDFTan.class, false); + registerUDF("e", UDFE.class, false); registerUDF("conv", UDFConv.class, false); registerUDF("bin", UDFBin.class, false); Index: ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSign.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSign.java (revision 0) +++ ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSign.java (revision 0) @@ -0,0 +1,62 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.hadoop.hive.ql.udf; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.hadoop.hive.ql.exec.Description; +import org.apache.hadoop.hive.ql.exec.UDF; +import org.apache.hadoop.hive.serde2.io.DoubleWritable; + +@Description( + name = "sign", + value = "_FUNC_(x) - returns the sign of x )", + extended = "Example:\n " + + " > SELECT _FUNC_(40) FROM src LIMIT 1;\n" + + " 1" + ) +public class UDFSign extends UDF { + + @SuppressWarnings("unused") + private static Log LOG = LogFactory.getLog(UDFSign.class.getName()); + DoubleWritable result = new DoubleWritable(); + + public UDFSign() { + } + + /** + * Take sign of a + */ + public DoubleWritable evaluate(DoubleWritable a) { + if (a == null) { + return null; + } + if (a.get()==0) { + result.set(0); + } + else if (a.get()>0) { + result.set(1); + } + else { + result.set(-1); + } + return result; + } + +} Index: ql/src/java/org/apache/hadoop/hive/ql/udf/UDFPI.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/udf/UDFPI.java (revision 0) +++ ql/src/java/org/apache/hadoop/hive/ql/udf/UDFPI.java (revision 0) @@ -0,0 +1,46 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.hadoop.hive.ql.udf; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.hadoop.hive.ql.exec.Description; +import org.apache.hadoop.hive.ql.exec.UDF; +import org.apache.hadoop.hive.serde2.io.DoubleWritable; + +@Description ( + name="PI", + value="_FUNC_() - returns pi ", + extended = "Example:\n"+ + " > SELECT _FUNC_() FROM src LIMIT 1;\n" + + " 3.14159..." + ) +public class UDFPI extends UDF { + @SuppressWarnings("unused") + private static Log LOG = LogFactory.getLog(UDFPI.class.getName() ); + DoubleWritable result = new DoubleWritable(); + + public UDFPI() { + result.set(Math.PI); + } + + public DoubleWritable evaluate() { + return result; + } +} Index: ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDegrees.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDegrees.java (revision 0) +++ ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDegrees.java (revision 0) @@ -0,0 +1,34 @@ +package org.apache.hadoop.hive.ql.udf; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.hadoop.hive.ql.exec.Description; +import org.apache.hadoop.hive.ql.exec.UDF; +import org.apache.hadoop.hive.serde2.io.DoubleWritable; + +@Description( + name = "UDFDegrees", + value = "_FUNC_(x) - Converts radians to degrees", + extended = "Example:\n" + + " > SELECT _FUNC_(30) FROM src LIMIT 1;\n" + + " -1\n" + ) +public class UDFDegrees extends UDF{ + + @SuppressWarnings("unused") + private static Log LOG = LogFactory.getLog(UDFDegrees.class.getName()); + DoubleWritable result = new DoubleWritable(); + + public UDFDegrees() { + } + + public DoubleWritable evaluate(DoubleWritable i) { + if (i == null) { + return null; + } else { + result.set(Math.toDegrees(i.get())); + return result; + } + } + +} Index: ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAtan.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAtan.java (revision 0) +++ ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAtan.java (revision 0) @@ -0,0 +1,53 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.hadoop.hive.ql.udf; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.hadoop.hive.ql.exec.Description; +import org.apache.hadoop.hive.ql.exec.UDF; +import org.apache.hadoop.hive.serde2.io.DoubleWritable; + +@Description( + name = "atan", + value = "_FUNC_(x) - returns the atan (arctan) of x (x is in radians)", + extended = "Example:\n " + + " > SELECT _FUNC_(0) FROM src LIMIT 1;\n" + + " 0" + ) +public class UDFAtan extends UDF { + + @SuppressWarnings("unused") + private static Log LOG = LogFactory.getLog(UDFAtan.class.getName()); + + DoubleWritable result = new DoubleWritable(); + + public UDFAtan() { + } + + public DoubleWritable evaluate(DoubleWritable x) { + if (x == null) { + return null; + } else { + result.set(Math.atan(x.get())); + return result; + } + } + +} Index: ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRadians.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRadians.java (revision 0) +++ ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRadians.java (revision 0) @@ -0,0 +1,35 @@ +package org.apache.hadoop.hive.ql.udf; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.hadoop.hive.ql.exec.Description; +import org.apache.hadoop.hive.ql.exec.UDF; +import org.apache.hadoop.hive.serde2.io.DoubleWritable; + + +@Description( + name = "radians", + value = "_FUNC_(x) - Converts degrees to radians", + extended = "Example:\n" + + " > SELECT _FUNC_(90) FROM src LIMIT 1;\n" + + " 1.5707963267949mo\n" + ) +public class UDFRadians extends UDF { + + @SuppressWarnings("unused") + private static Log LOG = LogFactory.getLog(UDFRadians.class.getName()); + DoubleWritable result = new DoubleWritable(); + + public UDFRadians() { + } + + public DoubleWritable evaluate(DoubleWritable i) { + if (i == null) { + return null; + } else { + result.set(Math.toRadians(i.get())); + return result; + } + } + +} Index: ql/src/java/org/apache/hadoop/hive/ql/udf/UDFTan.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/udf/UDFTan.java (revision 0) +++ ql/src/java/org/apache/hadoop/hive/ql/udf/UDFTan.java (revision 0) @@ -0,0 +1,55 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.hadoop.hive.ql.udf; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.hadoop.hive.ql.exec.Description; +import org.apache.hadoop.hive.ql.exec.UDF; +import org.apache.hadoop.hive.serde2.io.DoubleWritable; + +@Description( + name = "tan", + value = "_FUNC_(x) - returns the tangent of x (x is in radians)", + extended = "Example:\n " + + " > SELECT _FUNC_(0) FROM src LIMIT 1;\n" + + " 1" + ) +public class UDFTan extends UDF { + + @SuppressWarnings("unused") + private static Log LOG = LogFactory.getLog(UDFTan.class.getName()); + DoubleWritable result = new DoubleWritable(); + + public UDFTan() { + } + + /** + * Take Tangent of a + */ + public DoubleWritable evaluate(DoubleWritable a) { + if (a == null) { + return null; + } else { + result.set(Math.tan(a.get())); + return result; + } + } + +} Index: ql/src/java/org/apache/hadoop/hive/ql/udf/UDFE.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/udf/UDFE.java (revision 0) +++ ql/src/java/org/apache/hadoop/hive/ql/udf/UDFE.java (revision 0) @@ -0,0 +1,47 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.hadoop.hive.ql.udf; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.hadoop.hive.ql.exec.Description; +import org.apache.hadoop.hive.ql.exec.UDF; +import org.apache.hadoop.hive.serde2.io.DoubleWritable; + +@Description ( + name="E", + value="_FUNC_() - returns E ", + extended = "Example:\n"+ + " > SELECT _FUNC_() FROM src LIMIT 1;\n" + + " 2.718281828459045" + ) +public class UDFE extends UDF { + @SuppressWarnings("unused") + private static Log LOG = LogFactory.getLog(UDFE.class.getName() ); + DoubleWritable result = new DoubleWritable(); + + public UDFE() { + super(); + result.set(Math.E); + } + + public DoubleWritable evaluate() { + return result; + } +}