Index: ivy/libraries.properties =================================================================== --- ivy/libraries.properties (revision 1416460) +++ ivy/libraries.properties (working copy) @@ -20,8 +20,8 @@ apacheant.version=1.7.1 ant-contrib.version=1.0b3 ant-task.version=2.0.10 -antlr.version=3.0.1 -antlr-runtime.version=3.0.1 +antlr.version=3.4 +antlr-runtime.version=3.4 asm.version=3.1 avro.version=1.5.3 datanucleus-connectionpool.version=2.0.3 Index: ql/src/java/org/apache/hadoop/hive/ql/parse/ASTErrorNode.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/parse/ASTErrorNode.java (revision 0) +++ ql/src/java/org/apache/hadoop/hive/ql/parse/ASTErrorNode.java (revision 0) @@ -0,0 +1,31 @@ +package org.apache.hadoop.hive.ql.parse; + +import org.antlr.runtime.RecognitionException; +import org.antlr.runtime.Token; +import org.antlr.runtime.TokenStream; +import org.antlr.runtime.tree.CommonErrorNode; + +public class ASTErrorNode extends ASTNode { + + /** + * + */ + private static final long serialVersionUID = 1L; + CommonErrorNode delegate; + + public ASTErrorNode(TokenStream input, Token start, Token stop, + RecognitionException e){ + delegate = new CommonErrorNode(input,start,stop,e); + } + + @Override + public boolean isNil() { return delegate.isNil(); } + + @Override + public int getType() { return delegate.getType(); } + + @Override + public String getText() { return delegate.getText(); } + @Override + public String toString() { return delegate.toString(); } +} Index: ql/src/java/org/apache/hadoop/hive/ql/parse/ParseDriver.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/parse/ParseDriver.java (revision 1416460) +++ ql/src/java/org/apache/hadoop/hive/ql/parse/ParseDriver.java (working copy) @@ -33,6 +33,7 @@ import org.antlr.runtime.Token; import org.antlr.runtime.TokenRewriteStream; import org.antlr.runtime.TokenStream; +import org.antlr.runtime.tree.CommonTree; import org.antlr.runtime.tree.CommonTreeAdaptor; import org.antlr.runtime.tree.TreeAdaptor; import org.apache.commons.logging.Log; @@ -309,14 +310,7 @@ } @Override - protected void mismatch(IntStream input, int ttype, BitSet follow) - throws RecognitionException { - - throw new MismatchedTokenException(ttype, input); - } - - @Override - public void recoverFromMismatchedSet(IntStream input, + public Object recoverFromMismatchedSet(IntStream input, RecognitionException re, BitSet follow) throws RecognitionException { throw re; } @@ -403,6 +397,17 @@ public Object create(Token payload) { return new ASTNode(payload); } + + @Override + public Object dupNode(Object t) { + + return create(((CommonTree)t).token); + }; + + @Override + public Object errorNode(TokenStream input, Token start, Token stop, RecognitionException e) { + return new ASTErrorNode(input, start, stop, e); + }; }; public ASTNode parse(String command) throws ParseException { @@ -448,6 +453,9 @@ throw new ParseException(parser.getErrors()); } + System.err.println("Common Tree " + ((ASTNode)r.getTree()).toString()); + System.err.println("AST Node dump " + ((ASTNode)r.getTree()).dump()); + System.err.println("Common Tree Str Tree " + ((ASTNode)r.getTree()).toStringTree()); return (ASTNode) r.getTree(); } } Index: ql/src/java/org/apache/hadoop/hive/ql/parse/ASTNode.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/parse/ASTNode.java (revision 1416460) +++ ql/src/java/org/apache/hadoop/hive/ql/parse/ASTNode.java (working copy) @@ -23,6 +23,7 @@ import org.antlr.runtime.Token; import org.antlr.runtime.tree.CommonTree; +import org.antlr.runtime.tree.Tree; import org.apache.hadoop.hive.ql.lib.Node; /** @@ -36,6 +37,10 @@ public ASTNode() { } + public ASTNode(ASTNode copy){ + super(copy); + } + /** * Constructor. * @@ -51,6 +56,7 @@ * * @see org.apache.hadoop.hive.ql.lib.Node#getChildren() */ + @Override public ArrayList getChildren() { if (super.getChildCount() == 0) { return null; @@ -89,6 +95,12 @@ this.origin = origin; } + @Override + public Tree dupNode() { + + return new ASTNode(this); + } + public String dump() { StringBuilder sb = new StringBuilder(); Index: ql/src/java/org/apache/hadoop/hive/ql/parse/Hive.g =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/parse/Hive.g (revision 1416460) +++ ql/src/java/org/apache/hadoop/hive/ql/parse/Hive.g (working copy) @@ -1429,7 +1429,7 @@ : KW_INSERT KW_OVERWRITE destination ifNotExists? -> ^(TOK_DESTINATION destination ifNotExists?) | KW_INSERT KW_INTO KW_TABLE tableOrPartition - -> ^(TOK_INSERT_INTO ^(tableOrPartition)) + -> ^(TOK_INSERT_INTO tableOrPartition) ; destination @@ -1438,7 +1438,8 @@ : KW_LOCAL KW_DIRECTORY StringLiteral -> ^(TOK_LOCAL_DIR StringLiteral) | KW_DIRECTORY StringLiteral -> ^(TOK_DIR StringLiteral) - | KW_TABLE tableOrPartition -> ^(tableOrPartition) + | KW_TABLE tableOrPartition + -> tableOrPartition ; limitClause