You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by na...@apache.org on 2009/08/07 18:17:04 UTC

svn commit: r802066 [1/2] - in /hadoop/hive/trunk: ./ ql/src/java/org/apache/hadoop/hive/ql/exec/ ql/src/java/org/apache/hadoop/hive/ql/parse/ ql/src/java/org/apache/hadoop/hive/ql/plan/ ql/src/java/org/apache/hadoop/hive/ql/udf/ ql/src/java/org/apache...

Author: namit
Date: Fri Aug  7 16:17:01 2009
New Revision: 802066

URL: http://svn.apache.org/viewvc?rev=802066&view=rev
Log:
HIVE-691. show documentation for functions. (Emil Ibrishimov via namit)


Added:
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/description.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/descFunctionDesc.java
    hadoop/hive/trunk/ql/src/test/queries/clientpositive/describe_function.q
    hadoop/hive/trunk/ql/src/test/results/clientpositive/describe_function.q.out
Modified:
    hadoop/hive/trunk/CHANGES.txt
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/Hive.g
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzerFactory.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/DDLWork.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAbs.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAcos.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAscii.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAsin.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFBin.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFCeil.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFConcat.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFConv.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFCos.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDate.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDateAdd.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDateDiff.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDateSub.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDayOfMonth.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFExp.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFFloor.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFFromUnixTime.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFHex.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFJson.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLTrim.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLength.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLike.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLn.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog10.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog2.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLower.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLpad.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFMonth.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPAnd.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitAnd.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitNot.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitOr.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitXor.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPDivide.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPEqual.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPEqualOrGreaterThan.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPEqualOrLessThan.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPGreaterThan.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPLessThan.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMinus.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMod.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMultiply.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNegative.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNot.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNotEqual.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPOr.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPPlus.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPPositive.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFParseUrl.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFPosMod.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFPower.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRTrim.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRand.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRegExp.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRegExpExtract.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRegExpReplace.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRepeat.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFReverse.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRound.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRpad.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSin.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSpace.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSqrt.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSubstr.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFTrim.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFUnixTimeStamp.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFUpper.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFYear.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFAverage.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFCount.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFStd.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFStdSample.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFSum.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFVariance.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFVarianceSample.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFCoalesce.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFElt.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFHash.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFIndex.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFInstr.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLocate.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPNotNull.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPNull.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFSize.java
    hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFSplit.java

Modified: hadoop/hive/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/CHANGES.txt?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/CHANGES.txt (original)
+++ hadoop/hive/trunk/CHANGES.txt Fri Aug  7 16:17:01 2009
@@ -120,6 +120,8 @@
 
     HIVE-729. Make AS in select list optional. (Zheng Shao via namit)
 
+    HIVE-691. show documentation for functions. (Emil Ibrishimov via namit)
+
   IMPROVEMENTS
     HIVE-389. Option to build without ivy (jssarma)
 

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java Fri Aug  7 16:17:01 2009
@@ -29,8 +29,8 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.SortedSet;
 import java.util.Set;
+import java.util.SortedSet;
 import java.util.TreeSet;
 import java.util.Map.Entry;
 
@@ -45,7 +45,6 @@
 import org.apache.hadoop.hive.metastore.api.InvalidOperationException;
 import org.apache.hadoop.hive.metastore.api.Order;
 import org.apache.hadoop.hive.metastore.api.StorageDescriptor;
-import org.apache.hadoop.hive.ql.exec.FunctionRegistry;
 import org.apache.hadoop.hive.ql.metadata.CheckResult;
 import org.apache.hadoop.hive.ql.metadata.Hive;
 import org.apache.hadoop.hive.ql.metadata.HiveException;
@@ -59,19 +58,20 @@
 import org.apache.hadoop.hive.ql.plan.alterTableDesc;
 import org.apache.hadoop.hive.ql.plan.createTableDesc;
 import org.apache.hadoop.hive.ql.plan.createTableLikeDesc;
+import org.apache.hadoop.hive.ql.plan.descFunctionDesc;
 import org.apache.hadoop.hive.ql.plan.descTableDesc;
 import org.apache.hadoop.hive.ql.plan.dropTableDesc;
+import org.apache.hadoop.hive.ql.plan.showFunctionsDesc;
 import org.apache.hadoop.hive.ql.plan.showPartitionsDesc;
 import org.apache.hadoop.hive.ql.plan.showTablesDesc;
-import org.apache.hadoop.hive.ql.plan.showFunctionsDesc;
 import org.apache.hadoop.hive.serde.Constants;
+import org.apache.hadoop.hive.serde2.Deserializer;
 import org.apache.hadoop.hive.serde2.MetadataTypedColumnsetSerDe;
+import org.apache.hadoop.hive.serde2.SerDeException;
+import org.apache.hadoop.hive.serde2.SerDeUtils;
 import org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe;
 import org.apache.hadoop.hive.serde2.dynamic_type.DynamicSerDe;
 import org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe;
-import org.apache.hadoop.hive.serde2.Deserializer;
-import org.apache.hadoop.hive.serde2.SerDeUtils;
-import org.apache.hadoop.hive.serde2.SerDeException;
 import org.apache.hadoop.util.StringUtils;
 
 /**
@@ -132,6 +132,11 @@
       if (descTbl != null) {
         return describeTable(db, descTbl);
       }
+      
+      descFunctionDesc descFunc = work.getDescFunctionDesc();
+      if (descFunc != null) {
+        return describeFunction(descFunc);
+      }
 
       showTablesDesc showTbls = work.getShowTblsDesc();
       if (showTbls != null) {
@@ -415,6 +420,55 @@
   }
 
   /**
+   * Shows a description of a function.
+   * 
+   * @param descFunc is the function we are describing
+   * @throws HiveException
+   */
+  private int describeFunction(descFunctionDesc descFunc)
+      throws HiveException {
+    String name = descFunc.getName();
+    
+    // write the results in the file
+    try {
+      FileSystem fs = descFunc.getResFile().getFileSystem(conf);
+      DataOutput outStream = (DataOutput)fs.create(descFunc.getResFile());
+
+      // get the function documentation
+      description desc = null;
+      FunctionInfo fi = FunctionRegistry.getFunctionInfo(name);
+      if(fi.getUDFClass() != null) {
+        desc = fi.getUDFClass().getAnnotation(description.class);
+      } else if(fi.getGenericUDFClass() != null) {
+        desc = fi.getGenericUDFClass().getAnnotation(description.class);
+      }
+      
+      if (desc != null) {
+        outStream.writeBytes(desc.value().replace("_FUNC_", name));
+        if(descFunc.isExtended() && desc.extended().length()>0) {
+          outStream.writeBytes("\n"+desc.extended().replace("_FUNC_", name));
+        }
+      } else {
+        outStream.writeBytes("Function " + name + " does not exist or cannot" +
+        		" find documentation for it.");
+      }
+      
+      outStream.write(terminator);
+     
+      ((FSDataOutputStream)outStream).close();
+    } catch (FileNotFoundException e) {
+      LOG.warn("describe function: " + StringUtils.stringifyException(e));
+      return 1;
+    } catch (IOException e) {
+      LOG.warn("describe function: " + StringUtils.stringifyException(e));
+      return 1;
+    } catch (Exception e) {
+      throw new HiveException(e.toString());
+    }
+    return 0;
+  }  
+  
+  /**
    * Write the description of a table to a file.
    * 
    * @param db The database in question.

Added: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/description.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/description.java?rev=802066&view=auto
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/description.java (added)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/description.java Fri Aug  7 16:17:01 2009
@@ -0,0 +1,29 @@
+/**
+ * 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.exec;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+@Retention(RetentionPolicy.RUNTIME)
+public @interface description {
+  String value() default "_FUNC_ is undocumented";
+  String extended() default "";
+  String name() default "";
+}

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java Fri Aug  7 16:17:01 2009
@@ -18,6 +18,7 @@
 
 package org.apache.hadoop.hive.ql.parse;
 
+import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -32,42 +33,40 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.hive.conf.HiveConf;
 import org.apache.hadoop.hive.common.JavaUtils;
+import org.apache.hadoop.hive.conf.HiveConf;
 import org.apache.hadoop.hive.metastore.MetaStoreUtils;
 import org.apache.hadoop.hive.metastore.api.FieldSchema;
 import org.apache.hadoop.hive.metastore.api.Order;
-import org.apache.hadoop.hive.ql.Context;
+import org.apache.hadoop.hive.ql.exec.Task;
 import org.apache.hadoop.hive.ql.exec.TaskFactory;
-import org.apache.hadoop.hive.ql.plan.AddPartitionDesc;
-import org.apache.hadoop.hive.ql.plan.MsckDesc;
 import org.apache.hadoop.hive.ql.io.HiveFileFormatUtils;
 import org.apache.hadoop.hive.ql.io.HiveOutputFormat;
 import org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat;
 import org.apache.hadoop.hive.ql.io.RCFileInputFormat;
 import org.apache.hadoop.hive.ql.io.RCFileOutputFormat;
+import org.apache.hadoop.hive.ql.plan.AddPartitionDesc;
 import org.apache.hadoop.hive.ql.plan.DDLWork;
+import org.apache.hadoop.hive.ql.plan.MsckDesc;
 import org.apache.hadoop.hive.ql.plan.alterTableDesc;
 import org.apache.hadoop.hive.ql.plan.createTableDesc;
 import org.apache.hadoop.hive.ql.plan.createTableLikeDesc;
+import org.apache.hadoop.hive.ql.plan.descFunctionDesc;
 import org.apache.hadoop.hive.ql.plan.descTableDesc;
 import org.apache.hadoop.hive.ql.plan.dropTableDesc;
+import org.apache.hadoop.hive.ql.plan.fetchWork;
+import org.apache.hadoop.hive.ql.plan.showFunctionsDesc;
 import org.apache.hadoop.hive.ql.plan.showPartitionsDesc;
 import org.apache.hadoop.hive.ql.plan.showTablesDesc;
-import org.apache.hadoop.hive.ql.plan.showFunctionsDesc;
+import org.apache.hadoop.hive.ql.plan.tableDesc;
 import org.apache.hadoop.hive.ql.plan.alterTableDesc.alterTableTypes;
 import org.apache.hadoop.hive.serde.Constants;
 import org.apache.hadoop.hive.serde2.SerDeUtils;
-import org.apache.hadoop.hive.ql.plan.fetchWork;
-import org.apache.hadoop.hive.ql.plan.tableDesc;
 import org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe;
-import org.apache.hadoop.hive.serde2.dynamic_type.DynamicSerDe;
 import org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe;
-import org.apache.hadoop.mapred.TextInputFormat;
-import org.apache.hadoop.hive.ql.exec.Task;
-import java.io.Serializable;
 import org.apache.hadoop.mapred.SequenceFileInputFormat;
 import org.apache.hadoop.mapred.SequenceFileOutputFormat;
+import org.apache.hadoop.mapred.TextInputFormat;
 
 public class DDLSemanticAnalyzer extends BaseSemanticAnalyzer {
   private static final Log LOG = LogFactory.getLog("hive.ql.parse.DDLSemanticAnalyzer");
@@ -120,6 +119,9 @@
     } else if (ast.getToken().getType() == HiveParser.TOK_SHOWFUNCTIONS) {
       ctx.setResFile(new Path(ctx.getLocalTmpFileURI()));
       analyzeShowFunctions(ast);
+    } else if (ast.getToken().getType() == HiveParser.TOK_DESCFUNCTION) {
+      ctx.setResFile(new Path(ctx.getLocalTmpFileURI()));
+      analyzeDescFunction(ast);
     } else if (ast.getToken().getType() == HiveParser.TOK_MSCK) {
       ctx.setResFile(new Path(ctx.getLocalTmpFileURI()));
       analyzeMetastoreCheck(ast);    
@@ -594,6 +596,33 @@
     rootTasks.add(TaskFactory.get(new DDLWork(showFuncsDesc), conf));
     setFetchTask(createFetchTask(showFuncsDesc.getSchema()));
   }
+  
+  /**
+   * Add the task according to the parsed command tree.
+   * This is used for the CLI command "DESCRIBE FUNCTION;".
+   * @param ast The parsed command tree.
+   * @throws SemanticException Parsing failed
+   */
+  private void analyzeDescFunction(ASTNode ast)
+  throws SemanticException {
+    String funcName;
+    boolean isExtended;
+    
+    if(ast.getChildCount() == 1) {
+      funcName = ast.getChild(0).getText();
+      isExtended = false;
+    } else if(ast.getChildCount() == 2) {
+      funcName = ast.getChild(0).getText();
+      isExtended = true;
+    } else {
+      throw new SemanticException("Unexpected Tokens at DESCRIBE FUNCTION");
+    }
+
+    descFunctionDesc descFuncDesc = new descFunctionDesc(ctx.getResFile(),
+                                                          funcName, isExtended);
+    rootTasks.add(TaskFactory.get(new DDLWork(descFuncDesc), conf));
+    setFetchTask(createFetchTask(descFuncDesc.getSchema()));
+  }
 
   private void analyzeAlterTableRename(ASTNode ast) 
   throws SemanticException {

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/Hive.g
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/Hive.g?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/Hive.g (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/Hive.g Fri Aug  7 16:17:01 2009
@@ -82,6 +82,7 @@
 TOK_CREATETABLE;
 TOK_LIKETABLE;
 TOK_DESCTABLE;
+TOK_DESCFUNCTION;
 TOK_ALTERTABLE_RENAME;
 TOK_ALTERTABLE_ADDCOLS;
 TOK_ALTERTABLE_REPLACECOLS;
@@ -298,7 +299,8 @@
 descStatement
 @init { msgs.push("describe statement"); }
 @after { msgs.pop(); }
-    : KW_DESCRIBE (isExtended=KW_EXTENDED)? (parttype=partTypeExpr)  -> ^(TOK_DESCTABLE $parttype $isExtended?)
+    : KW_DESCRIBE (isExtended=KW_EXTENDED)? (parttype=partTypeExpr) -> ^(TOK_DESCTABLE $parttype $isExtended?)
+    | KW_DESCRIBE KW_FUNCTION KW_EXTENDED? Identifier -> ^(TOK_DESCFUNCTION Identifier KW_EXTENDED?) 
     ;
 
 showStatement

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzerFactory.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzerFactory.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzerFactory.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzerFactory.java Fri Aug  7 16:17:01 2009
@@ -32,7 +32,8 @@
       case HiveParser.TOK_LOAD: return new LoadSemanticAnalyzer(conf);
       case HiveParser.TOK_CREATETABLE: 
       case HiveParser.TOK_DROPTABLE: 
-      case HiveParser.TOK_DESCTABLE: 
+      case HiveParser.TOK_DESCTABLE:
+      case HiveParser.TOK_DESCFUNCTION:
       case HiveParser.TOK_MSCK:
       case HiveParser.TOK_ALTERTABLE_ADDCOLS:
       case HiveParser.TOK_ALTERTABLE_REPLACECOLS:

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/DDLWork.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/DDLWork.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/DDLWork.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/DDLWork.java Fri Aug  7 16:17:01 2009
@@ -28,6 +28,7 @@
   private alterTableDesc       alterTblDesc;
   private showTablesDesc       showTblsDesc;
   private showFunctionsDesc    showFuncsDesc;
+  private descFunctionDesc     descFunctionDesc;
   private showPartitionsDesc   showPartsDesc;
   private descTableDesc        descTblDesc;
   private AddPartitionDesc addPartitionDesc;
@@ -83,6 +84,13 @@
   public DDLWork(showFunctionsDesc showFuncsDesc) {
     this.showFuncsDesc = showFuncsDesc;
   }
+  
+  /**
+   * @param descFuncDesc
+   */
+  public DDLWork(descFunctionDesc descFuncDesc) {
+    this.descFunctionDesc = descFuncDesc;
+  }
 
   /**
    * @param showPartsDesc
@@ -185,6 +193,14 @@
   public showFunctionsDesc getShowFuncsDesc() {
     return showFuncsDesc;
   }
+  
+  /**
+   * @return the descFuncDesc
+   */
+  @explain(displayName="Show Function Operator")
+  public descFunctionDesc getDescFunctionDesc() {
+    return descFunctionDesc;
+  }
 
   /**
    * @param showFuncsDesc the showFuncsDesc to set
@@ -192,6 +208,13 @@
   public void setShowFuncsDesc(showFunctionsDesc showFuncsDesc) {
     this.showFuncsDesc = showFuncsDesc;
   }
+  
+  /**
+   * @param showFuncsDesc the showFuncsDesc to set
+   */
+  public void setDescFuncDesc(descFunctionDesc descFuncDesc) {
+    this.descFunctionDesc = descFuncDesc;
+  }
 
   /**
    * @return the showPartsDesc

Added: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/descFunctionDesc.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/descFunctionDesc.java?rev=802066&view=auto
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/descFunctionDesc.java (added)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/descFunctionDesc.java Fri Aug  7 16:17:01 2009
@@ -0,0 +1,106 @@
+/**
+ * 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.plan;
+
+import java.io.Serializable;
+import org.apache.hadoop.fs.Path;
+
+@explain(displayName="Describe Function")
+public class descFunctionDesc extends ddlDesc implements Serializable
+{
+  private static final long serialVersionUID = 1L;
+  String     name;
+  Path       resFile;
+  boolean    isExtended;
+  
+  public boolean isExtended() {
+    return isExtended;
+  }
+
+  public void setExtended(boolean isExtended) {
+    this.isExtended = isExtended;
+  }
+  
+  /**
+   * table name for the result of show tables
+   */
+  private final String table = "show";
+  /**
+   * thrift ddl for the result of show tables
+   */
+  private final String schema = "tab_name#string";
+
+  public String getTable() {
+    return table;
+  }
+
+  public String getSchema() {
+    return schema;
+  }
+  
+  /**
+   * @param resFile
+   */
+  public descFunctionDesc(Path resFile) {
+    this.resFile = resFile;
+    name = null;
+  }
+
+  /**
+   * @param name of the function to describe
+   */
+  public descFunctionDesc(Path resFile, String name, boolean isExtended) {
+    this.isExtended = isExtended;
+    this.resFile = resFile;
+    this.name = name;
+  }
+
+  /**
+   * @return the name
+   */
+  @explain(displayName="name")
+  public String getName() {
+    return name;
+  }
+
+  /**
+   * @param name is the function name
+   */
+  public void setName(String name) {
+    this.name = name;
+  }
+
+  /**
+   * @return the resFile
+   */
+  public Path getResFile() {
+    return resFile;
+  }
+
+  @explain(displayName="result file", normalExplain=false)
+  public String getResFileString() {
+    return getResFile().getName();
+  }
+  /**
+   * @param resFile the resFile to set
+   */
+  public void setResFile(Path resFile) {
+    this.resFile = resFile;
+  }
+}

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAbs.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAbs.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAbs.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAbs.java Fri Aug  7 16:17:01 2009
@@ -19,10 +19,20 @@
 package org.apache.hadoop.hive.ql.udf;
 
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.hive.serde2.io.DoubleWritable;
-import org.apache.hadoop.io.LongWritable;
 import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.io.LongWritable;
 
+@description(
+    name = "abs",
+    value = "_FUNC_(x) - returns the absolute value of x",
+    extended = "Example:\n" +
+    		"  > SELECT _FUNC_(0) FROM src LIMIT 1;\n" +
+    		"  0\n" +
+    		"  > SELECT _FUNC_(-5) FROM src LIMIT 1;\n" +
+    		"  5"
+    )
 public class UDFAbs extends UDF { 
   
   private DoubleWritable resultDouble = new DoubleWritable();

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAcos.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAcos.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAcos.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAcos.java Fri Aug  7 16:17:01 2009
@@ -21,9 +21,19 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.hive.serde2.io.DoubleWritable;
 
-
+@description(
+    name = "acos",
+    value = "_FUNC_(x) - returns the arc cosine of x if -1<=x<=1 or " +
+		"NULL otherwise",
+    extended = "Example:\n" +
+    		"  > SELECT _FUNC_(1) FROM src LIMIT 1;\n" +
+    		"  0\n" +
+    		"  > SELECT _FUNC_(2) FROM src LIMIT 1;\n" +
+    		"  NULL"
+    )
 public class UDFAcos extends UDF {
 
   private static Log LOG = LogFactory.getLog(UDFAcos.class.getName());

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAscii.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAscii.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAscii.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAscii.java Fri Aug  7 16:17:01 2009
@@ -19,9 +19,21 @@
 package org.apache.hadoop.hive.ql.udf;
 
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.io.IntWritable;
 import org.apache.hadoop.io.Text;
 
+@description(
+    name = "ascii",
+    value = "_FUNC_(str) - returns the numeric value of the first character" +
+    		" of str",
+    extended = "Returns 0 if str is empty or NULL if str is NULL\n" +
+    		"Example:\n" +
+    		"  > SELECT _FUNC_('222') FROM src LIMIT 1;" +
+    		"  50\n" +
+    		"  > SELECT _FUNC_(2) FROM src LIMIT 1;\n" +
+    		"  50"
+    )
 public class UDFAscii extends UDF { 
   
   private IntWritable result = new IntWritable();

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAsin.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAsin.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAsin.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFAsin.java Fri Aug  7 16:17:01 2009
@@ -21,9 +21,18 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.hive.serde2.io.DoubleWritable;
 
-
+@description(
+    name = "asin",
+    value = "_FUNC_(x) - returns the arc sine of x if -1<=x<=1 or NULL otherwise",
+    extended = "Example:\n" +
+      "  > SELECT _FUNC_(0) FROM src LIMIT 1;\n" +
+      "  0\n" +
+      "  > SELECT _FUNC_(2) FROM src LIMIT 1;\n" +
+      "  NULL"
+    )
 public class UDFAsin extends UDF {
 
   private static Log LOG = LogFactory.getLog(UDFAsin.class.getName());

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFBin.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFBin.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFBin.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFBin.java Fri Aug  7 16:17:01 2009
@@ -21,9 +21,18 @@
 import java.util.Arrays;
 
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.io.LongWritable;
 import org.apache.hadoop.io.Text;
 
+@description(
+    name = "bin",
+    value = "_FUNC_(n) - returns n in binary",
+    extended = "n is a BIGINT. Returns NULL if n is NULL.\n" +
+    		"Example:\n" +
+    		"  > SELECT _FUNC_(13) FROM src LIMIT 1\n" +
+    		"  '1101'" 
+    )
 public class UDFBin extends UDF { 
   private Text result = new Text();
   byte[] value = new byte[64];

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFCeil.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFCeil.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFCeil.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFCeil.java Fri Aug  7 16:17:01 2009
@@ -21,9 +21,19 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.hive.serde2.io.DoubleWritable;
 import org.apache.hadoop.io.LongWritable;
 
+@description(
+    name = "ceil,ceiling",
+    value = "_FUNC_(x) - Find the smallest integer not smaller than x",
+    extended = "Example:\n" +
+    		"  > SELECT _FUNC_(-0.1) FROM src LIMIT 1;\n" +
+    		"  0\n" +
+    		"  > SELECT _FUNC_(5) FROM src LIMIT 1;\n" +
+    		"  5"
+    )
 public class UDFCeil extends UDF {
 
   private static Log LOG = LogFactory.getLog(UDFCeil.class.getName());

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFConcat.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFConcat.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFConcat.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFConcat.java Fri Aug  7 16:17:01 2009
@@ -19,9 +19,17 @@
 package org.apache.hadoop.hive.ql.udf;
 
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.io.Text;
 
-
+@description(
+    name = "concat",
+    value = "_FUNC_(str1, str2) - returns the concatenation of str1 and str2",
+    extended = "Returns NULL if any argument is NULL.\n" +
+    		"Example:\n" +
+    		"  > SELECT _FUNC_('abc', 'def') FROM src LIMIT 1;\n" +
+    		"  'abcdef'"
+    )
 public class UDFConcat extends UDF {
 
   public UDFConcat() {

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFConv.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFConv.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFConv.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFConv.java Fri Aug  7 16:17:01 2009
@@ -20,10 +20,23 @@
 import java.util.Arrays;
 
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.io.IntWritable;
 import org.apache.hadoop.io.LongWritable;
 import org.apache.hadoop.io.Text;
 
+@description(
+    name = "conv",
+    value="_FUNC_(num, from_base, to_base) - convert num from from_base to" +
+    		" to_base",
+    extended="If to_base is negative, treat num as a signed integer," +
+    		"otherwise, treat it as an unsigned integer.\n" +
+    		"Example:\n" +
+        "  > SELECT _FUNC_('100', 2, 10) FROM src LIMIT 1;\n" +
+        "  '4'\n" +
+        "  > SELECT _FUNC_(-10, 16, -10) FROM src LIMIT 1;\n" +
+        "  '16'"
+    )
 public class UDFConv extends UDF {
   private Text result = new Text();
   private byte[] value = new byte[64];

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFCos.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFCos.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFCos.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFCos.java Fri Aug  7 16:17:01 2009
@@ -21,9 +21,16 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.hive.serde2.io.DoubleWritable;
 
-
+@description(
+    name = "cos",
+    value = "_FUNC_(x) - returns the cosine of x (x is in radians)",
+    extended = "Example:\n " +
+    		"  > SELECT _FUNC_(0) FROM src LIMIT 1;\n" +
+    		"  1"
+    )
 public class UDFCos extends UDF {
 
   private static Log LOG = LogFactory.getLog(UDFCos.class.getName());

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDate.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDate.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDate.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDate.java Fri Aug  7 16:17:01 2009
@@ -26,9 +26,17 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.io.Text;
 
-
+@description(
+    name = "to_date",
+    value = "_FUNC_(expr) - Extracts the date part of the date or datetime " +
+    		"expression expr",
+    extended = "Example:\n " +
+        "  > SELECT _FUNC_('2009-30-07 04:17:52') FROM src LIMIT 1;\n" +
+        "  '2009-30-07'"
+    )
 public class UDFDate extends UDF {
 
   private static Log LOG = LogFactory.getLog(UDFDate.class.getName());

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDateAdd.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDateAdd.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDateAdd.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDateAdd.java Fri Aug  7 16:17:01 2009
@@ -27,10 +27,21 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.io.IntWritable;
 import org.apache.hadoop.io.Text;
 
-
+@description(
+    name = "date_add",
+    value = "_FUNC_(start_date, num_days) - Returns the date that is num_days" +
+    		" after start_date.",
+    extended = "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.\n" +
+    		"Example:\n " +
+        "  > SELECT _FUNC_('2009-30-07', 1) FROM src LIMIT 1;\n" +
+        "  '2009-31-07'"
+    )
 public class UDFDateAdd extends UDF {
 
   private static Log LOG = LogFactory.getLog(UDFDateAdd.class.getName());

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDateDiff.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDateDiff.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDateDiff.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDateDiff.java Fri Aug  7 16:17:01 2009
@@ -25,10 +25,21 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.io.IntWritable;
 import org.apache.hadoop.io.Text;
 
-
+@description(
+    name = "datediff",
+    value = "_FUNC_(date1, date2) - Returns the number of days between date1 " +
+    		"and date2",
+    extended = "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.\n" +
+        "Example:\n " +
+        "  > SELECT _FUNC_('2009-30-07', '2009-31-07') FROM src LIMIT 1;\n" +
+        "  1"
+    )
 public class UDFDateDiff extends UDF {
 
   private static Log LOG = LogFactory.getLog(UDFDateDiff.class.getName());

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDateSub.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDateSub.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDateSub.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDateSub.java Fri Aug  7 16:17:01 2009
@@ -27,10 +27,21 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.io.IntWritable;
 import org.apache.hadoop.io.Text;
 
-
+@description(
+    name = "date_sub",
+    value = "_FUNC_(start_date, num_days) - Returns the date that is num_days" +
+        " before start_date.",
+    extended = "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.\n" +
+        "Example:\n " +
+        "  > SELECT _FUNC_('2009-30-07', 1) FROM src LIMIT 1;\n" +
+        "  '2009-29-07'"
+    )
 public class UDFDateSub extends UDF {
 
   private static Log LOG = LogFactory.getLog(UDFDateSub.class.getName());

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDayOfMonth.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDayOfMonth.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDayOfMonth.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDayOfMonth.java Fri Aug  7 16:17:01 2009
@@ -26,10 +26,19 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.io.IntWritable;
 import org.apache.hadoop.io.Text;
 
-
+@description(
+    name = "day,dayofmonth",
+    value = "_FUNC_(date) - Returns the date of the month of date",
+    extended = "date is a string in the format of 'yyyy-MM-dd HH:mm:ss' or " +
+    		"'yyyy-MM-dd'.\n" +
+        "Example:\n " +
+        "  > SELECT _FUNC_('2009-30-07', 1) FROM src LIMIT 1;\n" +
+        "  30"
+    )
 public class UDFDayOfMonth extends UDF {
 
   private static Log LOG = LogFactory.getLog(UDFDayOfMonth.class.getName());

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFExp.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFExp.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFExp.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFExp.java Fri Aug  7 16:17:01 2009
@@ -21,9 +21,16 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.hive.serde2.io.DoubleWritable;
 
-
+@description(
+    name = "exp",
+    value = "_FUNC_(x) - Returns e to the power of x",
+    extended = "Example:\n " +
+        "  > SELECT _FUNC_(0) FROM src LIMIT 1;\n" +
+        "  1"
+    )
 public class UDFExp extends UDF {
 
   private static Log LOG = LogFactory.getLog(UDFExp.class.getName());

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFFloor.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFFloor.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFFloor.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFFloor.java Fri Aug  7 16:17:01 2009
@@ -21,10 +21,19 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.hive.serde2.io.DoubleWritable;
 import org.apache.hadoop.io.LongWritable;
 
-
+@description(
+    name = "floor",
+    value = "_FUNC_(x) - Find the largest integer not greater than x",
+    extended = "Example:\n" +
+        "  > SELECT _FUNC_(-0.1) FROM src LIMIT 1;\n" +
+        "  -1\n" +
+        "  > SELECT _FUNC_(5) FROM src LIMIT 1;\n" +
+        "  5"
+    )
 public class UDFFloor extends UDF {
 
   private static Log LOG = LogFactory.getLog(UDFFloor.class.getName());

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFFromUnixTime.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFFromUnixTime.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFFromUnixTime.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFFromUnixTime.java Fri Aug  7 16:17:01 2009
@@ -24,10 +24,18 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.io.IntWritable;
 import org.apache.hadoop.io.Text;
 
-
+@description(
+    name = "from_unixtime",
+    value = "_FUNC_(unix_time, format) - returns unix_time in the specified " +
+    		"format",
+    extended = "Example:\n" +
+        "  > SELECT _FUNC_(0, 'yyyy-MM-dd HH:mm:ss') FROM src LIMIT 1;\n" +
+        "  '1970-01-01 00:00:00'"
+    )
 public class UDFFromUnixTime extends UDF {
 
   private static Log LOG = LogFactory.getLog(UDFFromUnixTime.class.getName());

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFHex.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFHex.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFHex.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFHex.java Fri Aug  7 16:17:01 2009
@@ -19,10 +19,22 @@
 package org.apache.hadoop.hive.ql.udf;
 
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.io.IntWritable;
 import org.apache.hadoop.io.LongWritable;
 import org.apache.hadoop.io.Text;
-
+@description(
+    name = "hex",
+    value = "_FUNC_(n or str) - Convert the argument to hexadecimal ",
+    extended = "If the argument is a string, returns two hex digits for each " +
+    		"character in the string.\n" +
+    		"If the argument is a number, returns the hexadecimal representation.\n" +
+    		"Example:\n" +
+        "  > SELECT _FUNC_(17) FROM src LIMIT 1;\n" +
+        "  'H1'\n" +
+        "  > SELECT _FUNC_('Facebook') FROM src LIMIT 1;\n" +
+        "  '46616365626F6F6B'"
+    )
 public class UDFHex extends UDF { 
   private Text result = new Text();
   byte[] value = new byte[16];

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFJson.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFJson.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFJson.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFJson.java Fri Aug  7 16:17:01 2009
@@ -31,9 +31,29 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.io.Text;
 
-
+@description(
+    name = "get_json_object",
+    value = "_FUNC_(json_txt, path) - Extract a json object from path ",
+    extended = "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.\n" +
+        "A limited version of JSONPath supported:\n" +
+        "  $   : Root object\n" +
+        "  .   : Child operator\n" +
+        "  []  : Subscript operator for array\n" +
+        "  *   : Wildcard for []\n" +
+        "Syntax not supported that's worth noticing:\n" +
+        "  ''  : Zero length string as key\n" +
+        "  ..  : Recursive descent\n" +
+        "  &amp;#064;   : Current object/element\n" +
+        "  ()  : Script expression\n" +
+        "  ?() : Filter (script) expression.\n" +
+        "  [,] : Union operator\n" +
+        "  [start:end:step] : array slice operator\n"
+    )
 public class UDFJson extends UDF {
   private static Log LOG = LogFactory.getLog(UDFJson.class.getName());
   private Pattern pattern_key = Pattern.compile("^([a-zA-Z0-9_\\-]+).*");

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLTrim.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLTrim.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLTrim.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLTrim.java Fri Aug  7 16:17:01 2009
@@ -19,12 +19,20 @@
 package org.apache.hadoop.hive.ql.udf;
 
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.io.Text;
 import org.apache.commons.lang.StringUtils;
 
 import java.util.regex.Pattern;
 import java.util.regex.Matcher;
 
+@description(
+    name = "ltrim",
+    value = "_FUNC_(str) - Removes the leading space characters from str ",
+    extended = "Example:\n" +
+        "  > SELECT _FUNC_('   facebook') FROM src LIMIT 1;\n" +
+        "  'facebook'"
+    )
 public class UDFLTrim extends UDF {
 
   Text result = new Text();

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLength.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLength.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLength.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLength.java Fri Aug  7 16:17:01 2009
@@ -18,10 +18,18 @@
 package org.apache.hadoop.hive.ql.udf;
 
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.hive.ql.udf.generic.GenericUDFUtils;
 import org.apache.hadoop.io.IntWritable;
 import org.apache.hadoop.io.Text;
 
+@description(
+    name = "length",
+    value = "_FUNC_(str) - Returns the length of str ",
+    extended = "Example:\n" +
+        "  > SELECT _FUNC_('Facebook') FROM src LIMIT 1;\n" +
+        "  8"
+    )
 public class UDFLength extends UDF {
   private IntWritable result = new IntWritable();
 

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLike.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLike.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLike.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLike.java Fri Aug  7 16:17:01 2009
@@ -21,12 +21,20 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.io.BooleanWritable;
 import org.apache.hadoop.io.Text;
 
 import java.util.regex.Pattern;
 import java.util.regex.Matcher;
 
+@description(
+    name = "like",
+    value = "_FUNC_(str, pattern) - Checks if str matches pattern",
+    extended = "Example:\n" +
+        "  > SELECT a.* FROM srcpart a WHERE a.hr _FUNC_ '%2' LIMIT 1;\n" +
+        "  27      val_27  2008-04-08      12"
+    )
 public class UDFLike extends UDF {
 
   private static Log LOG = LogFactory.getLog(UDFLike.class.getName());

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLn.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLn.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLn.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLn.java Fri Aug  7 16:17:01 2009
@@ -21,9 +21,16 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.hive.serde2.io.DoubleWritable;
 
-
+@description(
+    name = "ln",
+    value = "_FUNC_(x) - Returns the natural logarithm of x",
+    extended = "Example:\n" +
+        "  > SELECT _FUNC_(1) FROM src LIMIT 1;\n" +
+        "  0"
+    )
 public class UDFLn extends UDF {
 
   private static Log LOG = LogFactory.getLog(UDFLn.class.getName());

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog.java Fri Aug  7 16:17:01 2009
@@ -21,9 +21,16 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.hive.serde2.io.DoubleWritable;
 
-
+@description(
+    name = "log",
+    value = "_FUNC_([b], x) - Returns the logarithm of x with base b",
+    extended = "Example:\n" +
+        "  > SELECT _FUNC_(13, 13) FROM src LIMIT 1;\n" +
+        "  1"
+    )
 public class UDFLog extends UDF {
 
   private static Log LOG = LogFactory.getLog(UDFLog.class.getName());

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog10.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog10.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog10.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog10.java Fri Aug  7 16:17:01 2009
@@ -21,9 +21,16 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.hive.serde2.io.DoubleWritable;
 
-
+@description(
+    name = "log10",
+    value = "_FUNC_(x) - Returns the logarithm of x with base 10",
+    extended = "Example:\n" +
+        "  > SELECT _FUNC_(10) FROM src LIMIT 1;\n" +
+        "  1"
+    )
 public class UDFLog10 extends UDF {
 
   private static Log LOG = LogFactory.getLog(UDFLog10.class.getName());

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog2.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog2.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog2.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog2.java Fri Aug  7 16:17:01 2009
@@ -21,9 +21,16 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.hive.serde2.io.DoubleWritable;
 
-
+@description(
+    name = "log2",
+    value = "_FUNC_(x) - Returns the logarithm of x with base 2",
+    extended = "Example:\n" +
+        "  > SELECT _FUNC_(2) FROM src LIMIT 1;\n" +
+        "  1"
+    )
 public class UDFLog2 extends UDF {
 
   private static Log LOG = LogFactory.getLog(UDFLog2.class.getName());

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLower.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLower.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLower.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLower.java Fri Aug  7 16:17:01 2009
@@ -19,11 +19,19 @@
 package org.apache.hadoop.hive.ql.udf;
 
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.io.Text;
 
 import java.util.regex.Pattern;
 import java.util.regex.Matcher;
 
+@description(
+    name = "lower,lcase",
+    value = "_FUNC_(str) - Returns str with all characters changed to lowercase",
+    extended = "Example:\n" +
+        "  > SELECT _FUNC_('Facebook') FROM src LIMIT 1;\n" +
+        "  'facebook'"
+    )
 public class UDFLower extends UDF {
 
   Text t = new Text();

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLpad.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLpad.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLpad.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLpad.java Fri Aug  7 16:17:01 2009
@@ -19,9 +19,22 @@
 package org.apache.hadoop.hive.ql.udf;
 
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.io.IntWritable;
 import org.apache.hadoop.io.Text;
 
+@description(
+    name = "lpad",
+    value = "_FUNC_(str, len, pad) - Returns str, left-padded with pad to a " +
+    		"length of len",
+    extended = "If str is longer than len, the return value is shortened to " +
+    		"len characters.\n" +
+    		"Example:\n" +
+        "  > SELECT _FUNC_('hi', 5, '??') FROM src LIMIT 1;\n" +
+        "  '???hi'" +
+        "  > SELECT _FUNC_('hi', 1, '??') FROM src LIMIT 1;\n" +
+        "  'h'"
+    )
 public class UDFLpad extends UDF { 
   
   private Text result = new Text();

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFMonth.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFMonth.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFMonth.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFMonth.java Fri Aug  7 16:17:01 2009
@@ -26,10 +26,17 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.io.IntWritable;
 import org.apache.hadoop.io.Text;
 
-
+@description(
+    name = "month",
+    value = "_FUNC_(date) - Returns the month of date",
+    extended = "Example:\n" +
+        "  > SELECT _FUNC_('2009-30-07') FROM src LIMIT 1;\n" +
+        "  7"
+    )
 public class UDFMonth extends UDF {
 
   private static Log LOG = LogFactory.getLog(UDFMonth.class.getName());

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPAnd.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPAnd.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPAnd.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPAnd.java Fri Aug  7 16:17:01 2009
@@ -21,9 +21,17 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.io.BooleanWritable;
 
-
+@description(
+    name = "and,&&",
+    value = "a _FUNC_ b - Logical and",
+    extended = "Example:\n" +
+        "  > SELECT * FROM srcpart WHERE src.hr=12 _FUNC_ " +
+        "src.hr='2008-04-08' LIMIT 1;\n" +
+        "  27      val_27  2008-04-08      12"
+)
 public class UDFOPAnd extends UDF {
 
   private static Log LOG = LogFactory.getLog("org.apache.hadoop.hive.ql.udf.UDFOPAnd");

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitAnd.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitAnd.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitAnd.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitAnd.java Fri Aug  7 16:17:01 2009
@@ -21,12 +21,19 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.hive.serde2.io.ByteWritable;
 import org.apache.hadoop.hive.serde2.io.ShortWritable;
 import org.apache.hadoop.io.IntWritable;
 import org.apache.hadoop.io.LongWritable;
 
-
+@description(
+    name = "&",
+    value = "a _FUNC_ b - Bitwise and",
+    extended = "Example:\n" +
+        "  > SELECT 3 _FUNC_ 5 FROM src LIMIT 1;\n" +
+        "  1"
+)
 public class UDFOPBitAnd extends UDFBaseBitOP {
 
   private static Log LOG = LogFactory.getLog(UDFOPBitAnd.class.getName());

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitNot.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitNot.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitNot.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitNot.java Fri Aug  7 16:17:01 2009
@@ -21,12 +21,19 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.hive.serde2.io.ByteWritable;
 import org.apache.hadoop.hive.serde2.io.ShortWritable;
 import org.apache.hadoop.io.IntWritable;
 import org.apache.hadoop.io.LongWritable;
 
-
+@description(
+    name = "~",
+    value = "_FUNC_ n - Bitwise not",
+    extended = "Example:\n" +
+        "  > SELECT _FUNC_ 0 FROM src LIMIT 1;\n" +
+        "  -1"
+)
 public class UDFOPBitNot extends UDFBaseBitOP {
 
   private static Log LOG = LogFactory.getLog(UDFOPBitNot.class.getName());

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitOr.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitOr.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitOr.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitOr.java Fri Aug  7 16:17:01 2009
@@ -20,12 +20,19 @@
 
 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.serde2.io.ByteWritable;
 import org.apache.hadoop.hive.serde2.io.ShortWritable;
 import org.apache.hadoop.io.IntWritable;
 import org.apache.hadoop.io.LongWritable;
 
-
+@description(
+    name = "|",
+    value = "a _FUNC_ b - Bitwise or",
+    extended = "Example:\n" +
+        "  > SELECT 3 _FUNC_ 5 FROM src LIMIT 1;\n" +
+        "  7"
+)
 public class UDFOPBitOr extends UDFBaseBitOP {
 
   private static Log LOG = LogFactory.getLog("org.apache.hadoop.hive.ql.udf.UDFOPBitOr");

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitXor.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitXor.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitXor.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitXor.java Fri Aug  7 16:17:01 2009
@@ -21,12 +21,19 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.hive.serde2.io.ByteWritable;
 import org.apache.hadoop.hive.serde2.io.ShortWritable;
 import org.apache.hadoop.io.IntWritable;
 import org.apache.hadoop.io.LongWritable;
 
-
+@description(
+    name = "^",
+    value = "a _FUNC_ b - Bitwise exclusive or",
+    extended = "Example:\n" +
+        "  > SELECT 3 _FUNC_ 5 FROM src LIMIT 1;\n" +
+        "  2"
+)
 public class UDFOPBitXor extends UDFBaseBitOP {
 
   private static Log LOG = LogFactory.getLog(UDFOPBitXor.class.getName());

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPDivide.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPDivide.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPDivide.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPDivide.java Fri Aug  7 16:17:01 2009
@@ -21,6 +21,7 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.hive.serde2.io.ByteWritable;
 import org.apache.hadoop.hive.serde2.io.DoubleWritable;
 import org.apache.hadoop.hive.serde2.io.ShortWritable;
@@ -28,7 +29,13 @@
 import org.apache.hadoop.io.IntWritable;
 import org.apache.hadoop.io.LongWritable;
 
-
+@description(
+    name = "/",
+    value = "a _FUNC_ b - Divide a by b",
+    extended = "Example:\n" +
+        "  > SELECT 10 _FUNC_ 2 FROM src LIMIT 1;\n" +
+        "  5"
+)
 public class UDFOPDivide extends UDFBaseNumericOp {
 
   private static Log LOG = LogFactory.getLog("org.apache.hadoop.hive.ql.udf.UDFOPDivide");

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPEqual.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPEqual.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPEqual.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPEqual.java Fri Aug  7 16:17:01 2009
@@ -20,6 +20,7 @@
 
 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.serde2.io.ByteWritable;
 import org.apache.hadoop.hive.serde2.io.DoubleWritable;
 import org.apache.hadoop.hive.serde2.io.ShortWritable;
@@ -34,6 +35,10 @@
  * better performance; otherwise a single method that takes (Number a, Number b)
  * and use a.doubleValue() == b.doubleValue() is enough.
  */
+@description(
+    name = "=,==",
+    value= "a _FUNC_ b - Returns TRUE if a equals b and false otherwise"
+)
 public class UDFOPEqual extends UDFBaseCompare {
 
   private static Log LOG = LogFactory.getLog(UDFOPEqual.class.getName());

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPEqualOrGreaterThan.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPEqualOrGreaterThan.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPEqualOrGreaterThan.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPEqualOrGreaterThan.java Fri Aug  7 16:17:01 2009
@@ -20,6 +20,7 @@
 
 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.serde2.io.ByteWritable;
 import org.apache.hadoop.hive.serde2.io.DoubleWritable;
 import org.apache.hadoop.hive.serde2.io.ShortWritable;
@@ -29,7 +30,10 @@
 import org.apache.hadoop.io.LongWritable;
 import org.apache.hadoop.io.Text;
 
-
+@description(
+    name = ">=",
+    value = "a _FUNC_ b - Returns TRUE if b is not smaller than a"
+)
 public class UDFOPEqualOrGreaterThan extends UDFBaseCompare {
 
   private static Log LOG = LogFactory.getLog(UDFOPEqualOrGreaterThan.class.getName());

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPEqualOrLessThan.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPEqualOrLessThan.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPEqualOrLessThan.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPEqualOrLessThan.java Fri Aug  7 16:17:01 2009
@@ -20,6 +20,7 @@
 
 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.serde2.io.ByteWritable;
 import org.apache.hadoop.hive.serde2.io.DoubleWritable;
 import org.apache.hadoop.hive.serde2.io.ShortWritable;
@@ -29,7 +30,10 @@
 import org.apache.hadoop.io.LongWritable;
 import org.apache.hadoop.io.Text;
 
-
+@description(
+    name = "<=",
+    value = "a _FUNC_ b - Returns TRUE if b is not greater than a"
+)
 public class UDFOPEqualOrLessThan extends UDFBaseCompare {
 
   private static Log LOG = LogFactory.getLog(UDFOPEqualOrLessThan.class.getName());

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPGreaterThan.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPGreaterThan.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPGreaterThan.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPGreaterThan.java Fri Aug  7 16:17:01 2009
@@ -22,6 +22,7 @@
 
 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.serde2.io.ByteWritable;
 import org.apache.hadoop.hive.serde2.io.DoubleWritable;
 import org.apache.hadoop.hive.serde2.io.ShortWritable;
@@ -31,7 +32,10 @@
 import org.apache.hadoop.io.LongWritable;
 import org.apache.hadoop.io.Text;
 
-
+@description(
+    name = ">",
+    value = "a _FUNC_ b - Returns TRUE if a is greater than b"
+)
 public class UDFOPGreaterThan extends UDFBaseCompare {
 
   private static Log LOG = LogFactory.getLog(UDFOPGreaterThan.class.getName());

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPLessThan.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPLessThan.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPLessThan.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPLessThan.java Fri Aug  7 16:17:01 2009
@@ -22,6 +22,7 @@
 
 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.serde2.io.ByteWritable;
 import org.apache.hadoop.hive.serde2.io.DoubleWritable;
 import org.apache.hadoop.hive.serde2.io.ShortWritable;
@@ -31,7 +32,10 @@
 import org.apache.hadoop.io.LongWritable;
 import org.apache.hadoop.io.Text;
 
-
+@description(
+    name = "<",
+    value = "a _FUNC_ b - Returns TRUE if a is less than b"
+)
 public class UDFOPLessThan extends UDFBaseCompare {
 
   private static Log LOG = LogFactory.getLog(UDFOPLessThan.class.getName());

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMinus.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMinus.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMinus.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMinus.java Fri Aug  7 16:17:01 2009
@@ -20,6 +20,7 @@
 
 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.serde2.io.ByteWritable;
 import org.apache.hadoop.hive.serde2.io.DoubleWritable;
 import org.apache.hadoop.hive.serde2.io.ShortWritable;
@@ -27,7 +28,10 @@
 import org.apache.hadoop.io.IntWritable;
 import org.apache.hadoop.io.LongWritable;
 
-
+@description(
+    name = "-",
+    value = "a _FUNC_ b - Returns the difference a-b"
+)
 public class UDFOPMinus extends UDFBaseNumericOp {
 
   private static Log LOG = LogFactory.getLog("org.apache.hadoop.hive.ql.udf.UDFOPMinus");

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMod.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMod.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMod.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMod.java Fri Aug  7 16:17:01 2009
@@ -20,6 +20,7 @@
 
 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.serde2.io.ByteWritable;
 import org.apache.hadoop.hive.serde2.io.DoubleWritable;
 import org.apache.hadoop.hive.serde2.io.ShortWritable;
@@ -27,7 +28,10 @@
 import org.apache.hadoop.io.IntWritable;
 import org.apache.hadoop.io.LongWritable;
 
-
+@description(
+    name = "%",
+    value = "a _FUNC_ b - Returns the remainder when dividing a by b"
+)
 public class UDFOPMod extends UDFBaseNumericOp {
 
   private static Log LOG = LogFactory.getLog("org.apache.hadoop.hive.ql.udf.UDFOPMod");

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMultiply.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMultiply.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMultiply.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMultiply.java Fri Aug  7 16:17:01 2009
@@ -20,6 +20,7 @@
 
 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.serde2.io.ByteWritable;
 import org.apache.hadoop.hive.serde2.io.DoubleWritable;
 import org.apache.hadoop.hive.serde2.io.ShortWritable;
@@ -27,7 +28,10 @@
 import org.apache.hadoop.io.IntWritable;
 import org.apache.hadoop.io.LongWritable;
 
-
+@description(
+    name = "*",
+    value = "a _FUNC_ b - Multiplies a by b"
+)
 public class UDFOPMultiply extends UDFBaseNumericOp {
 
   private static Log LOG = LogFactory.getLog("org.apache.hadoop.hive.ql.udf.UDFOPMultiply");

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNegative.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNegative.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNegative.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNegative.java Fri Aug  7 16:17:01 2009
@@ -21,6 +21,7 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.hive.serde2.io.ByteWritable;
 import org.apache.hadoop.hive.serde2.io.DoubleWritable;
 import org.apache.hadoop.hive.serde2.io.ShortWritable;
@@ -28,7 +29,10 @@
 import org.apache.hadoop.io.IntWritable;
 import org.apache.hadoop.io.LongWritable;
 
-
+@description(
+    name = "-",
+    value = "_FUNC_ a - Returns -a"
+)
 public class UDFOPNegative extends UDFBaseNumericUnaryOp {
 
   private static Log LOG = LogFactory.getLog(UDFOPNegative.class.getName());

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNot.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNot.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNot.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNot.java Fri Aug  7 16:17:01 2009
@@ -21,9 +21,13 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.io.BooleanWritable;
 
-
+@description(
+    name = "not,!",
+    value = "_FUNC_ a - Logical not"
+)
 public class UDFOPNot extends UDF {
 
   private static Log LOG = LogFactory.getLog("org.apache.hadoop.hive.ql.udf.UDFOPNot");

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNotEqual.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNotEqual.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNotEqual.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNotEqual.java Fri Aug  7 16:17:01 2009
@@ -20,6 +20,7 @@
 
 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.serde2.io.ByteWritable;
 import org.apache.hadoop.hive.serde2.io.DoubleWritable;
 import org.apache.hadoop.hive.serde2.io.ShortWritable;
@@ -29,7 +30,10 @@
 import org.apache.hadoop.io.LongWritable;
 import org.apache.hadoop.io.Text;
 
-
+@description(
+    name = "<>",
+    value = "a _FUNC_ b - Returns TRUE if a is not equal to b"
+)
 public class UDFOPNotEqual extends UDFBaseCompare {
 
   private static Log LOG = LogFactory.getLog(UDFOPNotEqual.class.getName());

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPOr.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPOr.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPOr.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPOr.java Fri Aug  7 16:17:01 2009
@@ -21,9 +21,13 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.io.BooleanWritable;
 
-
+@description(
+    name = "or,||",
+    value = "a _FUNC_ b - Logical or"
+)
 public class UDFOPOr extends UDF {
 
   private static Log LOG = LogFactory.getLog(UDFOPOr.class.getName());

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPPlus.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPPlus.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPPlus.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPPlus.java Fri Aug  7 16:17:01 2009
@@ -20,6 +20,7 @@
 
 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.serde2.io.ByteWritable;
 import org.apache.hadoop.hive.serde2.io.DoubleWritable;
 import org.apache.hadoop.hive.serde2.io.ShortWritable;
@@ -37,6 +38,10 @@
  * The case of int + double will be handled by implicit type casting using 
  * UDFRegistry.implicitConvertable method. 
  */
+@description(
+    name = "+",
+    value = "a _FUNC_ b - Returns a+b"
+)
 public class UDFOPPlus extends UDFBaseNumericOp {
 
   private static Log LOG = LogFactory.getLog("org.apache.hadoop.hive.ql.udf.UDFOPPlus");

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPPositive.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPPositive.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPPositive.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPPositive.java Fri Aug  7 16:17:01 2009
@@ -21,6 +21,7 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 import org.apache.hadoop.hive.serde2.io.ByteWritable;
 import org.apache.hadoop.hive.serde2.io.DoubleWritable;
 import org.apache.hadoop.hive.serde2.io.ShortWritable;
@@ -28,7 +29,10 @@
 import org.apache.hadoop.io.IntWritable;
 import org.apache.hadoop.io.LongWritable;
 
-
+@description(
+    name = "positive",
+    value = "_FUNC_ a - Returns a"
+)
 public class UDFOPPositive extends UDFBaseNumericUnaryOp {
 
   private static Log LOG = LogFactory.getLog(UDFOPPositive.class.getName());

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFParseUrl.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFParseUrl.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFParseUrl.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFParseUrl.java Fri Aug  7 16:17:01 2009
@@ -25,6 +25,7 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.description;
 
 
 
@@ -43,6 +44,22 @@
  * HOST,PATH,QUERY,REF,PROTOCOL,AUTHORITY,FILE,USERINFO Also you can get a value
  * of particular key in QUERY, using syntax QUERY:<KEY_NAME> eg: QUERY:k1.
  */
+@description(
+    name = "parse_url",
+    value = "_FUNC_(url, partToExtract[, key]) - extracts a part from a URL",
+    extended = "Parts: HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, " +
+    		"USERINFO\nkey specifies which query to extract\n" +
+        "Example:\n" +
+        "  > SELECT _FUNC_('http://facebook.com/path/p1.php?query=1', " +
+        "'HOST') FROM src LIMIT 1;\n" +
+        "  'facebook.com'\n" +
+        "  > SELECT _FUNC_('http://facebook.com/path/p1.php?query=1', " +
+        "'QUERY') FROM src LIMIT 1;\n" +
+        "  'query=1'\n" +
+        "  > SELECT _FUNC_('http://facebook.com/path/p1.php?query=1', " +
+        "'QUERY', 'query') FROM src LIMIT 1;\n" +
+        "  '1'"
+    )
 public class UDFParseUrl extends UDF {
   private static Log LOG = LogFactory.getLog(UDFParseUrl.class.getName());
 

Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFPosMod.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFPosMod.java?rev=802066&r1=802065&r2=802066&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFPosMod.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFPosMod.java Fri Aug  7 16:17:01 2009
@@ -20,6 +20,7 @@
 
 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.serde2.io.ByteWritable;
 import org.apache.hadoop.hive.serde2.io.DoubleWritable;
 import org.apache.hadoop.hive.serde2.io.ShortWritable;
@@ -34,6 +35,10 @@
  * @ See {@link org.apache.hadoop.hive.ql.udf.UDFOPMod}
  * @ See {@link org.apache.hadoop.hive.ql.exec.FunctionRegistry}
  */
+@description(
+    name = "pmod",
+    value = "a _FUNC_ b - Compute the positive modulo"
+)
 public class UDFPosMod extends UDFBaseNumericOp {
 
   private static Log LOG = LogFactory.getLog("org.apache.hadoop.hive.ql.udf.UDFPosMod");