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