Hello, there.
I found that running hive with sql file caused error messages because of
comments.
For example, me and data analysts in my company think these sql file is make
sense.
~/Desktop/projecs/hive/hive-trunk/build/dist$ cat q.sql
-- hello
-- hello ;
set;
-- hello again
-- hello again;
but, hive think it doesn't.
When I run the sql file using "hive -f q.sql", then hive complains like
this:
FAILED: Parse Error: line 0:-1 cannot recognize input '<EOF>'
Analyst people confused that this was caused by their SQLs or just comments.
So, I had to apply quick-fix to hive source.
~/Desktop/projecs/hive/hive-trunk$ svn diff
Index: cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java
===================================================================
--- cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java (revision
1050978)
+++ cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java (working copy)
@@ -245,11 +245,14 @@
StringBuilder qsb = new StringBuilder();
while ((line = r.readLine()) != null) {
- qsb.append(line + "\n");
+ qsb.append(removeComment(line) + "\n");
}
return (processLine(qsb.toString()));
}
+ private String removeComment(String line) {
+ return line.replaceFirst("--.+$","").trim();
+ }
public int processFile(String fileName) throws IOException {
FileReader fileReader = null;
And, there are no more error messages related to comments.
I know this temporary quick-fix doesn't solve the root of trouble, but I
hope this can be useful to other people until the problem is sovled
correctly.
btw, I just wonder I have to bring up an issue to hive-jira about this
problem or just ask other people in here to make the issue. If someone can
do that, then please make a issue or tell me that this is a too small issue
to raise issue in jira.
Thanks.
iryoung.