diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFCase.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFCase.java index e10a2eb..07cc84c 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFCase.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFCase.java @@ -18,6 +18,7 @@ package org.apache.hadoop.hive.ql.udf.generic; +import org.apache.hadoop.hive.ql.exec.Description; import org.apache.hadoop.hive.ql.exec.UDFArgumentTypeException; import org.apache.hadoop.hive.ql.metadata.HiveException; import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector; @@ -31,6 +32,23 @@ * thrown. 2. c and f should be compatible types, or an exception will be * thrown. */ +@Description( + name = "case", + value = "CASE a WHEN b THEN c [WHEN d THEN e]* [ELSE f] END - " + + "When a = b, returns c; when a = d, return e; else return f", + extended = "Example:\n " + + "SELECT\n" + + " CASE deptno\n" + + " WHEN 1 THEN Engineering\n" + + " WHEN 2 THEN Finance\n" + + " ELSE admin\n" + + " END,\n" + + " CASE zone\n" + + " WHEN 7 THEN Americas\n" + + " ELSE Asia-Pac\n" + + " END\n" + + " FROM emp_details") + public class GenericUDFCase extends GenericUDF { private transient ObjectInspector[] argumentOIs; private transient GenericUDFUtils.ReturnObjectInspectorResolver returnOIResolver; diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLag.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLag.java index 827ce98..fb5de19 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLag.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLag.java @@ -18,8 +18,17 @@ package org.apache.hadoop.hive.ql.udf.generic; +import org.apache.hadoop.hive.ql.exec.Description; import org.apache.hadoop.hive.ql.metadata.HiveException; import org.apache.hadoop.hive.ql.udf.UDFType; +@Description( + name = "lag", + value = "LAG (scalar_expression [,offset] [,default]) OVER ([query_partition_clause] order_by_clause); " + + "The LAG function is used to access data from a previous row.", + extended = "Example:\n " + + "select p1.p_mfgr, p1.p_name, p1.p_size,\n" + + " p1.p_size - lag(p1.p_size,1,p1.p_size) over( distribute by p1.p_mfgr sort by p1.p_name) as deltaSz\n" + + " from part p1 join part p2 on p1.p_partkey = p2.p_partkey") @UDFType(impliesOrder = true) public class GenericUDFLag extends GenericUDFLeadLag { diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLead.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLead.java index a074ec2..1517a11 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLead.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLead.java @@ -18,8 +18,19 @@ package org.apache.hadoop.hive.ql.udf.generic; +import org.apache.hadoop.hive.ql.exec.Description; import org.apache.hadoop.hive.ql.metadata.HiveException; import org.apache.hadoop.hive.ql.udf.UDFType; +@Description( + name = "lead", + value = "LEAD (scalar_expression [,offset] [,default]) OVER ([query_partition_clause] order_by_clause); " + + "The LEAD function is used to return data from the next row. ", + extended = "Example:\n " + + "select p_name, p_retailprice, lead(p_retailprice) over() as l1,\n" + + " lag(p_retailprice) over() as l2\n" + + " from part\n" + + " where p_retailprice = 1173.15") + @UDFType(impliesOrder = true) public class GenericUDFLead extends GenericUDFLeadLag { diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFWhen.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFWhen.java index 6ffdbd8..3853540 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFWhen.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFWhen.java @@ -18,6 +18,7 @@ package org.apache.hadoop.hive.ql.udf.generic; +import org.apache.hadoop.hive.ql.exec.Description; import org.apache.hadoop.hive.ql.exec.UDFArgumentTypeException; import org.apache.hadoop.hive.ql.metadata.HiveException; import org.apache.hadoop.hive.serde.serdeConstants; @@ -31,6 +32,23 @@ * NOTES: 1. a and c should be boolean, or an exception will be thrown. 2. b, d * and f should be common types, or an exception will be thrown. */ +@Description( + name = "when", + value = "CASE WHEN a THEN b [WHEN c THEN d]* [ELSE e] END - " + + "When a = true, returns b; when c = true, return d; else return e", + extended = "Example:\n " + + "SELECT\n" + + " CASE\n" + + " WHEN deptno=1 THEN Engineering\n" + + " WHEN deptno=2 THEN Finance\n" + + " ELSE admin\n" + + " END,\n" + + " CASE\n" + + " WHEN zone=7 THEN Americas\n" + + " ELSE Asia-Pac\n" + + " END\n" + + " FROM emp_details") + public class GenericUDFWhen extends GenericUDF { private transient ObjectInspector[] argumentOIs; private transient GenericUDFUtils.ReturnObjectInspectorResolver returnOIResolver;