You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by nz...@apache.org on 2011/09/14 17:06:27 UTC

svn commit: r1170672 - in /hive/trunk/ql/src: java/org/apache/hadoop/hive/ql/parse/ErrorMsg.java java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java test/queries/clientnegative/orderby_function.q test/results/clientnegative/orderby_function.q.out

Author: nzhang
Date: Wed Sep 14 15:06:26 2011
New Revision: 1170672

URL: http://svn.apache.org/viewvc?rev=1170672&view=rev
Log:
HIVE-2145. NPE during parsing order-by expression (Chinna Rao Lalam via Ning Zhang)

Added:
    hive/trunk/ql/src/test/queries/clientnegative/orderby_function.q
    hive/trunk/ql/src/test/results/clientnegative/orderby_function.q.out
Modified:
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/ErrorMsg.java
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/ErrorMsg.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/ErrorMsg.java?rev=1170672&r1=1170671&r2=1170672&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/ErrorMsg.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/ErrorMsg.java Wed Sep 14 15:06:26 2011
@@ -186,6 +186,7 @@ public enum ErrorMsg {
   NO_COMPARE_BIGINT_DOUBLE("In strict mode, comparing bigints and doubles is not allowed, "
       + "it may result in a loss of precision. "
       + "If you really want to perform the operation, set hive.mapred.mode=nonstrict"),
+      FUNCTIONS_ARE_NOT_SUPPORTED_IN_ORDER_BY("functions are not supported in order by"),
       ;
 
   private String mesg;

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java?rev=1170672&r1=1170671&r2=1170672&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java Wed Sep 14 15:06:26 2011
@@ -4524,6 +4524,9 @@ public class SemanticAnalyzer extends Ba
           // ClusterBy
           order.append("+");
         }
+        if (cl.getType() == HiveParser.TOK_FUNCTION) {
+          throw new SemanticException(ErrorMsg.FUNCTIONS_ARE_NOT_SUPPORTED_IN_ORDER_BY.getMsg());
+        }
         ExprNodeDesc exprNode = genExprNodeDesc(cl, inputRR);
         sortCols.add(exprNode);
       }

Added: hive/trunk/ql/src/test/queries/clientnegative/orderby_function.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientnegative/orderby_function.q?rev=1170672&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientnegative/orderby_function.q (added)
+++ hive/trunk/ql/src/test/queries/clientnegative/orderby_function.q Wed Sep 14 15:06:26 2011
@@ -0,0 +1 @@
+select src.key FROM src ORDER BY count(1) limit 1;

Added: hive/trunk/ql/src/test/results/clientnegative/orderby_function.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientnegative/orderby_function.q.out?rev=1170672&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientnegative/orderby_function.q.out (added)
+++ hive/trunk/ql/src/test/results/clientnegative/orderby_function.q.out Wed Sep 14 15:06:26 2011
@@ -0,0 +1 @@
+FAILED: Error in semantic analysis: functions are not supported in order by