You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2016/01/10 18:06:17 UTC

[1/2] hive git commit: HIVE-12590 : Repeated UDAFs with literals can produce incorrect result (Ashutosh Chauhan via John Pullokkaran)

Repository: hive
Updated Branches:
  refs/heads/branch-2.0 a9ae63bd0 -> 548585652
  refs/heads/master 114674b8d -> 3782e47cb


HIVE-12590 : Repeated UDAFs with literals can produce incorrect result (Ashutosh Chauhan via John Pullokkaran)

Signed-off-by: Ashutosh Chauhan <ha...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/3782e47c
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/3782e47c
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/3782e47c

Branch: refs/heads/master
Commit: 3782e47cb755f1b395e052611206d29b2f2e221b
Parents: 114674b
Author: Ashutosh Chauhan <ha...@apache.org>
Authored: Wed Dec 16 21:00:21 2015 -0800
Committer: Ashutosh Chauhan <ha...@apache.org>
Committed: Sun Jan 10 08:57:43 2016 -0800

----------------------------------------------------------------------
 .../apache/hadoop/hive/ql/parse/ASTNode.java    |  27 +-
 .../hadoop/hive/ql/parse/CalcitePlanner.java    |   2 +-
 .../hadoop/hive/ql/parse/RowResolver.java       |   4 +-
 .../hadoop/hive/ql/parse/SemanticAnalyzer.java  |  16 +-
 .../hive/ql/parse/TypeCheckProcFactory.java     |   4 +-
 .../apache/hadoop/hive/ql/parse/TestIUD.java    | 254 +++++++++----------
 .../hadoop/hive/ql/parse/TestQBSubQuery.java    |  66 +++--
 .../TestSQL11ReservedKeyWordsPositive.java      | 152 +++++------
 .../positive/TestTransactionStatement.java      |  31 ++-
 .../clientpositive/groupby_duplicate_key.q      |   4 +
 .../join_cond_unqual_ambiguous_vc.q.out         |   2 +-
 .../clientpositive/case_sensitivity.q.out       |   2 +-
 .../results/clientpositive/constant_prop.q.out  |   2 +-
 .../clientpositive/groupby_duplicate_key.q.out  |  71 ++++++
 14 files changed, 356 insertions(+), 281 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/3782e47c/ql/src/java/org/apache/hadoop/hive/ql/parse/ASTNode.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/ASTNode.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/ASTNode.java
index b96e2eb..8400ee8 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/ASTNode.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/ASTNode.java
@@ -32,7 +32,7 @@ import org.apache.hadoop.hive.ql.lib.Node;
  */
 public class ASTNode extends CommonTree implements Node,Serializable {
   private static final long serialVersionUID = 1L;
-  private transient StringBuffer astStr;
+  private transient StringBuilder astStr;
   private transient ASTNodeOrigin origin;
   private transient int startIndx = -1;
   private transient int endIndx = -1;
@@ -133,10 +133,11 @@ public class ASTNode extends CommonTree implements Node,Serializable {
     return sb;
   }
 
-  private ASTNode getRootNodeWithValidASTStr (boolean useMemoizedRoot) {
-    if (useMemoizedRoot && rootNode != null && rootNode.parent == null &&
+  private void getRootNodeWithValidASTStr () {
+
+    if (rootNode != null && rootNode.parent == null &&
         rootNode.hasValidMemoizedString()) {
-      return rootNode;
+      return;
     }
     ASTNode retNode = this;
     while (retNode.parent != null) {
@@ -144,11 +145,11 @@ public class ASTNode extends CommonTree implements Node,Serializable {
     }
     rootNode=retNode;
     if (!rootNode.isValidASTStr) {
-      rootNode.astStr = new StringBuffer();
+      rootNode.astStr = new StringBuilder();
       rootNode.toStringTree(rootNode);
       rootNode.isValidASTStr = true;
     }
-    return retNode;
+    return;
   }
 
   private boolean hasValidMemoizedString() {
@@ -174,7 +175,7 @@ public class ASTNode extends CommonTree implements Node,Serializable {
 
   private void addtoMemoizedString(String string) {
     if (astStr == null) {
-      astStr = new StringBuffer();
+      astStr = new StringBuilder();
     }
     astStr.append(string);
   }
@@ -227,7 +228,7 @@ public class ASTNode extends CommonTree implements Node,Serializable {
 
     // The root might have changed because of tree modifications.
     // Compute the new root for this tree and set the astStr.
-    getRootNodeWithValidASTStr(true);
+    getRootNodeWithValidASTStr();
 
     // If rootNotModified is false, then startIndx and endIndx will be stale.
     if (startIndx >= 0 && endIndx <= rootNode.getMemoizedStringLen()) {
@@ -240,14 +241,18 @@ public class ASTNode extends CommonTree implements Node,Serializable {
     this.rootNode = rootNode;
     startIndx = rootNode.getMemoizedStringLen();
     // Leaf node
+    String str;
     if ( children==null || children.size()==0 ) {
-      rootNode.addtoMemoizedString(this.toString());
+      str = this.toString();
+      rootNode.addtoMemoizedString(this.getType() != HiveParser.StringLiteral ? str.toLowerCase() : str);
       endIndx =  rootNode.getMemoizedStringLen();
-      return this.toString();
+      return this.getType() != HiveParser.StringLiteral ? str.toLowerCase() : str;
     }
+
     if ( !isNil() ) {
       rootNode.addtoMemoizedString("(");
-      rootNode.addtoMemoizedString(this.toString());
+      str = this.toString();
+      rootNode.addtoMemoizedString((this.getType() == HiveParser.StringLiteral || null == str) ? str :  str.toLowerCase());
       rootNode.addtoMemoizedString(" ");
     }
     for (int i = 0; children!=null && i < children.size(); i++) {

http://git-wip-us.apache.org/repos/asf/hive/blob/3782e47c/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
index 63bf8f2..f50f4d3 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
@@ -1620,7 +1620,7 @@ public class CalcitePlanner extends SemanticAnalyzer {
           VirtualColumn vc = vcs.next();
           colInfo = new ColumnInfo(vc.getName(), vc.getTypeInfo(), tableAlias, true,
               vc.getIsHidden());
-          rr.put(tableAlias, vc.getName(), colInfo);
+          rr.put(tableAlias, vc.getName().toLowerCase(), colInfo);
           cInfoLst.add(colInfo);
           virtualCols.add(vc);
         }

http://git-wip-us.apache.org/repos/asf/hive/blob/3782e47c/ql/src/java/org/apache/hadoop/hive/ql/parse/RowResolver.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/RowResolver.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/RowResolver.java
index 891b1f7..0bd036f 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/RowResolver.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/RowResolver.java
@@ -112,7 +112,6 @@ public class RowResolver implements Serializable{
     if (tab_alias != null) {
       tab_alias = tab_alias.toLowerCase();
     }
-    col_alias = col_alias.toLowerCase();
 
     /*
      * allow multiple mappings to the same ColumnInfo.
@@ -169,7 +168,6 @@ public class RowResolver implements Serializable{
    * @throws SemanticException
    */
   public ColumnInfo get(String tab_alias, String col_alias) throws SemanticException {
-    col_alias = col_alias.toLowerCase();
     ColumnInfo ret = null;
 
     if (tab_alias != null) {
@@ -476,4 +474,4 @@ public class RowResolver implements Serializable{
     resolver.isExprResolver = isExprResolver;
     return resolver;
   }
-}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/hive/blob/3782e47c/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
index e1278d5..8efd467 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
@@ -542,7 +542,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
           if(containsLeadLagUDF(expressionTree)) {
             throw new SemanticException(ErrorMsg.MISSING_OVER_CLAUSE.getMsg(functionName));
           }
-          aggregations.put(expressionTree.toStringTree().toLowerCase(), expressionTree);
+          aggregations.put(expressionTree.toStringTree(), expressionTree);
           FunctionInfo fi = FunctionRegistry.getFunctionInfo(functionName);
           if (!fi.isNative()) {
             unparseTranslator.addIdentifierTranslation((ASTNode) expressionTree
@@ -3530,7 +3530,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
         (selExpr.getChildCount() == 3 &&
         selExpr.getChild(2).getType() == HiveParser.TOK_WINDOWSPEC)) {
       // return zz for "xx + yy AS zz"
-      colAlias = unescapeIdentifier(selExpr.getChild(1).getText());
+      colAlias = unescapeIdentifier(selExpr.getChild(1).getText().toLowerCase());
       colRef[0] = tabAlias;
       colRef[1] = colAlias;
       return colRef;
@@ -3539,7 +3539,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
     ASTNode root = (ASTNode) selExpr.getChild(0);
     if (root.getType() == HiveParser.TOK_TABLE_OR_COL) {
       colAlias =
-          BaseSemanticAnalyzer.unescapeIdentifier(root.getChild(0).getText());
+          BaseSemanticAnalyzer.unescapeIdentifier(root.getChild(0).getText().toLowerCase());
       colRef[0] = tabAlias;
       colRef[1] = colAlias;
       return colRef;
@@ -3557,7 +3557,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
       // Return zz for "xx.zz" and "xx.yy.zz"
       ASTNode col = (ASTNode) root.getChild(1);
       if (col.getType() == HiveParser.Identifier) {
-        colAlias = unescapeIdentifier(col.getText());
+        colAlias = unescapeIdentifier(col.getText().toLowerCase());
       }
     }
 
@@ -3567,7 +3567,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
       String expr_flattened = root.toStringTree();
 
       // remove all TOK tokens
-      String expr_no_tok = expr_flattened.replaceAll("TOK_\\S+", "");
+      String expr_no_tok = expr_flattened.replaceAll("tok_\\S+", "");
 
       // remove all non alphanumeric letters, replace whitespace spans with underscore
       String expr_formatted = expr_no_tok.replaceAll("\\W", " ").trim().replaceAll("\\s+", "_");
@@ -3705,7 +3705,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
         ASTNode selExprChild = (ASTNode) selExpr.getChild(i);
         switch (selExprChild.getType()) {
         case HiveParser.Identifier:
-          udtfColAliases.add(unescapeIdentifier(selExprChild.getText()));
+          udtfColAliases.add(unescapeIdentifier(selExprChild.getText().toLowerCase()));
           unparseTranslator.addIdentifierTranslation(selExprChild);
           break;
         case HiveParser.TOK_TABALIAS:
@@ -5381,7 +5381,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
       if (!groupingSets.isEmpty()) {
         throw new SemanticException(ErrorMsg.HIVE_GROUPING_SETS_AGGR_NOMAPAGGR_MULTIGBY.getMsg());
       }
-      
+
       ASTNode whereExpr = parseInfo.getWhrForClause(dest);
 
       if (whereExpr != null) {
@@ -9317,7 +9317,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
       List<VirtualColumn> vcList = new ArrayList<VirtualColumn>();
       while (vcs.hasNext()) {
         VirtualColumn vc = vcs.next();
-        rwsch.put(alias, vc.getName(), new ColumnInfo(vc.getName(),
+        rwsch.put(alias, vc.getName().toLowerCase(), new ColumnInfo(vc.getName(),
             vc.getTypeInfo(), alias, true, vc.getIsHidden()));
         vcList.add(vc);
       }

http://git-wip-us.apache.org/repos/asf/hive/blob/3782e47c/ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java
index 9d8b352..598520c 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java
@@ -378,7 +378,7 @@ public class TypeCheckProcFactory {
       default:
         // HiveParser.identifier | HiveParse.KW_IF | HiveParse.KW_LEFT |
         // HiveParse.KW_RIGHT
-        str = BaseSemanticAnalyzer.unescapeIdentifier(expr.getText());
+        str = BaseSemanticAnalyzer.unescapeIdentifier(expr.getText().toLowerCase());
         break;
       }
       return new ExprNodeConstantDesc(TypeInfoFactory.stringTypeInfo, str);
@@ -818,7 +818,7 @@ public class TypeCheckProcFactory {
           ((SettableUDF)genericUDF).setTypeInfo(typeInfo);
         }
       }
-      
+
       List<ExprNodeDesc> childrenList = new ArrayList<ExprNodeDesc>(children.length);
 
       childrenList.addAll(Arrays.asList(children));

http://git-wip-us.apache.org/repos/asf/hive/blob/3782e47c/ql/src/test/org/apache/hadoop/hive/ql/parse/TestIUD.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestIUD.java b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestIUD.java
index 9d4457c..3d2e648 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestIUD.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestIUD.java
@@ -55,100 +55,100 @@ public class TestIUD {
     }
     return (ASTNode) nd.getChild(0);
   }
-  
+
   @Test
   public void testDeleteNoWhere() throws ParseException {
     ASTNode ast = parse("DELETE FROM src");
-    Assert.assertEquals("AST doesn't match", 
-      "(TOK_DELETE_FROM " +
-        "(TOK_TABNAME src))", ast.toStringTree());
+    Assert.assertEquals("AST doesn't match",
+      "(tok_delete_from " +
+        "(tok_tabname src))", ast.toStringTree());
   }
   @Test
   public void testDeleteWithWhere() throws ParseException {
     ASTNode ast = parse("DELETE FROM src WHERE key IS NOT NULL AND src.value < 0");
-    Assert.assertEquals("AST doesn't match", 
-      "(TOK_DELETE_FROM " +
-        "(TOK_TABNAME src) " +
-        "(TOK_WHERE " +
-          "(AND " +
-            "(TOK_FUNCTION TOK_ISNOTNULL (TOK_TABLE_OR_COL key)) " +
-            "(< (. (TOK_TABLE_OR_COL src) value) 0))))",
+    Assert.assertEquals("AST doesn't match",
+      "(tok_delete_from " +
+        "(tok_tabname src) " +
+        "(tok_where " +
+          "(and " +
+            "(tok_function tok_isnotnull (tok_table_or_col key)) " +
+            "(< (. (tok_table_or_col src) value) 0))))",
       ast.toStringTree());
   }
   @Test
   public void testUpdateNoWhereSingleSet() throws ParseException {
     ASTNode ast = parse("UPDATE src set key = 3");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_UPDATE_TABLE " +
-        "(TOK_TABNAME src) " +
-        "(TOK_SET_COLUMNS_CLAUSE " +
+      "(tok_update_table " +
+        "(tok_tabname src) " +
+        "(tok_set_columns_clause " +
           "(= " +
-            "(TOK_TABLE_OR_COL key) 3)))",
+            "(tok_table_or_col key) 3)))",
       ast.toStringTree());
   }
   @Test
   public void testUpdateNoWhereMultiSet() throws ParseException {
     ASTNode ast = parse("UPDATE src set key = 3, value = 8");
-    Assert.assertEquals("AST doesn't match", 
-      "(TOK_UPDATE_TABLE " +
-        "(TOK_TABNAME src) " +
-        "(TOK_SET_COLUMNS_CLAUSE " +
+    Assert.assertEquals("AST doesn't match",
+      "(tok_update_table " +
+        "(tok_tabname src) " +
+        "(tok_set_columns_clause " +
           "(= " +
-            "(TOK_TABLE_OR_COL key) 3) " +
+            "(tok_table_or_col key) 3) " +
           "(= " +
-            "(TOK_TABLE_OR_COL value) 8)))",
+            "(tok_table_or_col value) 8)))",
       ast.toStringTree());
   }
   @Test
   public void testUpdateWithWhereSingleSet() throws ParseException {
     ASTNode ast = parse("UPDATE src SET key = 3 WHERE value IS NULL");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_UPDATE_TABLE " +
-        "(TOK_TABNAME src) " +
-        "(TOK_SET_COLUMNS_CLAUSE " +
+      "(tok_update_table " +
+        "(tok_tabname src) " +
+        "(tok_set_columns_clause " +
           "(= " +
-            "(TOK_TABLE_OR_COL key) 3)) " +
-        "(TOK_WHERE (TOK_FUNCTION TOK_ISNULL (TOK_TABLE_OR_COL value))))",
+            "(tok_table_or_col key) 3)) " +
+        "(tok_where (tok_function tok_isnull (tok_table_or_col value))))",
       ast.toStringTree());
   }
   @Test
   public void testUpdateWithWhereSingleSetExpr() throws ParseException {
     ASTNode ast = parse("UPDATE src SET key = -3+(5*9)%8, val = cast(6.1 + c as INT), d = d - 1 WHERE value IS NULL");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_UPDATE_TABLE (TOK_TABNAME src) " +
-        "(TOK_SET_COLUMNS_CLAUSE " +
-        "(= (TOK_TABLE_OR_COL key) (+ (- 3) (% (* 5 9) 8))) " +
-        "(= (TOK_TABLE_OR_COL val) (TOK_FUNCTION TOK_INT (+ 6.1 (TOK_TABLE_OR_COL c)))) " +
-        "(= (TOK_TABLE_OR_COL d) (- (TOK_TABLE_OR_COL d) 1))) " +
-        "(TOK_WHERE (TOK_FUNCTION TOK_ISNULL (TOK_TABLE_OR_COL value))))",
+      "(tok_update_table (tok_tabname src) " +
+        "(tok_set_columns_clause " +
+        "(= (tok_table_or_col key) (+ (- 3) (% (* 5 9) 8))) " +
+        "(= (tok_table_or_col val) (tok_function tok_int (+ 6.1 (tok_table_or_col c)))) " +
+        "(= (tok_table_or_col d) (- (tok_table_or_col d) 1))) " +
+        "(tok_where (tok_function tok_isnull (tok_table_or_col value))))",
       ast.toStringTree());
   }
   @Test
   public void testUpdateWithWhereMultiSet() throws ParseException {
     ASTNode ast = parse("UPDATE src SET key = 3, value = 8 WHERE VALUE = 1230997");
-    Assert.assertEquals("AST doesn't match", 
-      "(TOK_UPDATE_TABLE " +
-        "(TOK_TABNAME src) " +
-        "(TOK_SET_COLUMNS_CLAUSE " +
+    Assert.assertEquals("AST doesn't match",
+      "(tok_update_table " +
+        "(tok_tabname src) " +
+        "(tok_set_columns_clause " +
         "(= " +
-          "(TOK_TABLE_OR_COL key) 3) " +
+          "(tok_table_or_col key) 3) " +
         "(= " +
-          "(TOK_TABLE_OR_COL value) 8)) " +
-        "(TOK_WHERE (= (TOK_TABLE_OR_COL VALUE) 1230997)))",
+          "(tok_table_or_col value) 8)) " +
+        "(tok_where (= (tok_table_or_col value) 1230997)))",
       ast.toStringTree());
   }
   @Test
   public void testStandardInsertIntoTable() throws ParseException {
     ASTNode ast = parse("INSERT into TABLE page_view SELECT pvs.viewTime, pvs.userid from page_view_stg pvs where pvs.userid is null");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_QUERY " +
-        "(TOK_FROM " +
-          "(TOK_TABREF (TOK_TABNAME page_view_stg) pvs)) " +
-        "(TOK_INSERT (TOK_INSERT_INTO (TOK_TAB (TOK_TABNAME page_view))) " +
-        "(TOK_SELECT " +
-          "(TOK_SELEXPR (. (TOK_TABLE_OR_COL pvs) viewTime)) " +
-          "(TOK_SELEXPR (. (TOK_TABLE_OR_COL pvs) userid))) " +
-        "(TOK_WHERE (TOK_FUNCTION TOK_ISNULL (. (TOK_TABLE_OR_COL pvs) userid)))))",
+      "(tok_query " +
+        "(tok_from " +
+          "(tok_tabref (tok_tabname page_view_stg) pvs)) " +
+        "(tok_insert (tok_insert_into (tok_tab (tok_tabname page_view))) " +
+        "(tok_select " +
+          "(tok_selexpr (. (tok_table_or_col pvs) viewtime)) " +
+          "(tok_selexpr (. (tok_table_or_col pvs) userid))) " +
+        "(tok_where (tok_function tok_isnull (. (tok_table_or_col pvs) userid)))))",
       ast.toStringTree());
   }
   @Test
@@ -163,55 +163,55 @@ public class TestIUD {
   }
   @Test
   public void testSelectStarFromVirtTable1Row() throws ParseException {
-    ASTNode ast = parse("select * from (values (3,4)) as VC(a,b)");
+    ASTNode ast = parse("select * from (values (3,4)) as vc(a,b)");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_QUERY " +
-        "(TOK_FROM " +
-          "(TOK_VIRTUAL_TABLE " +
-            "(TOK_VIRTUAL_TABREF (TOK_TABNAME VC) (TOK_COL_NAME a b)) " +
-            "(TOK_VALUES_TABLE (TOK_VALUE_ROW 3 4)))) " +
-        "(TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF))))",
+      "(tok_query " +
+        "(tok_from " +
+          "(tok_virtual_table " +
+            "(tok_virtual_tabref (tok_tabname vc) (tok_col_name a b)) " +
+            "(tok_values_table (tok_value_row 3 4)))) " +
+        "(tok_insert (tok_destination (tok_dir tok_tmp_file)) (tok_select (tok_selexpr tok_allcolref))))",
       ast.toStringTree());
   }
   @Test
   public void testSelectStarFromVirtTable2Row() throws ParseException {
-    ASTNode ast = parse("select * from (values (1,2),(3,4)) as VC(a,b)");
+    ASTNode ast = parse("select * from (values (1,2),(3,4)) as vc(a,b)");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_QUERY " +
-        "(TOK_FROM " +
-          "(TOK_VIRTUAL_TABLE " +
-            "(TOK_VIRTUAL_TABREF (TOK_TABNAME VC) (TOK_COL_NAME a b)) " +
-            "(TOK_VALUES_TABLE (TOK_VALUE_ROW 1 2) (TOK_VALUE_ROW 3 4)))) " +
-        "(TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF))))",
+      "(tok_query " +
+        "(tok_from " +
+          "(tok_virtual_table " +
+            "(tok_virtual_tabref (tok_tabname vc) (tok_col_name a b)) " +
+            "(tok_values_table (tok_value_row 1 2) (tok_value_row 3 4)))) " +
+        "(tok_insert (tok_destination (tok_dir tok_tmp_file)) (tok_select (tok_selexpr tok_allcolref))))",
       ast.toStringTree());
   }
   @Test
   public void testSelectStarFromVirtTable2RowNamedProjections() throws ParseException {
-    ASTNode ast = parse("select a as c, b as d from (values (1,2),(3,4)) as VC(a,b)");
+    ASTNode ast = parse("select a as c, b as d from (values (1,2),(3,4)) as vc(a,b)");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_QUERY " +
-        "(TOK_FROM " +
-        "(TOK_VIRTUAL_TABLE " +
-          "(TOK_VIRTUAL_TABREF (TOK_TABNAME VC) (TOK_COL_NAME a b)) " +
-          "(TOK_VALUES_TABLE (TOK_VALUE_ROW 1 2) (TOK_VALUE_ROW 3 4)))) " +
-        "(TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) " +
-          "(TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL a) c) (TOK_SELEXPR (TOK_TABLE_OR_COL b) d))))",
+      "(tok_query " +
+        "(tok_from " +
+        "(tok_virtual_table " +
+          "(tok_virtual_tabref (tok_tabname vc) (tok_col_name a b)) " +
+          "(tok_values_table (tok_value_row 1 2) (tok_value_row 3 4)))) " +
+        "(tok_insert (tok_destination (tok_dir tok_tmp_file)) " +
+          "(tok_select (tok_selexpr (tok_table_or_col a) c) (tok_selexpr (tok_table_or_col b) d))))",
       ast.toStringTree());
   }
   @Test
   public void testInsertIntoTableAsSelectFromNamedVirtTable() throws ParseException {
-    ASTNode ast = parse("insert into page_view select a,b as c from (values (1,2),(3,4)) as VC(a,b) where b = 9");
+    ASTNode ast = parse("insert into page_view select a,b as c from (values (1,2),(3,4)) as vc(a,b) where b = 9");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_QUERY " +
-        "(TOK_FROM " +
-          "(TOK_VIRTUAL_TABLE " +
-            "(TOK_VIRTUAL_TABREF (TOK_TABNAME VC) (TOK_COL_NAME a b)) " +
-            "(TOK_VALUES_TABLE (TOK_VALUE_ROW 1 2) (TOK_VALUE_ROW 3 4)))) " +
-        "(TOK_INSERT (TOK_INSERT_INTO (TOK_TAB (TOK_TABNAME page_view))) " +
-          "(TOK_SELECT " +
-            "(TOK_SELEXPR (TOK_TABLE_OR_COL a)) " +
-            "(TOK_SELEXPR (TOK_TABLE_OR_COL b) c)) " +
-          "(TOK_WHERE (= (TOK_TABLE_OR_COL b) 9))))",
+      "(tok_query " +
+        "(tok_from " +
+          "(tok_virtual_table " +
+            "(tok_virtual_tabref (tok_tabname vc) (tok_col_name a b)) " +
+            "(tok_values_table (tok_value_row 1 2) (tok_value_row 3 4)))) " +
+        "(tok_insert (tok_insert_into (tok_tab (tok_tabname page_view))) " +
+          "(tok_select " +
+            "(tok_selexpr (tok_table_or_col a)) " +
+            "(tok_selexpr (tok_table_or_col b) c)) " +
+          "(tok_where (= (tok_table_or_col b) 9))))",
       ast.toStringTree());
   }
   /**
@@ -220,31 +220,31 @@ public class TestIUD {
    */
   @Test
   public void testInsertIntoTableAsSelectFromNamedVirtTableNamedCol() throws ParseException {
-    ASTNode ast = parse("insert into page_view(c1,c2) select a,b as c from (values (1,2),(3,4)) as VC(a,b) where b = 9");
+    ASTNode ast = parse("insert into page_view(c1,c2) select a,b as c from (values (1,2),(3,4)) as vc(a,b) where b = 9");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_QUERY " +
-        "(TOK_FROM " +
-        "(TOK_VIRTUAL_TABLE " +
-        "(TOK_VIRTUAL_TABREF (TOK_TABNAME VC) (TOK_COL_NAME a b)) " +
-        "(TOK_VALUES_TABLE (TOK_VALUE_ROW 1 2) (TOK_VALUE_ROW 3 4)))) " +
-        "(TOK_INSERT (TOK_INSERT_INTO (TOK_TAB (TOK_TABNAME page_view)) (TOK_TABCOLNAME c1 c2)) " +
-        "(TOK_SELECT " +
-        "(TOK_SELEXPR (TOK_TABLE_OR_COL a)) " +
-        "(TOK_SELEXPR (TOK_TABLE_OR_COL b) c)) " +
-        "(TOK_WHERE (= (TOK_TABLE_OR_COL b) 9))))",
+      "(tok_query " +
+        "(tok_from " +
+        "(tok_virtual_table " +
+        "(tok_virtual_tabref (tok_tabname vc) (tok_col_name a b)) " +
+        "(tok_values_table (tok_value_row 1 2) (tok_value_row 3 4)))) " +
+        "(tok_insert (tok_insert_into (tok_tab (tok_tabname page_view)) (tok_tabcolname c1 c2)) " +
+        "(tok_select " +
+        "(tok_selexpr (tok_table_or_col a)) " +
+        "(tok_selexpr (tok_table_or_col b) c)) " +
+        "(tok_where (= (tok_table_or_col b) 9))))",
       ast.toStringTree());
   }
   @Test
   public void testInsertIntoTableFromAnonymousTable1Row() throws ParseException {
     ASTNode ast = parse("insert into page_view values(1,2)");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_QUERY " +
-        "(TOK_FROM " +
-        "(TOK_VIRTUAL_TABLE " +
-        "(TOK_VIRTUAL_TABREF TOK_ANONYMOUS) " +
-        "(TOK_VALUES_TABLE (TOK_VALUE_ROW 1 2)))) " +
-        "(TOK_INSERT (TOK_INSERT_INTO (TOK_TAB (TOK_TABNAME page_view))) " +
-        "(TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF))))",
+      "(tok_query " +
+        "(tok_from " +
+        "(tok_virtual_table " +
+        "(tok_virtual_tabref tok_anonymous) " +
+        "(tok_values_table (tok_value_row 1 2)))) " +
+        "(tok_insert (tok_insert_into (tok_tab (tok_tabname page_view))) " +
+        "(tok_select (tok_selexpr tok_allcolref))))",
       ast.toStringTree());
   }
   /**
@@ -255,20 +255,20 @@ public class TestIUD {
   public void testInsertIntoTableFromAnonymousTable1RowNamedCol() throws ParseException {
     ASTNode ast = parse("insert into page_view(a,b) values(1,2)");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_QUERY " +
-        "(TOK_FROM " +
-          "(TOK_VIRTUAL_TABLE " +
-            "(TOK_VIRTUAL_TABREF TOK_ANONYMOUS) " +
-            "(TOK_VALUES_TABLE (TOK_VALUE_ROW 1 2))" +
+      "(tok_query " +
+        "(tok_from " +
+          "(tok_virtual_table " +
+            "(tok_virtual_tabref tok_anonymous) " +
+            "(tok_values_table (tok_value_row 1 2))" +
           ")" +
         ") " +
-        "(TOK_INSERT " +
-          "(TOK_INSERT_INTO " +
-            "(TOK_TAB (TOK_TABNAME page_view)) " +
-            "(TOK_TABCOLNAME a b)" +//this is "extra" piece we get vs previous query
+        "(tok_insert " +
+          "(tok_insert_into " +
+            "(tok_tab (tok_tabname page_view)) " +
+            "(tok_tabcolname a b)" +//this is "extra" piece we get vs previous query
           ") " +
-          "(TOK_SELECT " +
-            "(TOK_SELEXPR TOK_ALLCOLREF)" +
+          "(tok_select " +
+            "(tok_selexpr tok_allcolref)" +
           ")" +
         ")" +
       ")", ast.toStringTree());
@@ -277,31 +277,31 @@ public class TestIUD {
   public void testInsertIntoTableFromAnonymousTable() throws ParseException {
     ASTNode ast = parse("insert into table page_view values(-1,2),(3,+4)");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_QUERY " +
-        "(TOK_FROM " +
-          "(TOK_VIRTUAL_TABLE " +
-          "(TOK_VIRTUAL_TABREF TOK_ANONYMOUS) " +
-          "(TOK_VALUES_TABLE (TOK_VALUE_ROW (- 1) 2) (TOK_VALUE_ROW 3 (+ 4))))) " +
-        "(TOK_INSERT (TOK_INSERT_INTO (TOK_TAB (TOK_TABNAME page_view))) " +
-          "(TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF))))",
+      "(tok_query " +
+        "(tok_from " +
+          "(tok_virtual_table " +
+          "(tok_virtual_tabref tok_anonymous) " +
+          "(tok_values_table (tok_value_row (- 1) 2) (tok_value_row 3 (+ 4))))) " +
+        "(tok_insert (tok_insert_into (tok_tab (tok_tabname page_view))) " +
+          "(tok_select (tok_selexpr tok_allcolref))))",
       ast.toStringTree());
-    //same query as above less the "table" keyword KW_TABLE
+    //same query as above less the "table" keyword KW_table
     ast = parse("insert into page_view values(-1,2),(3,+4)");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_QUERY " +
-        "(TOK_FROM " +
-        "(TOK_VIRTUAL_TABLE " +
-        "(TOK_VIRTUAL_TABREF TOK_ANONYMOUS) " +
-        "(TOK_VALUES_TABLE (TOK_VALUE_ROW (- 1) 2) (TOK_VALUE_ROW 3 (+ 4))))) " +
-        "(TOK_INSERT (TOK_INSERT_INTO (TOK_TAB (TOK_TABNAME page_view))) " +
-        "(TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF))))",
+      "(tok_query " +
+        "(tok_from " +
+        "(tok_virtual_table " +
+        "(tok_virtual_tabref tok_anonymous) " +
+        "(tok_values_table (tok_value_row (- 1) 2) (tok_value_row 3 (+ 4))))) " +
+        "(tok_insert (tok_insert_into (tok_tab (tok_tabname page_view))) " +
+        "(tok_select (tok_selexpr tok_allcolref))))",
       ast.toStringTree());
   }
   @Test
   public void testMultiInsert() throws ParseException {
     ASTNode ast = parse("from S insert into T1 select a, b insert into T2 select c, d");
-    Assert.assertEquals("AST doesn't match", "(TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME S))) " +
-      "(TOK_INSERT (TOK_INSERT_INTO (TOK_TAB (TOK_TABNAME T1))) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL a)) (TOK_SELEXPR (TOK_TABLE_OR_COL b)))) " +
-      "(TOK_INSERT (TOK_INSERT_INTO (TOK_TAB (TOK_TABNAME T2))) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL c)) (TOK_SELEXPR (TOK_TABLE_OR_COL d)))))", ast.toStringTree());
+    Assert.assertEquals("AST doesn't match", "(tok_query (tok_from (tok_tabref (tok_tabname s))) " +
+      "(tok_insert (tok_insert_into (tok_tab (tok_tabname t1))) (tok_select (tok_selexpr (tok_table_or_col a)) (tok_selexpr (tok_table_or_col b)))) " +
+      "(tok_insert (tok_insert_into (tok_tab (tok_tabname t2))) (tok_select (tok_selexpr (tok_table_or_col c)) (tok_selexpr (tok_table_or_col d)))))", ast.toStringTree());
   }
 }

http://git-wip-us.apache.org/repos/asf/hive/blob/3782e47c/ql/src/test/org/apache/hadoop/hive/ql/parse/TestQBSubQuery.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestQBSubQuery.java b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestQBSubQuery.java
index 77ff79a..f6f0abb 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestQBSubQuery.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestQBSubQuery.java
@@ -21,25 +21,24 @@ package org.apache.hadoop.hive.ql.parse;
 import java.util.ArrayList;
 import java.util.List;
 
-import junit.framework.Assert;
-
 import org.apache.hadoop.hive.conf.HiveConf;
 import org.apache.hadoop.hive.ql.session.SessionState;
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
 public class TestQBSubQuery {
   static HiveConf conf;
-  
+
   private static String IN_QUERY = " select * " +
   		"from src " +
   		"where src.key in (select key from src s1 where s1.key > '9' and s1.value > '9') ";
-  
+
   private static String IN_QUERY2 = " select * " +
       "from src " +
       "where src.key in (select key from src s1 where s1.key > '9' and s1.value > '9') and value > '9'";
-  
+
   private static String QUERY3 = "select p_mfgr, min(p_size), rank() over(partition by p_mfgr) as r from part group by p_mfgr";
 
   ParseDriver pd;
@@ -61,73 +60,72 @@ public class TestQBSubQuery {
     ASTNode nd = pd.parse(query);
     return (ASTNode) nd.getChild(0);
   }
-  
+
   @Test
   public void testExtractSubQueries() throws Exception {
     ASTNode ast = parse(IN_QUERY);
     ASTNode where = where(ast);
     List<ASTNode> sqs = SubQueryUtils.findSubQueries((ASTNode) where.getChild(0));
-    Assert.assertEquals(sqs.size(), 1);
-    
+    Assert.assertEquals(1,sqs.size());
+
     ASTNode sq = sqs.get(0);
-    Assert.assertEquals(sq.toStringTree(),
-        "(TOK_SUBQUERY_EXPR (TOK_SUBQUERY_OP in) (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME src) s1)) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL key))) (TOK_WHERE (and (> (. (TOK_TABLE_OR_COL s1) key) '9') (> (. (TOK_TABLE_OR_COL s1) value) '9'))))) (. (TOK_TABLE_OR_COL src) key))"
-        );
+    Assert.assertEquals("(tok_subquery_expr (tok_subquery_op in) (tok_query (tok_from (tok_tabref (tok_tabname src) s1)) (tok_insert (tok_destination (tok_dir tok_tmp_file)) (tok_select (tok_selexpr (tok_table_or_col key))) (tok_where (and (> (. (tok_table_or_col s1) key) '9') (> (. (tok_table_or_col s1) value) '9'))))) (. (tok_table_or_col src) key))"
+        ,sq.toStringTree());
   }
-  
+
   @Test
   public void testExtractConjuncts() throws Exception {
     ASTNode ast = parse(IN_QUERY);
     ASTNode where = where(ast);
-    List<ASTNode> sqs = SubQueryUtils.findSubQueries((ASTNode) where.getChild(0));    
+    List<ASTNode> sqs = SubQueryUtils.findSubQueries((ASTNode) where.getChild(0));
     ASTNode sq = sqs.get(0);
-    
+
     ASTNode sqWhere = where((ASTNode) sq.getChild(1));
-    
+
     List<ASTNode> conjuncts = new ArrayList<ASTNode>();
     SubQueryUtils.extractConjuncts((ASTNode) sqWhere.getChild(0), conjuncts);
-    Assert.assertEquals(conjuncts.size(), 2);
-    
-    Assert.assertEquals(conjuncts.get(0).toStringTree(), "(> (. (TOK_TABLE_OR_COL s1) key) '9')");
-    Assert.assertEquals(conjuncts.get(1).toStringTree(), "(> (. (TOK_TABLE_OR_COL s1) value) '9')");
+    Assert.assertEquals(2, conjuncts.size());
+
+    Assert.assertEquals("(> (. (tok_table_or_col s1) key) '9')", conjuncts.get(0).toStringTree());
+    Assert.assertEquals("(> (. (tok_table_or_col s1) value) '9')", conjuncts.get(1).toStringTree());
   }
-  
+
   @Test
   public void testRewriteOuterQueryWhere() throws Exception {
     ASTNode ast = parse(IN_QUERY);
     ASTNode where = where(ast);
-    List<ASTNode> sqs = SubQueryUtils.findSubQueries((ASTNode) where.getChild(0));    
+    List<ASTNode> sqs = SubQueryUtils.findSubQueries((ASTNode) where.getChild(0));
     ASTNode sq = sqs.get(0);
-    
+
     ASTNode newWhere = SubQueryUtils.rewriteParentQueryWhere((ASTNode) where.getChild(0), sq);
-    Assert.assertEquals(newWhere.toStringTree(), "(= 1 1)");
+    Assert.assertEquals("(= 1 1)",newWhere.toStringTree());
   }
-  
+
   @Test
   public void testRewriteOuterQueryWhere2() throws Exception {
     ASTNode ast = parse(IN_QUERY2);
     ASTNode where = where(ast);
-    List<ASTNode> sqs = SubQueryUtils.findSubQueries((ASTNode) where.getChild(0));    
+    List<ASTNode> sqs = SubQueryUtils.findSubQueries((ASTNode) where.getChild(0));
     ASTNode sq = sqs.get(0);
-    
+
     ASTNode newWhere = SubQueryUtils.rewriteParentQueryWhere((ASTNode) where.getChild(0), sq);
-    Assert.assertEquals(newWhere.toStringTree(), "(> (TOK_TABLE_OR_COL value) '9')");
+    Assert.assertEquals("(> (tok_table_or_col value) '9')",newWhere.toStringTree());
   }
-  
+
   @Test
   public void testCheckAggOrWindowing() throws Exception {
     ASTNode ast = parse(QUERY3);
     ASTNode select = select(ast);
-    
-    Assert.assertEquals(SubQueryUtils.checkAggOrWindowing((ASTNode) select.getChild(0)), 0);
-    Assert.assertEquals(SubQueryUtils.checkAggOrWindowing((ASTNode) select.getChild(1)), 1);
-    Assert.assertEquals(SubQueryUtils.checkAggOrWindowing((ASTNode) select.getChild(2)), 2);
+
+    Assert.assertEquals(0, SubQueryUtils.checkAggOrWindowing((ASTNode) select.getChild(0)));
+    Assert.assertEquals(1, SubQueryUtils.checkAggOrWindowing((ASTNode) select.getChild(1)));
+    Assert.assertEquals(2, SubQueryUtils.checkAggOrWindowing((ASTNode) select.getChild(2)));
   }
-  
+
   private ASTNode where(ASTNode qry) {
     return (ASTNode) qry.getChild(1).getChild(2);
   }
-  
+
   private ASTNode select(ASTNode qry) {
     return (ASTNode) qry.getChild(1).getChild(1);
   }

http://git-wip-us.apache.org/repos/asf/hive/blob/3782e47c/ql/src/test/org/apache/hadoop/hive/ql/parse/TestSQL11ReservedKeyWordsPositive.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestSQL11ReservedKeyWordsPositive.java b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestSQL11ReservedKeyWordsPositive.java
index 2a68899..d0e6132 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestSQL11ReservedKeyWordsPositive.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestSQL11ReservedKeyWordsPositive.java
@@ -65,7 +65,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME ALL) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname all) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -75,7 +75,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME ALTER) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname alter) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -85,7 +85,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME ARRAY) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname array) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -95,7 +95,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME AS) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname as) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -105,7 +105,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME AUTHORIZATION) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname authorization) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -115,7 +115,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME BETWEEN) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname between) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -125,7 +125,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME BIGINT) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname bigint) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -135,7 +135,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME BINARY) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname binary) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -145,7 +145,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME BOOLEAN) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname boolean) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -155,7 +155,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME BOTH) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname both) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -165,7 +165,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME BY) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname by) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -175,7 +175,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME CREATE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname create) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -185,7 +185,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME CUBE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname cube) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -195,7 +195,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME CURRENT_DATE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname current_date) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -205,7 +205,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME CURRENT_TIMESTAMP) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname current_timestamp) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -215,7 +215,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME CURSOR) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname cursor) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -225,7 +225,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME DATE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname date) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -235,7 +235,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME DECIMAL) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname decimal) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -245,7 +245,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME DELETE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname delete) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -255,7 +255,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME DESCRIBE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname describe) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -265,7 +265,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME DOUBLE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname double) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -275,7 +275,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME DROP) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname drop) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -285,7 +285,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME EXISTS) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname exists) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -295,7 +295,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME EXTERNAL) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname external) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -305,7 +305,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME FALSE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname false) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -315,7 +315,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME FETCH) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname fetch) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -325,7 +325,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME FLOAT) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname float) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -335,7 +335,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME FOR) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname for) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -345,7 +345,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME FULL) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname full) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -355,7 +355,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME GRANT) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname grant) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -365,7 +365,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME GROUP) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname group) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -375,7 +375,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME GROUPING) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname grouping) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -385,7 +385,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME IMPORT) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname import) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -395,7 +395,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME IN) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname in) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -405,7 +405,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME INNER) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname inner) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -415,7 +415,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME INSERT) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname insert) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -425,7 +425,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME INT) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname int) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -435,7 +435,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME INTERSECT) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname intersect) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -445,7 +445,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME INTO) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname into) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -455,7 +455,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME IS) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname is) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -465,7 +465,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME LATERAL) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname lateral) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -475,7 +475,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME LEFT) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname left) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -485,7 +485,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME LIKE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname like) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -495,7 +495,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME LOCAL) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname local) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -505,7 +505,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME NONE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname none) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -515,7 +515,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME NULL) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname null) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -525,7 +525,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME OF) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname of) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -535,7 +535,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME ORDER) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname order) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -545,7 +545,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME OUT) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname out) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -555,7 +555,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME OUTER) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname outer) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -565,7 +565,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME PARTITION) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname partition) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -575,7 +575,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME PERCENT) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname percent) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -585,7 +585,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME PROCEDURE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname procedure) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -595,7 +595,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME RANGE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname range) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -605,7 +605,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME READS) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname reads) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -615,7 +615,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME REVOKE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname revoke) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -625,7 +625,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME RIGHT) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname right) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -635,7 +635,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME ROLLUP) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname rollup) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -645,7 +645,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME ROW) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname row) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -655,7 +655,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME ROWS) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname rows) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -665,7 +665,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME SET) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname set) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -675,7 +675,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME SMALLINT) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname smallint) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -685,7 +685,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME TABLE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname table) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -695,7 +695,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME TIMESTAMP) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname timestamp) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -705,7 +705,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME TO) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname to) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -715,7 +715,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME TRIGGER) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname trigger) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -725,7 +725,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME TRUE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname true) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -735,7 +735,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME TRUNCATE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname truncate) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -745,7 +745,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME UNION) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname union) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -755,7 +755,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME UPDATE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname update) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -765,7 +765,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME USER) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname user) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -775,7 +775,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME USING) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname using) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -785,7 +785,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME VALUES) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname values) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -795,7 +795,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME WITH) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname with) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -806,7 +806,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME RLIKE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname rlike) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -816,7 +816,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME REGEXP) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname regexp) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 }

http://git-wip-us.apache.org/repos/asf/hive/blob/3782e47c/ql/src/test/org/apache/hadoop/hive/ql/parse/positive/TestTransactionStatement.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/parse/positive/TestTransactionStatement.java b/ql/src/test/org/apache/hadoop/hive/ql/parse/positive/TestTransactionStatement.java
index b7f8263..4c8fabb 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/parse/positive/TestTransactionStatement.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/parse/positive/TestTransactionStatement.java
@@ -30,7 +30,6 @@ import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-import java.io.File;
 import java.io.IOException;
 
 /**
@@ -65,38 +64,38 @@ public class TestTransactionStatement {
   public void testTxnStart() throws ParseException {
     ASTNode ast = parse("START TRANSACTION");
     Assert.assertEquals("AST doesn't match",
-      "TOK_START_TRANSACTION", ast.toStringTree());
-    
+      "tok_start_transaction", ast.toStringTree());
+
     ast = parse("START TRANSACTION ISOLATION LEVEL SNAPSHOT");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_START_TRANSACTION (TOK_ISOLATION_LEVEL TOK_ISOLATION_SNAPSHOT))", ast.toStringTree());
-    
+      "(tok_start_transaction (tok_isolation_level tok_isolation_snapshot))", ast.toStringTree());
+
     ast = parse("START TRANSACTION READ ONLY");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_START_TRANSACTION (TOK_TXN_ACCESS_MODE TOK_TXN_READ_ONLY))", ast.toStringTree());
-    
+      "(tok_start_transaction (tok_txn_access_mode tok_txn_read_only))", ast.toStringTree());
+
     ast = parse("START TRANSACTION READ WRITE, ISOLATION LEVEL SNAPSHOT");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_START_TRANSACTION (TOK_TXN_ACCESS_MODE TOK_TXN_READ_WRITE) (TOK_ISOLATION_LEVEL TOK_ISOLATION_SNAPSHOT))", ast.toStringTree());
-    
+      "(tok_start_transaction (tok_txn_access_mode tok_txn_read_write) (tok_isolation_level tok_isolation_snapshot))", ast.toStringTree());
+
   }
   @Test
   public void testTxnCommitRollback() throws ParseException {
     ASTNode ast = parse("COMMIT");
-    Assert.assertEquals("AST doesn't match", "TOK_COMMIT", ast.toStringTree());
+    Assert.assertEquals("AST doesn't match", "tok_commit", ast.toStringTree());
     ast = parse("COMMIT WORK");
-    Assert.assertEquals("AST doesn't match", "TOK_COMMIT", ast.toStringTree());
+    Assert.assertEquals("AST doesn't match", "tok_commit", ast.toStringTree());
     ast = parse("ROLLBACK");
-    Assert.assertEquals("AST doesn't match", "TOK_ROLLBACK", ast.toStringTree());
+    Assert.assertEquals("AST doesn't match", "tok_rollback", ast.toStringTree());
     ast = parse("ROLLBACK WORK");
-    Assert.assertEquals("AST doesn't match", "TOK_ROLLBACK", ast.toStringTree());
+    Assert.assertEquals("AST doesn't match", "tok_rollback", ast.toStringTree());
   }
-  
+
   @Test
   public void testAutoCommit() throws ParseException {
     ASTNode ast = parse("SET AUTOCOMMIT TRUE");
-    Assert.assertEquals("AST doesn't match", "(TOK_SET_AUTOCOMMIT TOK_TRUE)", ast.toStringTree());
+    Assert.assertEquals("AST doesn't match", "(tok_set_autocommit tok_true)", ast.toStringTree());
     ast = parse("SET AUTOCOMMIT FALSE");
-    Assert.assertEquals("AST doesn't match", "(TOK_SET_AUTOCOMMIT TOK_FALSE)", ast.toStringTree());
+    Assert.assertEquals("AST doesn't match", "(tok_set_autocommit tok_false)", ast.toStringTree());
   }
 }

http://git-wip-us.apache.org/repos/asf/hive/blob/3782e47c/ql/src/test/queries/clientpositive/groupby_duplicate_key.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/groupby_duplicate_key.q b/ql/src/test/queries/clientpositive/groupby_duplicate_key.q
index 7f38efe..1909873 100644
--- a/ql/src/test/queries/clientpositive/groupby_duplicate_key.q
+++ b/ql/src/test/queries/clientpositive/groupby_duplicate_key.q
@@ -11,3 +11,7 @@ create table dummy as
 select distinct key, "X" as dummy1, "X" as dummy2 from src tablesample (10 rows);
 
 select key,dummy1,dummy2 from dummy;
+
+explain
+select max('pants'), max('pANTS') from src group by key limit 1;
+select max('pants'), max('pANTS') from src group by key limit 1;

http://git-wip-us.apache.org/repos/asf/hive/blob/3782e47c/ql/src/test/results/clientnegative/join_cond_unqual_ambiguous_vc.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientnegative/join_cond_unqual_ambiguous_vc.q.out b/ql/src/test/results/clientnegative/join_cond_unqual_ambiguous_vc.q.out
index 06c1ab5..3d9735a 100644
--- a/ql/src/test/results/clientnegative/join_cond_unqual_ambiguous_vc.q.out
+++ b/ql/src/test/results/clientnegative/join_cond_unqual_ambiguous_vc.q.out
@@ -1 +1 @@
-FAILED: SemanticException Column input__file__name Found in more than One Tables/Subqueries
+FAILED: SemanticException Column INPUT__FILE__NAME Found in more than One Tables/Subqueries

http://git-wip-us.apache.org/repos/asf/hive/blob/3782e47c/ql/src/test/results/clientpositive/case_sensitivity.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/case_sensitivity.q.out b/ql/src/test/results/clientpositive/case_sensitivity.q.out
index a5b14e8..b3969cc 100644
--- a/ql/src/test/results/clientpositive/case_sensitivity.q.out
+++ b/ql/src/test/results/clientpositive/case_sensitivity.q.out
@@ -35,7 +35,7 @@ STAGE PLANS:
               predicate: (lint[0] > 0) (type: boolean)
               Statistics: Num rows: 3 Data size: 837 Basic stats: COMPLETE Column stats: NONE
               Select Operator
-                expressions: lint[1] (type: int), lintstring[0].MYSTRING (type: string)
+                expressions: lint[1] (type: int), lintstring[0].mystring (type: string)
                 outputColumnNames: _col0, _col1
                 Statistics: Num rows: 3 Data size: 837 Basic stats: COMPLETE Column stats: NONE
                 File Output Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/3782e47c/ql/src/test/results/clientpositive/constant_prop.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/constant_prop.q.out b/ql/src/test/results/clientpositive/constant_prop.q.out
index 1199709..001a3c8 100644
--- a/ql/src/test/results/clientpositive/constant_prop.q.out
+++ b/ql/src/test/results/clientpositive/constant_prop.q.out
@@ -33,7 +33,7 @@ STAGE PLANS:
           Row Limit Per Split: 1
           Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: COMPLETE
           Select Operator
-            expressions: named_struct(if(array_contains(array(1,2), 3), 'F1', 'B1'),1,if(array_contains(map_keys(map('b':'x')), 'b'), 'F2', 'B2'),2) (type: struct<b1:int,f2:int>), named_struct(if(array_contains(array(1,2), 3), 'F1', 'B1'),1,if(array_contains(map_keys(map('b':'x')), 'b'), 'F2', 'B2'),2).F2 (type: int)
+            expressions: named_struct(if(array_contains(array(1,2), 3), 'F1', 'B1'),1,if(array_contains(map_keys(map('b':'x')), 'b'), 'F2', 'B2'),2) (type: struct<b1:int,f2:int>), named_struct(if(array_contains(array(1,2), 3), 'F1', 'B1'),1,if(array_contains(map_keys(map('b':'x')), 'b'), 'F2', 'B2'),2).f2 (type: int)
             outputColumnNames: _col0, _col1
             Statistics: Num rows: 500 Data size: 30000 Basic stats: COMPLETE Column stats: COMPLETE
             ListSink

http://git-wip-us.apache.org/repos/asf/hive/blob/3782e47c/ql/src/test/results/clientpositive/groupby_duplicate_key.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby_duplicate_key.q.out b/ql/src/test/results/clientpositive/groupby_duplicate_key.q.out
index 2f2a6e6..47233c8 100644
--- a/ql/src/test/results/clientpositive/groupby_duplicate_key.q.out
+++ b/ql/src/test/results/clientpositive/groupby_duplicate_key.q.out
@@ -175,3 +175,74 @@ POSTHOOK: Input: default@dummy
 484	X	X
 86	X	X
 98	X	X
+PREHOOK: query: explain
+select max('pants'), max('pANTS') from src group by key limit 1
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select max('pants'), max('pANTS') from src group by key limit 1
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-1 is a root stage
+  Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+  Stage: Stage-1
+    Map Reduce
+      Map Operator Tree:
+          TableScan
+            alias: src
+            Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+            Select Operator
+              expressions: key (type: string)
+              outputColumnNames: key
+              Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+              Group By Operator
+                aggregations: max('pants'), max('pANTS')
+                keys: key (type: string)
+                mode: hash
+                outputColumnNames: _col0, _col1, _col2
+                Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+                Reduce Output Operator
+                  key expressions: _col0 (type: string)
+                  sort order: +
+                  Map-reduce partition columns: _col0 (type: string)
+                  Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+                  TopN Hash Memory Usage: 0.1
+                  value expressions: _col1 (type: string), _col2 (type: string)
+      Reduce Operator Tree:
+        Group By Operator
+          aggregations: max(VALUE._col0), max(VALUE._col1)
+          keys: KEY._col0 (type: string)
+          mode: mergepartial
+          outputColumnNames: _col0, _col1, _col2
+          Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
+          Select Operator
+            expressions: _col1 (type: string), _col2 (type: string)
+            outputColumnNames: _col0, _col1
+            Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
+            Limit
+              Number of rows: 1
+              Statistics: Num rows: 1 Data size: 10 Basic stats: COMPLETE Column stats: NONE
+              File Output Operator
+                compressed: false
+                Statistics: Num rows: 1 Data size: 10 Basic stats: COMPLETE Column stats: NONE
+                table:
+                    input format: org.apache.hadoop.mapred.TextInputFormat
+                    output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                    serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: 1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: select max('pants'), max('pANTS') from src group by key limit 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+#### A masked pattern was here ####
+POSTHOOK: query: select max('pants'), max('pANTS') from src group by key limit 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+#### A masked pattern was here ####
+pants	pANTS


[2/2] hive git commit: HIVE-12590 : Repeated UDAFs with literals can produce incorrect result (Ashutosh Chauhan via John Pullokkaran)

Posted by ha...@apache.org.
HIVE-12590 : Repeated UDAFs with literals can produce incorrect result (Ashutosh Chauhan via John Pullokkaran)

Signed-off-by: Ashutosh Chauhan <ha...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/54858565
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/54858565
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/54858565

Branch: refs/heads/branch-2.0
Commit: 5485856528bfe12aa4f2822964c5f8986620305a
Parents: a9ae63b
Author: Ashutosh Chauhan <ha...@apache.org>
Authored: Wed Dec 16 21:00:21 2015 -0800
Committer: Ashutosh Chauhan <ha...@apache.org>
Committed: Sun Jan 10 09:06:00 2016 -0800

----------------------------------------------------------------------
 .../apache/hadoop/hive/ql/parse/ASTNode.java    |  27 +-
 .../hadoop/hive/ql/parse/CalcitePlanner.java    |   2 +-
 .../hadoop/hive/ql/parse/RowResolver.java       |   4 +-
 .../hadoop/hive/ql/parse/SemanticAnalyzer.java  |  16 +-
 .../hive/ql/parse/TypeCheckProcFactory.java     |   4 +-
 .../apache/hadoop/hive/ql/parse/TestIUD.java    | 254 +++++++++----------
 .../hadoop/hive/ql/parse/TestQBSubQuery.java    |  66 +++--
 .../TestSQL11ReservedKeyWordsPositive.java      | 152 +++++------
 .../positive/TestTransactionStatement.java      |  31 ++-
 .../clientpositive/groupby_duplicate_key.q      |   4 +
 .../join_cond_unqual_ambiguous_vc.q.out         |   2 +-
 .../clientpositive/case_sensitivity.q.out       |   2 +-
 .../results/clientpositive/constant_prop.q.out  |   2 +-
 .../clientpositive/groupby_duplicate_key.q.out  |  71 ++++++
 14 files changed, 356 insertions(+), 281 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/54858565/ql/src/java/org/apache/hadoop/hive/ql/parse/ASTNode.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/ASTNode.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/ASTNode.java
index b96e2eb..8400ee8 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/ASTNode.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/ASTNode.java
@@ -32,7 +32,7 @@ import org.apache.hadoop.hive.ql.lib.Node;
  */
 public class ASTNode extends CommonTree implements Node,Serializable {
   private static final long serialVersionUID = 1L;
-  private transient StringBuffer astStr;
+  private transient StringBuilder astStr;
   private transient ASTNodeOrigin origin;
   private transient int startIndx = -1;
   private transient int endIndx = -1;
@@ -133,10 +133,11 @@ public class ASTNode extends CommonTree implements Node,Serializable {
     return sb;
   }
 
-  private ASTNode getRootNodeWithValidASTStr (boolean useMemoizedRoot) {
-    if (useMemoizedRoot && rootNode != null && rootNode.parent == null &&
+  private void getRootNodeWithValidASTStr () {
+
+    if (rootNode != null && rootNode.parent == null &&
         rootNode.hasValidMemoizedString()) {
-      return rootNode;
+      return;
     }
     ASTNode retNode = this;
     while (retNode.parent != null) {
@@ -144,11 +145,11 @@ public class ASTNode extends CommonTree implements Node,Serializable {
     }
     rootNode=retNode;
     if (!rootNode.isValidASTStr) {
-      rootNode.astStr = new StringBuffer();
+      rootNode.astStr = new StringBuilder();
       rootNode.toStringTree(rootNode);
       rootNode.isValidASTStr = true;
     }
-    return retNode;
+    return;
   }
 
   private boolean hasValidMemoizedString() {
@@ -174,7 +175,7 @@ public class ASTNode extends CommonTree implements Node,Serializable {
 
   private void addtoMemoizedString(String string) {
     if (astStr == null) {
-      astStr = new StringBuffer();
+      astStr = new StringBuilder();
     }
     astStr.append(string);
   }
@@ -227,7 +228,7 @@ public class ASTNode extends CommonTree implements Node,Serializable {
 
     // The root might have changed because of tree modifications.
     // Compute the new root for this tree and set the astStr.
-    getRootNodeWithValidASTStr(true);
+    getRootNodeWithValidASTStr();
 
     // If rootNotModified is false, then startIndx and endIndx will be stale.
     if (startIndx >= 0 && endIndx <= rootNode.getMemoizedStringLen()) {
@@ -240,14 +241,18 @@ public class ASTNode extends CommonTree implements Node,Serializable {
     this.rootNode = rootNode;
     startIndx = rootNode.getMemoizedStringLen();
     // Leaf node
+    String str;
     if ( children==null || children.size()==0 ) {
-      rootNode.addtoMemoizedString(this.toString());
+      str = this.toString();
+      rootNode.addtoMemoizedString(this.getType() != HiveParser.StringLiteral ? str.toLowerCase() : str);
       endIndx =  rootNode.getMemoizedStringLen();
-      return this.toString();
+      return this.getType() != HiveParser.StringLiteral ? str.toLowerCase() : str;
     }
+
     if ( !isNil() ) {
       rootNode.addtoMemoizedString("(");
-      rootNode.addtoMemoizedString(this.toString());
+      str = this.toString();
+      rootNode.addtoMemoizedString((this.getType() == HiveParser.StringLiteral || null == str) ? str :  str.toLowerCase());
       rootNode.addtoMemoizedString(" ");
     }
     for (int i = 0; children!=null && i < children.size(); i++) {

http://git-wip-us.apache.org/repos/asf/hive/blob/54858565/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
index 23f6869..686c043 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
@@ -1602,7 +1602,7 @@ public class CalcitePlanner extends SemanticAnalyzer {
           VirtualColumn vc = vcs.next();
           colInfo = new ColumnInfo(vc.getName(), vc.getTypeInfo(), tableAlias, true,
               vc.getIsHidden());
-          rr.put(tableAlias, vc.getName(), colInfo);
+          rr.put(tableAlias, vc.getName().toLowerCase(), colInfo);
           cInfoLst.add(colInfo);
           virtualCols.add(vc);
         }

http://git-wip-us.apache.org/repos/asf/hive/blob/54858565/ql/src/java/org/apache/hadoop/hive/ql/parse/RowResolver.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/RowResolver.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/RowResolver.java
index 891b1f7..0bd036f 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/RowResolver.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/RowResolver.java
@@ -112,7 +112,6 @@ public class RowResolver implements Serializable{
     if (tab_alias != null) {
       tab_alias = tab_alias.toLowerCase();
     }
-    col_alias = col_alias.toLowerCase();
 
     /*
      * allow multiple mappings to the same ColumnInfo.
@@ -169,7 +168,6 @@ public class RowResolver implements Serializable{
    * @throws SemanticException
    */
   public ColumnInfo get(String tab_alias, String col_alias) throws SemanticException {
-    col_alias = col_alias.toLowerCase();
     ColumnInfo ret = null;
 
     if (tab_alias != null) {
@@ -476,4 +474,4 @@ public class RowResolver implements Serializable{
     resolver.isExprResolver = isExprResolver;
     return resolver;
   }
-}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/hive/blob/54858565/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
index 197e6da..4c498f3 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
@@ -541,7 +541,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
           if(containsLeadLagUDF(expressionTree)) {
             throw new SemanticException(ErrorMsg.MISSING_OVER_CLAUSE.getMsg(functionName));
           }
-          aggregations.put(expressionTree.toStringTree().toLowerCase(), expressionTree);
+          aggregations.put(expressionTree.toStringTree(), expressionTree);
           FunctionInfo fi = FunctionRegistry.getFunctionInfo(functionName);
           if (!fi.isNative()) {
             unparseTranslator.addIdentifierTranslation((ASTNode) expressionTree
@@ -3529,7 +3529,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
         (selExpr.getChildCount() == 3 &&
         selExpr.getChild(2).getType() == HiveParser.TOK_WINDOWSPEC)) {
       // return zz for "xx + yy AS zz"
-      colAlias = unescapeIdentifier(selExpr.getChild(1).getText());
+      colAlias = unescapeIdentifier(selExpr.getChild(1).getText().toLowerCase());
       colRef[0] = tabAlias;
       colRef[1] = colAlias;
       return colRef;
@@ -3538,7 +3538,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
     ASTNode root = (ASTNode) selExpr.getChild(0);
     if (root.getType() == HiveParser.TOK_TABLE_OR_COL) {
       colAlias =
-          BaseSemanticAnalyzer.unescapeIdentifier(root.getChild(0).getText());
+          BaseSemanticAnalyzer.unescapeIdentifier(root.getChild(0).getText().toLowerCase());
       colRef[0] = tabAlias;
       colRef[1] = colAlias;
       return colRef;
@@ -3556,7 +3556,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
       // Return zz for "xx.zz" and "xx.yy.zz"
       ASTNode col = (ASTNode) root.getChild(1);
       if (col.getType() == HiveParser.Identifier) {
-        colAlias = unescapeIdentifier(col.getText());
+        colAlias = unescapeIdentifier(col.getText().toLowerCase());
       }
     }
 
@@ -3566,7 +3566,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
       String expr_flattened = root.toStringTree();
 
       // remove all TOK tokens
-      String expr_no_tok = expr_flattened.replaceAll("TOK_\\S+", "");
+      String expr_no_tok = expr_flattened.replaceAll("tok_\\S+", "");
 
       // remove all non alphanumeric letters, replace whitespace spans with underscore
       String expr_formatted = expr_no_tok.replaceAll("\\W", " ").trim().replaceAll("\\s+", "_");
@@ -3704,7 +3704,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
         ASTNode selExprChild = (ASTNode) selExpr.getChild(i);
         switch (selExprChild.getType()) {
         case HiveParser.Identifier:
-          udtfColAliases.add(unescapeIdentifier(selExprChild.getText()));
+          udtfColAliases.add(unescapeIdentifier(selExprChild.getText().toLowerCase()));
           unparseTranslator.addIdentifierTranslation(selExprChild);
           break;
         case HiveParser.TOK_TABALIAS:
@@ -5380,7 +5380,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
       if (!groupingSets.isEmpty()) {
         throw new SemanticException(ErrorMsg.HIVE_GROUPING_SETS_AGGR_NOMAPAGGR_MULTIGBY.getMsg());
       }
-      
+
       ASTNode whereExpr = parseInfo.getWhrForClause(dest);
 
       if (whereExpr != null) {
@@ -9320,7 +9320,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
       List<VirtualColumn> vcList = new ArrayList<VirtualColumn>();
       while (vcs.hasNext()) {
         VirtualColumn vc = vcs.next();
-        rwsch.put(alias, vc.getName(), new ColumnInfo(vc.getName(),
+        rwsch.put(alias, vc.getName().toLowerCase(), new ColumnInfo(vc.getName(),
             vc.getTypeInfo(), alias, true, vc.getIsHidden()));
         vcList.add(vc);
       }

http://git-wip-us.apache.org/repos/asf/hive/blob/54858565/ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java
index 9d8b352..598520c 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java
@@ -378,7 +378,7 @@ public class TypeCheckProcFactory {
       default:
         // HiveParser.identifier | HiveParse.KW_IF | HiveParse.KW_LEFT |
         // HiveParse.KW_RIGHT
-        str = BaseSemanticAnalyzer.unescapeIdentifier(expr.getText());
+        str = BaseSemanticAnalyzer.unescapeIdentifier(expr.getText().toLowerCase());
         break;
       }
       return new ExprNodeConstantDesc(TypeInfoFactory.stringTypeInfo, str);
@@ -818,7 +818,7 @@ public class TypeCheckProcFactory {
           ((SettableUDF)genericUDF).setTypeInfo(typeInfo);
         }
       }
-      
+
       List<ExprNodeDesc> childrenList = new ArrayList<ExprNodeDesc>(children.length);
 
       childrenList.addAll(Arrays.asList(children));

http://git-wip-us.apache.org/repos/asf/hive/blob/54858565/ql/src/test/org/apache/hadoop/hive/ql/parse/TestIUD.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestIUD.java b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestIUD.java
index 9d4457c..3d2e648 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestIUD.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestIUD.java
@@ -55,100 +55,100 @@ public class TestIUD {
     }
     return (ASTNode) nd.getChild(0);
   }
-  
+
   @Test
   public void testDeleteNoWhere() throws ParseException {
     ASTNode ast = parse("DELETE FROM src");
-    Assert.assertEquals("AST doesn't match", 
-      "(TOK_DELETE_FROM " +
-        "(TOK_TABNAME src))", ast.toStringTree());
+    Assert.assertEquals("AST doesn't match",
+      "(tok_delete_from " +
+        "(tok_tabname src))", ast.toStringTree());
   }
   @Test
   public void testDeleteWithWhere() throws ParseException {
     ASTNode ast = parse("DELETE FROM src WHERE key IS NOT NULL AND src.value < 0");
-    Assert.assertEquals("AST doesn't match", 
-      "(TOK_DELETE_FROM " +
-        "(TOK_TABNAME src) " +
-        "(TOK_WHERE " +
-          "(AND " +
-            "(TOK_FUNCTION TOK_ISNOTNULL (TOK_TABLE_OR_COL key)) " +
-            "(< (. (TOK_TABLE_OR_COL src) value) 0))))",
+    Assert.assertEquals("AST doesn't match",
+      "(tok_delete_from " +
+        "(tok_tabname src) " +
+        "(tok_where " +
+          "(and " +
+            "(tok_function tok_isnotnull (tok_table_or_col key)) " +
+            "(< (. (tok_table_or_col src) value) 0))))",
       ast.toStringTree());
   }
   @Test
   public void testUpdateNoWhereSingleSet() throws ParseException {
     ASTNode ast = parse("UPDATE src set key = 3");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_UPDATE_TABLE " +
-        "(TOK_TABNAME src) " +
-        "(TOK_SET_COLUMNS_CLAUSE " +
+      "(tok_update_table " +
+        "(tok_tabname src) " +
+        "(tok_set_columns_clause " +
           "(= " +
-            "(TOK_TABLE_OR_COL key) 3)))",
+            "(tok_table_or_col key) 3)))",
       ast.toStringTree());
   }
   @Test
   public void testUpdateNoWhereMultiSet() throws ParseException {
     ASTNode ast = parse("UPDATE src set key = 3, value = 8");
-    Assert.assertEquals("AST doesn't match", 
-      "(TOK_UPDATE_TABLE " +
-        "(TOK_TABNAME src) " +
-        "(TOK_SET_COLUMNS_CLAUSE " +
+    Assert.assertEquals("AST doesn't match",
+      "(tok_update_table " +
+        "(tok_tabname src) " +
+        "(tok_set_columns_clause " +
           "(= " +
-            "(TOK_TABLE_OR_COL key) 3) " +
+            "(tok_table_or_col key) 3) " +
           "(= " +
-            "(TOK_TABLE_OR_COL value) 8)))",
+            "(tok_table_or_col value) 8)))",
       ast.toStringTree());
   }
   @Test
   public void testUpdateWithWhereSingleSet() throws ParseException {
     ASTNode ast = parse("UPDATE src SET key = 3 WHERE value IS NULL");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_UPDATE_TABLE " +
-        "(TOK_TABNAME src) " +
-        "(TOK_SET_COLUMNS_CLAUSE " +
+      "(tok_update_table " +
+        "(tok_tabname src) " +
+        "(tok_set_columns_clause " +
           "(= " +
-            "(TOK_TABLE_OR_COL key) 3)) " +
-        "(TOK_WHERE (TOK_FUNCTION TOK_ISNULL (TOK_TABLE_OR_COL value))))",
+            "(tok_table_or_col key) 3)) " +
+        "(tok_where (tok_function tok_isnull (tok_table_or_col value))))",
       ast.toStringTree());
   }
   @Test
   public void testUpdateWithWhereSingleSetExpr() throws ParseException {
     ASTNode ast = parse("UPDATE src SET key = -3+(5*9)%8, val = cast(6.1 + c as INT), d = d - 1 WHERE value IS NULL");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_UPDATE_TABLE (TOK_TABNAME src) " +
-        "(TOK_SET_COLUMNS_CLAUSE " +
-        "(= (TOK_TABLE_OR_COL key) (+ (- 3) (% (* 5 9) 8))) " +
-        "(= (TOK_TABLE_OR_COL val) (TOK_FUNCTION TOK_INT (+ 6.1 (TOK_TABLE_OR_COL c)))) " +
-        "(= (TOK_TABLE_OR_COL d) (- (TOK_TABLE_OR_COL d) 1))) " +
-        "(TOK_WHERE (TOK_FUNCTION TOK_ISNULL (TOK_TABLE_OR_COL value))))",
+      "(tok_update_table (tok_tabname src) " +
+        "(tok_set_columns_clause " +
+        "(= (tok_table_or_col key) (+ (- 3) (% (* 5 9) 8))) " +
+        "(= (tok_table_or_col val) (tok_function tok_int (+ 6.1 (tok_table_or_col c)))) " +
+        "(= (tok_table_or_col d) (- (tok_table_or_col d) 1))) " +
+        "(tok_where (tok_function tok_isnull (tok_table_or_col value))))",
       ast.toStringTree());
   }
   @Test
   public void testUpdateWithWhereMultiSet() throws ParseException {
     ASTNode ast = parse("UPDATE src SET key = 3, value = 8 WHERE VALUE = 1230997");
-    Assert.assertEquals("AST doesn't match", 
-      "(TOK_UPDATE_TABLE " +
-        "(TOK_TABNAME src) " +
-        "(TOK_SET_COLUMNS_CLAUSE " +
+    Assert.assertEquals("AST doesn't match",
+      "(tok_update_table " +
+        "(tok_tabname src) " +
+        "(tok_set_columns_clause " +
         "(= " +
-          "(TOK_TABLE_OR_COL key) 3) " +
+          "(tok_table_or_col key) 3) " +
         "(= " +
-          "(TOK_TABLE_OR_COL value) 8)) " +
-        "(TOK_WHERE (= (TOK_TABLE_OR_COL VALUE) 1230997)))",
+          "(tok_table_or_col value) 8)) " +
+        "(tok_where (= (tok_table_or_col value) 1230997)))",
       ast.toStringTree());
   }
   @Test
   public void testStandardInsertIntoTable() throws ParseException {
     ASTNode ast = parse("INSERT into TABLE page_view SELECT pvs.viewTime, pvs.userid from page_view_stg pvs where pvs.userid is null");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_QUERY " +
-        "(TOK_FROM " +
-          "(TOK_TABREF (TOK_TABNAME page_view_stg) pvs)) " +
-        "(TOK_INSERT (TOK_INSERT_INTO (TOK_TAB (TOK_TABNAME page_view))) " +
-        "(TOK_SELECT " +
-          "(TOK_SELEXPR (. (TOK_TABLE_OR_COL pvs) viewTime)) " +
-          "(TOK_SELEXPR (. (TOK_TABLE_OR_COL pvs) userid))) " +
-        "(TOK_WHERE (TOK_FUNCTION TOK_ISNULL (. (TOK_TABLE_OR_COL pvs) userid)))))",
+      "(tok_query " +
+        "(tok_from " +
+          "(tok_tabref (tok_tabname page_view_stg) pvs)) " +
+        "(tok_insert (tok_insert_into (tok_tab (tok_tabname page_view))) " +
+        "(tok_select " +
+          "(tok_selexpr (. (tok_table_or_col pvs) viewtime)) " +
+          "(tok_selexpr (. (tok_table_or_col pvs) userid))) " +
+        "(tok_where (tok_function tok_isnull (. (tok_table_or_col pvs) userid)))))",
       ast.toStringTree());
   }
   @Test
@@ -163,55 +163,55 @@ public class TestIUD {
   }
   @Test
   public void testSelectStarFromVirtTable1Row() throws ParseException {
-    ASTNode ast = parse("select * from (values (3,4)) as VC(a,b)");
+    ASTNode ast = parse("select * from (values (3,4)) as vc(a,b)");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_QUERY " +
-        "(TOK_FROM " +
-          "(TOK_VIRTUAL_TABLE " +
-            "(TOK_VIRTUAL_TABREF (TOK_TABNAME VC) (TOK_COL_NAME a b)) " +
-            "(TOK_VALUES_TABLE (TOK_VALUE_ROW 3 4)))) " +
-        "(TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF))))",
+      "(tok_query " +
+        "(tok_from " +
+          "(tok_virtual_table " +
+            "(tok_virtual_tabref (tok_tabname vc) (tok_col_name a b)) " +
+            "(tok_values_table (tok_value_row 3 4)))) " +
+        "(tok_insert (tok_destination (tok_dir tok_tmp_file)) (tok_select (tok_selexpr tok_allcolref))))",
       ast.toStringTree());
   }
   @Test
   public void testSelectStarFromVirtTable2Row() throws ParseException {
-    ASTNode ast = parse("select * from (values (1,2),(3,4)) as VC(a,b)");
+    ASTNode ast = parse("select * from (values (1,2),(3,4)) as vc(a,b)");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_QUERY " +
-        "(TOK_FROM " +
-          "(TOK_VIRTUAL_TABLE " +
-            "(TOK_VIRTUAL_TABREF (TOK_TABNAME VC) (TOK_COL_NAME a b)) " +
-            "(TOK_VALUES_TABLE (TOK_VALUE_ROW 1 2) (TOK_VALUE_ROW 3 4)))) " +
-        "(TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF))))",
+      "(tok_query " +
+        "(tok_from " +
+          "(tok_virtual_table " +
+            "(tok_virtual_tabref (tok_tabname vc) (tok_col_name a b)) " +
+            "(tok_values_table (tok_value_row 1 2) (tok_value_row 3 4)))) " +
+        "(tok_insert (tok_destination (tok_dir tok_tmp_file)) (tok_select (tok_selexpr tok_allcolref))))",
       ast.toStringTree());
   }
   @Test
   public void testSelectStarFromVirtTable2RowNamedProjections() throws ParseException {
-    ASTNode ast = parse("select a as c, b as d from (values (1,2),(3,4)) as VC(a,b)");
+    ASTNode ast = parse("select a as c, b as d from (values (1,2),(3,4)) as vc(a,b)");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_QUERY " +
-        "(TOK_FROM " +
-        "(TOK_VIRTUAL_TABLE " +
-          "(TOK_VIRTUAL_TABREF (TOK_TABNAME VC) (TOK_COL_NAME a b)) " +
-          "(TOK_VALUES_TABLE (TOK_VALUE_ROW 1 2) (TOK_VALUE_ROW 3 4)))) " +
-        "(TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) " +
-          "(TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL a) c) (TOK_SELEXPR (TOK_TABLE_OR_COL b) d))))",
+      "(tok_query " +
+        "(tok_from " +
+        "(tok_virtual_table " +
+          "(tok_virtual_tabref (tok_tabname vc) (tok_col_name a b)) " +
+          "(tok_values_table (tok_value_row 1 2) (tok_value_row 3 4)))) " +
+        "(tok_insert (tok_destination (tok_dir tok_tmp_file)) " +
+          "(tok_select (tok_selexpr (tok_table_or_col a) c) (tok_selexpr (tok_table_or_col b) d))))",
       ast.toStringTree());
   }
   @Test
   public void testInsertIntoTableAsSelectFromNamedVirtTable() throws ParseException {
-    ASTNode ast = parse("insert into page_view select a,b as c from (values (1,2),(3,4)) as VC(a,b) where b = 9");
+    ASTNode ast = parse("insert into page_view select a,b as c from (values (1,2),(3,4)) as vc(a,b) where b = 9");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_QUERY " +
-        "(TOK_FROM " +
-          "(TOK_VIRTUAL_TABLE " +
-            "(TOK_VIRTUAL_TABREF (TOK_TABNAME VC) (TOK_COL_NAME a b)) " +
-            "(TOK_VALUES_TABLE (TOK_VALUE_ROW 1 2) (TOK_VALUE_ROW 3 4)))) " +
-        "(TOK_INSERT (TOK_INSERT_INTO (TOK_TAB (TOK_TABNAME page_view))) " +
-          "(TOK_SELECT " +
-            "(TOK_SELEXPR (TOK_TABLE_OR_COL a)) " +
-            "(TOK_SELEXPR (TOK_TABLE_OR_COL b) c)) " +
-          "(TOK_WHERE (= (TOK_TABLE_OR_COL b) 9))))",
+      "(tok_query " +
+        "(tok_from " +
+          "(tok_virtual_table " +
+            "(tok_virtual_tabref (tok_tabname vc) (tok_col_name a b)) " +
+            "(tok_values_table (tok_value_row 1 2) (tok_value_row 3 4)))) " +
+        "(tok_insert (tok_insert_into (tok_tab (tok_tabname page_view))) " +
+          "(tok_select " +
+            "(tok_selexpr (tok_table_or_col a)) " +
+            "(tok_selexpr (tok_table_or_col b) c)) " +
+          "(tok_where (= (tok_table_or_col b) 9))))",
       ast.toStringTree());
   }
   /**
@@ -220,31 +220,31 @@ public class TestIUD {
    */
   @Test
   public void testInsertIntoTableAsSelectFromNamedVirtTableNamedCol() throws ParseException {
-    ASTNode ast = parse("insert into page_view(c1,c2) select a,b as c from (values (1,2),(3,4)) as VC(a,b) where b = 9");
+    ASTNode ast = parse("insert into page_view(c1,c2) select a,b as c from (values (1,2),(3,4)) as vc(a,b) where b = 9");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_QUERY " +
-        "(TOK_FROM " +
-        "(TOK_VIRTUAL_TABLE " +
-        "(TOK_VIRTUAL_TABREF (TOK_TABNAME VC) (TOK_COL_NAME a b)) " +
-        "(TOK_VALUES_TABLE (TOK_VALUE_ROW 1 2) (TOK_VALUE_ROW 3 4)))) " +
-        "(TOK_INSERT (TOK_INSERT_INTO (TOK_TAB (TOK_TABNAME page_view)) (TOK_TABCOLNAME c1 c2)) " +
-        "(TOK_SELECT " +
-        "(TOK_SELEXPR (TOK_TABLE_OR_COL a)) " +
-        "(TOK_SELEXPR (TOK_TABLE_OR_COL b) c)) " +
-        "(TOK_WHERE (= (TOK_TABLE_OR_COL b) 9))))",
+      "(tok_query " +
+        "(tok_from " +
+        "(tok_virtual_table " +
+        "(tok_virtual_tabref (tok_tabname vc) (tok_col_name a b)) " +
+        "(tok_values_table (tok_value_row 1 2) (tok_value_row 3 4)))) " +
+        "(tok_insert (tok_insert_into (tok_tab (tok_tabname page_view)) (tok_tabcolname c1 c2)) " +
+        "(tok_select " +
+        "(tok_selexpr (tok_table_or_col a)) " +
+        "(tok_selexpr (tok_table_or_col b) c)) " +
+        "(tok_where (= (tok_table_or_col b) 9))))",
       ast.toStringTree());
   }
   @Test
   public void testInsertIntoTableFromAnonymousTable1Row() throws ParseException {
     ASTNode ast = parse("insert into page_view values(1,2)");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_QUERY " +
-        "(TOK_FROM " +
-        "(TOK_VIRTUAL_TABLE " +
-        "(TOK_VIRTUAL_TABREF TOK_ANONYMOUS) " +
-        "(TOK_VALUES_TABLE (TOK_VALUE_ROW 1 2)))) " +
-        "(TOK_INSERT (TOK_INSERT_INTO (TOK_TAB (TOK_TABNAME page_view))) " +
-        "(TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF))))",
+      "(tok_query " +
+        "(tok_from " +
+        "(tok_virtual_table " +
+        "(tok_virtual_tabref tok_anonymous) " +
+        "(tok_values_table (tok_value_row 1 2)))) " +
+        "(tok_insert (tok_insert_into (tok_tab (tok_tabname page_view))) " +
+        "(tok_select (tok_selexpr tok_allcolref))))",
       ast.toStringTree());
   }
   /**
@@ -255,20 +255,20 @@ public class TestIUD {
   public void testInsertIntoTableFromAnonymousTable1RowNamedCol() throws ParseException {
     ASTNode ast = parse("insert into page_view(a,b) values(1,2)");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_QUERY " +
-        "(TOK_FROM " +
-          "(TOK_VIRTUAL_TABLE " +
-            "(TOK_VIRTUAL_TABREF TOK_ANONYMOUS) " +
-            "(TOK_VALUES_TABLE (TOK_VALUE_ROW 1 2))" +
+      "(tok_query " +
+        "(tok_from " +
+          "(tok_virtual_table " +
+            "(tok_virtual_tabref tok_anonymous) " +
+            "(tok_values_table (tok_value_row 1 2))" +
           ")" +
         ") " +
-        "(TOK_INSERT " +
-          "(TOK_INSERT_INTO " +
-            "(TOK_TAB (TOK_TABNAME page_view)) " +
-            "(TOK_TABCOLNAME a b)" +//this is "extra" piece we get vs previous query
+        "(tok_insert " +
+          "(tok_insert_into " +
+            "(tok_tab (tok_tabname page_view)) " +
+            "(tok_tabcolname a b)" +//this is "extra" piece we get vs previous query
           ") " +
-          "(TOK_SELECT " +
-            "(TOK_SELEXPR TOK_ALLCOLREF)" +
+          "(tok_select " +
+            "(tok_selexpr tok_allcolref)" +
           ")" +
         ")" +
       ")", ast.toStringTree());
@@ -277,31 +277,31 @@ public class TestIUD {
   public void testInsertIntoTableFromAnonymousTable() throws ParseException {
     ASTNode ast = parse("insert into table page_view values(-1,2),(3,+4)");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_QUERY " +
-        "(TOK_FROM " +
-          "(TOK_VIRTUAL_TABLE " +
-          "(TOK_VIRTUAL_TABREF TOK_ANONYMOUS) " +
-          "(TOK_VALUES_TABLE (TOK_VALUE_ROW (- 1) 2) (TOK_VALUE_ROW 3 (+ 4))))) " +
-        "(TOK_INSERT (TOK_INSERT_INTO (TOK_TAB (TOK_TABNAME page_view))) " +
-          "(TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF))))",
+      "(tok_query " +
+        "(tok_from " +
+          "(tok_virtual_table " +
+          "(tok_virtual_tabref tok_anonymous) " +
+          "(tok_values_table (tok_value_row (- 1) 2) (tok_value_row 3 (+ 4))))) " +
+        "(tok_insert (tok_insert_into (tok_tab (tok_tabname page_view))) " +
+          "(tok_select (tok_selexpr tok_allcolref))))",
       ast.toStringTree());
-    //same query as above less the "table" keyword KW_TABLE
+    //same query as above less the "table" keyword KW_table
     ast = parse("insert into page_view values(-1,2),(3,+4)");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_QUERY " +
-        "(TOK_FROM " +
-        "(TOK_VIRTUAL_TABLE " +
-        "(TOK_VIRTUAL_TABREF TOK_ANONYMOUS) " +
-        "(TOK_VALUES_TABLE (TOK_VALUE_ROW (- 1) 2) (TOK_VALUE_ROW 3 (+ 4))))) " +
-        "(TOK_INSERT (TOK_INSERT_INTO (TOK_TAB (TOK_TABNAME page_view))) " +
-        "(TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF))))",
+      "(tok_query " +
+        "(tok_from " +
+        "(tok_virtual_table " +
+        "(tok_virtual_tabref tok_anonymous) " +
+        "(tok_values_table (tok_value_row (- 1) 2) (tok_value_row 3 (+ 4))))) " +
+        "(tok_insert (tok_insert_into (tok_tab (tok_tabname page_view))) " +
+        "(tok_select (tok_selexpr tok_allcolref))))",
       ast.toStringTree());
   }
   @Test
   public void testMultiInsert() throws ParseException {
     ASTNode ast = parse("from S insert into T1 select a, b insert into T2 select c, d");
-    Assert.assertEquals("AST doesn't match", "(TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME S))) " +
-      "(TOK_INSERT (TOK_INSERT_INTO (TOK_TAB (TOK_TABNAME T1))) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL a)) (TOK_SELEXPR (TOK_TABLE_OR_COL b)))) " +
-      "(TOK_INSERT (TOK_INSERT_INTO (TOK_TAB (TOK_TABNAME T2))) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL c)) (TOK_SELEXPR (TOK_TABLE_OR_COL d)))))", ast.toStringTree());
+    Assert.assertEquals("AST doesn't match", "(tok_query (tok_from (tok_tabref (tok_tabname s))) " +
+      "(tok_insert (tok_insert_into (tok_tab (tok_tabname t1))) (tok_select (tok_selexpr (tok_table_or_col a)) (tok_selexpr (tok_table_or_col b)))) " +
+      "(tok_insert (tok_insert_into (tok_tab (tok_tabname t2))) (tok_select (tok_selexpr (tok_table_or_col c)) (tok_selexpr (tok_table_or_col d)))))", ast.toStringTree());
   }
 }

http://git-wip-us.apache.org/repos/asf/hive/blob/54858565/ql/src/test/org/apache/hadoop/hive/ql/parse/TestQBSubQuery.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestQBSubQuery.java b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestQBSubQuery.java
index 77ff79a..f6f0abb 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestQBSubQuery.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestQBSubQuery.java
@@ -21,25 +21,24 @@ package org.apache.hadoop.hive.ql.parse;
 import java.util.ArrayList;
 import java.util.List;
 
-import junit.framework.Assert;
-
 import org.apache.hadoop.hive.conf.HiveConf;
 import org.apache.hadoop.hive.ql.session.SessionState;
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
 public class TestQBSubQuery {
   static HiveConf conf;
-  
+
   private static String IN_QUERY = " select * " +
   		"from src " +
   		"where src.key in (select key from src s1 where s1.key > '9' and s1.value > '9') ";
-  
+
   private static String IN_QUERY2 = " select * " +
       "from src " +
       "where src.key in (select key from src s1 where s1.key > '9' and s1.value > '9') and value > '9'";
-  
+
   private static String QUERY3 = "select p_mfgr, min(p_size), rank() over(partition by p_mfgr) as r from part group by p_mfgr";
 
   ParseDriver pd;
@@ -61,73 +60,72 @@ public class TestQBSubQuery {
     ASTNode nd = pd.parse(query);
     return (ASTNode) nd.getChild(0);
   }
-  
+
   @Test
   public void testExtractSubQueries() throws Exception {
     ASTNode ast = parse(IN_QUERY);
     ASTNode where = where(ast);
     List<ASTNode> sqs = SubQueryUtils.findSubQueries((ASTNode) where.getChild(0));
-    Assert.assertEquals(sqs.size(), 1);
-    
+    Assert.assertEquals(1,sqs.size());
+
     ASTNode sq = sqs.get(0);
-    Assert.assertEquals(sq.toStringTree(),
-        "(TOK_SUBQUERY_EXPR (TOK_SUBQUERY_OP in) (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME src) s1)) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL key))) (TOK_WHERE (and (> (. (TOK_TABLE_OR_COL s1) key) '9') (> (. (TOK_TABLE_OR_COL s1) value) '9'))))) (. (TOK_TABLE_OR_COL src) key))"
-        );
+    Assert.assertEquals("(tok_subquery_expr (tok_subquery_op in) (tok_query (tok_from (tok_tabref (tok_tabname src) s1)) (tok_insert (tok_destination (tok_dir tok_tmp_file)) (tok_select (tok_selexpr (tok_table_or_col key))) (tok_where (and (> (. (tok_table_or_col s1) key) '9') (> (. (tok_table_or_col s1) value) '9'))))) (. (tok_table_or_col src) key))"
+        ,sq.toStringTree());
   }
-  
+
   @Test
   public void testExtractConjuncts() throws Exception {
     ASTNode ast = parse(IN_QUERY);
     ASTNode where = where(ast);
-    List<ASTNode> sqs = SubQueryUtils.findSubQueries((ASTNode) where.getChild(0));    
+    List<ASTNode> sqs = SubQueryUtils.findSubQueries((ASTNode) where.getChild(0));
     ASTNode sq = sqs.get(0);
-    
+
     ASTNode sqWhere = where((ASTNode) sq.getChild(1));
-    
+
     List<ASTNode> conjuncts = new ArrayList<ASTNode>();
     SubQueryUtils.extractConjuncts((ASTNode) sqWhere.getChild(0), conjuncts);
-    Assert.assertEquals(conjuncts.size(), 2);
-    
-    Assert.assertEquals(conjuncts.get(0).toStringTree(), "(> (. (TOK_TABLE_OR_COL s1) key) '9')");
-    Assert.assertEquals(conjuncts.get(1).toStringTree(), "(> (. (TOK_TABLE_OR_COL s1) value) '9')");
+    Assert.assertEquals(2, conjuncts.size());
+
+    Assert.assertEquals("(> (. (tok_table_or_col s1) key) '9')", conjuncts.get(0).toStringTree());
+    Assert.assertEquals("(> (. (tok_table_or_col s1) value) '9')", conjuncts.get(1).toStringTree());
   }
-  
+
   @Test
   public void testRewriteOuterQueryWhere() throws Exception {
     ASTNode ast = parse(IN_QUERY);
     ASTNode where = where(ast);
-    List<ASTNode> sqs = SubQueryUtils.findSubQueries((ASTNode) where.getChild(0));    
+    List<ASTNode> sqs = SubQueryUtils.findSubQueries((ASTNode) where.getChild(0));
     ASTNode sq = sqs.get(0);
-    
+
     ASTNode newWhere = SubQueryUtils.rewriteParentQueryWhere((ASTNode) where.getChild(0), sq);
-    Assert.assertEquals(newWhere.toStringTree(), "(= 1 1)");
+    Assert.assertEquals("(= 1 1)",newWhere.toStringTree());
   }
-  
+
   @Test
   public void testRewriteOuterQueryWhere2() throws Exception {
     ASTNode ast = parse(IN_QUERY2);
     ASTNode where = where(ast);
-    List<ASTNode> sqs = SubQueryUtils.findSubQueries((ASTNode) where.getChild(0));    
+    List<ASTNode> sqs = SubQueryUtils.findSubQueries((ASTNode) where.getChild(0));
     ASTNode sq = sqs.get(0);
-    
+
     ASTNode newWhere = SubQueryUtils.rewriteParentQueryWhere((ASTNode) where.getChild(0), sq);
-    Assert.assertEquals(newWhere.toStringTree(), "(> (TOK_TABLE_OR_COL value) '9')");
+    Assert.assertEquals("(> (tok_table_or_col value) '9')",newWhere.toStringTree());
   }
-  
+
   @Test
   public void testCheckAggOrWindowing() throws Exception {
     ASTNode ast = parse(QUERY3);
     ASTNode select = select(ast);
-    
-    Assert.assertEquals(SubQueryUtils.checkAggOrWindowing((ASTNode) select.getChild(0)), 0);
-    Assert.assertEquals(SubQueryUtils.checkAggOrWindowing((ASTNode) select.getChild(1)), 1);
-    Assert.assertEquals(SubQueryUtils.checkAggOrWindowing((ASTNode) select.getChild(2)), 2);
+
+    Assert.assertEquals(0, SubQueryUtils.checkAggOrWindowing((ASTNode) select.getChild(0)));
+    Assert.assertEquals(1, SubQueryUtils.checkAggOrWindowing((ASTNode) select.getChild(1)));
+    Assert.assertEquals(2, SubQueryUtils.checkAggOrWindowing((ASTNode) select.getChild(2)));
   }
-  
+
   private ASTNode where(ASTNode qry) {
     return (ASTNode) qry.getChild(1).getChild(2);
   }
-  
+
   private ASTNode select(ASTNode qry) {
     return (ASTNode) qry.getChild(1).getChild(1);
   }

http://git-wip-us.apache.org/repos/asf/hive/blob/54858565/ql/src/test/org/apache/hadoop/hive/ql/parse/TestSQL11ReservedKeyWordsPositive.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestSQL11ReservedKeyWordsPositive.java b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestSQL11ReservedKeyWordsPositive.java
index 2a68899..d0e6132 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestSQL11ReservedKeyWordsPositive.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestSQL11ReservedKeyWordsPositive.java
@@ -65,7 +65,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME ALL) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname all) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -75,7 +75,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME ALTER) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname alter) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -85,7 +85,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME ARRAY) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname array) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -95,7 +95,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME AS) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname as) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -105,7 +105,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME AUTHORIZATION) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname authorization) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -115,7 +115,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME BETWEEN) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname between) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -125,7 +125,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME BIGINT) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname bigint) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -135,7 +135,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME BINARY) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname binary) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -145,7 +145,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME BOOLEAN) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname boolean) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -155,7 +155,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME BOTH) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname both) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -165,7 +165,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME BY) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname by) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -175,7 +175,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME CREATE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname create) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -185,7 +185,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME CUBE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname cube) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -195,7 +195,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME CURRENT_DATE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname current_date) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -205,7 +205,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME CURRENT_TIMESTAMP) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname current_timestamp) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -215,7 +215,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME CURSOR) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname cursor) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -225,7 +225,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME DATE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname date) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -235,7 +235,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME DECIMAL) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname decimal) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -245,7 +245,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME DELETE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname delete) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -255,7 +255,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME DESCRIBE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname describe) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -265,7 +265,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME DOUBLE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname double) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -275,7 +275,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME DROP) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname drop) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -285,7 +285,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME EXISTS) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname exists) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -295,7 +295,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME EXTERNAL) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname external) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -305,7 +305,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME FALSE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname false) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -315,7 +315,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME FETCH) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname fetch) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -325,7 +325,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME FLOAT) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname float) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -335,7 +335,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME FOR) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname for) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -345,7 +345,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME FULL) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname full) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -355,7 +355,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME GRANT) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname grant) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -365,7 +365,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME GROUP) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname group) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -375,7 +375,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME GROUPING) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname grouping) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -385,7 +385,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME IMPORT) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname import) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -395,7 +395,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME IN) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname in) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -405,7 +405,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME INNER) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname inner) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -415,7 +415,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME INSERT) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname insert) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -425,7 +425,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME INT) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname int) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -435,7 +435,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME INTERSECT) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname intersect) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -445,7 +445,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME INTO) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname into) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -455,7 +455,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME IS) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname is) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -465,7 +465,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME LATERAL) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname lateral) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -475,7 +475,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME LEFT) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname left) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -485,7 +485,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME LIKE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname like) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -495,7 +495,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME LOCAL) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname local) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -505,7 +505,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME NONE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname none) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -515,7 +515,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME NULL) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname null) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -525,7 +525,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME OF) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname of) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -535,7 +535,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME ORDER) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname order) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -545,7 +545,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME OUT) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname out) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -555,7 +555,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME OUTER) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname outer) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -565,7 +565,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME PARTITION) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname partition) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -575,7 +575,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME PERCENT) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname percent) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -585,7 +585,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME PROCEDURE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname procedure) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -595,7 +595,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME RANGE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname range) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -605,7 +605,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME READS) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname reads) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -615,7 +615,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME REVOKE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname revoke) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -625,7 +625,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME RIGHT) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname right) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -635,7 +635,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME ROLLUP) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname rollup) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -645,7 +645,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME ROW) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname row) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -655,7 +655,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME ROWS) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname rows) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -665,7 +665,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME SET) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname set) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -675,7 +675,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME SMALLINT) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname smallint) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -685,7 +685,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME TABLE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname table) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -695,7 +695,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME TIMESTAMP) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname timestamp) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -705,7 +705,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME TO) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname to) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -715,7 +715,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME TRIGGER) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname trigger) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -725,7 +725,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME TRUE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname true) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -735,7 +735,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME TRUNCATE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname truncate) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -745,7 +745,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME UNION) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname union) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -755,7 +755,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME UPDATE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname update) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -765,7 +765,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME USER) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname user) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -775,7 +775,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME USING) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname using) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -785,7 +785,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME VALUES) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname values) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -795,7 +795,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME WITH) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname with) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -806,7 +806,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME RLIKE) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname rlike) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 
@@ -816,7 +816,7 @@ public class TestSQL11ReservedKeyWordsPositive {
     Assert
         .assertEquals(
             "AST doesn't match",
-            "(TOK_CREATETABLE (TOK_TABNAME REGEXP) TOK_LIKETABLE (TOK_TABCOLLIST (TOK_TABCOL col TOK_STRING)))",
+            "(tok_createtable (tok_tabname regexp) tok_liketable (tok_tabcollist (tok_tabcol col tok_string)))",
             ast.toStringTree());
   }
 }

http://git-wip-us.apache.org/repos/asf/hive/blob/54858565/ql/src/test/org/apache/hadoop/hive/ql/parse/positive/TestTransactionStatement.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/parse/positive/TestTransactionStatement.java b/ql/src/test/org/apache/hadoop/hive/ql/parse/positive/TestTransactionStatement.java
index b7f8263..4c8fabb 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/parse/positive/TestTransactionStatement.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/parse/positive/TestTransactionStatement.java
@@ -30,7 +30,6 @@ import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-import java.io.File;
 import java.io.IOException;
 
 /**
@@ -65,38 +64,38 @@ public class TestTransactionStatement {
   public void testTxnStart() throws ParseException {
     ASTNode ast = parse("START TRANSACTION");
     Assert.assertEquals("AST doesn't match",
-      "TOK_START_TRANSACTION", ast.toStringTree());
-    
+      "tok_start_transaction", ast.toStringTree());
+
     ast = parse("START TRANSACTION ISOLATION LEVEL SNAPSHOT");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_START_TRANSACTION (TOK_ISOLATION_LEVEL TOK_ISOLATION_SNAPSHOT))", ast.toStringTree());
-    
+      "(tok_start_transaction (tok_isolation_level tok_isolation_snapshot))", ast.toStringTree());
+
     ast = parse("START TRANSACTION READ ONLY");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_START_TRANSACTION (TOK_TXN_ACCESS_MODE TOK_TXN_READ_ONLY))", ast.toStringTree());
-    
+      "(tok_start_transaction (tok_txn_access_mode tok_txn_read_only))", ast.toStringTree());
+
     ast = parse("START TRANSACTION READ WRITE, ISOLATION LEVEL SNAPSHOT");
     Assert.assertEquals("AST doesn't match",
-      "(TOK_START_TRANSACTION (TOK_TXN_ACCESS_MODE TOK_TXN_READ_WRITE) (TOK_ISOLATION_LEVEL TOK_ISOLATION_SNAPSHOT))", ast.toStringTree());
-    
+      "(tok_start_transaction (tok_txn_access_mode tok_txn_read_write) (tok_isolation_level tok_isolation_snapshot))", ast.toStringTree());
+
   }
   @Test
   public void testTxnCommitRollback() throws ParseException {
     ASTNode ast = parse("COMMIT");
-    Assert.assertEquals("AST doesn't match", "TOK_COMMIT", ast.toStringTree());
+    Assert.assertEquals("AST doesn't match", "tok_commit", ast.toStringTree());
     ast = parse("COMMIT WORK");
-    Assert.assertEquals("AST doesn't match", "TOK_COMMIT", ast.toStringTree());
+    Assert.assertEquals("AST doesn't match", "tok_commit", ast.toStringTree());
     ast = parse("ROLLBACK");
-    Assert.assertEquals("AST doesn't match", "TOK_ROLLBACK", ast.toStringTree());
+    Assert.assertEquals("AST doesn't match", "tok_rollback", ast.toStringTree());
     ast = parse("ROLLBACK WORK");
-    Assert.assertEquals("AST doesn't match", "TOK_ROLLBACK", ast.toStringTree());
+    Assert.assertEquals("AST doesn't match", "tok_rollback", ast.toStringTree());
   }
-  
+
   @Test
   public void testAutoCommit() throws ParseException {
     ASTNode ast = parse("SET AUTOCOMMIT TRUE");
-    Assert.assertEquals("AST doesn't match", "(TOK_SET_AUTOCOMMIT TOK_TRUE)", ast.toStringTree());
+    Assert.assertEquals("AST doesn't match", "(tok_set_autocommit tok_true)", ast.toStringTree());
     ast = parse("SET AUTOCOMMIT FALSE");
-    Assert.assertEquals("AST doesn't match", "(TOK_SET_AUTOCOMMIT TOK_FALSE)", ast.toStringTree());
+    Assert.assertEquals("AST doesn't match", "(tok_set_autocommit tok_false)", ast.toStringTree());
   }
 }

http://git-wip-us.apache.org/repos/asf/hive/blob/54858565/ql/src/test/queries/clientpositive/groupby_duplicate_key.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/groupby_duplicate_key.q b/ql/src/test/queries/clientpositive/groupby_duplicate_key.q
index 7f38efe..1909873 100644
--- a/ql/src/test/queries/clientpositive/groupby_duplicate_key.q
+++ b/ql/src/test/queries/clientpositive/groupby_duplicate_key.q
@@ -11,3 +11,7 @@ create table dummy as
 select distinct key, "X" as dummy1, "X" as dummy2 from src tablesample (10 rows);
 
 select key,dummy1,dummy2 from dummy;
+
+explain
+select max('pants'), max('pANTS') from src group by key limit 1;
+select max('pants'), max('pANTS') from src group by key limit 1;

http://git-wip-us.apache.org/repos/asf/hive/blob/54858565/ql/src/test/results/clientnegative/join_cond_unqual_ambiguous_vc.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientnegative/join_cond_unqual_ambiguous_vc.q.out b/ql/src/test/results/clientnegative/join_cond_unqual_ambiguous_vc.q.out
index 06c1ab5..3d9735a 100644
--- a/ql/src/test/results/clientnegative/join_cond_unqual_ambiguous_vc.q.out
+++ b/ql/src/test/results/clientnegative/join_cond_unqual_ambiguous_vc.q.out
@@ -1 +1 @@
-FAILED: SemanticException Column input__file__name Found in more than One Tables/Subqueries
+FAILED: SemanticException Column INPUT__FILE__NAME Found in more than One Tables/Subqueries

http://git-wip-us.apache.org/repos/asf/hive/blob/54858565/ql/src/test/results/clientpositive/case_sensitivity.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/case_sensitivity.q.out b/ql/src/test/results/clientpositive/case_sensitivity.q.out
index a5b14e8..b3969cc 100644
--- a/ql/src/test/results/clientpositive/case_sensitivity.q.out
+++ b/ql/src/test/results/clientpositive/case_sensitivity.q.out
@@ -35,7 +35,7 @@ STAGE PLANS:
               predicate: (lint[0] > 0) (type: boolean)
               Statistics: Num rows: 3 Data size: 837 Basic stats: COMPLETE Column stats: NONE
               Select Operator
-                expressions: lint[1] (type: int), lintstring[0].MYSTRING (type: string)
+                expressions: lint[1] (type: int), lintstring[0].mystring (type: string)
                 outputColumnNames: _col0, _col1
                 Statistics: Num rows: 3 Data size: 837 Basic stats: COMPLETE Column stats: NONE
                 File Output Operator

http://git-wip-us.apache.org/repos/asf/hive/blob/54858565/ql/src/test/results/clientpositive/constant_prop.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/constant_prop.q.out b/ql/src/test/results/clientpositive/constant_prop.q.out
index 1199709..001a3c8 100644
--- a/ql/src/test/results/clientpositive/constant_prop.q.out
+++ b/ql/src/test/results/clientpositive/constant_prop.q.out
@@ -33,7 +33,7 @@ STAGE PLANS:
           Row Limit Per Split: 1
           Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: COMPLETE
           Select Operator
-            expressions: named_struct(if(array_contains(array(1,2), 3), 'F1', 'B1'),1,if(array_contains(map_keys(map('b':'x')), 'b'), 'F2', 'B2'),2) (type: struct<b1:int,f2:int>), named_struct(if(array_contains(array(1,2), 3), 'F1', 'B1'),1,if(array_contains(map_keys(map('b':'x')), 'b'), 'F2', 'B2'),2).F2 (type: int)
+            expressions: named_struct(if(array_contains(array(1,2), 3), 'F1', 'B1'),1,if(array_contains(map_keys(map('b':'x')), 'b'), 'F2', 'B2'),2) (type: struct<b1:int,f2:int>), named_struct(if(array_contains(array(1,2), 3), 'F1', 'B1'),1,if(array_contains(map_keys(map('b':'x')), 'b'), 'F2', 'B2'),2).f2 (type: int)
             outputColumnNames: _col0, _col1
             Statistics: Num rows: 500 Data size: 30000 Basic stats: COMPLETE Column stats: COMPLETE
             ListSink

http://git-wip-us.apache.org/repos/asf/hive/blob/54858565/ql/src/test/results/clientpositive/groupby_duplicate_key.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby_duplicate_key.q.out b/ql/src/test/results/clientpositive/groupby_duplicate_key.q.out
index fc95f41..8ca8866 100644
--- a/ql/src/test/results/clientpositive/groupby_duplicate_key.q.out
+++ b/ql/src/test/results/clientpositive/groupby_duplicate_key.q.out
@@ -175,3 +175,74 @@ POSTHOOK: Input: default@dummy
 484	X	X
 86	X	X
 98	X	X
+PREHOOK: query: explain
+select max('pants'), max('pANTS') from src group by key limit 1
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+select max('pants'), max('pANTS') from src group by key limit 1
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-1 is a root stage
+  Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+  Stage: Stage-1
+    Map Reduce
+      Map Operator Tree:
+          TableScan
+            alias: src
+            Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+            Select Operator
+              expressions: key (type: string)
+              outputColumnNames: key
+              Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+              Group By Operator
+                aggregations: max('pants'), max('pANTS')
+                keys: key (type: string)
+                mode: hash
+                outputColumnNames: _col0, _col1, _col2
+                Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+                Reduce Output Operator
+                  key expressions: _col0 (type: string)
+                  sort order: +
+                  Map-reduce partition columns: _col0 (type: string)
+                  Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+                  TopN Hash Memory Usage: 0.1
+                  value expressions: _col1 (type: string), _col2 (type: string)
+      Reduce Operator Tree:
+        Group By Operator
+          aggregations: max(VALUE._col0), max(VALUE._col1)
+          keys: KEY._col0 (type: string)
+          mode: mergepartial
+          outputColumnNames: _col0, _col1, _col2
+          Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
+          Select Operator
+            expressions: _col1 (type: string), _col2 (type: string)
+            outputColumnNames: _col0, _col1
+            Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
+            Limit
+              Number of rows: 1
+              Statistics: Num rows: 1 Data size: 10 Basic stats: COMPLETE Column stats: NONE
+              File Output Operator
+                compressed: false
+                Statistics: Num rows: 1 Data size: 10 Basic stats: COMPLETE Column stats: NONE
+                table:
+                    input format: org.apache.hadoop.mapred.TextInputFormat
+                    output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
+                    serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+  Stage: Stage-0
+    Fetch Operator
+      limit: 1
+      Processor Tree:
+        ListSink
+
+PREHOOK: query: select max('pants'), max('pANTS') from src group by key limit 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+#### A masked pattern was here ####
+POSTHOOK: query: select max('pants'), max('pANTS') from src group by key limit 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+#### A masked pattern was here ####
+pants	pANTS