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 2011/02/23 17:01:01 UTC

svn commit: r1073798 - in /hive/trunk/ql/src: java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java test/queries/clientpositive/join_casesensitive.q test/results/clientpositive/join_casesensitive.q.out

Author: namit
Date: Wed Feb 23 16:01:00 2011
New Revision: 1073798

URL: http://svn.apache.org/viewvc?rev=1073798&view=rev
Log:
HIVE-1973 Getting error when join on tables where name of table has
uppercase letters (Chinna Rao Lalam via namit)


Added:
    hive/trunk/ql/src/test/queries/clientpositive/join_casesensitive.q
    hive/trunk/ql/src/test/results/clientpositive/join_casesensitive.q.out
Modified:
    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/SemanticAnalyzer.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java?rev=1073798&r1=1073797&r2=1073798&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 Feb 23 16:01:00 2011
@@ -962,7 +962,7 @@ public class SemanticAnalyzer extends Ba
 
   private boolean isPresent(String[] list, String elem) {
     for (String s : list) {
-      if (s.equals(elem)) {
+      if (s.toLowerCase().equals(elem)) {
         return true;
       }
     }
@@ -4518,7 +4518,7 @@ public class SemanticAnalyzer extends Ba
     int pos = 0;
     for (String src : joinTree.getBaseSrc()) {
       if (src != null) {
-        Operator srcOp = map.get(src);
+        Operator srcOp = map.get(src.toLowerCase());
 
         // for left-semi join, generate an additional selection & group-by
         // operator before ReduceSink

Added: hive/trunk/ql/src/test/queries/clientpositive/join_casesensitive.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/join_casesensitive.q?rev=1073798&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/join_casesensitive.q (added)
+++ hive/trunk/ql/src/test/queries/clientpositive/join_casesensitive.q Wed Feb 23 16:01:00 2011
@@ -0,0 +1,8 @@
+
+CREATE TABLE joinone(key1 int, key2 int, value int);
+LOAD DATA LOCAL INPATH '../data/files/in5.txt' INTO TABLE joinone;
+
+CREATE TABLE joinTwo(key1 int, key2 int, value int);
+LOAD DATA LOCAL INPATH '../data/files/in6.txt' INTO TABLE joinTwo;
+
+SELECT * FROM joinone JOIN joinTwo ON(joinone.key2=joinTwo.key2);

Added: hive/trunk/ql/src/test/results/clientpositive/join_casesensitive.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/join_casesensitive.q.out?rev=1073798&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/join_casesensitive.q.out (added)
+++ hive/trunk/ql/src/test/results/clientpositive/join_casesensitive.q.out Wed Feb 23 16:01:00 2011
@@ -0,0 +1,115 @@
+PREHOOK: query: CREATE TABLE joinone(key1 int, key2 int, value int)
+PREHOOK: type: CREATETABLE
+POSTHOOK: query: CREATE TABLE joinone(key1 int, key2 int, value int)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: default@joinone
+PREHOOK: query: LOAD DATA LOCAL INPATH '../data/files/in5.txt' INTO TABLE joinone
+PREHOOK: type: LOAD
+POSTHOOK: query: LOAD DATA LOCAL INPATH '../data/files/in5.txt' INTO TABLE joinone
+POSTHOOK: type: LOAD
+POSTHOOK: Output: default@joinone
+PREHOOK: query: CREATE TABLE joinTwo(key1 int, key2 int, value int)
+PREHOOK: type: CREATETABLE
+POSTHOOK: query: CREATE TABLE joinTwo(key1 int, key2 int, value int)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: default@joinTwo
+PREHOOK: query: LOAD DATA LOCAL INPATH '../data/files/in6.txt' INTO TABLE joinTwo
+PREHOOK: type: LOAD
+POSTHOOK: query: LOAD DATA LOCAL INPATH '../data/files/in6.txt' INTO TABLE joinTwo
+POSTHOOK: type: LOAD
+POSTHOOK: Output: default@jointwo
+PREHOOK: query: SELECT * FROM joinone JOIN joinTwo ON(joinone.key2=joinTwo.key2)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@joinone
+PREHOOK: Input: default@jointwo
+PREHOOK: Output: file:/tmp/root/hive_2011-02-22_06-34-20_426_5844000716324948890/-mr-10000
+POSTHOOK: query: SELECT * FROM joinone JOIN joinTwo ON(joinone.key2=joinTwo.key2)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@joinone
+POSTHOOK: Input: default@jointwo
+POSTHOOK: Output: file:/tmp/root/hive_2011-02-22_06-34-20_426_5844000716324948890/-mr-10000
+5	10005	66	5	10005	66
+20	10020	66	20	10020	66
+25	10025	88	25	10025	66
+30	10030	66	30	10030	88
+35	10035	88	35	10035	88
+80	10040	88	80	10040	66
+80	10040	88	80	10040	66
+80	10040	88	40	10040	66
+80	10040	88	40	10040	88
+80	10040	88	60	10040	66
+80	10040	88	60	10040	66
+80	10040	88	70	10040	88
+80	10040	88	70	10040	88
+80	10040	88	80	10040	66
+80	10040	88	80	10040	66
+80	10040	88	40	10040	66
+80	10040	88	40	10040	88
+80	10040	88	60	10040	66
+80	10040	88	60	10040	66
+80	10040	88	70	10040	88
+80	10040	88	70	10040	88
+40	10040	66	80	10040	66
+40	10040	66	80	10040	66
+40	10040	66	40	10040	66
+40	10040	66	40	10040	88
+40	10040	66	60	10040	66
+40	10040	66	60	10040	66
+40	10040	66	70	10040	88
+40	10040	66	70	10040	88
+40	10040	88	80	10040	66
+40	10040	88	80	10040	66
+40	10040	88	40	10040	66
+40	10040	88	40	10040	88
+40	10040	88	60	10040	66
+40	10040	88	60	10040	66
+40	10040	88	70	10040	88
+40	10040	88	70	10040	88
+60	10040	66	80	10040	66
+60	10040	66	80	10040	66
+60	10040	66	40	10040	66
+60	10040	66	40	10040	88
+60	10040	66	60	10040	66
+60	10040	66	60	10040	66
+60	10040	66	70	10040	88
+60	10040	66	70	10040	88
+60	10040	66	80	10040	66
+60	10040	66	80	10040	66
+60	10040	66	40	10040	66
+60	10040	66	40	10040	88
+60	10040	66	60	10040	66
+60	10040	66	60	10040	66
+60	10040	66	70	10040	88
+60	10040	66	70	10040	88
+70	10040	66	80	10040	66
+70	10040	66	80	10040	66
+70	10040	66	40	10040	66
+70	10040	66	40	10040	88
+70	10040	66	60	10040	66
+70	10040	66	60	10040	66
+70	10040	66	70	10040	88
+70	10040	66	70	10040	88
+70	10040	66	80	10040	66
+70	10040	66	80	10040	66
+70	10040	66	40	10040	66
+70	10040	66	40	10040	88
+70	10040	66	60	10040	66
+70	10040	66	60	10040	66
+70	10040	66	70	10040	88
+70	10040	66	70	10040	88
+50	10050	88	50	10050	66
+50	10050	88	50	10050	66
+50	10050	88	NULL	10050	66
+50	10050	88	50	10050	88
+50	10050	88	50	10050	66
+50	10050	88	50	10050	66
+50	10050	88	NULL	10050	66
+50	10050	88	50	10050	88
+NULL	10050	66	50	10050	66
+NULL	10050	66	50	10050	66
+NULL	10050	66	NULL	10050	66
+NULL	10050	66	50	10050	88
+50	10050	66	50	10050	66
+50	10050	66	50	10050	66
+50	10050	66	NULL	10050	66
+50	10050	66	50	10050	88