You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by se...@apache.org on 2015/09/28 21:10:03 UTC

[01/43] hive git commit: HIVE-10624: Update the initial script to make beeline bucked cli as default and allow user choose old hive cli by env (Ferdinand via Xuefu)

Repository: hive
Updated Branches:
  refs/heads/llap 3c5b4ceda -> bf8acfb3b


HIVE-10624: Update the initial script to make beeline bucked cli as default and allow user choose old hive cli by env (Ferdinand via Xuefu)


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

Branch: refs/heads/llap
Commit: 2ddd86de5e005eb0457cc8bf0da47aa6c4d99c27
Parents: 9bc1b3b
Author: Xuefu Zhang <xz...@Cloudera.com>
Authored: Sat May 9 03:58:25 2015 -0700
Committer: Xuefu Zhang <xz...@Cloudera.com>
Committed: Sat May 9 03:58:25 2015 -0700

----------------------------------------------------------------------
 bin/ext/cli.sh              | 21 +++++++++++++++------
 bin/ext/util/execHiveCmd.sh |  6 ++++--
 2 files changed, 19 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/2ddd86de/bin/ext/cli.sh
----------------------------------------------------------------------
diff --git a/bin/ext/cli.sh b/bin/ext/cli.sh
index 914aae3..733705a 100644
--- a/bin/ext/cli.sh
+++ b/bin/ext/cli.sh
@@ -16,13 +16,22 @@
 THISSERVICE=cli
 export SERVICE_LIST="${SERVICE_LIST}${THISSERVICE} "
 
+updateCli() {
+  if [ $USE_DEPRECATED_CLI == "true" ]; then
+    CLASS=org.apache.hadoop.hive.cli.CliDriver
+    JAR=hive-cli-*.jar
+  else
+    CLASS=org.apache.hive.beeline.cli.HiveCli
+    JAR=hive-beeline-*.jar
+  fi
+}
+
 cli () {
-  CLASS=org.apache.hadoop.hive.cli.CliDriver
-  execHiveCmd $CLASS "$@"
+  updateCli
+  execHiveCmd $CLASS $JAR "$@"
 }
 
 cli_help () {
-  CLASS=org.apache.hadoop.hive.cli.CliDriver
-  execHiveCmd $CLASS "--help"
-} 
-
+  updateCli
+  execHiveCmd $CLASS $JAR "--help"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/hive/blob/2ddd86de/bin/ext/util/execHiveCmd.sh
----------------------------------------------------------------------
diff --git a/bin/ext/util/execHiveCmd.sh b/bin/ext/util/execHiveCmd.sh
index 167cc40..e46ec3c 100644
--- a/bin/ext/util/execHiveCmd.sh
+++ b/bin/ext/util/execHiveCmd.sh
@@ -16,9 +16,11 @@
 execHiveCmd () {
   CLASS=$1;
   shift;
+  JAR=$1
+  shift;
 
   # cli specific code
-  if [ ! -f ${HIVE_LIB}/hive-cli-*.jar ]; then
+  if [ ! -f ${HIVE_LIB}/$JAR ]; then
     echo "Missing Hive CLI Jar"
     exit 3;
   fi
@@ -28,5 +30,5 @@ execHiveCmd () {
   fi
 
   # hadoop 20 or newer - skip the aux_jars option. picked up from hiveconf
-  exec $HADOOP jar ${HIVE_LIB}/hive-cli-*.jar $CLASS $HIVE_OPTS "$@"
+  exec $HADOOP jar ${HIVE_LIB}/$JAR $CLASS $HIVE_OPTS "$@"
 }


[33/43] hive git commit: HIVE-11613 : schematool should return non zero exit status for info command, if state is inconsistent (Thejas Nair, reviewed by Prasad Mujumdar)

Posted by se...@apache.org.
HIVE-11613 : schematool should return non zero exit status for info command, if state is inconsistent (Thejas Nair, reviewed by Prasad Mujumdar)


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

Branch: refs/heads/llap
Commit: a4eb3c5d4ce06e7c914775870618f46f4898b8ab
Parents: 6c2d71c
Author: Thejas Nair <th...@hortonworks.com>
Authored: Fri Sep 25 13:10:49 2015 -0700
Committer: Thejas Nair <th...@hortonworks.com>
Committed: Fri Sep 25 13:10:49 2015 -0700

----------------------------------------------------------------------
 .../org/apache/hive/beeline/HiveSchemaTool.java | 22 +++++++++++++-------
 1 file changed, 15 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/a4eb3c5d/beeline/src/java/org/apache/hive/beeline/HiveSchemaTool.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/HiveSchemaTool.java b/beeline/src/java/org/apache/hive/beeline/HiveSchemaTool.java
index d5d635a..9e72a3a 100644
--- a/beeline/src/java/org/apache/hive/beeline/HiveSchemaTool.java
+++ b/beeline/src/java/org/apache/hive/beeline/HiveSchemaTool.java
@@ -125,10 +125,12 @@ public class HiveSchemaTool {
    */
   public void showInfo() throws HiveMetaException {
     Connection metastoreConn = getConnectionToMetastore(true);
-    System.out.println("Hive distribution version:\t " +
-        MetaStoreSchemaInfo.getHiveSchemaVersion());
-    System.out.println("Metastore schema version:\t " +
-        getMetaStoreSchemaVersion(metastoreConn));
+    String hiveVersion = MetaStoreSchemaInfo.getHiveSchemaVersion();
+    String dbVersion = getMetaStoreSchemaVersion(metastoreConn);
+    System.out.println("Hive distribution version:\t " + hiveVersion);
+    System.out.println("Metastore schema version:\t " + dbVersion);
+    assertSameVersion(hiveVersion, dbVersion);
+
   }
 
   // read schema version from metastore
@@ -183,9 +185,15 @@ public class HiveSchemaTool {
     String newSchemaVersion = getMetaStoreSchemaVersion(
         getConnectionToMetastore(false));
     // verify that the new version is added to schema
-    if (!MetaStoreSchemaInfo.getHiveSchemaVersion().equalsIgnoreCase(newSchemaVersion)) {
-      throw new HiveMetaException("Expected schema version " + MetaStoreSchemaInfo.getHiveSchemaVersion() +
-        ", found version " + newSchemaVersion);
+    assertSameVersion(MetaStoreSchemaInfo.getHiveSchemaVersion(), newSchemaVersion);
+
+  }
+
+  private void assertSameVersion(String hiveSchemaVersion, String dbSchemaVersion)
+      throws HiveMetaException {
+    if (!hiveSchemaVersion.equalsIgnoreCase(dbSchemaVersion)) {
+      throw new HiveMetaException("Expected schema version " + hiveSchemaVersion
+          + ", found version " + dbSchemaVersion);
     }
   }
 


[05/43] hive git commit: HIVE-10821 Beeline-CLI: Implement CLI source command using Beeline functionality(Ferdinand Xu, Reviewed By Zhang Xuefu and Chinna Rao Lalam)

Posted by se...@apache.org.
HIVE-10821 Beeline-CLI: Implement CLI source command using Beeline functionality(Ferdinand Xu, Reviewed By Zhang Xuefu and Chinna Rao Lalam)


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

Branch: refs/heads/llap
Commit: 0b38cd03d15ba0f2941c1ca8a64ea69c7ff87a45
Parents: 328ac4d
Author: Ferdinand Xu <ch...@intel.com>
Authored: Tue Jun 2 20:03:51 2015 -0400
Committer: Ferdinand Xu <ch...@intel.com>
Committed: Tue Jun 2 20:03:51 2015 -0400

----------------------------------------------------------------------
 .../java/org/apache/hive/beeline/BeeLine.java   | 75 ++++++++++-----
 .../java/org/apache/hive/beeline/Commands.java  |  1 -
 .../apache/hive/beeline/cli/TestHiveCli.java    | 97 +++++++++++---------
 3 files changed, 106 insertions(+), 67 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/0b38cd03/beeline/src/java/org/apache/hive/beeline/BeeLine.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLine.java b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
index 4a82635..45a7e87 100644
--- a/beeline/src/java/org/apache/hive/beeline/BeeLine.java
+++ b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
@@ -824,12 +824,13 @@ public class BeeLine implements Closeable {
         }
       } else {
         int code = initArgsFromCliVars(args);
+        defaultConnect(false);
         if (code != 0)
           return code;
       }
 
       if (getOpts().getScriptFile() != null) {
-        return executeFile(getOpts().getScriptFile());
+        return executeFile(getOpts().getScriptFile(), false);
       }
       try {
         info(getApplicationTitle());
@@ -848,7 +849,7 @@ public class BeeLine implements Closeable {
     if (initFile != null) {
       info("Running init script " + initFile);
       try {
-        return executeFile(initFile);
+        return executeFile(initFile, false);
       } finally {
         exit = false;
       }
@@ -883,7 +884,7 @@ public class BeeLine implements Closeable {
     return ERRNO_OK;
   }
 
-  private int executeFile(String fileName) {
+  private int executeFile(String fileName, boolean isSourceCMD) {
     FileInputStream initStream = null;
     try {
       initStream = new FileInputStream(fileName);
@@ -893,27 +894,49 @@ public class BeeLine implements Closeable {
       return ERRNO_OTHER;
     } finally {
       IOUtils.closeStream(initStream);
-      consoleReader = null;
-      output("");   // dummy new line
+      if(!isSourceCMD) {
+        consoleReader = null;
+        output("");   // dummy new line
+      }
+    }
+  }
+
+  private boolean isSourceCMD(String cmd) {
+    if (cmd == null || cmd.isEmpty())
+      return false;
+    String[] tokens = tokenizeCmd(cmd);
+    return tokens[0].equalsIgnoreCase("!source");
+  }
+
+  private boolean sourceFile(String cmd) {
+    String[] tokens = tokenizeCmd(cmd);
+    String cmd_1 = getFirstCmd(cmd, tokens[0].length());
+    File sourceFile = new File(cmd_1);
+    if (!sourceFile.isFile()) {
+      return false;
+    } else {
+      boolean ret = (executeFile(cmd_1, true) == ERRNO_OK);
+      // For source command, we should not exit even when meeting some empty line.
+      setExit(false);
+      return ret;
     }
   }
 
   private int execute(ConsoleReader reader, boolean exitOnError) {
     String line;
-    if (!isBeeLine) {
-      if (defaultConnect(exitOnError) != ERRNO_OK && exitOnError) {
-        return ERRNO_OTHER;
-      }
-    }
     while (!exit) {
       try {
         // Execute one instruction; terminate on executing a script if there is an error
         // in silent mode, prevent the query and prompt being echoed back to terminal
-        line = (getOpts().isSilent() && getOpts().getScriptFile() != null) ?
-                 reader.readLine(null, ConsoleReader.NULL_MASK) : reader.readLine(getPrompt());
+        line = (getOpts().isSilent() && getOpts().getScriptFile() != null) ? reader
+            .readLine(null, ConsoleReader.NULL_MASK) : reader.readLine(getPrompt());
+
+        // trim line
+        line = (line == null) ? null : line.trim();
         if (!isBeeLine) {
           line = cliToBeelineCmd(line);
         }
+
         if (!dispatch(line) && exitOnError) {
           return ERRNO_OTHER;
         }
@@ -1011,7 +1034,6 @@ public class BeeLine implements Closeable {
     return consoleReader;
   }
 
-
   void usage() {
     output(loc("cmd-usage"));
   }
@@ -1020,19 +1042,23 @@ public class BeeLine implements Closeable {
     return cmd.split("\\s+");
   }
 
-  public String cliToBeelineCmd(String cmd) {
+  /**
+   * Extract and clean up the first command in the input.
+   */
+  private String getFirstCmd(String cmd, int length) {
+    return cmd.substring(length).trim();
+  }
+
+  private String cliToBeelineCmd(String cmd) {
     if (cmd == null)
       return null;
-    String cmd_trimmed = cmd.trim();
-    String[] tokens = tokenizeCmd(cmd_trimmed);
-
-    if (cmd_trimmed.equalsIgnoreCase("quit") || cmd_trimmed.equalsIgnoreCase("exit")) {
+    String[] tokens = tokenizeCmd(cmd);
+    if (cmd.equalsIgnoreCase("quit") || cmd.equalsIgnoreCase("exit")) {
       return null;
     } else if (tokens[0].equalsIgnoreCase("source")) {
-      //TODO
-      return cmd;
-    } else if (cmd_trimmed.startsWith("!")) {
-      String shell_cmd = cmd_trimmed.substring(1);
+      return COMMAND_PREFIX + cmd;
+    } else if (cmd.startsWith("!")) {
+      String shell_cmd = cmd.substring(1);
       return "!sh " + shell_cmd;
     } else { // local mode
       // command like dfs
@@ -1040,7 +1066,6 @@ public class BeeLine implements Closeable {
     }
   }
 
-
   /**
    * Dispatch the specified line to the appropriate {@link CommandHandler}.
    *
@@ -1063,6 +1088,10 @@ public class BeeLine implements Closeable {
       return true;
     }
 
+    if(isSourceCMD(line)){
+      return sourceFile(line);
+    }
+
     line = line.trim();
 
     // save it to the current script, if any

http://git-wip-us.apache.org/repos/asf/hive/blob/0b38cd03/beeline/src/java/org/apache/hive/beeline/Commands.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/Commands.java b/beeline/src/java/org/apache/hive/beeline/Commands.java
index 4c60525..a42baa3 100644
--- a/beeline/src/java/org/apache/hive/beeline/Commands.java
+++ b/beeline/src/java/org/apache/hive/beeline/Commands.java
@@ -1188,7 +1188,6 @@ public class Commands {
     return true;
   }
 
-
   public boolean all(String line) {
     int index = beeLine.getDatabaseConnections().getIndex();
     boolean success = true;

http://git-wip-us.apache.org/repos/asf/hive/blob/0b38cd03/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
----------------------------------------------------------------------
diff --git a/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java b/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
index cc0b598..6cbb030 100644
--- a/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
+++ b/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
@@ -36,10 +36,15 @@ import java.io.PrintStream;
 
 public class TestHiveCli {
   private static final Log LOG = LogFactory.getLog(TestHiveCli.class.getName());
-
-  final static String CMD = "create database if not exists test;\ncreate table if not exists test" +
-      ".testTbl(a " +
-      "" + "string, b string);\n";
+  private static final int ERRNO_OK = 0;
+  private static final int ERRNO_ARGS = 1;
+  private static final int ERRNO_OTHER = 2;
+
+  private final static String SOURCE_CONTEXT =
+      "create table if not exists test.testSrcTbl(a string, b string);";
+  final static String CMD =
+      "create database if not exists test;\ncreate table if not exists test.testTbl(a string, b "
+          + "string);\n";
   private HiveCli cli;
   private OutputStream os;
   private PrintStream ps;
@@ -65,53 +70,53 @@ public class TestHiveCli {
     }
   }
 
-  private void verifyCMD(String CMD, String keywords, OutputStream os, String[] options, int
-      retCode) {
+  private void verifyCMD(String CMD, String keywords, OutputStream os, String[] options,
+      int retCode) {
     executeCMD(options, CMD, retCode);
     String output = os.toString();
     Assert.assertTrue(output.contains(keywords));
   }
 
-  @Test
-  public void testInValidCmd() {
-    verifyCMD("!lss\n", "Failed to execute lss", errS, null, 0);
+  @Test public void testInValidCmd() {
+    verifyCMD("!lss\n", "Failed to execute lss", errS, null, ERRNO_OK);
+  }
+
+  @Test public void testHelp() {
+    verifyCMD(null, "usage: hive", os, new String[] { "-H" }, ERRNO_ARGS);
   }
 
-  @Test
-  public void testHelp() {
-    verifyCMD(null, "usage: hive", os, new String[]{"-H"}, 1);
+  @Test public void testInvalidDatabaseOptions() {
+    verifyCMD("\nshow tables\nquit\n", "Database does not exist: invalidDB", errS,
+        new String[] { "--database", "invalidDB" }, ERRNO_OK);
   }
 
-  @Test
-  public void testInvalidDatabaseOptions() {
-    verifyCMD("\nshow tables\nquit\n", "Database does not exist: invalidDB", errS, new
-        String[]{"--database", "invalidDB"}, 0);
+  @Test public void testDatabaseOptions() {
+    verifyCMD("\nshow tables;\nquit;", "testTbl", os, new String[] { "--database", "test" },
+        ERRNO_OK);
   }
 
-  @Test
-  public void testDatabaseOptions() {
-    verifyCMD("\nshow tables;\nquit;", "testTbl", os, new String[]{"--database", "test"}, 0);
+  @Test public void testSourceCmd() {
+    File f = generateTmpFile(SOURCE_CONTEXT);
+    verifyCMD("source " + f.getPath() + "\n" + "desc testSrcTbl\n" + "quit\n", "col_name", os,
+        new String[] { "--database", "test" }, ERRNO_OK);
   }
 
-  @Test
-  public void testSqlFromCmd() {
-    verifyCMD(null, "", os, new String[]{"-e", "show databases;"}, 0);
+  @Test public void testSqlFromCmd() {
+    verifyCMD(null, "", os, new String[] { "-e", "show databases;" }, ERRNO_OK);
   }
 
-  @Test
-  public void testSqlFromCmdWithDBName() {
-    verifyCMD(null, "testTbl", os, new String[]{"-e", "show tables;", "--database", "test"}, 0);
+  @Test public void testSqlFromCmdWithDBName() {
+    verifyCMD(null, "testTbl", os, new String[] { "-e", "show tables;", "--database", "test" },
+        ERRNO_OK);
   }
 
-  @Test
-  public void testInvalidOptions() {
-    verifyCMD(null, "The '-e' and '-f' options cannot be specified simultaneously", errS, new
-        String[]{"-e", "show tables;", "-f", "path/to/file"}, 1);
+  @Test public void testInvalidOptions() {
+    verifyCMD(null, "The '-e' and '-f' options cannot be specified simultaneously", errS,
+        new String[] { "-e", "show tables;", "-f", "path/to/file" }, ERRNO_ARGS);
   }
 
-  @Test
-  public void testInvalidOptions2() {
-    verifyCMD(null, "Unrecognized option: -k", errS, new String[]{"-k"}, 1);
+  @Test public void testInvalidOptions2() {
+    verifyCMD(null, "Unrecognized option: -k", errS, new String[] { "-k" }, ERRNO_ARGS);
   }
 
   private void redirectOutputStream() {
@@ -124,30 +129,36 @@ public class TestHiveCli {
     System.setErr(errPs);
   }
 
-  private void initFileFromFile() {
+  private void initFromFile() {
+    tmp = generateTmpFile(CMD);
+    if (tmp == null) {
+      Assert.fail("Fail to create the initial file");
+    }
+    executeCMD(new String[] { "-f", "\"" + tmp.getAbsolutePath() + "\"" }, null, 0);
+  }
+
+  private File generateTmpFile(String context) {
+    File file = null;
     BufferedWriter bw = null;
     try {
-      // create a tmp file
-      tmp = File.createTempFile("test", ".sql");
-      bw = new BufferedWriter(new FileWriter(tmp));
-      bw.write(CMD);
+      file = File.createTempFile("test", ".sql");
+      bw = new BufferedWriter(new FileWriter(file));
+      bw.write(context);
     } catch (IOException e) {
       LOG.error("Failed to write tmp file due to the exception: " + e);
     } finally {
       IOUtils.closeQuietly(bw);
     }
-    executeCMD(new String[]{"-f", "\"" + tmp.getAbsolutePath() + "\""}, null, 0);
+    return file;
   }
 
-  @Before
-  public void setup() {
+  @Before public void setup() {
     cli = new HiveCli();
     redirectOutputStream();
-    initFileFromFile();
+    initFromFile();
   }
 
-  @After
-  public void tearDown() {
+  @After public void tearDown() {
     tmp.delete();
   }
 }


[16/43] hive git commit: HIVE-11280: Support executing script file from hdfs in new CLI [Beeline-CLI branch](Ferdinand Xu, reviewed by Xuefu Zhang)

Posted by se...@apache.org.
HIVE-11280: Support executing script file from hdfs in new CLI [Beeline-CLI branch](Ferdinand Xu, reviewed by Xuefu Zhang)


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

Branch: refs/heads/llap
Commit: 804f20a4dd7d77aced7c4973930ce453f71641fb
Parents: e6adedc
Author: Ferdinand Xu <ch...@intel.com>
Authored: Sun Jul 19 21:10:29 2015 -0400
Committer: Ferdinand Xu <ch...@intel.com>
Committed: Sun Jul 19 21:10:29 2015 -0400

----------------------------------------------------------------------
 .../java/org/apache/hive/beeline/BeeLine.java   | 23 +++++++++++++++++---
 .../apache/hive/beeline/cli/TestHiveCli.java    |  3 ++-
 2 files changed, 22 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/804f20a4/beeline/src/java/org/apache/hive/beeline/BeeLine.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLine.java b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
index d2b8590..c47b9fe 100644
--- a/beeline/src/java/org/apache/hive/beeline/BeeLine.java
+++ b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
@@ -22,6 +22,7 @@
  */
 package org.apache.hive.beeline;
 
+import java.io.BufferedReader;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.Closeable;
@@ -30,6 +31,7 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.InputStreamReader;
 import java.io.PrintStream;
 import java.io.SequenceInputStream;
 import java.lang.reflect.InvocationTargetException;
@@ -87,6 +89,8 @@ import org.apache.commons.cli.GnuParser;
 import org.apache.commons.cli.OptionBuilder;
 import org.apache.commons.cli.Options;
 import org.apache.commons.cli.ParseException;
+import org.apache.hadoop.fs.FSDataInputStream;
+import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.hive.conf.HiveConf;
 import org.apache.hadoop.io.IOUtils;
 import org.apache.hive.beeline.cli.CliOptionsProcessor;
@@ -889,9 +893,22 @@ public class BeeLine implements Closeable {
   }
 
   private int executeFile(String fileName) {
-    FileInputStream initStream = null;
+    InputStream initStream = null;
     try {
-      initStream = new FileInputStream(fileName);
+      if (!isBeeLine) {
+        org.apache.hadoop.fs.Path path = new org.apache.hadoop.fs.Path(fileName);
+        FileSystem fs;
+        HiveConf conf = getCommands().getHiveConf(true);
+        if (!path.toUri().isAbsolute()) {
+          fs = FileSystem.getLocal(conf);
+          path = fs.makeQualified(path);
+        } else {
+          fs = FileSystem.get(path.toUri(), conf);
+        }
+        initStream = fs.open(path);
+      } else {
+        initStream = new FileInputStream(fileName);
+      }
       return execute(getConsoleReader(initStream), !getOpts().getForce());
     } catch (Throwable t) {
       handleException(t);
@@ -973,7 +990,7 @@ public class BeeLine implements Closeable {
       handleException(e);
     }
 
-    if (inputStream instanceof FileInputStream) {
+    if (inputStream instanceof FileInputStream || inputStream instanceof FSDataInputStream) {
       // from script.. no need to load history and no need of completer, either
       return consoleReader;
     }

http://git-wip-us.apache.org/repos/asf/hive/blob/804f20a4/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
----------------------------------------------------------------------
diff --git a/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java b/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
index 542f1ee..c465eac 100644
--- a/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
+++ b/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
@@ -79,7 +79,8 @@ public class TestHiveCli {
     executeCMD(options, CMD, retCode);
     String output = os.toString();
     LOG.debug(output);
-    Assert.assertTrue("The expected keyword " + keywords + "doesn't occur in the output: " + output,
+    Assert.assertTrue(
+        "The expected keyword \"" + keywords + "\" doesn't occur in the output: " + output,
         output.contains(keywords));
   }
 


[35/43] hive git commit: Merge branch 'beeline-cli'

Posted by se...@apache.org.
Merge branch 'beeline-cli'


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

Branch: refs/heads/llap
Commit: e570e4f0c6c1105c2c0ce9ed9b5811f4cf102750
Parents: 02121a8 6b3e82d
Author: Ferdinand Xu <ch...@intel.com>
Authored: Sun Sep 27 21:04:38 2015 -0400
Committer: Ferdinand Xu <ch...@intel.com>
Committed: Sun Sep 27 21:04:38 2015 -0400

----------------------------------------------------------------------
 .../java/org/apache/hive/beeline/BeeLine.java   | 300 +++++++++---
 .../org/apache/hive/beeline/BeeLineOpts.java    |  43 +-
 .../hive/beeline/ClientCommandHookFactory.java  |  85 ++++
 .../org/apache/hive/beeline/ClientHook.java     |  33 ++
 .../java/org/apache/hive/beeline/Commands.java  | 486 ++++++++++++++-----
 .../hive/beeline/cli/CliOptionsProcessor.java   | 104 ++++
 .../org/apache/hive/beeline/cli/HiveCli.java    |  37 ++
 .../beeline/TestClientCommandHookFactory.java   |  32 ++
 .../apache/hive/beeline/cli/TestHiveCli.java    | 289 +++++++++++
 beeline/src/test/resources/hive-site.xml        |  37 ++
 bin/beeline                                     |   5 +
 bin/ext/cli.cmd                                 |  39 +-
 bin/ext/cli.sh                                  |  35 +-
 bin/ext/util/execHiveCmd.sh                     |   6 +-
 .../org/apache/hadoop/hive/cli/CliDriver.java   |  24 +-
 .../hadoop/hive/conf/HiveVariableSource.java    |  24 +
 .../hadoop/hive/conf/VariableSubstitution.java  |  70 +++
 .../hive/conf/TestVariableSubstitution.java     |  63 +++
 .../java/org/apache/hadoop/hive/ql/Driver.java  |  10 +-
 .../formatting/MetaDataPrettyFormatUtils.java   |  24 +-
 .../ql/parse/ColumnStatsSemanticAnalyzer.java   |  14 +-
 .../hive/ql/parse/VariableSubstitution.java     |  60 ---
 .../ql/processors/AddResourceProcessor.java     |  11 +-
 .../hive/ql/processors/CompileProcessor.java    |  11 +-
 .../ql/processors/DeleteResourceProcessor.java  |  11 +-
 .../hadoop/hive/ql/processors/DfsProcessor.java |  11 +-
 .../hadoop/hive/ql/processors/SetProcessor.java |  32 +-
 .../hadoop/hive/ql/session/SessionState.java    |  21 +
 .../clientpositive/describe_pretty.q.out        | 366 +++++++-------
 .../cli/operation/HiveCommandOperation.java     |  18 +-
 .../service/cli/operation/SQLOperation.java     |  14 +-
 31 files changed, 1828 insertions(+), 487 deletions(-)
----------------------------------------------------------------------



[12/43] hive git commit: HIVE-11191: Beeline-cli: support hive.cli.errors.ignore in new CLI(Ferdinand Xu, reviewed by Xuefu Zhang)

Posted by se...@apache.org.
HIVE-11191: Beeline-cli: support hive.cli.errors.ignore in new CLI(Ferdinand Xu, reviewed by Xuefu Zhang)


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

Branch: refs/heads/llap
Commit: eccfdf0ed7f1847ba1c0e3ad5aee0f2a6c9857c8
Parents: f589e2c
Author: Ferdinand Xu <ch...@intel.com>
Authored: Thu Jul 9 20:58:14 2015 -0400
Committer: Ferdinand Xu <ch...@intel.com>
Committed: Thu Jul 9 20:58:14 2015 -0400

----------------------------------------------------------------------
 .../java/org/apache/hive/beeline/BeeLine.java   | 37 ++++++++++++++++----
 .../org/apache/hive/beeline/BeeLineOpts.java    | 18 ++++++++++
 .../java/org/apache/hive/beeline/Commands.java  | 36 ++++++++++++++-----
 .../apache/hive/beeline/cli/TestHiveCli.java    |  3 +-
 4 files changed, 77 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/eccfdf0e/beeline/src/java/org/apache/hive/beeline/BeeLine.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLine.java b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
index c4dbcd4..7c53997 100644
--- a/beeline/src/java/org/apache/hive/beeline/BeeLine.java
+++ b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
@@ -87,7 +87,6 @@ import org.apache.commons.cli.GnuParser;
 import org.apache.commons.cli.OptionBuilder;
 import org.apache.commons.cli.Options;
 import org.apache.commons.cli.ParseException;
-import org.apache.hadoop.hive.conf.HiveConf;
 import org.apache.hadoop.io.IOUtils;
 import org.apache.hive.beeline.cli.CliOptionsProcessor;
 import org.apache.hive.jdbc.Utils;
@@ -406,10 +405,8 @@ public class BeeLine implements Closeable {
   String getApplicationTitle() {
     Package pack = BeeLine.class.getPackage();
 
-    return loc("app-introduction", new Object[] {
-        "Beeline",
-        pack.getImplementationVersion() == null ? "???"
-            : pack.getImplementationVersion(),
+    return loc("app-introduction", new Object[] { "Beeline",
+        pack.getImplementationVersion() == null ? "???" : pack.getImplementationVersion(),
         "Apache Hive",
         // getManifestAttribute ("Specification-Title"),
         // getManifestAttribute ("Implementation-Version"),
@@ -826,8 +823,10 @@ public class BeeLine implements Closeable {
       } else {
         int code = initArgsFromCliVars(args);
         defaultConnect(false);
-        if (code != 0)
+        if (code != 0){
           return code;
+        }
+        getOpts().updateBeeLineOptsFromConf();
       }
 
       if (getOpts().getScriptFile() != null) {
@@ -1077,8 +1076,32 @@ public class BeeLine implements Closeable {
       return cmdMap.values().iterator().next()
           .execute(line);
     } else {
-      return commands.sql(line, getOpts().getEntireLineAsCommand());
+      boolean needsUpdate = isConfNeedsUpdate(line);
+      boolean res = commands.sql(line, getOpts().getEntireLineAsCommand());
+      if (needsUpdate) {
+        getOpts().setHiveConf(getCommands().getHiveConf(true));
+      }
+      return res;
+    }
+  }
+
+  /**
+   * Update the configurations for the CLI mode in the client side
+   *
+   * @param line
+   */
+  private boolean isConfNeedsUpdate(String line) {
+    if (isBeeLine) {
+      return false;
+    }
+    String[] cmds = line.split(";");
+    boolean containsSetCMD = false;
+    for (String s : cmds) {
+      if (s.toLowerCase().startsWith("set")) {
+        return true;
+      }
     }
+    return containsSetCMD;
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/hive/blob/eccfdf0e/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java b/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java
index c1ec82a..894f74f 100644
--- a/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java
+++ b/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java
@@ -42,6 +42,7 @@ import jline.Terminal;
 import jline.TerminalFactory;
 import jline.console.completer.Completer;
 import jline.console.completer.StringsCompleter;
+import org.apache.hadoop.hive.conf.HiveConf;
 
 class BeeLineOpts implements Completer {
   public static final int DEFAULT_MAX_WIDTH = 80;
@@ -78,6 +79,8 @@ class BeeLineOpts implements Completer {
   int timeout = -1;
   private String isolation = DEFAULT_ISOLATION_LEVEL;
   private String outputFormat = "table";
+  // This configuration is used only for client side configuration.
+  private HiveConf conf;
   private boolean trimScripts = true;
   private boolean allowMultiLineCommand = true;
 
@@ -219,6 +222,21 @@ class BeeLineOpts implements Completer {
     loadProperties(p);
   }
 
+  /**
+   * Update the options after connection is established in CLI mode.
+   */
+  public void updateBeeLineOptsFromConf() {
+    if (!beeLine.isBeeLine()) {
+      if (conf == null) {
+        conf = beeLine.getCommands().getHiveConf(true);
+      }
+      setForce(HiveConf.getBoolVar(conf, HiveConf.ConfVars.CLIIGNOREERRORS));
+    }
+  }
+
+  public void setHiveConf(HiveConf conf) {
+    this.conf = conf;
+  }
 
   public void loadProperties(Properties props) {
     for (Object element : props.keySet()) {

http://git-wip-us.apache.org/repos/asf/hive/blob/eccfdf0e/beeline/src/java/org/apache/hive/beeline/Commands.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/Commands.java b/beeline/src/java/org/apache/hive/beeline/Commands.java
index d490273..b07388a 100644
--- a/beeline/src/java/org/apache/hive/beeline/Commands.java
+++ b/beeline/src/java/org/apache/hive/beeline/Commands.java
@@ -721,7 +721,7 @@ public class Commands {
    */
   private Map<String, String> getHiveVariables() {
     Map<String, String> result = new HashMap<>();
-    BufferedRows rows = getConfInternal();
+    BufferedRows rows = getConfInternal(true);
     while (rows.hasNext()) {
       Rows.Row row = (Rows.Row) rows.next();
       if (!row.isMeta) {
@@ -731,27 +731,45 @@ public class Commands {
     return result;
   }
 
-  private HiveConf getHiveConf() {
+  /**
+   * This method should only be used in CLI mode.
+   *
+   * @return the hive configuration from server side
+   */
+  public HiveConf getHiveConf(boolean call) {
     HiveConf conf = new HiveConf();
-    BufferedRows rows = getConfInternal();
-    while (rows.hasNext()) {
+    BufferedRows rows = getConfInternal(call);
+    while (rows != null && rows.hasNext()) {
       addConf((Rows.Row) rows.next(), conf);
     }
     return conf;
   }
 
-  private BufferedRows getConfInternal() {
+  /**
+   * Use call statement to retrieve the configurations for substitution and sql for the substitution.
+   *
+   * @param call
+   * @return
+   */
+  private BufferedRows getConfInternal(boolean call) {
     Statement stmnt = null;
     BufferedRows rows = null;
     try {
-      stmnt = beeLine.createStatement();
-      boolean hasResults = stmnt.execute("set");
+      boolean hasResults;
+      if (call) {
+        stmnt = beeLine.getDatabaseConnection().getConnection().prepareCall("set");
+        hasResults = ((CallableStatement) stmnt).execute();
+      } else {
+        stmnt = beeLine.createStatement();
+        hasResults = stmnt.execute("set");
+      }
       if (hasResults) {
         ResultSet rs = stmnt.getResultSet();
         rows = new BufferedRows(beeLine, rs);
       }
     } catch (SQLException e) {
       beeLine.error(e);
+    } finally {
       if (stmnt != null) {
         try {
           stmnt.close();
@@ -802,7 +820,7 @@ public class Commands {
     String[] tokens = tokenizeCmd(cmd);
     String cmd_1 = getFirstCmd(cmd, tokens[0].length());
 
-    cmd_1 = substituteVariables(getHiveConf(), cmd_1);
+    cmd_1 = substituteVariables(getHiveConf(false), cmd_1);
     File sourceFile = new File(cmd_1);
     if (!sourceFile.isFile()) {
       return false;
@@ -1020,7 +1038,7 @@ public class Commands {
     }
 
     line = line.substring("sh".length()).trim();
-    line = substituteVariables(getHiveConf(), line.trim());
+    line = substituteVariables(getHiveConf(false), line.trim());
 
     try {
       ShellCmdExecutor executor = new ShellCmdExecutor(line, beeLine.getOutputStream(),

http://git-wip-us.apache.org/repos/asf/hive/blob/eccfdf0e/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
----------------------------------------------------------------------
diff --git a/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java b/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
index ff8ab17..fa94c89 100644
--- a/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
+++ b/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
@@ -78,7 +78,8 @@ public class TestHiveCli {
       int retCode) {
     executeCMD(options, CMD, retCode);
     String output = os.toString();
-    Assert.assertTrue(output.contains(keywords));
+    Assert.assertTrue("The expected keyword doesn't occur in the output: " + output,
+        output.contains(keywords));
   }
 
   @Test


[32/43] hive git commit: HIVE-11958: Merge branch 'master' into beeline-cli

Posted by se...@apache.org.
HIVE-11958: Merge branch 'master' into beeline-cli


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

Branch: refs/heads/llap
Commit: 6b3e82d39c159f11829007fbbeff2fdf1216bb78
Parents: 046c5eb 41a12cb
Author: Ferdinand Xu <ch...@intel.com>
Authored: Thu Sep 24 21:29:17 2015 -0400
Committer: Ferdinand Xu <ch...@intel.com>
Committed: Thu Sep 24 21:34:20 2015 -0400

----------------------------------------------------------------------
 NOTICE                                          |     3 +
 .../apache/hadoop/hive/ant/GenVectorCode.java   |    31 -
 .../apache/hadoop/hive/ant/QTestGenTask.java    |    11 +
 beeline/src/main/resources/beeline-log4j2.xml   |     5 +-
 bin/beeline                                     |     5 +
 bin/ext/hbaseimport.cmd                         |    35 +
 bin/ext/hbaseimport.sh                          |    27 +
 bin/ext/hbaseschematool.sh                      |    27 +
 bin/hive                                        |     2 +-
 .../apache/hadoop/hive/common/ObjectPair.java   |     5 +
 .../hadoop/hive/common/jsonexplain/tez/Op.java  |     8 +-
 .../hive/common/jsonexplain/tez/Stage.java      |    14 +-
 .../common/jsonexplain/tez/TezJsonParser.java   |    17 +-
 .../org/apache/hadoop/hive/conf/HiveConf.java   |   113 +-
 .../apache/hadoop/hive/ql/log/PerfLogger.java   |   196 +
 .../apache/hive/common/util/BloomFilter.java    |    20 +-
 common/src/main/resources/hive-log4j2.xml       |     5 +-
 .../test/resources/hive-exec-log4j2-test.xml    |     5 +-
 common/src/test/resources/hive-log4j2-test.xml  |     5 +-
 data/conf/hive-log4j2.xml                       |     5 +-
 data/conf/tez/hive-site.xml                     |    10 +
 data/files/dynpartdata1.txt                     |     5 +
 data/files/dynpartdata2.txt                     |     6 +
 .../HiveHBaseTableSnapshotInputFormat.java      |    21 +-
 .../queries/positive/hbase_handler_snapshot.q   |     4 +
 .../positive/hbase_handler_snapshot.q.out       |    22 +
 .../deployers/config/hive/hive-log4j2.xml       |     5 +-
 .../svr/src/main/config/webhcat-log4j2.xml      |     5 +-
 .../antlr4/org/apache/hive/hplsql/Hplsql.g4     |    70 +-
 .../main/java/org/apache/hive/hplsql/Cmp.java   |   314 +
 .../java/org/apache/hive/hplsql/Column.java     |    29 +-
 .../main/java/org/apache/hive/hplsql/Conn.java  |    21 +
 .../main/java/org/apache/hive/hplsql/Copy.java  |    50 +-
 .../main/java/org/apache/hive/hplsql/Exec.java  |    66 +-
 .../java/org/apache/hive/hplsql/Expression.java |    33 +-
 .../main/java/org/apache/hive/hplsql/File.java  |    18 +-
 .../main/java/org/apache/hive/hplsql/Meta.java  |    28 +-
 .../main/java/org/apache/hive/hplsql/Query.java |    18 +
 .../java/org/apache/hive/hplsql/Select.java     |    23 +-
 .../main/java/org/apache/hive/hplsql/Stmt.java  |     8 +-
 .../main/java/org/apache/hive/hplsql/Var.java   |   110 +-
 .../apache/hive/hplsql/functions/Function.java  |     6 +-
 .../hive/hplsql/functions/FunctionMisc.java     |   121 +
 .../org/apache/hive/hplsql/TestHplsqlLocal.java |    18 +
 .../apache/hive/hplsql/TestHplsqlOffline.java   |     5 +
 hplsql/src/test/queries/db/cmp_row_count.sql    |     4 +
 hplsql/src/test/queries/db/cmp_sum.sql          |     3 +
 hplsql/src/test/queries/db/copy_to_file.sql     |     2 +
 hplsql/src/test/queries/db/copy_to_hdfs.sql     |     2 +
 hplsql/src/test/queries/db/copy_to_table.sql    |     2 +
 hplsql/src/test/queries/db/part_count.sql       |    17 +
 hplsql/src/test/queries/db/part_count_by.sql    |     4 +
 hplsql/src/test/queries/db/schema.sql           |    32 +
 hplsql/src/test/queries/db/select_into.sql      |    20 +-
 hplsql/src/test/queries/db/select_into2.sql     |    17 +
 .../test/queries/local/create_procedure2.sql    |    16 +
 hplsql/src/test/queries/local/if2.sql           |     5 +
 hplsql/src/test/queries/local/include.sql       |     2 +
 hplsql/src/test/queries/local/include_file.sql  |     1 +
 hplsql/src/test/queries/local/mult_div.sql      |     8 +
 hplsql/src/test/queries/offline/select_db2.sql  |     5 +
 .../src/test/results/db/cmp_row_count.out.txt   |    12 +
 hplsql/src/test/results/db/cmp_sum.out.txt      |   320 +
 hplsql/src/test/results/db/copy_to_file.out.txt |     6 +
 hplsql/src/test/results/db/copy_to_hdfs.out.txt |     4 +
 .../src/test/results/db/copy_to_table.out.txt   |     2 +
 hplsql/src/test/results/db/part_count.out.txt   |    15 +
 .../src/test/results/db/part_count_by.out.txt   |    13 +
 hplsql/src/test/results/db/select_into.out.txt  |    58 +-
 hplsql/src/test/results/db/select_into2.out.txt |    19 +
 .../results/local/create_procedure2.out.txt     |    10 +
 hplsql/src/test/results/local/if2.out.txt       |     4 +
 hplsql/src/test/results/local/include.out.txt   |     8 +
 hplsql/src/test/results/local/mult_div.out.txt  |     7 +
 .../src/test/results/offline/select_db2.out.txt |     6 +
 .../benchmark/serde/LazySimpleSerDeBench.java   |   453 +
 .../vectorization/VectorizationBench.java       |    32 +-
 .../hive/thrift/TestHadoop20SAuthBridge.java    |   420 -
 .../hive/thrift/TestHadoopAuthBridge23.java     |   423 +
 itests/hive-unit/pom.xml                        |    35 +
 .../hadoop/hive/metastore/TestAdminUser.java    |     4 +-
 .../hive/metastore/TestHiveMetaStore.java       |     3 +
 .../metastore/hbase/HBaseIntegrationTests.java  |   117 +
 .../TestHBaseAggrStatsCacheIntegration.java     |   691 +
 .../hive/metastore/hbase/TestHBaseImport.java   |   650 +
 .../metastore/hbase/TestHBaseMetastoreSql.java  |   223 +
 .../hbase/TestHBaseStoreIntegration.java        |  1794 +
 .../hbase/TestStorageDescriptorSharing.java     |   191 +
 .../hive/ql/security/FolderPermissionBase.java  |    17 +-
 .../org/apache/hive/jdbc/TestJdbcDriver2.java   |    80 +-
 itests/qtest/pom.xml                            |    10 +-
 .../test/resources/testconfiguration.properties |     4 +
 itests/util/pom.xml                             |    32 +
 .../metastore/hbase/HBaseStoreTestUtil.java     |    45 +
 .../org/apache/hadoop/hive/ql/QTestUtil.java    |    50 +-
 .../apache/hive/jdbc/HivePreparedStatement.java |     4 +-
 .../hive/jdbc/ZooKeeperHiveClientHelper.java    |    34 +-
 metastore/if/hive_metastore.thrift              |    54 +
 metastore/pom.xml                               |    82 +
 .../oracle/hive-schema-0.13.0.oracle.sql        |    10 +-
 .../oracle/hive-schema-0.14.0.oracle.sql        |    10 +-
 .../oracle/hive-txn-schema-0.13.0.oracle.sql    |    10 +-
 .../oracle/hive-txn-schema-0.14.0.oracle.sql    |    10 +-
 .../metastore/hbase/HbaseMetastoreProto.java    | 34901 +++++++++++++++++
 .../gen/thrift/gen-cpp/ThriftHiveMetastore.cpp  |  6919 ++--
 .../gen/thrift/gen-cpp/ThriftHiveMetastore.h    |   664 +
 .../ThriftHiveMetastore_server.skeleton.cpp     |    25 +
 .../gen/thrift/gen-cpp/hive_metastore_types.cpp |  1294 +-
 .../gen/thrift/gen-cpp/hive_metastore_types.h   |   371 +
 .../hive/metastore/api/AbortTxnRequest.java     |     2 +-
 .../metastore/api/AddDynamicPartitions.java     |     2 +-
 .../metastore/api/AddPartitionsRequest.java     |     2 +-
 .../hive/metastore/api/AddPartitionsResult.java |     2 +-
 .../hadoop/hive/metastore/api/AggrStats.java    |     2 +-
 .../metastore/api/AlreadyExistsException.java   |     2 +-
 .../metastore/api/BinaryColumnStatsData.java    |     2 +-
 .../metastore/api/BooleanColumnStatsData.java   |     2 +-
 .../hive/metastore/api/CheckLockRequest.java    |     2 +-
 .../metastore/api/ClearFileMetadataRequest.java |   438 +
 .../metastore/api/ClearFileMetadataResult.java  |   283 +
 .../hive/metastore/api/ColumnStatistics.java    |     2 +-
 .../metastore/api/ColumnStatisticsDesc.java     |     2 +-
 .../hive/metastore/api/ColumnStatisticsObj.java |     2 +-
 .../hive/metastore/api/CommitTxnRequest.java    |     2 +-
 .../hive/metastore/api/CompactionRequest.java   |     2 +-
 .../api/ConfigValSecurityException.java         |     2 +-
 .../api/CurrentNotificationEventId.java         |     2 +-
 .../hadoop/hive/metastore/api/Database.java     |     2 +-
 .../apache/hadoop/hive/metastore/api/Date.java  |     2 +-
 .../hive/metastore/api/DateColumnStatsData.java |     2 +-
 .../hadoop/hive/metastore/api/Decimal.java      |     2 +-
 .../metastore/api/DecimalColumnStatsData.java   |     2 +-
 .../metastore/api/DoubleColumnStatsData.java    |     2 +-
 .../hive/metastore/api/DropPartitionsExpr.java  |     2 +-
 .../metastore/api/DropPartitionsRequest.java    |     2 +-
 .../metastore/api/DropPartitionsResult.java     |     2 +-
 .../hive/metastore/api/EnvironmentContext.java  |     2 +-
 .../hadoop/hive/metastore/api/FieldSchema.java  |     2 +-
 .../hive/metastore/api/FireEventRequest.java    |     2 +-
 .../hive/metastore/api/FireEventResponse.java   |     2 +-
 .../hadoop/hive/metastore/api/Function.java     |     2 +-
 .../metastore/api/GetAllFunctionsResponse.java  |    38 +-
 .../api/GetFileMetadataByExprRequest.java       |   548 +
 .../api/GetFileMetadataByExprResult.java        |   703 +
 .../metastore/api/GetFileMetadataRequest.java   |   438 +
 .../metastore/api/GetFileMetadataResult.java    |   540 +
 .../metastore/api/GetOpenTxnsInfoResponse.java  |     2 +-
 .../hive/metastore/api/GetOpenTxnsResponse.java |     2 +-
 .../api/GetPrincipalsInRoleRequest.java         |     2 +-
 .../api/GetPrincipalsInRoleResponse.java        |     2 +-
 .../api/GetRoleGrantsForPrincipalRequest.java   |     2 +-
 .../api/GetRoleGrantsForPrincipalResponse.java  |     2 +-
 .../api/GrantRevokePrivilegeRequest.java        |     2 +-
 .../api/GrantRevokePrivilegeResponse.java       |     2 +-
 .../metastore/api/GrantRevokeRoleRequest.java   |     2 +-
 .../metastore/api/GrantRevokeRoleResponse.java  |     2 +-
 .../hive/metastore/api/HeartbeatRequest.java    |     2 +-
 .../metastore/api/HeartbeatTxnRangeRequest.java |     2 +-
 .../api/HeartbeatTxnRangeResponse.java          |     2 +-
 .../hive/metastore/api/HiveObjectPrivilege.java |     2 +-
 .../hive/metastore/api/HiveObjectRef.java       |     2 +-
 .../apache/hadoop/hive/metastore/api/Index.java |     2 +-
 .../api/IndexAlreadyExistsException.java        |     2 +-
 .../metastore/api/InsertEventRequestData.java   |     2 +-
 .../metastore/api/InvalidInputException.java    |     2 +-
 .../metastore/api/InvalidObjectException.java   |     2 +-
 .../api/InvalidOperationException.java          |     2 +-
 .../api/InvalidPartitionException.java          |     2 +-
 .../hive/metastore/api/LockComponent.java       |     2 +-
 .../hadoop/hive/metastore/api/LockRequest.java  |     2 +-
 .../hadoop/hive/metastore/api/LockResponse.java |     2 +-
 .../hive/metastore/api/LongColumnStatsData.java |     2 +-
 .../hive/metastore/api/MetaException.java       |     2 +-
 .../hive/metastore/api/MetadataPpdResult.java   |   508 +
 .../hive/metastore/api/NoSuchLockException.java |     2 +-
 .../metastore/api/NoSuchObjectException.java    |     2 +-
 .../hive/metastore/api/NoSuchTxnException.java  |     2 +-
 .../hive/metastore/api/NotificationEvent.java   |     2 +-
 .../metastore/api/NotificationEventRequest.java |     2 +-
 .../api/NotificationEventResponse.java          |     2 +-
 .../hive/metastore/api/OpenTxnRequest.java      |     2 +-
 .../hive/metastore/api/OpenTxnsResponse.java    |     2 +-
 .../apache/hadoop/hive/metastore/api/Order.java |     2 +-
 .../hadoop/hive/metastore/api/Partition.java    |     2 +-
 .../api/PartitionListComposingSpec.java         |     2 +-
 .../hive/metastore/api/PartitionSpec.java       |     2 +-
 .../api/PartitionSpecWithSharedSD.java          |     2 +-
 .../hive/metastore/api/PartitionWithoutSD.java  |     2 +-
 .../metastore/api/PartitionsByExprRequest.java  |     2 +-
 .../metastore/api/PartitionsByExprResult.java   |     2 +-
 .../metastore/api/PartitionsStatsRequest.java   |     2 +-
 .../metastore/api/PartitionsStatsResult.java    |     2 +-
 .../metastore/api/PrincipalPrivilegeSet.java    |     2 +-
 .../hadoop/hive/metastore/api/PrivilegeBag.java |     2 +-
 .../hive/metastore/api/PrivilegeGrantInfo.java  |     2 +-
 .../metastore/api/PutFileMetadataRequest.java   |   588 +
 .../metastore/api/PutFileMetadataResult.java    |   283 +
 .../hadoop/hive/metastore/api/ResourceUri.java  |     2 +-
 .../apache/hadoop/hive/metastore/api/Role.java  |     2 +-
 .../hive/metastore/api/RolePrincipalGrant.java  |     2 +-
 .../hadoop/hive/metastore/api/Schema.java       |     2 +-
 .../hadoop/hive/metastore/api/SerDeInfo.java    |     2 +-
 .../api/SetPartitionsStatsRequest.java          |     2 +-
 .../hive/metastore/api/ShowCompactRequest.java  |     2 +-
 .../hive/metastore/api/ShowCompactResponse.java |     2 +-
 .../api/ShowCompactResponseElement.java         |     2 +-
 .../hive/metastore/api/ShowLocksRequest.java    |     2 +-
 .../hive/metastore/api/ShowLocksResponse.java   |     2 +-
 .../metastore/api/ShowLocksResponseElement.java |     2 +-
 .../hadoop/hive/metastore/api/SkewedInfo.java   |     2 +-
 .../hive/metastore/api/StorageDescriptor.java   |     2 +-
 .../metastore/api/StringColumnStatsData.java    |     2 +-
 .../apache/hadoop/hive/metastore/api/Table.java |     2 +-
 .../hive/metastore/api/TableStatsRequest.java   |     2 +-
 .../hive/metastore/api/TableStatsResult.java    |     2 +-
 .../hive/metastore/api/ThriftHiveMetastore.java |  8422 ++--
 .../hive/metastore/api/TxnAbortedException.java |     2 +-
 .../hadoop/hive/metastore/api/TxnInfo.java      |     2 +-
 .../hive/metastore/api/TxnOpenException.java    |     2 +-
 .../apache/hadoop/hive/metastore/api/Type.java  |     2 +-
 .../hive/metastore/api/UnknownDBException.java  |     2 +-
 .../api/UnknownPartitionException.java          |     2 +-
 .../metastore/api/UnknownTableException.java    |     2 +-
 .../hive/metastore/api/UnlockRequest.java       |     2 +-
 .../hadoop/hive/metastore/api/Version.java      |     2 +-
 .../gen-php/metastore/ThriftHiveMetastore.php   |  2810 +-
 .../src/gen/thrift/gen-php/metastore/Types.php  |  1009 +-
 .../hive_metastore/ThriftHiveMetastore-remote   |    49 +-
 .../hive_metastore/ThriftHiveMetastore.py       |  1563 +-
 .../gen/thrift/gen-py/hive_metastore/ttypes.py  |   734 +-
 .../gen/thrift/gen-rb/hive_metastore_types.rb   |   167 +
 .../gen/thrift/gen-rb/thrift_hive_metastore.rb  |   267 +
 .../hadoop/hive/metastore/HiveAlterHandler.java |    38 +-
 .../hadoop/hive/metastore/HiveMetaStore.java    |   272 +-
 .../hive/metastore/HiveMetaStoreClient.java     |   112 +-
 .../hadoop/hive/metastore/IMetaStoreClient.java |     6 +
 .../hadoop/hive/metastore/ObjectStore.java      |   453 +-
 .../hive/metastore/PartFilterExprUtil.java      |   149 +
 .../apache/hadoop/hive/metastore/RawStore.java  |    66 +-
 .../hadoop/hive/metastore/RawStoreProxy.java    |     5 +-
 .../hive/metastore/RetryingHMSHandler.java      |    33 +-
 .../hbase/AggrStatsInvalidatorFilter.java       |   121 +
 .../hadoop/hive/metastore/hbase/Counter.java    |    53 +
 .../hive/metastore/hbase/HBaseConnection.java   |    96 +
 .../metastore/hbase/HBaseFilterPlanUtil.java    |   612 +
 .../hive/metastore/hbase/HBaseImport.java       |   535 +
 .../hive/metastore/hbase/HBaseReadWrite.java    |  2106 +
 .../hive/metastore/hbase/HBaseSchemaTool.java   |   239 +
 .../hadoop/hive/metastore/hbase/HBaseStore.java |  2387 ++
 .../hadoop/hive/metastore/hbase/HBaseUtils.java |  1340 +
 .../hive/metastore/hbase/ObjectCache.java       |    81 +
 .../hive/metastore/hbase/PartitionCache.java    |   168 +
 .../metastore/hbase/PartitionKeyComparator.java |   292 +
 .../hbase/SharedStorageDescriptor.java          |   251 +
 .../hadoop/hive/metastore/hbase/StatsCache.java |   326 +
 .../metastore/hbase/TephraHBaseConnection.java  |   127 +
 .../metastore/hbase/VanillaHBaseConnection.java |   137 +
 .../stats/BinaryColumnStatsAggregator.java      |    35 +
 .../stats/BooleanColumnStatsAggregator.java     |    35 +
 .../hbase/stats/ColumnStatsAggregator.java      |    26 +
 .../stats/ColumnStatsAggregatorFactory.java     |    94 +
 .../stats/DecimalColumnStatsAggregator.java     |    43 +
 .../stats/DoubleColumnStatsAggregator.java      |    36 +
 .../hbase/stats/LongColumnStatsAggregator.java  |    36 +
 .../stats/StringColumnStatsAggregator.java      |    36 +
 .../hive/metastore/parser/ExpressionTree.java   |     9 +-
 .../hive/metastore/tools/HiveMetaTool.java      |     5 +
 .../hadoop/hive/metastore/txn/TxnHandler.java   |    66 +-
 .../metastore/hbase/hbase_metastore_proto.proto |   282 +
 .../DummyRawStoreControlledCommit.java          |    56 +-
 .../DummyRawStoreForJdoConnection.java          |    50 +-
 .../hadoop/hive/metastore/TestObjectStore.java  |    43 +-
 .../hadoop/hive/metastore/hbase/MockUtils.java  |   199 +
 .../hbase/TestHBaseAggregateStatsCache.java     |   316 +
 .../hbase/TestHBaseFilterPlanUtil.java          |   483 +
 .../hive/metastore/hbase/TestHBaseStore.java    |  1307 +
 .../metastore/hbase/TestHBaseStoreCached.java   |   378 +
 .../hbase/TestSharedStorageDescriptor.java      |   153 +
 packaging/src/main/assembly/bin.xml             |     1 +
 pom.xml                                         |    25 +-
 .../hadoop/hive/ql/plan/api/Adjacency.java      |     2 +-
 .../apache/hadoop/hive/ql/plan/api/Graph.java   |     2 +-
 .../hadoop/hive/ql/plan/api/Operator.java       |     2 +-
 .../apache/hadoop/hive/ql/plan/api/Query.java   |     2 +-
 .../hadoop/hive/ql/plan/api/QueryPlan.java      |     2 +-
 .../apache/hadoop/hive/ql/plan/api/Stage.java   |     2 +-
 .../apache/hadoop/hive/ql/plan/api/Task.java    |     2 +-
 .../ExpressionTemplates/IfExprColumnColumn.txt  |   186 -
 .../java/org/apache/hadoop/hive/ql/Driver.java  |    17 +-
 .../org/apache/hadoop/hive/ql/ErrorMsg.java     |     2 +-
 .../org/apache/hadoop/hive/ql/exec/DDLTask.java |   333 +-
 .../apache/hadoop/hive/ql/exec/ExplainTask.java |    24 +-
 .../hadoop/hive/ql/exec/FunctionRegistry.java   |     3 +-
 .../hadoop/hive/ql/exec/KeyWrapperFactory.java  |     4 +
 .../hadoop/hive/ql/exec/MapJoinOperator.java    |     8 +-
 .../apache/hadoop/hive/ql/exec/MoveTask.java    |    31 +-
 .../apache/hadoop/hive/ql/exec/Operator.java    |     3 +-
 .../ql/exec/SparkHashTableSinkOperator.java     |     3 +-
 .../hadoop/hive/ql/exec/StatsNoJobTask.java     |    25 +-
 .../apache/hadoop/hive/ql/exec/StatsTask.java   |    13 +-
 .../apache/hadoop/hive/ql/exec/Utilities.java   |    11 +-
 .../persistence/BytesBytesMultiHashMap.java     |    11 +-
 .../persistence/HybridHashTableContainer.java   |    68 +-
 .../ql/exec/persistence/PTFRowContainer.java    |    14 +-
 .../hive/ql/exec/persistence/RowContainer.java  |    12 +-
 .../hadoop/hive/ql/exec/spark/SparkPlan.java    |     3 +-
 .../hive/ql/exec/spark/SparkPlanGenerator.java  |     3 +-
 .../hive/ql/exec/spark/SparkRecordHandler.java  |     3 +-
 .../hadoop/hive/ql/exec/spark/SparkTask.java    |     2 +-
 .../ql/exec/spark/status/SparkJobMonitor.java   |     2 +-
 .../hadoop/hive/ql/exec/tez/DagUtils.java       |     3 +
 .../hive/ql/exec/tez/HashTableLoader.java       |     7 +-
 .../hadoop/hive/ql/exec/tez/InPlaceUpdates.java |    65 +
 .../hive/ql/exec/tez/RecordProcessor.java       |     3 +-
 .../hive/ql/exec/tez/ReduceRecordProcessor.java |     1 -
 .../hive/ql/exec/tez/ReduceRecordSource.java    |     3 +-
 .../hadoop/hive/ql/exec/tez/TezJobMonitor.java  |    70 +-
 .../hadoop/hive/ql/exec/tez/TezProcessor.java   |     3 +-
 .../apache/hadoop/hive/ql/exec/tez/TezTask.java |    20 +-
 .../ql/exec/tez/tools/KeyValuesInputMerger.java |     1 -
 .../ql/exec/vector/VectorGroupByOperator.java   |     5 +-
 .../exec/vector/VectorSMBMapJoinOperator.java   |    15 +-
 .../ql/exec/vector/VectorizationContext.java    |   213 +-
 .../expressions/FilterStringColumnInList.java   |    13 +-
 .../expressions/FilterStructColumnInList.java   |   178 +
 .../exec/vector/expressions/IStructInExpr.java  |    36 +
 .../IfExprDoubleColumnDoubleColumn.java         |   167 +
 .../expressions/IfExprLongColumnLongColumn.java |   166 +
 .../vector/expressions/StringColumnInList.java  |     4 +
 .../vector/expressions/StructColumnInList.java  |   174 +
 .../apache/hadoop/hive/ql/hooks/ATSHook.java    |     9 +-
 .../hadoop/hive/ql/hooks/LineageLogger.java     |    95 +-
 .../hive/ql/io/CombineHiveInputFormat.java      |    10 +-
 .../hadoop/hive/ql/io/HiveInputFormat.java      |     5 +-
 .../hadoop/hive/ql/io/orc/OrcInputFormat.java   |   155 +-
 .../apache/hadoop/hive/ql/io/orc/OrcSerde.java  |     1 +
 .../apache/hadoop/hive/ql/io/orc/OrcStruct.java |     2 +-
 .../hadoop/hive/ql/io/orc/RecordReaderImpl.java |     4 +-
 .../hive/ql/io/parquet/ProjectionPusher.java    |     3 +-
 .../serde/ParquetHiveArrayInspector.java        |    12 +
 .../ql/io/parquet/timestamp/NanoTimeUtils.java  |    23 +-
 .../hive/ql/io/sarg/ConvertAstToSearchArg.java  |     4 +
 .../apache/hadoop/hive/ql/lib/RuleRegExp.java   |    61 +-
 .../apache/hadoop/hive/ql/log/PerfLogger.java   |   195 -
 .../apache/hadoop/hive/ql/metadata/Hive.java    |    34 +-
 .../hadoop/hive/ql/metadata/Partition.java      |    29 +-
 .../ql/optimizer/ColumnPrunerProcFactory.java   |     3 +
 .../hive/ql/optimizer/ConvertJoinMapJoin.java   |    22 +-
 .../hive/ql/optimizer/GenMapRedUtils.java       |    57 +-
 .../ql/optimizer/ReduceSinkMapJoinProc.java     |    19 +-
 .../functions/HiveSqlCountAggFunction.java      |    72 +
 .../functions/HiveSqlMinMaxAggFunction.java     |    49 +
 .../functions/HiveSqlSumAggFunction.java        |   125 +
 .../calcite/reloperators/HiveBetween.java       |    75 +
 .../optimizer/calcite/reloperators/HiveIn.java  |    41 +
 .../calcite/reloperators/HiveLimit.java         |    57 -
 .../calcite/reloperators/HiveSort.java          |   110 -
 .../calcite/reloperators/HiveSortLimit.java     |   110 +
 .../rules/HiveAggregateJoinTransposeRule.java   |   372 +
 .../rules/HiveAggregateProjectMergeRule.java    |   151 +
 .../calcite/rules/HivePreFilteringRule.java     |    37 +-
 .../calcite/rules/HiveRelFieldTrimmer.java      |   145 +-
 .../calcite/stats/HiveRelMdMemory.java          |     9 +-
 .../calcite/stats/HiveRelMdParallelism.java     |     4 +-
 .../calcite/translator/ASTConverter.java        |    24 +-
 .../calcite/translator/HiveOpConverter.java     |     8 +-
 .../translator/PlanModifierForASTConv.java      |    14 +-
 .../translator/PlanModifierForReturnPath.java   |     4 -
 .../calcite/translator/PlanModifierUtil.java    |     4 +-
 .../translator/SqlFunctionConverter.java        |    56 +-
 .../hive/ql/optimizer/lineage/LineageCtx.java   |     8 +-
 .../hive/ql/optimizer/physical/Vectorizer.java  |    87 +-
 .../ql/optimizer/physical/Vectorizer.java.orig  |  1744 +
 .../ql/optimizer/physical/Vectorizer.java.rej   |    86 +
 .../hive/ql/optimizer/ppr/PartitionPruner.java  |     7 +-
 .../hadoop/hive/ql/parse/CalcitePlanner.java    |    33 +-
 .../hive/ql/parse/DDLSemanticAnalyzer.java      |    17 +
 .../apache/hadoop/hive/ql/parse/HiveParser.g    |     9 +-
 .../apache/hadoop/hive/ql/parse/QBSubQuery.java |     7 -
 .../hadoop/hive/ql/parse/SemanticAnalyzer.java  |    12 +-
 .../hive/ql/parse/SemanticAnalyzerFactory.java  |     2 +
 .../hadoop/hive/ql/parse/SubQueryUtils.java     |    11 -
 .../hive/ql/parse/spark/SparkCompiler.java      |     3 +-
 .../org/apache/hadoop/hive/ql/plan/DDLWork.java |    21 +
 .../hive/ql/plan/ExprNodeGenericFuncDesc.java   |    10 +-
 .../hadoop/hive/ql/plan/HiveOperation.java      |     1 +
 .../hive/ql/plan/ShowCreateDatabaseDesc.java    |    94 +
 .../hadoop/hive/ql/plan/VectorGroupByDesc.java  |    10 +
 .../AuthorizationPreEventListener.java          |     2 +-
 .../authorization/plugin/HiveOperationType.java |     1 +
 .../plugin/sqlstd/Operation2Privilege.java      |     2 +
 .../sqlstd/SQLStdHiveAccessController.java      |     5 +
 .../hadoop/hive/ql/session/SessionState.java    |    40 +-
 .../apache/hadoop/hive/ql/stats/StatsUtils.java |   269 +-
 .../hive/ql/stats/jdbc/JDBCStatsPublisher.java  |    13 +-
 .../ql/stats/jdbc/JDBCStatsSetupConstants.java  |     4 +-
 .../org/apache/hadoop/hive/ql/udf/UDFJson.java  |     2 +
 .../hive/ql/udf/generic/GenericUDAFMax.java     |    16 +-
 .../hive/ql/udf/generic/GenericUDAFSum.java     |     2 +-
 .../udf/generic/GenericUDAFSumEmptyIsZero.java  |    63 +
 .../hive/ql/udf/generic/GenericUDFIf.java       |     4 +-
 ql/src/main/resources/hive-exec-log4j2.xml      |     5 +-
 ql/src/main/resources/tez-container-log4j2.xml  |     5 +-
 .../hive/metastore/TestMetastoreExpr.java       |     2 +-
 .../persistence/TestBytesBytesMultiHashMap.java |     3 +
 .../ql/exec/persistence/TestHashPartition.java  |    29 +
 .../exec/persistence/TestPTFRowContainer.java   |    31 +-
 .../exec/vector/TestVectorizationContext.java   |     4 +-
 .../TestVectorConditionalExpressions.java       |     3 +-
 .../hive/ql/io/orc/TestInputOutputFormat.java   |    19 +
 .../hadoop/hive/ql/io/orc/TestOrcStruct.java    |     2 +
 .../serde/TestParquetTimestampUtils.java        |    38 +-
 ...nMapRedUtilsUsePartitionColumnsNegative.java |    73 +
 ...nMapRedUtilsUsePartitionColumnsPositive.java |    61 +
 .../test/queries/clientnegative/ctasnullcol.q   |     2 +
 .../authorization_set_show_current_role.q       |     3 +
 .../clientpositive/bucket_map_join_tez1.q       |    31 +
 .../queries/clientpositive/cbo_rp_auto_join17.q |    14 +
 .../cbo_rp_cross_product_check_2.q              |    31 +
 .../clientpositive/drop_table_with_index.q      |    35 +
 .../test/queries/clientpositive/dynpart_merge.q |    28 +
 .../dynpart_sort_opt_vectorization.q            |     2 +
 .../clientpositive/dynpart_sort_optimization.q  |     2 +
 .../queries/clientpositive/exchgpartition2lel.q |    32 +
 .../clientpositive/groupby_join_pushdown.q      |    55 +
 ql/src/test/queries/clientpositive/lineage3.q   |    26 +
 .../test/queries/clientpositive/load_orc_part.q |     5 +
 .../parquet_mixed_partition_formats.q           |    42 +
 .../clientpositive/parquet_ppd_boolean.q        |    42 +-
 .../queries/clientpositive/parquet_ppd_char.q   |    46 +-
 .../queries/clientpositive/parquet_ppd_date.q   |    64 +-
 .../clientpositive/parquet_ppd_decimal.q        |   106 +-
 .../clientpositive/parquet_ppd_timestamp.q      |    62 +-
 .../clientpositive/parquet_ppd_varchar.q        |    46 +-
 .../clientpositive/parquet_predicate_pushdown.q |    20 +-
 .../clientpositive/show_create_database.q       |     3 +
 .../queries/clientpositive/subquery_views.q     |    22 +-
 .../queries/clientpositive/union_fast_stats.q   |    68 +
 .../clientpositive/vector_auto_smb_mapjoin_14.q |   297 +
 .../queries/clientpositive/vector_char_cast.q   |     9 +
 .../clientpositive/vector_groupby_reduce.q      |    62 +-
 .../queries/clientpositive/vector_struct_in.q   |   247 +
 .../clientpositive/vectorization_limit.q        |     4 +-
 .../queries/clientpositive/windowing_udaf.q     |     4 +
 .../results/clientnegative/ctasnullcol.q.out    |     5 +
 .../subquery_exists_implicit_gby.q.out          |     8 +-
 .../subquery_nested_subquery.q.out              |     4 +-
 .../subquery_notexists_implicit_gby.q.out       |     8 +-
 .../subquery_windowing_corr.q.out               |     7 +-
 .../alter_partition_coltype.q.out               |     8 +-
 .../clientpositive/annotate_stats_groupby.q.out |   106 +-
 .../annotate_stats_groupby2.q.out               |    28 +-
 .../authorization_explain.q.java1.7.out         |     2 +-
 .../authorization_explain.q.java1.8.out         |     2 +-
 .../authorization_set_show_current_role.q.out   |     8 +
 .../results/clientpositive/auto_join18.q.out    |    12 +-
 .../auto_join18_multi_distinct.q.out            |    12 +-
 .../results/clientpositive/auto_join27.q.out    |    18 +-
 .../results/clientpositive/auto_join32.q.out    |     4 +-
 .../clientpositive/binarysortable_1.q.out       |   Bin 4329 -> 4325 bytes
 .../clientpositive/cbo_rp_auto_join17.q.out     |   118 +
 .../cbo_rp_cross_product_check_2.q.out          |   699 +
 .../clientpositive/correlationoptimizer2.q.out  |   220 +-
 .../clientpositive/correlationoptimizer6.q.out  |   232 +-
 ql/src/test/results/clientpositive/count.q.out  |    14 +-
 .../results/clientpositive/ctas_colname.q.out   |    52 +-
 .../test/results/clientpositive/database.q.out  |     2 +-
 .../clientpositive/decimal_precision.q.out      |     4 +-
 .../results/clientpositive/decimal_udf.q.out    |    30 +-
 .../results/clientpositive/distinct_stats.q.out |    14 +-
 .../clientpositive/drop_table_with_index.q.out  |   152 +
 .../results/clientpositive/dynpart_merge.q.out  |    99 +
 .../dynpart_sort_opt_vectorization.q.out        |   117 +-
 .../dynpart_sort_optimization.q.out             |   117 +-
 ...ryption_select_read_only_encrypted_tbl.q.out |     4 +-
 .../clientpositive/exchgpartition2lel.q.out     |   182 +
 .../clientpositive/explain_dependency.q.out     |    18 +-
 .../clientpositive/explain_dependency2.q.out    |    16 +-
 .../clientpositive/explain_logical.q.out        |    78 +-
 .../clientpositive/fetch_aggregation.q.out      |     4 +-
 .../test/results/clientpositive/gby_star.q.out  |    54 +-
 .../test/results/clientpositive/groupby12.q.out |     6 +-
 .../results/clientpositive/groupby5_map.q.out   |     4 +-
 .../clientpositive/groupby5_map_skew.q.out      |     4 +-
 .../results/clientpositive/groupby_cube1.q.out  |    12 +-
 .../groupby_distinct_samekey.q.out              |     6 +-
 .../clientpositive/groupby_grouping_sets2.q.out |    10 +-
 .../clientpositive/groupby_grouping_sets3.q.out |    12 +-
 .../clientpositive/groupby_grouping_sets5.q.out |     8 +-
 .../clientpositive/groupby_grouping_sets6.q.out |     8 +-
 .../clientpositive/groupby_join_pushdown.q.out  |  1522 +
 .../clientpositive/groupby_position.q.out       |    36 +-
 .../clientpositive/groupby_resolution.q.out     |    60 +-
 .../clientpositive/groupby_rollup1.q.out        |    12 +-
 .../clientpositive/groupby_sort_10.q.out        |     8 +-
 .../clientpositive/groupby_sort_11.q.out        |    10 +-
 .../results/clientpositive/groupby_sort_8.q.out |    12 +-
 ql/src/test/results/clientpositive/having.q.out |    62 +-
 .../test/results/clientpositive/having2.q.out   |    12 +-
 .../clientpositive/index_auto_mult_tables.q.out |    12 +-
 .../clientpositive/index_auto_self_join.q.out   |    12 +-
 .../clientpositive/index_auto_update.q.out      |     6 +-
 .../index_bitmap_auto_partitioned.q.out         |     6 +-
 .../index_bitmap_compression.q.out              |     6 +-
 .../infer_bucket_sort_dyn_part.q.out            |     4 +-
 .../infer_bucket_sort_map_operators.q.out       |     4 +-
 .../results/clientpositive/input4.q.java1.7.out |     2 +-
 .../results/clientpositive/input4.q.java1.8.out |     2 +-
 .../results/clientpositive/join0.q.java1.7.out  |     2 +-
 .../results/clientpositive/join0.q.java1.8.out  |     4 +-
 ql/src/test/results/clientpositive/join18.q.out |    12 +-
 .../clientpositive/join18_multi_distinct.q.out  |    12 +-
 ql/src/test/results/clientpositive/join31.q.out |    36 +-
 .../limit_partition_metadataonly.q.out          |     4 +-
 .../results/clientpositive/limit_pushdown.q.out |    36 +-
 .../test/results/clientpositive/lineage2.q.out  |     2 +-
 .../test/results/clientpositive/lineage3.q.out  |    72 +-
 .../list_bucket_dml_6.q.java1.7.out             |    12 +-
 .../list_bucket_dml_6.q.java1.8.out             |    12 +-
 .../clientpositive/list_bucket_dml_7.q.out      |    12 +-
 .../list_bucket_query_multiskew_3.q.out         |     2 +-
 .../results/clientpositive/load_orc_part.q.out  |    26 +
 .../clientpositive/mapjoin_mapjoin.q.out        |    32 +-
 .../clientpositive/metadata_only_queries.q.out  |     4 +-
 .../results/clientpositive/metadataonly1.q.out  |   112 +-
 .../results/clientpositive/multiMapJoin2.q.out  |   226 +-
 .../nonblock_op_deduplicate.q.out               |     8 +-
 .../results/clientpositive/nonmr_fetch.q.out    |    14 +-
 .../results/clientpositive/parallel_join0.q.out |     2 +-
 .../parquet_mixed_partition_formats.q.out       |   303 +
 .../clientpositive/parquet_ppd_boolean.q.out    |   194 +-
 .../clientpositive/parquet_ppd_char.q.out       |   224 +-
 .../clientpositive/parquet_ppd_date.q.out       |   324 +-
 .../clientpositive/parquet_ppd_decimal.q.out    |   594 +-
 .../clientpositive/parquet_ppd_timestamp.q.out  |   314 +-
 .../clientpositive/parquet_ppd_varchar.q.out    |   224 +-
 .../parquet_predicate_pushdown.q.out            |   118 +-
 .../clientpositive/partition_multilevels.q.out  |     8 +-
 .../clientpositive/plan_json.q.java1.7.out      |     2 +-
 .../clientpositive/plan_json.q.java1.8.out      |     2 +-
 .../test/results/clientpositive/ppd_gby.q.out   |    12 +-
 .../test/results/clientpositive/ppd_gby2.q.out  |    60 +-
 .../clientpositive/ppd_join_filter.q.out        |    98 +-
 .../ql_rewrite_gbtoidx_cbo_1.q.out              |   168 +-
 .../ql_rewrite_gbtoidx_cbo_2.q.out              |    94 +-
 .../reduce_deduplicate_extended.q.out           |    32 +-
 .../clientpositive/selectDistinctStar.q.out     |    44 +-
 .../clientpositive/show_create_database.q.out   |    19 +
 .../results/clientpositive/show_functions.q.out |     1 +
 .../clientpositive/spark/auto_join18.q.out      |    10 +-
 .../spark/auto_join18_multi_distinct.q.out      |    12 +-
 .../clientpositive/spark/auto_join27.q.out      |    18 +-
 .../clientpositive/spark/auto_join32.q.out      |    53 +-
 .../spark/bucket_map_join_tez1.q.out            |   357 +
 .../results/clientpositive/spark/count.q.out    |    14 +-
 .../clientpositive/spark/groupby5_map.q.out     |     4 +-
 .../spark/groupby5_map_skew.q.out               |     4 +-
 .../clientpositive/spark/groupby_cube1.q.out    |    12 +-
 .../clientpositive/spark/groupby_position.q.out |    18 +-
 .../spark/groupby_resolution.q.out              |    60 +-
 .../clientpositive/spark/groupby_rollup1.q.out  |    12 +-
 .../results/clientpositive/spark/having.q.out   |    62 +-
 .../spark/infer_bucket_sort_map_operators.q.out |     4 +-
 .../results/clientpositive/spark/join18.q.out   |    10 +-
 .../spark/join18_multi_distinct.q.out           |    12 +-
 .../results/clientpositive/spark/join31.q.out   |    36 +-
 .../spark/limit_partition_metadataonly.q.out    |     4 +-
 .../clientpositive/spark/limit_pushdown.q.out   |    34 +-
 .../clientpositive/spark/mapjoin_mapjoin.q.out  |    24 +-
 .../spark/metadata_only_queries.q.out           |     4 +-
 .../clientpositive/spark/ppd_join_filter.q.out  |    90 +-
 .../spark/ql_rewrite_gbtoidx_cbo_1.q.out        |   168 +-
 .../clientpositive/spark/stats_only_null.q.out  |     8 +-
 .../clientpositive/spark/subquery_in.q.out      |    36 +-
 .../results/clientpositive/spark/union11.q.out  |    42 +-
 .../results/clientpositive/spark/union14.q.out  |    28 +-
 .../results/clientpositive/spark/union15.q.out  |    28 +-
 .../results/clientpositive/spark/union28.q.out  |     4 +-
 .../results/clientpositive/spark/union30.q.out  |     4 +-
 .../results/clientpositive/spark/union33.q.out  |     8 +-
 .../results/clientpositive/spark/union5.q.out   |    34 +-
 .../results/clientpositive/spark/union7.q.out   |    28 +-
 .../clientpositive/spark/union_remove_21.q.out  |     4 +-
 .../spark/vector_count_distinct.q.out           |     4 +-
 .../spark/vector_decimal_aggregate.q.out        |    12 +-
 .../spark/vector_distinct_2.q.out               |    28 +-
 .../clientpositive/spark/vector_groupby_3.q.out |    30 +-
 .../spark/vector_mapjoin_reduce.q.out           |    36 +-
 .../clientpositive/spark/vector_orderby_5.q.out |     6 +-
 .../clientpositive/spark/vectorization_0.q.out  |    16 +-
 .../clientpositive/spark/vectorization_13.q.out |    32 +-
 .../clientpositive/spark/vectorization_15.q.out |    16 +-
 .../clientpositive/spark/vectorization_16.q.out |    16 +-
 .../clientpositive/spark/vectorization_9.q.out  |    16 +-
 .../spark/vectorization_pushdown.q.out          |     4 +-
 .../spark/vectorization_short_regress.q.out     |    74 +-
 .../spark/vectorized_nested_mapjoin.q.out       |    18 +-
 .../spark/vectorized_timestamp_funcs.q.out      |    12 +-
 .../clientpositive/stats_only_null.q.out        |     8 +-
 .../results/clientpositive/stats_ppr_all.q.out  |    16 +-
 .../subq_where_serialization.q.out              |    18 +-
 .../clientpositive/subquery_exists_having.q.out |    48 +-
 .../results/clientpositive/subquery_in.q.out    |    36 +-
 .../clientpositive/subquery_in_having.q.out     |   260 +-
 .../clientpositive/subquery_notexists.q.out     |    18 +-
 .../subquery_notexists_having.q.out             |    26 +-
 .../results/clientpositive/subquery_notin.q.out |    24 +-
 .../subquery_notin_having.q.java1.7.out         |    50 +-
 .../subquery_unqualcolumnrefs.q.out             |    74 +-
 .../results/clientpositive/subquery_views.q.out |   124 +-
 .../tez/bucket_map_join_tez1.q.out              |   333 +
 .../clientpositive/tez/constprog_dpp.q.out      |     4 +-
 .../test/results/clientpositive/tez/count.q.out |    14 +-
 .../tez/dynamic_partition_pruning.q.out         |    88 +-
 .../tez/dynpart_sort_opt_vectorization.q.out    |   102 +-
 .../tez/dynpart_sort_optimization.q.out         |   101 +-
 .../clientpositive/tez/explainuser_1.q.out      |  2799 +-
 .../clientpositive/tez/explainuser_2.q.out      |  4004 +-
 .../clientpositive/tez/explainuser_3.q.out      |    10 +-
 .../results/clientpositive/tez/having.q.out     |    62 +-
 .../clientpositive/tez/limit_pushdown.q.out     |    34 +-
 .../clientpositive/tez/mapjoin_mapjoin.q.out    |    24 +-
 .../tez/metadata_only_queries.q.out             |     4 +-
 .../clientpositive/tez/metadataonly1.q.out      |    44 +-
 .../test/results/clientpositive/tez/mrr.q.out   |    94 +-
 .../clientpositive/tez/selectDistinctStar.q.out |    44 +-
 .../tez/show_create_database.q.out              |    19 +
 .../clientpositive/tez/stats_only_null.q.out    |     8 +-
 .../clientpositive/tez/subquery_in.q.out        |    36 +-
 .../results/clientpositive/tez/tez_dml.q.out    |     6 +-
 .../results/clientpositive/tez/union5.q.out     |    44 +-
 .../results/clientpositive/tez/union7.q.out     |    28 +-
 .../clientpositive/tez/unionDistinct_1.q.out    |     8 +-
 .../clientpositive/tez/union_fast_stats.q.out   |   526 +
 .../clientpositive/tez/vector_aggregate_9.q.out |     4 +-
 .../tez/vector_auto_smb_mapjoin_14.q.out        |  1576 +
 .../tez/vector_binary_join_groupby.q.out        |     4 +-
 .../clientpositive/tez/vector_char_cast.q.out   |    35 +
 .../tez/vector_count_distinct.q.out             |     4 +-
 .../tez/vector_decimal_aggregate.q.out          |    12 +-
 .../tez/vector_decimal_precision.q.out          |     4 +-
 .../clientpositive/tez/vector_decimal_udf.q.out |    30 +-
 .../clientpositive/tez/vector_distinct_2.q.out  |    28 +-
 .../clientpositive/tez/vector_groupby_3.q.out   |    30 +-
 .../tez/vector_groupby_reduce.q.out             |  1460 +-
 .../tez/vector_grouping_sets.q.out              |     8 +-
 .../tez/vector_mapjoin_reduce.q.out             |    36 +-
 .../clientpositive/tez/vector_orderby_5.q.out   |     6 +-
 .../clientpositive/tez/vector_outer_join2.q.out |    20 +-
 .../tez/vector_partition_diff_num_cols.q.out    |    20 +-
 .../tez/vector_partitioned_date_time.q.out      |    12 +-
 .../tez/vector_reduce_groupby_decimal.q.out     |    24 +-
 .../clientpositive/tez/vectorization_0.q.out    |    16 +-
 .../clientpositive/tez/vectorization_13.q.out   |    32 +-
 .../clientpositive/tez/vectorization_15.q.out   |    16 +-
 .../clientpositive/tez/vectorization_16.q.out   |    16 +-
 .../clientpositive/tez/vectorization_9.q.out    |    16 +-
 .../tez/vectorization_limit.q.out               |    22 +-
 .../tez/vectorization_pushdown.q.out            |     4 +-
 .../tez/vectorization_short_regress.q.out       |    74 +-
 .../tez/vectorized_distinct_gby.q.out           |     8 +-
 .../vectorized_dynamic_partition_pruning.q.out  |    88 +-
 .../tez/vectorized_nested_mapjoin.q.out         |    18 +-
 .../clientpositive/tez/vectorized_parquet.q.out |     6 +-
 .../tez/vectorized_timestamp_funcs.q.out        |    12 +-
 ql/src/test/results/clientpositive/udf8.q.out   |     4 +-
 .../test/results/clientpositive/udf_count.q.out |    16 +-
 .../test/results/clientpositive/union11.q.out   |    70 +-
 .../test/results/clientpositive/union14.q.out   |    32 +-
 .../test/results/clientpositive/union15.q.out   |    38 +-
 .../test/results/clientpositive/union28.q.out   |     8 +-
 .../test/results/clientpositive/union30.q.out   |     8 +-
 .../test/results/clientpositive/union33.q.out   |     8 +-
 ql/src/test/results/clientpositive/union5.q.out |    48 +-
 ql/src/test/results/clientpositive/union7.q.out |    32 +-
 .../clientpositive/unionDistinct_1.q.out        |     8 +-
 .../clientpositive/union_fast_stats.q.out       |   526 +
 .../clientpositive/union_remove_21.q.out        |     8 +-
 .../clientpositive/vector_aggregate_9.q.out     |     4 +-
 .../vector_aggregate_without_gby.q.out          |     4 +-
 .../vector_auto_smb_mapjoin_14.q.out            |  1792 +
 .../vector_binary_join_groupby.q.out            |     4 +-
 .../clientpositive/vector_char_cast.q.out       |    35 +
 .../clientpositive/vector_count_distinct.q.out  |     6 +-
 .../vector_decimal_aggregate.q.out              |    12 +-
 .../vector_decimal_precision.q.out              |     4 +-
 .../clientpositive/vector_decimal_udf.q.out     |    30 +-
 .../clientpositive/vector_distinct_2.q.out      |    28 +-
 .../clientpositive/vector_groupby_3.q.out       |    30 +-
 .../clientpositive/vector_groupby_reduce.q.out  |  1474 +-
 .../clientpositive/vector_grouping_sets.q.out   |     8 +-
 .../clientpositive/vector_left_outer_join.q.out |     8 +-
 .../clientpositive/vector_mapjoin_reduce.q.out  |    36 +-
 .../clientpositive/vector_orderby_5.q.out       |     6 +-
 .../clientpositive/vector_outer_join1.q.out     |     8 +-
 .../clientpositive/vector_outer_join2.q.out     |    28 +-
 .../clientpositive/vector_outer_join3.q.out     |    24 +-
 .../clientpositive/vector_outer_join4.q.out     |     8 +-
 .../clientpositive/vector_outer_join5.q.out     |    48 +-
 .../vector_partition_diff_num_cols.q.out        |    20 +-
 .../vector_partitioned_date_time.q.out          |    12 +-
 .../vector_reduce_groupby_decimal.q.out         |    24 +-
 .../clientpositive/vector_struct_in.q.out       |   825 +
 .../clientpositive/vectorization_0.q.out        |    16 +-
 .../clientpositive/vectorization_13.q.out       |    32 +-
 .../clientpositive/vectorization_15.q.out       |    16 +-
 .../clientpositive/vectorization_16.q.out       |    16 +-
 .../clientpositive/vectorization_9.q.out        |    16 +-
 .../clientpositive/vectorization_limit.q.out    |    24 +-
 .../clientpositive/vectorization_pushdown.q.out |     4 +-
 .../vectorization_short_regress.q.out           |    74 +-
 .../vectorized_distinct_gby.q.out               |    12 +-
 .../vectorized_nested_mapjoin.q.out             |    26 +-
 .../clientpositive/vectorized_parquet.q.out     |     6 +-
 .../vectorized_parquet_types.q.out              |     6 +-
 .../vectorized_timestamp_funcs.q.out            |    12 +-
 .../results/clientpositive/windowing_udaf.q.out |    12 +
 ql/src/test/templates/TestCliDriver.vm          |     3 +-
 .../hadoop/hive/serde/test/InnerStruct.java     |     2 +-
 .../hadoop/hive/serde/test/ThriftTestObj.java   |     2 +-
 .../hadoop/hive/serde2/thrift/test/Complex.java |     2 +-
 .../hive/serde2/thrift/test/IntString.java      |     2 +-
 .../hive/serde2/thrift/test/MegaStruct.java     |     2 +-
 .../hive/serde2/thrift/test/MiniStruct.java     |     2 +-
 .../hive/serde2/thrift/test/SetIntString.java   |     2 +-
 .../hive/serde2/ColumnProjectionUtils.java      |    22 +
 .../apache/hadoop/hive/serde2/WriteBuffers.java |    10 +-
 .../BinarySortableSerDeWithEndPrefix.java       |    41 +
 .../hadoop/hive/serde2/lazy/LazyByte.java       |     4 +
 .../hadoop/hive/serde2/lazy/LazyDouble.java     |     4 +
 .../hadoop/hive/serde2/lazy/LazyFloat.java      |     4 +
 .../hadoop/hive/serde2/lazy/LazyInteger.java    |     4 +
 .../hadoop/hive/serde2/lazy/LazyLong.java       |     4 +
 .../hadoop/hive/serde2/lazy/LazyShort.java      |     4 +
 .../hadoop/hive/serde2/lazy/LazyUtils.java      |    28 +
 .../hadoop/hive/service/HiveClusterStatus.java  |     2 +-
 .../hive/service/HiveServerException.java       |     2 +-
 .../apache/hadoop/hive/service/ThriftHive.java  |     2 +-
 .../service/cli/thrift/TArrayTypeEntry.java     |     2 +-
 .../hive/service/cli/thrift/TBinaryColumn.java  |     2 +-
 .../hive/service/cli/thrift/TBoolColumn.java    |     2 +-
 .../hive/service/cli/thrift/TBoolValue.java     |     2 +-
 .../hive/service/cli/thrift/TByteColumn.java    |     2 +-
 .../hive/service/cli/thrift/TByteValue.java     |     2 +-
 .../hive/service/cli/thrift/TCLIService.java    |     2 +-
 .../cli/thrift/TCancelDelegationTokenReq.java   |     2 +-
 .../cli/thrift/TCancelDelegationTokenResp.java  |     2 +-
 .../service/cli/thrift/TCancelOperationReq.java |     2 +-
 .../cli/thrift/TCancelOperationResp.java        |     2 +-
 .../service/cli/thrift/TCloseOperationReq.java  |     2 +-
 .../service/cli/thrift/TCloseOperationResp.java |     2 +-
 .../service/cli/thrift/TCloseSessionReq.java    |     2 +-
 .../service/cli/thrift/TCloseSessionResp.java   |     2 +-
 .../hive/service/cli/thrift/TColumnDesc.java    |     2 +-
 .../hive/service/cli/thrift/TDoubleColumn.java  |     2 +-
 .../hive/service/cli/thrift/TDoubleValue.java   |     2 +-
 .../cli/thrift/TExecuteStatementReq.java        |     2 +-
 .../cli/thrift/TExecuteStatementResp.java       |     2 +-
 .../service/cli/thrift/TFetchResultsReq.java    |     2 +-
 .../service/cli/thrift/TFetchResultsResp.java   |     2 +-
 .../service/cli/thrift/TGetCatalogsReq.java     |     2 +-
 .../service/cli/thrift/TGetCatalogsResp.java    |     2 +-
 .../hive/service/cli/thrift/TGetColumnsReq.java |     2 +-
 .../service/cli/thrift/TGetColumnsResp.java     |     2 +-
 .../cli/thrift/TGetDelegationTokenReq.java      |     2 +-
 .../cli/thrift/TGetDelegationTokenResp.java     |     2 +-
 .../service/cli/thrift/TGetFunctionsReq.java    |     2 +-
 .../service/cli/thrift/TGetFunctionsResp.java   |     2 +-
 .../hive/service/cli/thrift/TGetInfoReq.java    |     2 +-
 .../hive/service/cli/thrift/TGetInfoResp.java   |     2 +-
 .../cli/thrift/TGetOperationStatusReq.java      |     2 +-
 .../cli/thrift/TGetOperationStatusResp.java     |     2 +-
 .../cli/thrift/TGetResultSetMetadataReq.java    |     2 +-
 .../cli/thrift/TGetResultSetMetadataResp.java   |     2 +-
 .../hive/service/cli/thrift/TGetSchemasReq.java |     2 +-
 .../service/cli/thrift/TGetSchemasResp.java     |     2 +-
 .../service/cli/thrift/TGetTableTypesReq.java   |     2 +-
 .../service/cli/thrift/TGetTableTypesResp.java  |     2 +-
 .../hive/service/cli/thrift/TGetTablesReq.java  |     2 +-
 .../hive/service/cli/thrift/TGetTablesResp.java |     2 +-
 .../service/cli/thrift/TGetTypeInfoReq.java     |     2 +-
 .../service/cli/thrift/TGetTypeInfoResp.java    |     2 +-
 .../service/cli/thrift/THandleIdentifier.java   |     2 +-
 .../hive/service/cli/thrift/TI16Column.java     |     2 +-
 .../hive/service/cli/thrift/TI16Value.java      |     2 +-
 .../hive/service/cli/thrift/TI32Column.java     |     2 +-
 .../hive/service/cli/thrift/TI32Value.java      |     2 +-
 .../hive/service/cli/thrift/TI64Column.java     |     2 +-
 .../hive/service/cli/thrift/TI64Value.java      |     2 +-
 .../hive/service/cli/thrift/TMapTypeEntry.java  |     2 +-
 .../service/cli/thrift/TOpenSessionReq.java     |     2 +-
 .../service/cli/thrift/TOpenSessionResp.java    |     2 +-
 .../service/cli/thrift/TOperationHandle.java    |     2 +-
 .../service/cli/thrift/TPrimitiveTypeEntry.java |     2 +-
 .../cli/thrift/TRenewDelegationTokenReq.java    |     2 +-
 .../cli/thrift/TRenewDelegationTokenResp.java   |     2 +-
 .../apache/hive/service/cli/thrift/TRow.java    |     2 +-
 .../apache/hive/service/cli/thrift/TRowSet.java |     2 +-
 .../hive/service/cli/thrift/TSessionHandle.java |     2 +-
 .../apache/hive/service/cli/thrift/TStatus.java |     2 +-
 .../hive/service/cli/thrift/TStringColumn.java  |     2 +-
 .../hive/service/cli/thrift/TStringValue.java   |     2 +-
 .../service/cli/thrift/TStructTypeEntry.java    |     2 +-
 .../hive/service/cli/thrift/TTableSchema.java   |     2 +-
 .../hive/service/cli/thrift/TTypeDesc.java      |     2 +-
 .../service/cli/thrift/TTypeQualifiers.java     |     2 +-
 .../service/cli/thrift/TUnionTypeEntry.java     |     2 +-
 .../cli/thrift/TUserDefinedTypeEntry.java       |     2 +-
 .../gen-py/hive_service/ThriftHive-remote       |    49 +-
 .../auth/LdapAuthenticationProviderImpl.java    |    82 +-
 .../org/apache/hive/service/cli/Column.java     |     2 +-
 .../thrift/RetryingThriftCLIServiceClient.java  |   331 +
 .../org/apache/hive/service/cli/TestColumn.java |   129 +
 .../cli/TestRetryingThriftCLIServiceClient.java |   133 +
 .../hadoop/hive/shims/Hadoop20SShims.java       |     5 +-
 shims/0.23/pom.xml                              |     1 -
 .../apache/hadoop/hive/shims/Hadoop23Shims.java |    27 +-
 .../hive/thrift/HadoopThriftAuthBridge.java     |     3 +
 .../hive/ql/io/sarg/SearchArgumentFactory.java  |     5 +-
 .../hive/ql/io/sarg/SearchArgumentImpl.java     |     7 +-
 testutils/ptest2/src/main/resources/log4j2.xml  |     5 +-
 821 files changed, 105344 insertions(+), 16997 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/6b3e82d3/bin/beeline
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/hive/blob/6b3e82d3/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/hive/blob/6b3e82d3/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java
----------------------------------------------------------------------


[08/43] hive git commit: Merge branch 'master' into beeline-cli

Posted by se...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/00e0d55a/beeline/src/java/org/apache/hive/beeline/BeeLine.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/hive/blob/00e0d55a/beeline/src/java/org/apache/hive/beeline/Commands.java
----------------------------------------------------------------------


[42/43] hive git commit: HIVE-11978 : LLAP: NPE in Expr toString (Sergey Shelukhin)

Posted by se...@apache.org.
HIVE-11978 : LLAP: NPE in Expr toString (Sergey Shelukhin)


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

Branch: refs/heads/llap
Commit: 434b7d47dce3be14f11c0b0eb2400038e6db06c3
Parents: 3c5b4ce
Author: Sergey Shelukhin <se...@apache.org>
Authored: Mon Sep 28 12:09:59 2015 -0700
Committer: Sergey Shelukhin <se...@apache.org>
Committed: Mon Sep 28 12:09:59 2015 -0700

----------------------------------------------------------------------
 .../org/apache/hadoop/hive/ql/plan/ExprNodeGenericFuncDesc.java    | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/434b7d47/ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeGenericFuncDesc.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeGenericFuncDesc.java b/ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeGenericFuncDesc.java
index 655cfb3..b5d2ddf 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeGenericFuncDesc.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeGenericFuncDesc.java
@@ -141,7 +141,7 @@ public class ExprNodeGenericFuncDesc extends ExprNodeDesc implements
         if (i > 0) {
           sb.append(", ");
         }
-        sb.append(chidren.get(i).toString());
+        sb.append(chidren.get(i));
       }
     }
     sb.append(")");


[25/43] hive git commit: HIVE-11770: Use the static variable from beeline instead of untils from JDBC(Ferdinand Xu, reviewed by Xuefu Zhang)

Posted by se...@apache.org.
HIVE-11770: Use the static variable from beeline instead of untils from JDBC(Ferdinand Xu, reviewed by Xuefu Zhang)


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

Branch: refs/heads/llap
Commit: 6380de2bcaf300d24d55fcc86c23fc2fd6bf68c3
Parents: 5c39d07
Author: Ferdinand Xu <ch...@intel.com>
Authored: Wed Sep 9 21:45:17 2015 -0400
Committer: Ferdinand Xu <ch...@intel.com>
Committed: Wed Sep 9 21:45:17 2015 -0400

----------------------------------------------------------------------
 beeline/src/java/org/apache/hive/beeline/BeeLine.java     | 3 +--
 beeline/src/java/org/apache/hive/beeline/cli/HiveCli.java | 4 ----
 jdbc/src/java/org/apache/hive/jdbc/Utils.java             | 4 ++--
 3 files changed, 3 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/6380de2b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLine.java b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
index 5db1bf7..d8e44de 100644
--- a/beeline/src/java/org/apache/hive/beeline/BeeLine.java
+++ b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
@@ -92,7 +92,6 @@ import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.hive.conf.HiveConf;
 import org.apache.hadoop.io.IOUtils;
 import org.apache.hive.beeline.cli.CliOptionsProcessor;
-import org.apache.hive.jdbc.Utils;
 
 import static org.apache.hadoop.hive.metastore.MetaStoreUtils.DEFAULT_DATABASE_NAME;
 
@@ -881,7 +880,7 @@ public class BeeLine implements Closeable {
   }
 
   private int embeddedConnect() {
-    if (!execCommandWithPrefix("!connect " + Utils.URL_PREFIX + " '' ''")) {
+    if (!execCommandWithPrefix("!connect " + BEELINE_DEFAULT_JDBC_URL + " '' ''")) {
       return ERRNO_OTHER;
     } else {
       return ERRNO_OK;

http://git-wip-us.apache.org/repos/asf/hive/blob/6380de2b/beeline/src/java/org/apache/hive/beeline/cli/HiveCli.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/cli/HiveCli.java b/beeline/src/java/org/apache/hive/beeline/cli/HiveCli.java
index 3e0da77..1e7f068 100644
--- a/beeline/src/java/org/apache/hive/beeline/cli/HiveCli.java
+++ b/beeline/src/java/org/apache/hive/beeline/cli/HiveCli.java
@@ -18,13 +18,9 @@
 package org.apache.hive.beeline.cli;
 
 import org.apache.hive.beeline.BeeLine;
-import org.apache.hive.jdbc.Utils;
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
 
 public class HiveCli {
   private BeeLine beeLine;

http://git-wip-us.apache.org/repos/asf/hive/blob/6380de2b/jdbc/src/java/org/apache/hive/jdbc/Utils.java
----------------------------------------------------------------------
diff --git a/jdbc/src/java/org/apache/hive/jdbc/Utils.java b/jdbc/src/java/org/apache/hive/jdbc/Utils.java
index e4df7f4..d8368a4 100644
--- a/jdbc/src/java/org/apache/hive/jdbc/Utils.java
+++ b/jdbc/src/java/org/apache/hive/jdbc/Utils.java
@@ -36,12 +36,12 @@ import org.apache.hive.service.cli.thrift.TStatusCode;
 import org.apache.http.client.CookieStore;
 import org.apache.http.cookie.Cookie;
 
-public class Utils {
+class Utils {
   static final Log LOG = LogFactory.getLog(Utils.class.getName());
   /**
     * The required prefix for the connection URL.
     */
-  public static final String URL_PREFIX = "jdbc:hive2://";
+  static final String URL_PREFIX = "jdbc:hive2://";
 
   /**
     * If host is provided, without a port.


[40/43] hive git commit: HIVE-11590 : AvroDeserializer is very chatty (Swarnim Kulkarni via Xuefu Zhang)

Posted by se...@apache.org.
HIVE-11590 : AvroDeserializer is very chatty (Swarnim Kulkarni via Xuefu Zhang)

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/ea05d3d4
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/ea05d3d4
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/ea05d3d4

Branch: refs/heads/llap
Commit: ea05d3d4b5349f81d33fed27225af5f161ee7ff8
Parents: 0463b7a
Author: Swarnim Kulkarni <ku...@gmail.com>
Authored: Tue Sep 8 21:59:00 2015 -0800
Committer: Ashutosh Chauhan <ha...@apache.org>
Committed: Mon Sep 28 11:36:43 2015 -0700

----------------------------------------------------------------------
 .../hadoop/hive/serde2/avro/AvroDeserializer.java      |  2 +-
 .../org/apache/hadoop/hive/serde2/avro/AvroSerDe.java  | 13 +++++++++----
 .../apache/hadoop/hive/serde2/avro/AvroSerdeUtils.java |  7 +++++--
 .../apache/hadoop/hive/serde2/avro/AvroSerializer.java |  2 --
 4 files changed, 15 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/ea05d3d4/serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroDeserializer.java
----------------------------------------------------------------------
diff --git a/serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroDeserializer.java b/serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroDeserializer.java
index cade8c3..46997f8 100644
--- a/serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroDeserializer.java
+++ b/serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroDeserializer.java
@@ -163,7 +163,7 @@ class AvroDeserializer {
         reEncoder = new SchemaReEncoder(r.getSchema(), readerSchema);
         reEncoderCache.put(recordReaderId, reEncoder);
       } else{
-        LOG.info("Adding new valid RRID :" +  recordReaderId);
+        LOG.debug("Adding new valid RRID :" +  recordReaderId);
         noEncodingNeeded.add(recordReaderId);
       }
       if(reEncoder != null) {

http://git-wip-us.apache.org/repos/asf/hive/blob/ea05d3d4/serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroSerDe.java
----------------------------------------------------------------------
diff --git a/serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroSerDe.java b/serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroSerDe.java
index efff663..0e4e4c6 100644
--- a/serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroSerDe.java
+++ b/serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroSerDe.java
@@ -84,7 +84,7 @@ public class AvroSerDe extends AbstractSerDe {
   public void initialize(Configuration configuration, Properties properties) throws SerDeException {
     // Reset member variables so we don't get in a half-constructed state
     if (schema != null) {
-      LOG.info("Resetting already initialized AvroSerDe");
+      LOG.debug("Resetting already initialized AvroSerDe");
     }
 
     schema = null;
@@ -110,10 +110,12 @@ public class AvroSerDe extends AbstractSerDe {
       properties.setProperty(AvroSerdeUtils.AvroTableProperties.SCHEMA_LITERAL.getPropName(), schema.toString());
     }
 
-    LOG.info("Avro schema is " + schema);
+    if (LOG.isDebugEnabled()) {
+      LOG.debug("Avro schema is " + schema);
+    }
 
     if (configuration == null) {
-      LOG.info("Configuration null, not inserting schema");
+      LOG.debug("Configuration null, not inserting schema");
     } else {
       configuration.set(
           AvroSerdeUtils.AvroTableProperties.AVRO_SERDE_SCHEMA.getPropName(), schema.toString(false));
@@ -136,7 +138,10 @@ public class AvroSerDe extends AbstractSerDe {
       //Comments are separated by "\0" in columnCommentProperty, see method getSchema
       //in MetaStoreUtils where this string columns.comments is generated
       columnComments = Arrays.asList(columnCommentProperty.split("\0"));
-      LOG.info("columnComments is " + columnCommentProperty);
+
+      if (LOG.isDebugEnabled()) {
+        LOG.debug("columnComments is " + columnCommentProperty);
+      }
     }
     if (columnNames.size() != columnTypes.size()) {
       throw new IllegalArgumentException("AvroSerde initialization failed. Number of column " +

http://git-wip-us.apache.org/repos/asf/hive/blob/ea05d3d4/serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroSerdeUtils.java
----------------------------------------------------------------------
diff --git a/serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroSerdeUtils.java b/serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroSerdeUtils.java
index 903ac95..a451601 100644
--- a/serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroSerdeUtils.java
+++ b/serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroSerdeUtils.java
@@ -153,8 +153,11 @@ public class AvroSerdeUtils {
       fs = FileSystem.get(new URI(schemaFSUrl), conf);
     } catch (IOException ioe) {
       //return null only if the file system in schema is not recognized
-      String msg = "Failed to open file system for uri " + schemaFSUrl + " assuming it is not a FileSystem url";
-      LOG.debug(msg, ioe);
+      if (LOG.isDebugEnabled()) {
+        String msg = "Failed to open file system for uri " + schemaFSUrl + " assuming it is not a FileSystem url";
+        LOG.debug(msg, ioe);
+      }
+
       return null;
     }
     try {

http://git-wip-us.apache.org/repos/asf/hive/blob/ea05d3d4/serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroSerializer.java
----------------------------------------------------------------------
diff --git a/serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroSerializer.java b/serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroSerializer.java
index 866c33d..1c8bc48 100644
--- a/serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroSerializer.java
+++ b/serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroSerializer.java
@@ -56,8 +56,6 @@ import org.apache.hadoop.hive.serde2.typeinfo.UnionTypeInfo;
 import org.apache.hadoop.io.Writable;
 
 class AvroSerializer {
-  private static final Log LOG = LogFactory.getLog(AvroSerializer.class);
-
   /**
    * The Schema to use when serializing Map keys.
    * Since we're sharing this across Serializer instances, it must be immutable;


[19/43] hive git commit: HIVE-11579: Invoke the set command will close standard error output[beeline-cli](Ferdinand Xu, reviewed by Xuefu Zhang)

Posted by se...@apache.org.
HIVE-11579: Invoke the set command will close standard error output[beeline-cli](Ferdinand Xu, reviewed by Xuefu Zhang)


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

Branch: refs/heads/llap
Commit: 80f6184d301d94b5c203f45d0d849ea4bea054fb
Parents: e28043f
Author: Ferdinand Xu <ch...@intel.com>
Authored: Wed Aug 19 21:12:00 2015 -0400
Committer: Ferdinand Xu <ch...@intel.com>
Committed: Wed Aug 19 21:12:00 2015 -0400

----------------------------------------------------------------------
 .../org/apache/hive/beeline/BeeLineOpts.java    |  2 +-
 .../apache/hive/beeline/cli/TestHiveCli.java    | 12 ++++++++---
 .../hadoop/hive/ql/session/SessionState.java    | 21 ++++++++++++++++++++
 .../cli/operation/HiveCommandOperation.java     | 18 +++++++++--------
 .../service/cli/operation/SQLOperation.java     |  4 ++++
 5 files changed, 45 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/80f6184d/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java b/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java
index d9f726d..72e9037 100644
--- a/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java
+++ b/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java
@@ -228,7 +228,7 @@ class BeeLineOpts implements Completer {
   public void updateBeeLineOptsFromConf() {
     if (!beeLine.isBeeLine()) {
       if (conf == null) {
-        conf = beeLine.getCommands().getHiveConf(true);
+        conf = beeLine.getCommands().getHiveConf(false);
       }
       setForce(HiveConf.getBoolVar(conf, HiveConf.ConfVars.CLIIGNOREERRORS));
     }

http://git-wip-us.apache.org/repos/asf/hive/blob/80f6184d/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
----------------------------------------------------------------------
diff --git a/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java b/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
index c465eac..c7eaa8e 100644
--- a/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
+++ b/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
@@ -107,7 +107,7 @@ public class TestHiveCli {
 
   @Test
   public void testDatabaseOptions() {
-    verifyCMD("\nshow tables;\nquit;", "testTbl", os, new String[] { "--database", "test" },
+    verifyCMD("\nshow tables;\nquit;", "testtbl", os, new String[] { "--database", "test" },
         ERRNO_OK);
   }
 
@@ -134,7 +134,7 @@ public class TestHiveCli {
 
   @Test
   public void testSqlFromCmdWithDBName() {
-    verifyCMD(null, "testTbl", os, new String[] { "-e", "show tables;", "--database", "test" },
+    verifyCMD(null, "testtbl", os, new String[] { "-e", "show tables;", "--database", "test" },
         ERRNO_OK);
   }
 
@@ -164,6 +164,12 @@ public class TestHiveCli {
     f.delete();
   }
 
+  @Test
+  public void testErrOutput() {
+    verifyCMD("show tables;set system:xxx=5;set system:yyy=${system:xxx};\nlss;",
+        "cannot recognize input near 'lss' '<EOF>' '<EOF>'", errS, null, ERRNO_OK);
+  }
+
   private void redirectOutputStream() {
     // Setup output stream to redirect output to
     os = new ByteArrayOutputStream();
@@ -200,8 +206,8 @@ public class TestHiveCli {
   @Before
   public void setup() {
     cli = new HiveCli();
-    redirectOutputStream();
     initFromFile();
+    redirectOutputStream();
   }
 
   @After

http://git-wip-us.apache.org/repos/asf/hive/blob/80f6184d/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java b/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java
index 49d64db..13ca87d 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java
@@ -161,6 +161,11 @@ public class SessionState {
   protected File tmpOutputFile;
 
   /**
+   * Temporary file name used to store error output of executing non-Hive commands (e.g., set, dfs)
+   */
+  protected File tmpErrOutputFile;
+
+  /**
    * type of the command.
    */
   private HiveOperation commandType;
@@ -305,6 +310,14 @@ public class SessionState {
     tmpOutputFile = f;
   }
 
+  public File getTmpErrOutputFile() {
+    return tmpErrOutputFile;
+  }
+
+  public void setTmpErrOutputFile(File tmpErrOutputFile) {
+    this.tmpErrOutputFile = tmpErrOutputFile;
+  }
+
   public boolean getIsSilent() {
     if(conf != null) {
       return conf.getBoolVar(HiveConf.ConfVars.HIVESESSIONSILENT);
@@ -525,6 +538,14 @@ public class SessionState {
         }
       }
 
+      // Set temp file containing error output to be sent to client
+      if (startSs.getTmpErrOutputFile() == null) {
+        try {
+          startSs.setTmpErrOutputFile(createTempFile(startSs.getConf()));
+        } catch (IOException e) {
+          throw new RuntimeException(e);
+        }
+      }
     } catch (Exception e) {
       // Catch-all due to some exec time dependencies on session state
       // that would cause ClassNoFoundException otherwise

http://git-wip-us.apache.org/repos/asf/hive/blob/80f6184d/service/src/java/org/apache/hive/service/cli/operation/HiveCommandOperation.java
----------------------------------------------------------------------
diff --git a/service/src/java/org/apache/hive/service/cli/operation/HiveCommandOperation.java b/service/src/java/org/apache/hive/service/cli/operation/HiveCommandOperation.java
index bcc66cf..1d1e995 100644
--- a/service/src/java/org/apache/hive/service/cli/operation/HiveCommandOperation.java
+++ b/service/src/java/org/apache/hive/service/cli/operation/HiveCommandOperation.java
@@ -66,13 +66,14 @@ public class HiveCommandOperation extends ExecuteStatementOperation {
 
   private void setupSessionIO(SessionState sessionState) {
     try {
-      LOG.info("Putting temp output to file " + sessionState.getTmpOutputFile().toString());
+      LOG.info("Putting temp output to file " + sessionState.getTmpOutputFile().toString()
+          + " and error output to file " + sessionState.getTmpErrOutputFile().toString());
       sessionState.in = null; // hive server's session input stream is not used
-      // open a per-session file in auto-flush mode for writing temp results
-      sessionState.out = new PrintStream(new FileOutputStream(sessionState.getTmpOutputFile()), true, "UTF-8");
-      // TODO: for hadoop jobs, progress is printed out to session.err,
-      // we should find a way to feed back job progress to client
-      sessionState.err = new PrintStream(System.err, true, "UTF-8");
+      // open a per-session file in auto-flush mode for writing temp results and tmp error output
+      sessionState.out =
+          new PrintStream(new FileOutputStream(sessionState.getTmpOutputFile()), true, "UTF-8");
+      sessionState.err =
+          new PrintStream(new FileOutputStream(sessionState.getTmpErrOutputFile()), true, "UTF-8");
     } catch (IOException e) {
       LOG.error("Error in creating temp output file ", e);
       try {
@@ -90,8 +91,7 @@ public class HiveCommandOperation extends ExecuteStatementOperation {
 
 
   private void tearDownSessionIO() {
-    IOUtils.cleanup(LOG, parentSession.getSessionState().out);
-    IOUtils.cleanup(LOG, parentSession.getSessionState().err);
+    IOUtils.cleanup(LOG, parentSession.getSessionState().out, parentSession.getSessionState().err);
   }
 
   @Override
@@ -202,6 +202,8 @@ public class HiveCommandOperation extends ExecuteStatementOperation {
     SessionState sessionState = getParentSession().getSessionState();
     File tmp = sessionState.getTmpOutputFile();
     tmp.delete();
+    tmp = sessionState.getTmpErrOutputFile();
+    tmp.delete();
   }
 
   private void resetResultReader() {

http://git-wip-us.apache.org/repos/asf/hive/blob/80f6184d/service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java
----------------------------------------------------------------------
diff --git a/service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java b/service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java
index f4334e4..175348b 100644
--- a/service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java
+++ b/service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java
@@ -296,6 +296,10 @@ public class SQLOperation extends ExecuteStatementOperation {
     if (ss.getTmpOutputFile() != null) {
       ss.getTmpOutputFile().delete();
     }
+
+    if (ss.getTmpErrOutputFile() != null) {
+      ss.getTmpErrOutputFile().delete();
+    }
   }
 
   @Override


[43/43] hive git commit: HIVE-11979 : LLAP: merge master into branch (Sergey Shelukhin)

Posted by se...@apache.org.
HIVE-11979 : LLAP: merge master into branch (Sergey Shelukhin)


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

Branch: refs/heads/llap
Commit: bf8acfb3bbe997a9b8c474990889c5cbcb2fbb0f
Parents: 434b7d4 1cf7e25
Author: Sergey Shelukhin <se...@apache.org>
Authored: Mon Sep 28 12:11:04 2015 -0700
Committer: Sergey Shelukhin <se...@apache.org>
Committed: Mon Sep 28 12:11:04 2015 -0700

----------------------------------------------------------------------
 .../java/org/apache/hive/beeline/BeeLine.java   | 300 +++++++++---
 .../org/apache/hive/beeline/BeeLineOpts.java    |  43 +-
 .../hive/beeline/ClientCommandHookFactory.java  |  85 ++++
 .../org/apache/hive/beeline/ClientHook.java     |  33 ++
 .../java/org/apache/hive/beeline/Commands.java  | 486 ++++++++++++++-----
 .../org/apache/hive/beeline/HiveSchemaTool.java |  22 +-
 .../hive/beeline/cli/CliOptionsProcessor.java   | 104 ++++
 .../org/apache/hive/beeline/cli/HiveCli.java    |  37 ++
 .../beeline/TestClientCommandHookFactory.java   |  32 ++
 .../apache/hive/beeline/cli/TestHiveCli.java    | 289 +++++++++++
 beeline/src/test/resources/hive-site.xml        |  37 ++
 bin/beeline                                     |   5 +
 bin/ext/cli.cmd                                 |  39 +-
 bin/ext/cli.sh                                  |  35 +-
 bin/ext/util/execHiveCmd.sh                     |   6 +-
 .../org/apache/hadoop/hive/cli/CliDriver.java   |  24 +-
 .../hadoop/hive/conf/HiveVariableSource.java    |  24 +
 .../hadoop/hive/conf/VariableSubstitution.java  |  70 +++
 .../hive/conf/TestVariableSubstitution.java     |  63 +++
 .../listener/TestNotificationListener.java      |   4 +-
 .../hcatalog/templeton/tool/LaunchMapper.java   |   7 +-
 .../org/apache/hive/jdbc/HiveConnection.java    |  63 ++-
 .../java/org/apache/hadoop/hive/ql/Driver.java  |  10 +-
 .../apache/hadoop/hive/ql/metadata/Hive.java    |  25 +-
 .../formatting/MetaDataPrettyFormatUtils.java   |  24 +-
 .../correlation/ReduceSinkDeDuplication.java    |  15 +-
 .../ql/parse/ColumnStatsSemanticAnalyzer.java   |  14 +-
 .../hadoop/hive/ql/parse/SemanticAnalyzer.java  |   2 +-
 .../hive/ql/parse/VariableSubstitution.java     |  60 ---
 .../ql/processors/AddResourceProcessor.java     |  11 +-
 .../hive/ql/processors/CompileProcessor.java    |  11 +-
 .../ql/processors/DeleteResourceProcessor.java  |  11 +-
 .../hadoop/hive/ql/processors/DfsProcessor.java |  11 +-
 .../hadoop/hive/ql/processors/SetProcessor.java |  32 +-
 .../hadoop/hive/ql/session/SessionState.java    |  21 +
 .../clientpositive/insertvalues_espchars.q      |   5 +
 .../queries/clientpositive/join_grp_diff_keys.q |  21 +
 .../clientpositive/describe_pretty.q.out        | 366 +++++++-------
 .../clientpositive/insertvalues_espchars.q.out  |  30 ++
 .../clientpositive/join_grp_diff_keys.q.out     | 190 ++++++++
 .../hive/serde2/avro/AvroDeserializer.java      |   2 +-
 .../hadoop/hive/serde2/avro/AvroSerDe.java      |  13 +-
 .../hadoop/hive/serde2/avro/AvroSerdeUtils.java |   7 +-
 .../hadoop/hive/serde2/avro/AvroSerializer.java |   2 -
 .../cli/operation/HiveCommandOperation.java     |  18 +-
 .../service/cli/operation/SQLOperation.java     |  14 +-
 46 files changed, 2178 insertions(+), 545 deletions(-)
----------------------------------------------------------------------



[27/43] hive git commit: HIVE-11779 Beeline-cli: Format the output of describe pretty table command in new CLI[beeline-cli branch](Ke Jia, reviewed by Ferdinand Xu)

Posted by se...@apache.org.
HIVE-11779 Beeline-cli: Format the output of describe pretty table command in new CLI[beeline-cli branch](Ke Jia, reviewed by Ferdinand Xu)


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

Branch: refs/heads/llap
Commit: 4a91efc3c4b0d05b8f333049e0b0e0c1a5517bc3
Parents: 6e3b173
Author: Jia Ke <ke...@intel.com>
Authored: Thu Sep 17 01:50:13 2015 -0400
Committer: Ferdinand Xu <ch...@intel.com>
Committed: Thu Sep 17 01:50:13 2015 -0400

----------------------------------------------------------------------
 .../formatting/MetaDataPrettyFormatUtils.java   |  24 +-
 .../clientpositive/describe_pretty.q.out        | 366 +++++++++----------
 2 files changed, 199 insertions(+), 191 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/4a91efc3/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataPrettyFormatUtils.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataPrettyFormatUtils.java b/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataPrettyFormatUtils.java
index 8f939e6..c653252 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataPrettyFormatUtils.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataPrettyFormatUtils.java
@@ -89,7 +89,8 @@ public final class MetaDataPrettyFormatUtils {
     String columnHeaders[] = MetaDataFormatUtils.getColumnsHeader(null);
     formatOutputPretty(columnHeaders[0], columnHeaders[1], columnHeaders[2],
                         columnInformation, maxColNameLen, prettyOutputNumCols);
-    columnInformation.append(MetaDataFormatUtils.LINE_DELIM);
+    columnInformation.append(MetaDataFormatUtils.FIELD_DELIM)
+        .append(MetaDataFormatUtils.FIELD_DELIM).append(MetaDataFormatUtils.LINE_DELIM);
   }
 
   private static void formatAllFieldsPretty(StringBuilder tableInfo,
@@ -202,6 +203,7 @@ public final class MetaDataPrettyFormatUtils {
     String delim = StringUtils.repeat(" ", delimCount);
     sb.append(paddedText);
     sb.append(delim);
+    sb.append(MetaDataFormatUtils.FIELD_DELIM);
 
     return paddedText.length() + delim.length();
   }
@@ -209,23 +211,29 @@ public final class MetaDataPrettyFormatUtils {
   private static void formatOutputPretty(String colName, String colType,
       String colComment, StringBuilder tableInfo, int maxColNameLength,
       int prettyOutputNumCols) {
-    int colsConsumed = 0;
-    colsConsumed += appendFormattedColumn(tableInfo, colName, maxColNameLength + 1);
-    colsConsumed += appendFormattedColumn(tableInfo, colType, PRETTY_ALIGNMENT);
+    int colsNameConsumed = appendFormattedColumn(tableInfo, colName, maxColNameLength + 1);
+    int colsTypeConsumed =appendFormattedColumn(tableInfo, colType, PRETTY_ALIGNMENT);
 
-    colComment = breakCommentIntoMultipleLines(colComment, colsConsumed, prettyOutputNumCols);
+    colComment = breakCommentIntoMultipleLines(colComment, colsNameConsumed + colsTypeConsumed,
+        prettyOutputNumCols);
 
     /* Comment indent processing for multi-line comments.
      * Comments should be indented the same amount on each line
      * if the first line comment starts indented by k,
-     * the following line comments should also be indented by k.
+     * the following line comments should also be indented by k
+     * The following line comments will as a new line,so we need to
+     * add colsNameConsumed spaces as the first column and
+     * colsTypeConsumed spaces as the second column and the
+     * comment as the last column.we use two FIELD_DELIM to
+     * split them.
      */
     String[] commentSegments = colComment.split("\n|\r|\r\n");
     tableInfo.append(trimTrailingWS(commentSegments[0]));
     tableInfo.append(MetaDataFormatUtils.LINE_DELIM);
     for (int i = 1; i < commentSegments.length; i++) {
-      tableInfo.append(StringUtils.repeat(" ", colsConsumed));
-      tableInfo.append(trimTrailingWS(commentSegments[i]));
+      tableInfo.append(String.format(
+          "%" + colsNameConsumed + "s" + MetaDataFormatUtils.FIELD_DELIM + "%" + colsTypeConsumed
+              + "s" + MetaDataFormatUtils.FIELD_DELIM + "%s", "", "", commentSegments[i]));
       tableInfo.append(MetaDataFormatUtils.LINE_DELIM);
     }
   }

http://git-wip-us.apache.org/repos/asf/hive/blob/4a91efc3/ql/src/test/results/clientpositive/describe_pretty.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/describe_pretty.q.out b/ql/src/test/results/clientpositive/describe_pretty.q.out
index 1c05e0d..279f567 100644
--- a/ql/src/test/results/clientpositive/describe_pretty.q.out
+++ b/ql/src/test/results/clientpositive/describe_pretty.q.out
@@ -72,136 +72,136 @@ POSTHOOK: query: -- There will be an extra tab at the end of each comment line i
 DESCRIBE PRETTY test_table
 POSTHOOK: type: DESCTABLE
 POSTHOOK: Input: default@test_table
-col_name           data_type     comment	 	 
-	 	 
-col1               int           col1 one line comment	 	 
-col2               string        col2	 	 
-                                 two lines comment	 	 
-col3               string        col3	 	 
-                                 three lines	 	 
-                                 comment	 	 
-col4               string        col4 very long comment that is greater than 80	 	 
-                                 chars and is likely to spill into multiple	 	 
-                                 lines	 	 
-col5               string        col5 very long multi-line comment where each	 	 
-                                 line is very long by itself and is likely to	 	 
-                                 spill	 	 
-                                 into multiple lines.  Lorem ipsum dolor sit	 	 
-                                 amet, consectetur adipiscing elit. Proin in	 	 
-                                 dolor nisl, sodales	 	 
-                                 adipiscing tortor. Integer venenatis	 	 
-col6               string        This comment has a very long single word ABCDEF	 	 
-                                 GHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvzxyz12	 	 
-                                 3 which will not fit in a line by itself for	 	 
-                                 small column widths.	 	 
-col7_nocomment     string        	 	 
+col_name           	data_type     	comment
+		
+col1               	int           	col1 one line comment
+col2               	string        	col2
+                   	              	two lines comment
+col3               	string        	col3
+                   	              	three lines
+                   	              	comment
+col4               	string        	col4 very long comment that is greater than 80
+                   	              	chars and is likely to spill into multiple 
+                   	              	lines
+col5               	string        	col5 very long multi-line comment where each
+                   	              	line is very long by itself and is likely to 
+                   	              	spill
+                   	              	into multiple lines.  Lorem ipsum dolor sit 
+                   	              	amet, consectetur adipiscing elit. Proin in 
+                   	              	dolor nisl, sodales
+                   	              	adipiscing tortor. Integer venenatis
+col6               	string        	This comment has a very long single word ABCDEF
+                   	              	GHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvzxyz12
+                   	              	3 which will not fit in a line by itself for 
+                   	              	small column widths.
+col7_nocomment     	string        	
 PREHOOK: query: DESCRIBE PRETTY test_table
 PREHOOK: type: DESCTABLE
 PREHOOK: Input: default@test_table
 POSTHOOK: query: DESCRIBE PRETTY test_table
 POSTHOOK: type: DESCTABLE
 POSTHOOK: Input: default@test_table
-col_name           data_type     comment	 	 
-	 	 
-col1               int           col1 one line comment	 	 
-col2               string        col2	 	 
-                                 two lines comment	 	 
-col3               string        col3	 	 
-                                 three lines	 	 
-                                 comment	 	 
-col4               string        col4 very long comment that is greater than 80 chars and is likely to spill into multiple lines	 	 
-col5               string        col5 very long multi-line comment where each line is very long by itself and is likely to spill	 	 
-                                 into multiple lines.  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin in dolor nisl, sodales	 	 
-                                 adipiscing tortor. Integer venenatis	 	 
-col6               string        This comment has a very long single word ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvzxyz123 which will not fit in a line by itself for small column widths.	 	 
-col7_nocomment     string        	 	 
+col_name           	data_type     	comment
+		
+col1               	int           	col1 one line comment
+col2               	string        	col2
+                   	              	two lines comment
+col3               	string        	col3
+                   	              	three lines
+                   	              	comment
+col4               	string        	col4 very long comment that is greater than 80 chars and is likely to spill into multiple lines
+col5               	string        	col5 very long multi-line comment where each line is very long by itself and is likely to spill
+                   	              	into multiple lines.  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin in dolor nisl, sodales
+                   	              	adipiscing tortor. Integer venenatis
+col6               	string        	This comment has a very long single word ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvzxyz123 which will not fit in a line by itself for small column widths.
+col7_nocomment     	string        	
 PREHOOK: query: DESCRIBE PRETTY test_table
 PREHOOK: type: DESCTABLE
 PREHOOK: Input: default@test_table
 POSTHOOK: query: DESCRIBE PRETTY test_table
 POSTHOOK: type: DESCTABLE
 POSTHOOK: Input: default@test_table
-col_name           data_type     comment	 	 
-	 	 
-col1               int           col1 one line	 	 
-                                 comment	 	 
-col2               string        col2	 	 
-                                 two lines comment	 	 
-col3               string        col3	 	 
-                                 three lines	 	 
-                                 comment	 	 
-col4               string        col4 very long	 	 
-                                 comment that is	 	 
-                                 greater than 80	 	 
-                                 chars and is	 	 
-                                 likely to spill	 	 
-                                 into multiple	 	 
-                                 lines	 	 
-col5               string        col5 very long	 	 
-                                 multi-line	 	 
-                                 comment where	 	 
-                                 each line is very	 	 
-                                 long by itself	 	 
-                                 and is likely to	 	 
-                                 spill	 	 
-                                 into multiple	 	 
-                                 lines.  Lorem	 	 
-                                 ipsum dolor sit	 	 
-                                 amet, consectetur	 	 
-                                 adipiscing elit.	 	 
-                                 Proin in dolor	 	 
-                                 nisl, sodales	 	 
-                                 adipiscing	 	 
-                                 tortor. Integer	 	 
-                                 venenatis	 	 
-col6               string        This comment has	 	 
-                                 a very long	 	 
-                                 single word ABCDE	 	 
-                                 FGHIJKLMNOPQRSTUV	 	 
-                                 XYZabcdefghijklmn	 	 
-                                 opqrstuvzxyz123	 	 
-                                 which will not	 	 
-                                 fit in a line by	 	 
-                                 itself for small	 	 
-                                 column widths.	 	 
-col7_nocomment     string        	 	 
+col_name           	data_type     	comment
+		
+col1               	int           	col1 one line
+                   	              	comment
+col2               	string        	col2
+                   	              	two lines comment
+col3               	string        	col3
+                   	              	three lines
+                   	              	comment
+col4               	string        	col4 very long
+                   	              	comment that is 
+                   	              	greater than 80 
+                   	              	chars and is 
+                   	              	likely to spill 
+                   	              	into multiple 
+                   	              	lines
+col5               	string        	col5 very long
+                   	              	multi-line 
+                   	              	comment where 
+                   	              	each line is very
+                   	              	long by itself 
+                   	              	and is likely to 
+                   	              	spill
+                   	              	into multiple 
+                   	              	lines.  Lorem 
+                   	              	ipsum dolor sit 
+                   	              	amet, consectetur
+                   	              	adipiscing elit. 
+                   	              	Proin in dolor 
+                   	              	nisl, sodales
+                   	              	adipiscing 
+                   	              	tortor. Integer 
+                   	              	venenatis
+col6               	string        	This comment has
+                   	              	a very long 
+                   	              	single word ABCDE
+                   	              	FGHIJKLMNOPQRSTUV
+                   	              	XYZabcdefghijklmn
+                   	              	opqrstuvzxyz123 
+                   	              	which will not 
+                   	              	fit in a line by 
+                   	              	itself for small 
+                   	              	column widths.
+col7_nocomment     	string        	
 PREHOOK: query: DESCRIBE PRETTY test_table
 PREHOOK: type: DESCTABLE
 PREHOOK: Input: default@test_table
 POSTHOOK: query: DESCRIBE PRETTY test_table
 POSTHOOK: type: DESCTABLE
 POSTHOOK: Input: default@test_table
-col_name           data_type     comment	 	 
-	 	 
-col1               int           col1 one line comment	 	 
-col2               string        col2	 	 
-                                 two lines comment	 	 
-col3               string        col3	 	 
-                                 three lines	 	 
-                                 comment	 	 
-col4               string        col4 very long comment that	 	 
-                                 is greater than 80 chars	 	 
-                                 and is likely to spill into	 	 
-                                 multiple lines	 	 
-col5               string        col5 very long multi-line	 	 
-                                 comment where each line is	 	 
-                                 very long by itself and is	 	 
-                                 likely to spill	 	 
-                                 into multiple lines.  Lorem	 	 
-                                 ipsum dolor sit amet,	 	 
-                                 consectetur adipiscing	 	 
-                                 elit. Proin in dolor nisl,	 	 
-                                 sodales	 	 
-                                 adipiscing tortor. Integer	 	 
-                                 venenatis	 	 
-col6               string        This comment has a very	 	 
-                                 long single word ABCDEFGHIJ	 	 
-                                 KLMNOPQRSTUVXYZabcdefghijkl	 	 
-                                 mnopqrstuvzxyz123 which	 	 
-                                 will not fit in a line by	 	 
-                                 itself for small column	 	 
-                                 widths.	 	 
-col7_nocomment     string        	 	 
+col_name           	data_type     	comment
+		
+col1               	int           	col1 one line comment
+col2               	string        	col2
+                   	              	two lines comment
+col3               	string        	col3
+                   	              	three lines
+                   	              	comment
+col4               	string        	col4 very long comment that
+                   	              	is greater than 80 chars 
+                   	              	and is likely to spill into
+                   	              	multiple lines
+col5               	string        	col5 very long multi-line
+                   	              	comment where each line is 
+                   	              	very long by itself and is 
+                   	              	likely to spill
+                   	              	into multiple lines.  Lorem
+                   	              	ipsum dolor sit amet, 
+                   	              	consectetur adipiscing 
+                   	              	elit. Proin in dolor nisl, 
+                   	              	sodales
+                   	              	adipiscing tortor. Integer 
+                   	              	venenatis
+col6               	string        	This comment has a very
+                   	              	long single word ABCDEFGHIJ
+                   	              	KLMNOPQRSTUVXYZabcdefghijkl
+                   	              	mnopqrstuvzxyz123 which 
+                   	              	will not fit in a line by 
+                   	              	itself for small column 
+                   	              	widths.
+col7_nocomment     	string        	
 PREHOOK: query: CREATE TABLE test_table_very_long_column_name(
     col1 INT COMMENT 'col1 one line comment',
     col2_abcdefghiklmnopqrstuvxyz STRING COMMENT 'col2
@@ -230,48 +230,48 @@ PREHOOK: Input: default@test_table_very_long_column_name
 POSTHOOK: query: DESCRIBE PRETTY test_table_very_long_column_name
 POSTHOOK: type: DESCTABLE
 POSTHOOK: Input: default@test_table_very_long_column_name
-col_name                          data_type     comment	 	 
-	 	 
-col1                              int           col1 one line comment	 	 
-col2_abcdefghiklmnopqrstuvxyz     string        col2	 	 
-                                                two lines comment	 	 
-col3                              string        col3	 	 
-                                                three lines	 	 
-                                                comment	 	 
-col4                              string        col4 very long comment that is	 	 
-                                                greater than 80 chars and is	 	 
-                                                likely to spill into multiple	 	 
-                                                lines	 	 
+col_name                          	data_type     	comment
+		
+col1                              	int           	col1 one line comment
+col2_abcdefghiklmnopqrstuvxyz     	string        	col2
+                                  	              	two lines comment
+col3                              	string        	col3
+                                  	              	three lines
+                                  	              	comment
+col4                              	string        	col4 very long comment that is
+                                  	              	greater than 80 chars and is 
+                                  	              	likely to spill into multiple 
+                                  	              	lines
 PREHOOK: query: DESCRIBE PRETTY test_table_very_long_column_name
 PREHOOK: type: DESCTABLE
 PREHOOK: Input: default@test_table_very_long_column_name
 POSTHOOK: query: DESCRIBE PRETTY test_table_very_long_column_name
 POSTHOOK: type: DESCTABLE
 POSTHOOK: Input: default@test_table_very_long_column_name
-col_name                          data_type     comment	 	 
-	 	 
-col1                              int           col1 one	 	 
-                                                line	 	 
-                                                comment	 	 
-col2_abcdefghiklmnopqrstuvxyz     string        col2	 	 
-                                                two lines	 	 
-                                                comment	 	 
-col3                              string        col3	 	 
-                                                three	 	 
-                                                lines	 	 
-                                                comment	 	 
-col4                              string        col4 very	 	 
-                                                long	 	 
-                                                comment	 	 
-                                                that is	 	 
-                                                greater	 	 
-                                                than 80	 	 
-                                                chars and	 	 
-                                                is likely	 	 
-                                                to spill	 	 
-                                                into	 	 
-                                                multiple	 	 
-                                                lines	 	 
+col_name                          	data_type     	comment
+		
+col1                              	int           	col1 one
+                                  	              	line 
+                                  	              	comment
+col2_abcdefghiklmnopqrstuvxyz     	string        	col2
+                                  	              	two lines 
+                                  	              	comment
+col3                              	string        	col3
+                                  	              	three 
+                                  	              	lines
+                                  	              	comment
+col4                              	string        	col4 very
+                                  	              	long 
+                                  	              	comment 
+                                  	              	that is 
+                                  	              	greater 
+                                  	              	than 80 
+                                  	              	chars and 
+                                  	              	is likely 
+                                  	              	to spill 
+                                  	              	into 
+                                  	              	multiple 
+                                  	              	lines
 PREHOOK: query: CREATE TABLE test_table_partitioned(
     col1 INT COMMENT 'col1 one line comment',
     col2 STRING COMMENT 'col2
@@ -316,40 +316,40 @@ PREHOOK: Input: default@test_table_partitioned
 POSTHOOK: query: DESCRIBE PRETTY test_table_partitioned
 POSTHOOK: type: DESCTABLE
 POSTHOOK: Input: default@test_table_partitioned
-col_name           data_type     comment	 	 
-	 	 
-col1               int           col1 one line comment	 	 
-col2               string        col2	 	 
-                                 two lines comment	 	 
-col3               string        col3	 	 
-                                 three lines	 	 
-                                 comment	 	 
-col4               string        col4 very long comment that	 	 
-                                 is greater than 80 chars	 	 
-                                 and is likely to spill into	 	 
-                                 multiple lines	 	 
-col5               string        col5 very long multi-line	 	 
-                                 comment where each line is	 	 
-                                 very long by itself and is	 	 
-                                 likely to spill	 	 
-                                 into multiple lines.  Lorem	 	 
-                                 ipsum dolor sit amet,	 	 
-                                 consectetur adipiscing	 	 
-                                 elit. Proin in dolor nisl,	 	 
-                                 sodales	 	 
-                                 adipiscing tortor. Integer	 	 
-                                 venenatis	 	 
-col6               string        This comment has a very	 	 
-                                 long single word ABCDEFGHIJ	 	 
-                                 KLMNOPQRSTUVXYZabcdefghijkl	 	 
-                                 mnopqrstuvzxyz123 which	 	 
-                                 will not fit in a line by	 	 
-                                 itself for small column	 	 
-                                 widths.	 	 
-col7_nocomment     string        	 	 
-ds                 string        	 	 
+col_name           	data_type     	comment
+		
+col1               	int           	col1 one line comment
+col2               	string        	col2
+                   	              	two lines comment
+col3               	string        	col3
+                   	              	three lines
+                   	              	comment
+col4               	string        	col4 very long comment that
+                   	              	is greater than 80 chars 
+                   	              	and is likely to spill into
+                   	              	multiple lines
+col5               	string        	col5 very long multi-line
+                   	              	comment where each line is 
+                   	              	very long by itself and is 
+                   	              	likely to spill
+                   	              	into multiple lines.  Lorem
+                   	              	ipsum dolor sit amet, 
+                   	              	consectetur adipiscing 
+                   	              	elit. Proin in dolor nisl, 
+                   	              	sodales
+                   	              	adipiscing tortor. Integer 
+                   	              	venenatis
+col6               	string        	This comment has a very
+                   	              	long single word ABCDEFGHIJ
+                   	              	KLMNOPQRSTUVXYZabcdefghijkl
+                   	              	mnopqrstuvzxyz123 which 
+                   	              	will not fit in a line by 
+                   	              	itself for small column 
+                   	              	widths.
+col7_nocomment     	string        	
+ds                 	string        	
 	 	 
 # Partition Information	 	 
-col_name           data_type     comment	 	 
-	 	 
-ds                 string        	 	 
+col_name           	data_type     	comment
+		
+ds                 	string        	


[04/43] hive git commit: HIVE-10822: CLI start script throwing error message on console (Chinna Rao Lalam, reviewed by Ferdinand Xu)

Posted by se...@apache.org.
HIVE-10822: CLI start script throwing error message on console (Chinna Rao Lalam, reviewed by Ferdinand Xu)


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

Branch: refs/heads/llap
Commit: 328ac4d7383a71c219cb77611c9ed4b6e6cd9bea
Parents: 0336639
Author: Ferdinand Xu <ch...@intel.com>
Authored: Tue May 26 03:04:02 2015 -0400
Committer: Ferdinand Xu <ch...@intel.com>
Committed: Tue May 26 03:04:02 2015 -0400

----------------------------------------------------------------------
 bin/ext/cli.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/328ac4d7/bin/ext/cli.sh
----------------------------------------------------------------------
diff --git a/bin/ext/cli.sh b/bin/ext/cli.sh
index 733705a..cdce7e3 100644
--- a/bin/ext/cli.sh
+++ b/bin/ext/cli.sh
@@ -17,7 +17,7 @@ THISSERVICE=cli
 export SERVICE_LIST="${SERVICE_LIST}${THISSERVICE} "
 
 updateCli() {
-  if [ $USE_DEPRECATED_CLI == "true" ]; then
+  if [ "$USE_DEPRECATED_CLI" == "true" ]; then
     CLASS=org.apache.hadoop.hive.cli.CliDriver
     JAR=hive-cli-*.jar
   else
@@ -34,4 +34,4 @@ cli () {
 cli_help () {
   updateCli
   execHiveCmd $CLASS $JAR "--help"
-}
\ No newline at end of file
+}


[34/43] hive git commit: HIVE-11950: WebHCat status file doesn't show UTF8 character (Daniel Dai reviewed by Thejas Nair)

Posted by se...@apache.org.
HIVE-11950: WebHCat status file doesn't show UTF8 character (Daniel Dai reviewed by Thejas Nair)


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

Branch: refs/heads/llap
Commit: 02121a872bceead3cd8f84461af68985f6f48d5a
Parents: a4eb3c5
Author: Daniel Dai <da...@hortonworks.com>
Authored: Fri Sep 25 14:01:25 2015 -0700
Committer: Daniel Dai <da...@hortonworks.com>
Committed: Fri Sep 25 14:01:25 2015 -0700

----------------------------------------------------------------------
 .../org/apache/hive/hcatalog/templeton/tool/LaunchMapper.java | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/02121a87/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/tool/LaunchMapper.java
----------------------------------------------------------------------
diff --git a/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/tool/LaunchMapper.java b/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/tool/LaunchMapper.java
index 422e75e..a5ff67e 100644
--- a/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/tool/LaunchMapper.java
+++ b/hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/tool/LaunchMapper.java
@@ -34,6 +34,7 @@ import org.apache.hadoop.mapreduce.Mapper;
 import org.apache.hadoop.security.UserGroupInformation;
 import org.apache.hadoop.util.Shell;
 import org.apache.hadoop.util.StringUtils;
+import org.apache.hive.hcatalog.templeton.AppConfig;
 import org.apache.hive.hcatalog.templeton.BadParam;
 import org.apache.hive.hcatalog.templeton.LauncherDelegator;
 
@@ -43,6 +44,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.OutputStream;
+import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 import java.net.URISyntaxException;
 import java.util.ArrayList;
@@ -544,9 +546,10 @@ public class LaunchMapper extends Mapper<NullWritable, NullWritable, Text, Text>
     public void run() {
       PrintWriter writer = null;
       try {
-        InputStreamReader isr = new InputStreamReader(in);
+        String enc = conf.get(AppConfig.EXEC_ENCODING_NAME);
+        InputStreamReader isr = new InputStreamReader(in, enc);
         BufferedReader reader = new BufferedReader(isr);
-        writer = new PrintWriter(out);
+        writer = new PrintWriter(new OutputStreamWriter(out, enc));
 
         String line;
         while ((line = reader.readLine()) != null) {


[37/43] hive git commit: HIVE-11940: "INSERT OVERWRITE" query is very slow because it creates one "distcp" per file to copy data from staging directory to target directory (Sergio Pena, reviewd by Ferdinand Xu)

Posted by se...@apache.org.
HIVE-11940: "INSERT OVERWRITE" query is very slow because it creates one "distcp" per file to copy data from staging directory to target directory (Sergio Pena, reviewd by Ferdinand Xu)


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

Branch: refs/heads/llap
Commit: ba21806b77287e237e1aa68fa169d2a81e07346d
Parents: abe622b
Author: Sergio Pena <se...@cloudera.com>
Authored: Mon Sep 28 09:58:08 2015 -0500
Committer: Sergio Pena <se...@cloudera.com>
Committed: Mon Sep 28 09:58:08 2015 -0500

----------------------------------------------------------------------
 .../apache/hadoop/hive/ql/metadata/Hive.java    | 25 ++++++++++++++++----
 1 file changed, 20 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/ba21806b/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java b/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
index 99896c6..10cafb6 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
@@ -2686,16 +2686,31 @@ private void constructOneLBLocationMap(FileStatus fSta,
             if (srcs.length == 0) {
               success = true; // Nothing to move.
             }
+
+            /* Move files one by one because source is a subdirectory of destination */
             for (FileStatus status : srcs) {
-              success = FileUtils.copy(srcf.getFileSystem(conf), status.getPath(), destf.getFileSystem(conf), destf,
-                  true,     // delete source
-                  replace,  // overwrite destination
-                  conf);
+              Path destFile;
 
-              if (!success) {
+              /* Append the source filename to the destination directory */
+              if (destFs.isDirectory(destf)) {
+                destFile = new Path(destf, status.getPath().getName());
+              } else {
+                destFile = destf;
+              }
+
+              // Destination should be replaced, so we delete it first
+              if (destFs.exists(destFile)) {
+                if (!destFs.delete(destFile, true)) {
+                  throw new HiveException(String.format("File to replace could not be deleted: %s", destFile));
+                }
+              }
+
+              if (!(destFs.rename(status.getPath(), destFile))) {
                 throw new HiveException("Unable to move source " + status.getPath() + " to destination " + destf);
               }
             }
+
+            success = true;
           } else {
             success = destFs.rename(srcf, destf);
           }


[11/43] hive git commit: HIVE-11203: Beeline force option doesn't force execution when errors occurred in a script.(Ferdinand, reviewed by Xuefu Zhang)

Posted by se...@apache.org.
HIVE-11203: Beeline force option doesn't force execution when errors occurred in a script.(Ferdinand, reviewed by Xuefu Zhang)


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

Branch: refs/heads/llap
Commit: f589e2c03426aa9857030d7a9d787af9fb2a1b12
Parents: 102b23b
Author: Ferdinand Xu <ch...@intel.com>
Authored: Wed Jul 8 20:58:22 2015 -0400
Committer: Ferdinand Xu <ch...@intel.com>
Committed: Wed Jul 8 20:59:53 2015 -0400

----------------------------------------------------------------------
 beeline/src/java/org/apache/hive/beeline/BeeLine.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/f589e2c0/beeline/src/java/org/apache/hive/beeline/BeeLine.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLine.java b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
index 1d468eb..c4dbcd4 100644
--- a/beeline/src/java/org/apache/hive/beeline/BeeLine.java
+++ b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
@@ -889,7 +889,7 @@ public class BeeLine implements Closeable {
     FileInputStream initStream = null;
     try {
       initStream = new FileInputStream(fileName);
-      return execute(getConsoleReader(initStream), true);
+      return execute(getConsoleReader(initStream), !getOpts().getForce());
     } catch (Throwable t) {
       handleException(t);
       return ERRNO_OTHER;


[14/43] hive git commit: HIVE-11226 BeeLine-Cli: support hive.cli.prompt in new CLI (Ferdinand Xu, reviewed by Xuefu Zhang)

Posted by se...@apache.org.
HIVE-11226 BeeLine-Cli: support hive.cli.prompt in new CLI (Ferdinand Xu, reviewed by Xuefu Zhang)


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

Branch: refs/heads/llap
Commit: 0ac8f6c485f84c2d306ef8cac97d5ea8b542477d
Parents: 30aa155
Author: Ferdinand Xu <ch...@intel.com>
Authored: Mon Jul 13 21:51:32 2015 -0400
Committer: Ferdinand Xu <ch...@intel.com>
Committed: Mon Jul 13 21:51:32 2015 -0400

----------------------------------------------------------------------
 .../java/org/apache/hive/beeline/BeeLine.java   | 25 ++++++++++++++++----
 .../org/apache/hive/beeline/BeeLineOpts.java    |  6 ++++-
 .../java/org/apache/hive/beeline/Commands.java  | 11 ++++++++-
 .../apache/hive/beeline/cli/TestHiveCli.java    |  8 ++++++-
 4 files changed, 43 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/0ac8f6c4/beeline/src/java/org/apache/hive/beeline/BeeLine.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLine.java b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
index 5a22956..d2b8590 100644
--- a/beeline/src/java/org/apache/hive/beeline/BeeLine.java
+++ b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
@@ -87,6 +87,7 @@ import org.apache.commons.cli.GnuParser;
 import org.apache.commons.cli.OptionBuilder;
 import org.apache.commons.cli.Options;
 import org.apache.commons.cli.ParseException;
+import org.apache.hadoop.hive.conf.HiveConf;
 import org.apache.hadoop.io.IOUtils;
 import org.apache.hive.beeline.cli.CliOptionsProcessor;
 import org.apache.hive.jdbc.Utils;
@@ -1082,7 +1083,7 @@ public class BeeLine implements Closeable {
       boolean needsUpdate = isConfNeedsUpdate(line);
       boolean res = commands.sql(line, getOpts().getEntireLineAsCommand());
       if (needsUpdate) {
-        getOpts().setHiveConf(getCommands().getHiveConf(true));
+        getOpts().setHiveConf(getCommands().getHiveConf(false));
       }
       return res;
     }
@@ -1354,19 +1355,35 @@ public class BeeLine implements Closeable {
     }
   }
 
-
   String getPrompt() {
+    if (isBeeLine) {
+      return getPromptForBeeline();
+    } else {
+      return getPromptForCli();
+    }
+  }
+
+  String getPromptForCli() {
+    String prompt;
+    // read prompt configuration and substitute variables.
+    HiveConf conf = getCommands().getHiveConf(true);
+    prompt = conf.getVar(HiveConf.ConfVars.CLIPROMPT);
+    prompt = getCommands().substituteVariables(conf, prompt);
+    return prompt + "> ";
+  }
+
+  String getPromptForBeeline() {
     if (getDatabaseConnection() == null || getDatabaseConnection().getUrl() == null) {
       return "beeline> ";
     } else {
       String printClosed = getDatabaseConnection().isClosed() ? " (closed)" : "";
-      return getPrompt(getDatabaseConnections().getIndex()
+      return getPromptForBeeline(getDatabaseConnections().getIndex()
           + ": " + getDatabaseConnection().getUrl()) + printClosed + "> ";
     }
   }
 
 
-  static String getPrompt(String url) {
+  static String getPromptForBeeline(String url) {
     if (url == null || url.length() == 0) {
       url = "beeline";
     }

http://git-wip-us.apache.org/repos/asf/hive/blob/0ac8f6c4/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java b/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java
index 894f74f..0a86c24 100644
--- a/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java
+++ b/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java
@@ -117,7 +117,7 @@ class BeeLineOpts implements Completer {
 
   public String[] possibleSettingValues() {
     List<String> vals = new LinkedList<String>();
-    vals.addAll(Arrays.asList(new String[] {"yes", "no"}));
+    vals.addAll(Arrays.asList(new String[] { "yes", "no" }));
     return vals.toArray(new String[vals.size()]);
   }
 
@@ -538,5 +538,9 @@ class BeeLineOpts implements Completer {
   public void setDelimiterForDSV(char delimiterForDSV) {
     this.delimiterForDSV = delimiterForDSV;
   }
+
+  public HiveConf getConf() {
+    return conf;
+  }
 }
 

http://git-wip-us.apache.org/repos/asf/hive/blob/0ac8f6c4/beeline/src/java/org/apache/hive/beeline/Commands.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/Commands.java b/beeline/src/java/org/apache/hive/beeline/Commands.java
index b07388a..8c406a3 100644
--- a/beeline/src/java/org/apache/hive/beeline/Commands.java
+++ b/beeline/src/java/org/apache/hive/beeline/Commands.java
@@ -737,6 +737,15 @@ public class Commands {
    * @return the hive configuration from server side
    */
   public HiveConf getHiveConf(boolean call) {
+    HiveConf hiveConf = beeLine.getOpts().getConf();
+    if (hiveConf != null && call) {
+      return hiveConf;
+    } else {
+      return getHiveConfHelper(call);
+    }
+  }
+
+  public HiveConf getHiveConfHelper(boolean call) {
     HiveConf conf = new HiveConf();
     BufferedRows rows = getConfInternal(call);
     while (rows != null && rows.hasNext()) {
@@ -1015,7 +1024,7 @@ public class Commands {
     return execute(line, false, entireLineAsCommand);
   }
 
-  private String substituteVariables(HiveConf conf, String line) {
+  public String substituteVariables(HiveConf conf, String line) {
     if (!beeLine.isBeeLine()) {
       // Substitution is only supported in non-beeline mode.
       return new VariableSubstitution(new HiveVariableSource() {

http://git-wip-us.apache.org/repos/asf/hive/blob/0ac8f6c4/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
----------------------------------------------------------------------
diff --git a/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java b/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
index ed4e7c6..542f1ee 100644
--- a/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
+++ b/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
@@ -78,7 +78,8 @@ public class TestHiveCli {
       int retCode) {
     executeCMD(options, CMD, retCode);
     String output = os.toString();
-    Assert.assertTrue("The expected keyword doesn't occur in the output: " + output,
+    LOG.debug(output);
+    Assert.assertTrue("The expected keyword " + keywords + "doesn't occur in the output: " + output,
         output.contains(keywords));
   }
 
@@ -88,6 +89,11 @@ public class TestHiveCli {
   }
 
   @Test
+  public void testSetPromptValue() {
+    verifyCMD("set hive.cli.prompt=MYCLI;SHOW\nTABLES;", "MYCLI> ", os, null, ERRNO_OK);
+  }
+
+  @Test
   public void testHelp() {
     verifyCMD(null, "usage: hive", os, new String[] { "-H" }, ERRNO_ARGS);
   }


[23/43] hive git commit: HIVE-11769: Merge master to beeline-cli branch 09/09/2015

Posted by se...@apache.org.
HIVE-11769: Merge master to beeline-cli branch 09/09/2015


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

Branch: refs/heads/llap
Commit: fc53e5d7edfed6dbdaeb43fb6b541ff36fb9a47b
Parents: b90a2ae d51c62a
Author: Ferdinand Xu <ch...@intel.com>
Authored: Wed Sep 9 03:02:24 2015 -0400
Committer: Ferdinand Xu <ch...@intel.com>
Committed: Wed Sep 9 03:02:24 2015 -0400

----------------------------------------------------------------------
 accumulo-handler/pom.xml                        |     4 -
 .../apache/hadoop/hive/ant/GenVectorCode.java   |   105 +
 .../java/org/apache/hive/beeline/BeeLine.java   |    13 +-
 .../org/apache/hive/beeline/BeeLineOpts.java    |    21 +-
 .../apache/hive/beeline/DatabaseConnection.java |     9 +
 .../org/apache/hive/beeline/HiveSchemaTool.java |    14 +-
 beeline/src/main/resources/BeeLine.properties   |     2 +
 .../src/main/resources/beeline-log4j.properties |    24 -
 beeline/src/main/resources/beeline-log4j2.xml   |    40 +
 bin/ext/beeline.sh                              |     2 +-
 bin/hive                                        |     3 +
 .../hadoop/hive/cli/TestOptionsProcessor.java   |     1 -
 common/pom.xml                                  |    27 +-
 .../apache/hadoop/hive/common/JavaUtils.java    |    11 +-
 .../org/apache/hadoop/hive/common/LogUtils.java |    18 +-
 .../hadoop/hive/common/ValidReadTxnList.java    |     2 +-
 .../hadoop/hive/common/type/HiveDecimal.java    |   306 -
 .../org/apache/hadoop/hive/conf/HiveConf.java   |   112 +-
 common/src/main/resources/hive-log4j.properties |    88 -
 common/src/main/resources/hive-log4j2.xml       |   111 +
 .../hadoop/hive/conf/TestHiveLogging.java       |     8 +-
 .../resources/hive-exec-log4j-test.properties   |    59 -
 .../test/resources/hive-exec-log4j2-test.xml    |    86 +
 .../test/resources/hive-log4j-test.properties   |    71 -
 common/src/test/resources/hive-log4j2-test.xml  |    95 +
 data/conf/hive-log4j-old.properties             |    82 -
 data/conf/hive-log4j.properties                 |    97 -
 data/conf/hive-log4j2.xml                       |   144 +
 data/conf/hive-site.xml                         |     6 -
 data/conf/spark/log4j.properties                |    24 -
 data/conf/spark/log4j2.xml                      |    74 +
 data/conf/tez/hive-site.xml                     |     9 +
 docs/xdocs/language_manual/cli.xml              |     2 +-
 errata.txt                                      |    10 +
 .../hadoop/hive/hbase/ColumnMappings.java       |     5 +
 .../apache/hadoop/hive/hbase/HBaseSerDe.java    |    19 +-
 .../hadoop/hive/hbase/HBaseSerDeParameters.java |     8 +-
 .../hadoop/hive/hbase/HBaseStorageHandler.java  |    13 +-
 .../hive/hbase/HiveHBaseInputFormatUtil.java    |    50 +-
 .../hadoop/hive/hbase/LazyHBaseCellMap.java     |    19 +-
 .../apache/hadoop/hive/hbase/LazyHBaseRow.java  |     5 +-
 .../hadoop/hive/hbase/LazyHBaseCellMapTest.java |    72 +
 .../positive/hbase_binary_map_queries_prefix.q  |    15 +-
 .../queries/positive/hbase_null_first_col.q     |    22 +
 .../hbase_binary_map_queries_prefix.q.out       |    40 +
 .../results/positive/hbase_null_first_col.q.out |   109 +
 .../test/results/positive/hbase_timestamp.q.out |     8 +-
 hcatalog/bin/hcat_server.sh                     |     2 +-
 hcatalog/bin/templeton.cmd                      |     4 +-
 .../mapreduce/DefaultOutputFormatContainer.java |     7 +-
 ...namicPartitionFileRecordWriterContainer.java |     3 +-
 .../mapreduce/FileOutputFormatContainer.java    |     3 +-
 .../hive/hcatalog/mapreduce/PartInfo.java       |    32 +-
 .../hive/hcatalog/mapreduce/SpecialCases.java   |     8 +-
 .../mapreduce/TestHCatMultiOutputFormat.java    |     6 +-
 hcatalog/scripts/hcat_server_start.sh           |     2 +-
 .../content/xdocs/configuration.xml             |     2 +-
 .../src/documentation/content/xdocs/install.xml |     2 +-
 .../deployers/config/hive/hive-log4j.properties |    88 -
 .../deployers/config/hive/hive-log4j2.xml       |   111 +
 .../deployers/config/hive/hive-site.mysql.xml   |    22 +
 .../templeton/deployers/start_hive_services.sh  |     2 +-
 .../hive/hcatalog/streaming/mutate/package.html |    31 +-
 .../mutate/worker/CreatePartitionHelper.java    |    83 -
 .../mutate/worker/MetaStorePartitionHelper.java |   102 +
 .../mutate/worker/MutatorCoordinator.java       |    21 +-
 .../worker/MutatorCoordinatorBuilder.java       |    41 +-
 .../mutate/worker/PartitionHelper.java          |    17 +
 .../mutate/worker/WarehousePartitionHelper.java |    69 +
 .../hive/hcatalog/streaming/TestStreaming.java  |    54 +-
 .../worker/TestMetaStorePartitionHelper.java    |   112 +
 .../mutate/worker/TestMutatorCoordinator.java   |    40 +-
 .../worker/TestWarehousePartitionHelper.java    |    57 +
 .../webhcat/svr/src/main/bin/webhcat_server.sh  |     4 +-
 .../src/main/config/webhcat-log4j.properties    |    45 -
 .../svr/src/main/config/webhcat-log4j2.xml      |    75 +
 .../antlr4/org/apache/hive/hplsql/Hplsql.g4     |   275 +-
 .../java/org/apache/hive/hplsql/Column.java     |    65 +
 .../main/java/org/apache/hive/hplsql/Conn.java  |    16 +-
 .../java/org/apache/hive/hplsql/Converter.java  |    41 +-
 .../main/java/org/apache/hive/hplsql/Exec.java  |   300 +-
 .../java/org/apache/hive/hplsql/Expression.java |    79 +-
 .../main/java/org/apache/hive/hplsql/Meta.java  |   216 +
 .../main/java/org/apache/hive/hplsql/Query.java |    71 +
 .../main/java/org/apache/hive/hplsql/Row.java   |    97 +
 .../java/org/apache/hive/hplsql/Select.java     |    63 +-
 .../java/org/apache/hive/hplsql/Signal.java     |     2 +-
 .../main/java/org/apache/hive/hplsql/Stmt.java  |   235 +-
 .../main/java/org/apache/hive/hplsql/Utils.java |     7 +
 .../main/java/org/apache/hive/hplsql/Var.java   |    85 +-
 .../apache/hive/hplsql/functions/Function.java  |    74 +-
 .../hive/hplsql/functions/FunctionDatetime.java |    14 +-
 .../hive/hplsql/functions/FunctionMisc.java     |    22 +-
 .../hive/hplsql/functions/FunctionOra.java      |    31 +-
 .../hive/hplsql/functions/FunctionString.java   |    46 +-
 hplsql/src/main/resources/hplsql-site.xml       |    95 +
 .../org/apache/hive/hplsql/TestHplsqlLocal.java |    34 +-
 .../apache/hive/hplsql/TestHplsqlOffline.java   |    76 +
 .../test/queries/db/create_procedure_mssql.sql  |    52 +
 .../db/create_procedure_return_cursor.sql       |    53 +
 .../db/create_procedure_return_cursor2.sql      |    59 +
 .../src/test/queries/db/cursor_attributes.sql   |    60 +
 hplsql/src/test/queries/db/map_object.sql       |     9 +
 .../src/test/queries/db/rowtype_attribute.sql   |    22 +
 hplsql/src/test/queries/db/select_into.sql      |    17 +
 .../src/test/queries/db/set_current_schema.sql  |     6 +
 hplsql/src/test/queries/db/sys_refcursor.sql    |    65 +
 hplsql/src/test/queries/db/type_attribute.sql   |     8 +
 hplsql/src/test/queries/db/use.sql              |     2 +
 .../local/create_procedure_no_params.sql        |    19 +
 hplsql/src/test/queries/local/exception2.sql    |    10 -
 hplsql/src/test/queries/local/exception3.sql    |     5 -
 hplsql/src/test/queries/local/exception4.sql    |     7 -
 hplsql/src/test/queries/local/exception5.sql    |    10 -
 .../queries/local/exception_divide_by_zero.sql  |    11 +
 .../test/queries/offline/create_table_mssql.sql |    43 +
 .../test/queries/offline/create_table_ora.sql   |    53 +
 .../results/db/create_procedure_mssql.out.txt   |    45 +
 .../db/create_procedure_return_cursor.out.txt   |   135 +
 .../db/create_procedure_return_cursor2.out.txt  |   139 +
 .../test/results/db/cursor_attributes.out.txt   |    33 +
 hplsql/src/test/results/db/map_object.out.txt   |    17 +
 .../test/results/db/rowtype_attribute.out.txt   |    42 +
 hplsql/src/test/results/db/select_into.out.txt  |    19 +
 .../test/results/db/set_current_schema.out.txt  |    12 +
 .../src/test/results/db/sys_refcursor.out.txt   |    36 +
 .../src/test/results/db/type_attribute.out.txt  |    15 +
 hplsql/src/test/results/db/use.out.txt          |     4 +
 .../test/results/local/create_function.out.txt  |     4 +-
 .../local/create_procedure_no_params.out.txt    |    26 +
 hplsql/src/test/results/local/declare.out.txt   |     4 +-
 .../local/exception_divide_by_zero.out.txt      |     8 +
 .../results/offline/create_table_mssql.out.txt  |    24 +
 .../results/offline/create_table_ora.out.txt    |    42 +
 .../vectorization/VectorizationBench.java       |    93 +
 .../hive/metastore/TestHiveMetaStore.java       |   153 +-
 .../org/apache/hive/jdbc/TestJdbcDriver2.java   |    16 +
 .../TestOperationLoggingAPIWithMr.java          |     2 -
 .../TestOperationLoggingAPIWithTez.java         |     2 -
 .../operation/TestOperationLoggingLayout.java   |   134 +
 itests/pom.xml                                  |     2 +-
 itests/qtest-spark/pom.xml                      |    24 +
 itests/qtest/pom.xml                            |    28 +-
 .../test/resources/testconfiguration.properties |    54 +-
 .../org/apache/hadoop/hive/ql/QTestUtil.java    |    62 +-
 jdbc/pom.xml                                    |     1 +
 .../org/apache/hive/jdbc/HiveConnection.java    |    34 +-
 .../apache/hive/jdbc/HivePreparedStatement.java |     2 +-
 .../org/apache/hive/jdbc/HiveStatement.java     |     2 +-
 jdbc/src/java/org/apache/hive/jdbc/Utils.java   |   113 +-
 .../hive/jdbc/ZooKeeperHiveClientHelper.java    |   104 +-
 metastore/if/hive_metastore.thrift              |     5 +
 .../gen/thrift/gen-cpp/ThriftHiveMetastore.cpp  |  5586 ++-
 .../gen/thrift/gen-cpp/ThriftHiveMetastore.h    |  7942 ++--
 .../ThriftHiveMetastore_server.skeleton.cpp     |     5 +
 .../thrift/gen-cpp/hive_metastore_constants.cpp |     2 +-
 .../thrift/gen-cpp/hive_metastore_constants.h   |     2 +-
 .../gen/thrift/gen-cpp/hive_metastore_types.cpp |  6204 ++-
 .../gen/thrift/gen-cpp/hive_metastore_types.h   |  2666 +-
 .../hive/metastore/api/AbortTxnRequest.java     |    24 +-
 .../metastore/api/AddDynamicPartitions.java     |    69 +-
 .../metastore/api/AddPartitionsRequest.java     |    80 +-
 .../hive/metastore/api/AddPartitionsResult.java |    48 +-
 .../hadoop/hive/metastore/api/AggrStats.java    |    54 +-
 .../metastore/api/AlreadyExistsException.java   |    24 +-
 .../metastore/api/BinaryColumnStatsData.java    |    40 +-
 .../metastore/api/BooleanColumnStatsData.java   |    40 +-
 .../hive/metastore/api/CheckLockRequest.java    |    24 +-
 .../hive/metastore/api/ColumnStatistics.java    |    54 +-
 .../metastore/api/ColumnStatisticsData.java     |    20 +-
 .../metastore/api/ColumnStatisticsDesc.java     |    58 +-
 .../hive/metastore/api/ColumnStatisticsObj.java |    40 +-
 .../hive/metastore/api/CommitTxnRequest.java    |    24 +-
 .../hive/metastore/api/CompactionRequest.java   |    62 +-
 .../hive/metastore/api/CompactionType.java      |     2 +-
 .../api/ConfigValSecurityException.java         |    24 +-
 .../api/CurrentNotificationEventId.java         |    24 +-
 .../hadoop/hive/metastore/api/Database.java     |   115 +-
 .../apache/hadoop/hive/metastore/api/Date.java  |    24 +-
 .../hive/metastore/api/DateColumnStatsData.java |    50 +-
 .../hadoop/hive/metastore/api/Decimal.java      |    41 +-
 .../metastore/api/DecimalColumnStatsData.java   |    50 +-
 .../metastore/api/DoubleColumnStatsData.java    |    50 +-
 .../hive/metastore/api/DropPartitionsExpr.java  |    43 +-
 .../metastore/api/DropPartitionsRequest.java    |    82 +-
 .../metastore/api/DropPartitionsResult.java     |    48 +-
 .../hive/metastore/api/EnvironmentContext.java  |    61 +-
 .../hive/metastore/api/EventRequestType.java    |     2 +-
 .../hadoop/hive/metastore/api/FieldSchema.java  |    58 +-
 .../hive/metastore/api/FireEventRequest.java    |    79 +-
 .../metastore/api/FireEventRequestData.java     |    20 +-
 .../hive/metastore/api/FireEventResponse.java   |    16 +-
 .../hadoop/hive/metastore/api/Function.java     |   110 +-
 .../hadoop/hive/metastore/api/FunctionType.java |     2 +-
 .../metastore/api/GetAllFunctionsResponse.java  |   447 +
 .../metastore/api/GetOpenTxnsInfoResponse.java  |    54 +-
 .../hive/metastore/api/GetOpenTxnsResponse.java |    53 +-
 .../api/GetPrincipalsInRoleRequest.java         |    24 +-
 .../api/GetPrincipalsInRoleResponse.java        |    46 +-
 .../api/GetRoleGrantsForPrincipalRequest.java   |    36 +-
 .../api/GetRoleGrantsForPrincipalResponse.java  |    46 +-
 .../api/GrantRevokePrivilegeRequest.java        |    46 +-
 .../api/GrantRevokePrivilegeResponse.java       |    26 +-
 .../metastore/api/GrantRevokeRoleRequest.java   |    86 +-
 .../metastore/api/GrantRevokeRoleResponse.java  |    26 +-
 .../hive/metastore/api/GrantRevokeType.java     |     2 +-
 .../hive/metastore/api/HeartbeatRequest.java    |    34 +-
 .../metastore/api/HeartbeatTxnRangeRequest.java |    32 +-
 .../api/HeartbeatTxnRangeResponse.java          |    74 +-
 .../hive/metastore/api/HiveObjectPrivilege.java |    52 +-
 .../hive/metastore/api/HiveObjectRef.java       |    81 +-
 .../hive/metastore/api/HiveObjectType.java      |     2 +-
 .../apache/hadoop/hive/metastore/api/Index.java |   133 +-
 .../api/IndexAlreadyExistsException.java        |    24 +-
 .../metastore/api/InsertEventRequestData.java   |    45 +-
 .../metastore/api/InvalidInputException.java    |    24 +-
 .../metastore/api/InvalidObjectException.java   |    24 +-
 .../api/InvalidOperationException.java          |    24 +-
 .../api/InvalidPartitionException.java          |    24 +-
 .../hive/metastore/api/LockComponent.java       |    66 +-
 .../hadoop/hive/metastore/api/LockLevel.java    |     2 +-
 .../hadoop/hive/metastore/api/LockRequest.java  |    72 +-
 .../hadoop/hive/metastore/api/LockResponse.java |    36 +-
 .../hadoop/hive/metastore/api/LockState.java    |     2 +-
 .../hadoop/hive/metastore/api/LockType.java     |     2 +-
 .../hive/metastore/api/LongColumnStatsData.java |    50 +-
 .../hive/metastore/api/MetaException.java       |    24 +-
 .../hive/metastore/api/NoSuchLockException.java |    24 +-
 .../metastore/api/NoSuchObjectException.java    |    24 +-
 .../hive/metastore/api/NoSuchTxnException.java  |    24 +-
 .../hive/metastore/api/NotificationEvent.java   |    66 +-
 .../metastore/api/NotificationEventRequest.java |    34 +-
 .../api/NotificationEventResponse.java          |    46 +-
 .../hive/metastore/api/OpenTxnRequest.java      |    40 +-
 .../hive/metastore/api/OpenTxnsResponse.java    |    45 +-
 .../apache/hadoop/hive/metastore/api/Order.java |    32 +-
 .../hadoop/hive/metastore/api/Partition.java    |   156 +-
 .../hive/metastore/api/PartitionEventType.java  |     2 +-
 .../api/PartitionListComposingSpec.java         |    46 +-
 .../hive/metastore/api/PartitionSpec.java       |    58 +-
 .../api/PartitionSpecWithSharedSD.java          |    54 +-
 .../hive/metastore/api/PartitionWithoutSD.java  |   124 +-
 .../metastore/api/PartitionsByExprRequest.java  |    67 +-
 .../metastore/api/PartitionsByExprResult.java   |    54 +-
 .../metastore/api/PartitionsStatsRequest.java   |    90 +-
 .../metastore/api/PartitionsStatsResult.java    |    72 +-
 .../metastore/api/PrincipalPrivilegeSet.java    |   184 +-
 .../hive/metastore/api/PrincipalType.java       |     2 +-
 .../hadoop/hive/metastore/api/PrivilegeBag.java |    46 +-
 .../hive/metastore/api/PrivilegeGrantInfo.java  |    60 +-
 .../hive/metastore/api/RequestPartsSpec.java    |    56 +-
 .../hadoop/hive/metastore/api/ResourceType.java |     2 +-
 .../hadoop/hive/metastore/api/ResourceUri.java  |    36 +-
 .../apache/hadoop/hive/metastore/api/Role.java  |    40 +-
 .../hive/metastore/api/RolePrincipalGrant.java  |    80 +-
 .../hadoop/hive/metastore/api/Schema.java       |    91 +-
 .../hadoop/hive/metastore/api/SerDeInfo.java    |    93 +-
 .../api/SetPartitionsStatsRequest.java          |    46 +-
 .../hive/metastore/api/ShowCompactRequest.java  |    16 +-
 .../hive/metastore/api/ShowCompactResponse.java |    46 +-
 .../api/ShowCompactResponseElement.java         |    86 +-
 .../hive/metastore/api/ShowLocksRequest.java    |    16 +-
 .../hive/metastore/api/ShowLocksResponse.java   |    46 +-
 .../metastore/api/ShowLocksResponseElement.java |   114 +-
 .../hadoop/hive/metastore/api/SkewedInfo.java   |   147 +-
 .../hive/metastore/api/StorageDescriptor.java   |   242 +-
 .../metastore/api/StringColumnStatsData.java    |    48 +-
 .../apache/hadoop/hive/metastore/api/Table.java |   189 +-
 .../hive/metastore/api/TableStatsRequest.java   |    61 +-
 .../hive/metastore/api/TableStatsResult.java    |    46 +-
 .../hive/metastore/api/ThriftHiveMetastore.java | 33417 +++++++++++------
 .../hive/metastore/api/TxnAbortedException.java |    24 +-
 .../hadoop/hive/metastore/api/TxnInfo.java      |    52 +-
 .../hive/metastore/api/TxnOpenException.java    |    24 +-
 .../hadoop/hive/metastore/api/TxnState.java     |     2 +-
 .../apache/hadoop/hive/metastore/api/Type.java  |    72 +-
 .../hive/metastore/api/UnknownDBException.java  |    24 +-
 .../api/UnknownPartitionException.java          |    24 +-
 .../metastore/api/UnknownTableException.java    |    24 +-
 .../hive/metastore/api/UnlockRequest.java       |    24 +-
 .../hadoop/hive/metastore/api/Version.java      |    32 +-
 .../metastore/api/hive_metastoreConstants.java  |     7 +-
 .../gen-php/metastore/ThriftHiveMetastore.php   |  4593 ++-
 .../src/gen/thrift/gen-php/metastore/Types.php  |  1184 +-
 .../hive_metastore/ThriftHiveMetastore-remote   |   616 +-
 .../hive_metastore/ThriftHiveMetastore.py       |  4601 ++-
 .../thrift/gen-py/hive_metastore/constants.py   |     2 +-
 .../gen/thrift/gen-py/hive_metastore/ttypes.py  |   856 +-
 .../thrift/gen-rb/hive_metastore_constants.rb   |     2 +-
 .../gen/thrift/gen-rb/hive_metastore_types.rb   |    18 +-
 .../gen/thrift/gen-rb/thrift_hive_metastore.rb  |    62 +-
 .../hadoop/hive/metastore/HiveAlterHandler.java |     2 +-
 .../hadoop/hive/metastore/HiveMetaStore.java    |   106 +-
 .../hive/metastore/HiveMetaStoreClient.java     |     7 +
 .../hive/metastore/HouseKeeperService.java      |    39 +
 .../hadoop/hive/metastore/IMetaStoreClient.java |     8 +-
 .../hive/metastore/MetaStoreDirectSql.java      |    69 +-
 .../hadoop/hive/metastore/MetaStoreUtils.java   |    17 +-
 .../hadoop/hive/metastore/ObjectStore.java      |    35 +-
 .../apache/hadoop/hive/metastore/RawStore.java  |     7 +
 .../hive/metastore/RetryingMetaStoreClient.java |    32 +-
 .../hadoop/hive/metastore/txn/TxnHandler.java   |   185 +-
 .../metastore/txn/ValidCompactorTxnList.java    |     2 +-
 .../DummyRawStoreControlledCommit.java          |     7 +
 .../DummyRawStoreForJdoConnection.java          |     6 +
 .../metastore/txn/TestCompactionTxnHandler.java |    40 +-
 .../hive/metastore/txn/TestTxnHandler.java      |    73 +-
 packaging/src/main/assembly/bin.xml             |    17 +-
 pom.xml                                         |    54 +-
 ql/if/queryplan.thrift                          |     1 +
 ql/pom.xml                                      |    24 +-
 .../gen/thrift/gen-cpp/queryplan_constants.cpp  |     2 +-
 ql/src/gen/thrift/gen-cpp/queryplan_constants.h |     2 +-
 ql/src/gen/thrift/gen-cpp/queryplan_types.cpp   |   796 +-
 ql/src/gen/thrift/gen-cpp/queryplan_types.h     |   294 +-
 .../hadoop/hive/ql/plan/api/Adjacency.java      |    65 +-
 .../hadoop/hive/ql/plan/api/AdjacencyType.java  |     2 +-
 .../apache/hadoop/hive/ql/plan/api/Graph.java   |    87 +-
 .../hadoop/hive/ql/plan/api/NodeType.java       |     2 +-
 .../hadoop/hive/ql/plan/api/Operator.java       |   142 +-
 .../hadoop/hive/ql/plan/api/OperatorType.java   |     7 +-
 .../apache/hadoop/hive/ql/plan/api/Query.java   |   176 +-
 .../hadoop/hive/ql/plan/api/QueryPlan.java      |    62 +-
 .../apache/hadoop/hive/ql/plan/api/Stage.java   |   172 +-
 .../hadoop/hive/ql/plan/api/StageType.java      |     2 +-
 .../apache/hadoop/hive/ql/plan/api/Task.java    |   182 +-
 .../hadoop/hive/ql/plan/api/TaskType.java       |     2 +-
 ql/src/gen/thrift/gen-php/Types.php             |   119 +-
 ql/src/gen/thrift/gen-py/queryplan/constants.py |     2 +-
 ql/src/gen/thrift/gen-py/queryplan/ttypes.py    |    87 +-
 ql/src/gen/thrift/gen-rb/queryplan_constants.rb |     2 +-
 ql/src/gen/thrift/gen-rb/queryplan_types.rb     |     7 +-
 ...tringGroupColumnCompareStringGroupColumn.txt |   112 +-
 ...gGroupColumnCompareStringGroupScalarBase.txt |    12 +-
 ...gGroupScalarCompareStringGroupColumnBase.txt |    12 +-
 ...tringGroupColumnCompareStringGroupColumn.txt |   112 +-
 ...gGroupColumnCompareStringGroupScalarBase.txt |    12 +-
 ...gGroupScalarCompareStringGroupColumnBase.txt |    12 +-
 .../UDAFTemplates/VectorUDAFMinMaxString.txt    |     3 +-
 .../java/org/apache/hadoop/hive/ql/Context.java |     1 -
 .../java/org/apache/hadoop/hive/ql/Driver.java  |   222 +-
 .../org/apache/hadoop/hive/ql/ErrorMsg.java     |    13 +-
 .../org/apache/hadoop/hive/ql/QueryPlan.java    |    18 +-
 .../apache/hadoop/hive/ql/exec/ExplainTask.java |     7 +-
 .../hadoop/hive/ql/exec/FetchOperator.java      |     5 +-
 .../hadoop/hive/ql/exec/FileSinkOperator.java   |     2 +-
 .../hadoop/hive/ql/exec/FunctionRegistry.java   |    66 +-
 .../hadoop/hive/ql/exec/FunctionTask.java       |     2 +-
 .../hive/ql/exec/HashTableSinkOperator.java     |     6 +-
 .../apache/hadoop/hive/ql/exec/JoinUtil.java    |    87 +-
 .../hadoop/hive/ql/exec/KeyWrapperFactory.java  |    18 +-
 .../hadoop/hive/ql/exec/MapJoinOperator.java    |    61 +-
 .../apache/hadoop/hive/ql/exec/MoveTask.java    |     4 +-
 .../apache/hadoop/hive/ql/exec/Operator.java    |    31 +-
 .../hadoop/hive/ql/exec/OperatorFactory.java    |    11 +
 .../hadoop/hive/ql/exec/ScriptOperator.java     |    85 +-
 .../ql/exec/SparkHashTableSinkOperator.java     |    17 +-
 .../apache/hadoop/hive/ql/exec/Utilities.java   |    38 +-
 .../hadoop/hive/ql/exec/mr/ExecDriver.java      |    30 +-
 .../hive/ql/exec/mr/HadoopJobExecHelper.java    |    20 +-
 .../persistence/HybridHashTableContainer.java   |    33 +
 .../persistence/MapJoinBytesTableContainer.java |     5 +
 .../exec/persistence/MapJoinTableContainer.java |     5 +
 .../persistence/MapJoinTableContainerSerDe.java |    63 +-
 .../hive/ql/exec/spark/HashTableLoader.java     |    26 +-
 .../ql/exec/spark/HiveSparkClientFactory.java   |    10 +-
 .../hive/ql/exec/spark/KryoSerializer.java      |     4 +
 .../ql/exec/spark/RemoteHiveSparkClient.java    |    57 +-
 .../exec/spark/SparkDynamicPartitionPruner.java |   268 +
 .../hadoop/hive/ql/exec/spark/SparkPlan.java    |     3 -
 .../hive/ql/exec/spark/SparkPlanGenerator.java  |    15 +-
 .../ql/exec/spark/SparkReduceRecordHandler.java |     2 -
 .../hadoop/hive/ql/exec/spark/SparkTask.java    |     1 +
 .../hive/ql/exec/spark/SparkUtilities.java      |    56 +
 .../spark/status/impl/LocalSparkJobStatus.java  |     2 +-
 .../spark/status/impl/RemoteSparkJobStatus.java |     2 +-
 .../hive/ql/exec/tez/KeyValuesAdapter.java      |    47 +
 .../hive/ql/exec/tez/KeyValuesFromKeyValue.java |    90 +
 .../ql/exec/tez/KeyValuesFromKeyValues.java     |    48 +
 .../hive/ql/exec/tez/ReduceRecordProcessor.java |    11 +-
 .../hive/ql/exec/tez/ReduceRecordSource.java    |    15 +-
 .../hive/ql/exec/tez/TezSessionState.java       |     2 +
 .../apache/hadoop/hive/ql/exec/tez/TezTask.java |    10 +-
 .../hive/ql/exec/vector/BytesColumnVector.java  |   333 -
 .../hive/ql/exec/vector/ColumnVector.java       |   170 -
 .../ql/exec/vector/DecimalColumnVector.java     |   113 -
 .../hive/ql/exec/vector/DoubleColumnVector.java |   149 -
 .../hive/ql/exec/vector/LongColumnVector.java   |   193 -
 .../ql/exec/vector/VectorHashKeyWrapper.java    |     2 +-
 .../ql/exec/vector/VectorMapJoinOperator.java   |     1 -
 .../ql/exec/vector/VectorSelectOperator.java    |     3 -
 .../VectorSparkHashTableSinkOperator.java       |   104 +
 ...VectorSparkPartitionPruningSinkOperator.java |    99 +
 .../ql/exec/vector/VectorizationContext.java    |    56 +-
 .../hive/ql/exec/vector/VectorizedRowBatch.java |   206 -
 .../BRoundWithNumDigitsDoubleToDouble.java      |    42 +
 .../expressions/CastStringGroupToString.java    |    40 +
 .../ql/exec/vector/expressions/ColAndCol.java   |    34 +-
 .../ql/exec/vector/expressions/ColOrCol.java    |    42 +-
 .../exec/vector/expressions/CuckooSetBytes.java |     2 +-
 .../ql/exec/vector/expressions/DecimalUtil.java |    18 +
 .../vector/expressions/FilterExprAndExpr.java   |     8 +-
 .../vector/expressions/FilterExprOrExpr.java    |   140 +-
 ...FuncBRoundWithNumDigitsDecimalToDecimal.java |    40 +
 .../FuncRoundWithNumDigitsDecimalToDecimal.java |    14 +-
 .../ql/exec/vector/expressions/MathExpr.java    |    22 +
 .../hive/ql/exec/vector/expressions/NotCol.java |    14 +-
 .../ql/exec/vector/expressions/StringExpr.java  |    51 +
 .../mapjoin/VectorMapJoinCommonOperator.java    |     1 +
 ...VectorMapJoinInnerBigOnlyStringOperator.java |     4 +-
 .../VectorMapJoinInnerStringOperator.java       |     4 +-
 .../VectorMapJoinLeftSemiStringOperator.java    |     4 +-
 .../VectorMapJoinOuterStringOperator.java       |     4 +-
 .../fast/VectorMapJoinFastHashTable.java        |     5 +
 .../fast/VectorMapJoinFastTableContainer.java   |     5 +
 .../hashtable/VectorMapJoinHashTable.java       |     4 +
 .../VectorMapJoinOptimizedHashTable.java        |     4 +
 .../hadoop/hive/ql/hooks/LineageInfo.java       |     9 +-
 .../hadoop/hive/ql/hooks/LineageLogger.java     |    48 +-
 .../hive/ql/hooks/PostExecOrcFileDump.java      |   120 +
 .../ql/hooks/PostExecTezSummaryPrinter.java     |    72 +
 .../org/apache/hadoop/hive/ql/io/AcidUtils.java |   183 +-
 .../hive/ql/io/CombineHiveInputFormat.java      |    98 +-
 .../hadoop/hive/ql/io/HiveInputFormat.java      |    46 +-
 .../apache/hadoop/hive/ql/io/orc/FileDump.java  |    52 +-
 .../hadoop/hive/ql/io/orc/MemoryManager.java    |     4 +-
 .../apache/hadoop/hive/ql/io/orc/OrcConf.java   |   191 +
 .../apache/hadoop/hive/ql/io/orc/OrcFile.java   |   161 +-
 .../hadoop/hive/ql/io/orc/OrcInputFormat.java   |   306 +-
 .../hadoop/hive/ql/io/orc/OrcOutputFormat.java  |    67 +-
 .../hive/ql/io/orc/OrcRawRecordMerger.java      |    20 +-
 .../apache/hadoop/hive/ql/io/orc/OrcSerde.java  |     6 +-
 .../apache/hadoop/hive/ql/io/orc/OrcSplit.java  |    25 +-
 .../apache/hadoop/hive/ql/io/orc/Reader.java    |    47 +-
 .../hadoop/hive/ql/io/orc/ReaderImpl.java       |   260 +-
 .../hadoop/hive/ql/io/orc/RecordReaderImpl.java |    83 +-
 .../hive/ql/io/orc/TreeReaderFactory.java       |    30 +-
 .../hadoop/hive/ql/io/orc/WriterImpl.java       |    27 +-
 .../hive/ql/io/parquet/LeafFilterFactory.java   |    43 +-
 .../parquet/read/DataWritableReadSupport.java   |    10 +-
 .../read/ParquetFilterPredicateConverter.java   |   145 +
 .../read/ParquetRecordReaderWrapper.java        |   125 +-
 .../ql/io/rcfile/stats/PartialScanTask.java     |    20 +-
 .../hive/ql/io/sarg/ConvertAstToSearchArg.java  |   436 +
 .../hive/ql/io/sarg/SearchArgumentFactory.java  |    56 -
 .../hive/ql/io/sarg/SearchArgumentImpl.java     |  1027 -
 .../hadoop/hive/ql/lib/DefaultGraphWalker.java  |    84 +-
 .../hadoop/hive/ql/lib/ForwardWalker.java       |    35 +-
 .../hadoop/hive/ql/lib/LevelOrderWalker.java    |   153 +
 .../hadoop/hive/ql/lib/PreOrderOnceWalker.java  |    44 +
 .../hadoop/hive/ql/lib/PreOrderWalker.java      |     2 +-
 .../hadoop/hive/ql/lib/RuleExactMatch.java      |    21 +-
 .../apache/hadoop/hive/ql/lib/RuleRegExp.java   |   197 +-
 .../hadoop/hive/ql/lockmgr/DbLockManager.java   |    12 +-
 .../hadoop/hive/ql/lockmgr/DbTxnManager.java    |    71 +-
 .../hadoop/hive/ql/lockmgr/DummyTxnManager.java |     8 +
 .../hadoop/hive/ql/lockmgr/HiveTxnManager.java  |    21 +
 .../hive/ql/lockmgr/HiveTxnManagerImpl.java     |    10 +
 .../hadoop/hive/ql/lockmgr/LockException.java   |     8 +-
 .../hadoop/hive/ql/log/HiveEventCounter.java    |   135 +
 .../apache/hadoop/hive/ql/log/NullAppender.java |    63 +
 .../ql/log/PidDailyRollingFileAppender.java     |    33 -
 .../hive/ql/log/PidFilePatternConverter.java    |    62 +
 .../apache/hadoop/hive/ql/metadata/Hive.java    |   153 +-
 .../hadoop/hive/ql/metadata/HiveException.java  |     3 +
 .../hadoop/hive/ql/metadata/Partition.java      |     2 +-
 .../ql/metadata/SessionHiveMetaStoreClient.java |     2 +-
 .../hadoop/hive/ql/metadata/TableIterable.java  |   104 +
 .../hadoop/hive/ql/optimizer/ColumnPruner.java  |    12 +-
 .../hive/ql/optimizer/ColumnPrunerProcCtx.java  |    95 +-
 .../ql/optimizer/ColumnPrunerProcFactory.java   |    42 +-
 .../hive/ql/optimizer/ConstantPropagate.java    |    12 +-
 .../optimizer/ConstantPropagateProcFactory.java |   311 +-
 .../hive/ql/optimizer/ConvertJoinMapJoin.java   |   213 +-
 .../DynamicPartitionPruningOptimization.java    |    44 +-
 .../hive/ql/optimizer/GenMapRedUtils.java       |    20 +-
 .../hive/ql/optimizer/GroupByOptimizer.java     |    58 +-
 .../ql/optimizer/IdentityProjectRemover.java    |    15 +
 .../hadoop/hive/ql/optimizer/IndexUtils.java    |    13 +-
 .../hive/ql/optimizer/MapJoinProcessor.java     |    44 +-
 .../ql/optimizer/OperatorComparatorFactory.java |   552 +
 .../hadoop/hive/ql/optimizer/Optimizer.java     |    15 +-
 .../hive/ql/optimizer/PointLookupOptimizer.java |   378 +
 .../hadoop/hive/ql/optimizer/PrunerUtils.java   |    14 +-
 .../ql/optimizer/ReduceSinkMapJoinProc.java     |    84 +-
 .../hive/ql/optimizer/SimpleFetchOptimizer.java |     5 +-
 .../SparkRemoveDynamicPruningBySize.java        |    73 +
 .../ql/optimizer/calcite/HiveRelOptUtil.java    |    23 -
 .../calcite/reloperators/HiveFilter.java        |     2 +-
 .../calcite/reloperators/HiveSort.java          |    29 +-
 .../rules/HiveJoinProjectTransposeRule.java     |    53 +-
 .../calcite/rules/HiveJoinToMultiJoinRule.java  |    82 +-
 .../calcite/translator/ExprNodeConverter.java   |    60 +-
 .../calcite/translator/HiveOpConverter.java     |   104 +-
 .../calcite/translator/JoinTypeCheckCtx.java    |     2 +-
 .../translator/PlanModifierForASTConv.java      |     2 +-
 .../translator/PlanModifierForReturnPath.java   |     6 +-
 .../calcite/translator/TypeConverter.java       |    13 +-
 .../correlation/AbstractCorrelationProcCtx.java |     7 +
 .../correlation/CorrelationUtilities.java       |    11 +-
 .../correlation/ReduceSinkDeDuplication.java    |     6 +-
 .../ql/optimizer/index/RewriteCanApplyCtx.java  |     8 +-
 .../ql/optimizer/lineage/ExprProcFactory.java   |     9 +-
 .../hive/ql/optimizer/lineage/Generator.java    |     4 +-
 .../hive/ql/optimizer/lineage/LineageCtx.java   |    34 +-
 .../ql/optimizer/lineage/OpProcFactory.java     |    10 +-
 .../annotation/AnnotateWithOpTraits.java        |     6 +-
 .../ql/optimizer/pcr/PcrExprProcFactory.java    |   154 +-
 .../BucketingSortingInferenceOptimizer.java     |     8 +-
 .../physical/GenSparkSkewJoinProcessor.java     |    14 +-
 .../physical/NullScanTaskDispatcher.java        |     6 +-
 .../hive/ql/optimizer/physical/Vectorizer.java  |    40 +-
 .../hive/ql/optimizer/ppr/OpProcFactory.java    |     3 +-
 .../hive/ql/optimizer/ppr/PartitionPruner.java  |    69 +-
 .../spark/CombineEquivalentWorkResolver.java    |   292 +
 .../spark/SparkPartitionPruningSinkDesc.java    |   100 +
 .../spark/SparkReduceSinkMapJoinProc.java       |     2 +-
 .../annotation/AnnotateWithStatistics.java      |     6 +-
 .../stats/annotation/StatsRulesProcFactory.java |    49 +-
 .../ql/optimizer/unionproc/UnionProcessor.java  |    10 +-
 .../apache/hadoop/hive/ql/parse/ASTNode.java    |   139 +-
 .../hive/ql/parse/BaseSemanticAnalyzer.java     |    13 +
 .../hadoop/hive/ql/parse/CalcitePlanner.java    |    49 +-
 .../ql/parse/ColumnStatsSemanticAnalyzer.java   |     6 +-
 .../hive/ql/parse/DDLSemanticAnalyzer.java      |    11 +
 .../hive/ql/parse/ExplainSemanticAnalyzer.java  |     2 +-
 .../hadoop/hive/ql/parse/GenMapRedWalker.java   |     2 +-
 .../hadoop/hive/ql/parse/GenTezProcContext.java |    12 +
 .../hadoop/hive/ql/parse/GenTezUtils.java       |    23 +-
 .../apache/hadoop/hive/ql/parse/GenTezWork.java |    81 +-
 .../hadoop/hive/ql/parse/GenTezWorkWalker.java  |     2 +-
 .../org/apache/hadoop/hive/ql/parse/HiveLexer.g |    11 +
 .../apache/hadoop/hive/ql/parse/HiveParser.g    |    70 +
 .../hadoop/hive/ql/parse/IdentifiersParser.g    |    75 +-
 .../hadoop/hive/ql/parse/LeadLagInfo.java       |     4 +-
 .../hive/ql/parse/LoadSemanticAnalyzer.java     |    38 +-
 .../apache/hadoop/hive/ql/parse/ParseUtils.java |    53 +-
 .../hadoop/hive/ql/parse/SemanticAnalyzer.java  |   111 +-
 .../hive/ql/parse/SemanticAnalyzerFactory.java  |    12 +
 .../apache/hadoop/hive/ql/parse/TezWalker.java  |     2 +-
 .../hadoop/hive/ql/parse/TypeCheckCtx.java      |    15 +-
 .../hive/ql/parse/TypeCheckProcFactory.java     |    46 +-
 .../ql/parse/spark/GenSparkProcContext.java     |    14 +-
 .../hive/ql/parse/spark/GenSparkUtils.java      |   111 +-
 .../hive/ql/parse/spark/GenSparkWorkWalker.java |     2 +-
 .../parse/spark/OptimizeSparkProcContext.java   |    16 +-
 .../hive/ql/parse/spark/SparkCompiler.java      |   180 +-
 .../SparkPartitionPruningSinkOperator.java      |   142 +
 .../hive/ql/parse/spark/SplitOpTreeForDPP.java  |   151 +
 .../apache/hadoop/hive/ql/plan/BaseWork.java    |     2 +-
 .../hive/ql/plan/CommonMergeJoinDesc.java       |     4 +
 .../apache/hadoop/hive/ql/plan/ExplainWork.java |    19 +-
 .../hive/ql/plan/ExprNodeConstantDesc.java      |    29 +-
 .../hadoop/hive/ql/plan/ExprNodeDesc.java       |    23 +-
 .../hadoop/hive/ql/plan/ExprNodeDescUtils.java  |   115 +
 .../apache/hadoop/hive/ql/plan/FilterDesc.java  |    14 +-
 .../hadoop/hive/ql/plan/HiveOperation.java      |    32 +-
 .../hadoop/hive/ql/plan/JoinCondDesc.java       |    14 +
 .../apache/hadoop/hive/ql/plan/JoinDesc.java    |     4 +
 .../apache/hadoop/hive/ql/plan/MapJoinDesc.java |    11 +
 .../org/apache/hadoop/hive/ql/plan/MapWork.java |    20 +-
 .../hadoop/hive/ql/plan/PartitionDesc.java      |    39 +-
 .../apache/hadoop/hive/ql/plan/PlanUtils.java   |     9 +-
 .../hadoop/hive/ql/plan/ReduceSinkDesc.java     |     1 +
 .../apache/hadoop/hive/ql/plan/ReduceWork.java  |     2 +-
 .../hive/ql/plan/SparkHashTableSinkDesc.java    |    11 +
 .../hadoop/hive/ql/plan/TableScanDesc.java      |     6 +-
 .../hadoop/hive/ql/ppd/ExprWalkerInfo.java      |   136 +-
 .../hive/ql/ppd/ExprWalkerProcFactory.java      |   107 +-
 .../hadoop/hive/ql/ppd/OpProcFactory.java       |    11 +-
 .../ql/ppd/PredicateTransitivePropagate.java    |     4 +-
 .../hive/ql/ppd/SyntheticJoinPredicate.java     |    18 +-
 .../ql/processors/CommandProcessorResponse.java |    21 +-
 .../hadoop/hive/ql/processors/HiveCommand.java  |     3 +
 .../hadoop/hive/ql/processors/SetProcessor.java |     4 +
 .../authorization/plugin/HiveOperationType.java |     5 +
 .../plugin/sqlstd/Operation2Privilege.java      |    11 +
 .../hadoop/hive/ql/session/SessionState.java    |    44 +-
 .../apache/hadoop/hive/ql/stats/StatsUtils.java |    54 +-
 .../hive/ql/txn/AcidHouseKeeperService.java     |   104 +
 .../hive/ql/txn/compactor/CompactorMR.java      |    19 +-
 .../hadoop/hive/ql/txn/compactor/Initiator.java |    10 +-
 .../hadoop/hive/ql/txn/compactor/Worker.java    |     2 +-
 .../hive/ql/udf/generic/GenericUDAFStd.java     |     2 +
 .../ql/udf/generic/GenericUDAFVariance.java     |     2 +
 .../hadoop/hive/ql/udf/generic/GenericUDF.java  |    14 +-
 .../hive/ql/udf/generic/GenericUDFAesBase.java  |   205 +
 .../ql/udf/generic/GenericUDFAesDecrypt.java    |    50 +
 .../ql/udf/generic/GenericUDFAesEncrypt.java    |    50 +
 .../hive/ql/udf/generic/GenericUDFBRound.java   |    68 +
 .../ql/udf/generic/GenericUDFBaseNumeric.java   |     4 +-
 .../hive/ql/udf/generic/GenericUDFBasePad.java  |     8 +-
 .../hive/ql/udf/generic/GenericUDFBridge.java   |     8 +-
 .../hive/ql/udf/generic/GenericUDFIn.java       |    14 +-
 .../hive/ql/udf/generic/GenericUDFMapKeys.java  |     6 +-
 .../hive/ql/udf/generic/GenericUDFNvl.java      |     2 +-
 .../hive/ql/udf/generic/GenericUDFOPAnd.java    |    63 +-
 .../hive/ql/udf/generic/GenericUDFOPEqual.java  |     4 +
 .../generic/GenericUDFOPEqualOrGreaterThan.java |     4 +
 .../generic/GenericUDFOPEqualOrLessThan.java    |     4 +
 .../ql/udf/generic/GenericUDFOPGreaterThan.java |     4 +
 .../ql/udf/generic/GenericUDFOPLessThan.java    |     4 +
 .../ql/udf/generic/GenericUDFOPNotEqual.java    |     5 +
 .../ql/udf/generic/GenericUDFOPNotNull.java     |     4 +
 .../hive/ql/udf/generic/GenericUDFOPNull.java   |     4 +
 .../hive/ql/udf/generic/GenericUDFOPOr.java     |    63 +-
 .../ql/udf/generic/GenericUDFParamUtils.java    |     8 +-
 .../hive/ql/udf/generic/GenericUDFRound.java    |    41 +-
 .../hive/ql/udf/generic/GenericUDFStruct.java   |    25 +-
 .../hadoop/hive/ql/udf/generic/RoundUtils.java  |    14 +
 .../main/resources/hive-exec-log4j.properties   |    77 -
 ql/src/main/resources/hive-exec-log4j2.xml      |   110 +
 ql/src/main/resources/tez-container-log4j2.xml  |    49 +
 .../apache/hadoop/hive/ql/TestTxnCommands.java  |   494 +
 .../apache/hadoop/hive/ql/TestTxnCommands2.java |   126 +-
 .../hadoop/hive/ql/exec/TestOperators.java      |    16 +
 .../exec/vector/TestVectorizationContext.java   |    93 +
 .../exec/vector/TestVectorizedRowBatchCtx.java  |     6 +-
 .../TestVectorLogicalExpressions.java           |   282 +
 .../apache/hadoop/hive/ql/io/TestAcidUtils.java |    27 +-
 .../hive/ql/io/orc/TestInputOutputFormat.java   |   137 +-
 .../hadoop/hive/ql/io/orc/TestOrcFile.java      |    11 +-
 .../hive/ql/io/orc/TestRecordReaderImpl.java    |    69 +-
 .../hive/ql/io/orc/TestVectorizedORCReader.java |    75 +-
 .../parquet/TestParquetRecordReaderWrapper.java |   173 +
 .../read/TestParquetFilterPredicate.java        |    72 +
 .../ql/io/sarg/TestConvertAstToSearchArg.java   |  2884 ++
 .../hive/ql/io/sarg/TestSearchArgumentImpl.java |  2891 +-
 .../hadoop/hive/ql/lib/TestRuleRegExp.java      |   118 +
 .../hive/ql/lockmgr/TestDbTxnManager.java       |    74 +-
 .../hive/ql/lockmgr/TestDbTxnManager2.java      |     2 +-
 .../hadoop/hive/ql/log/TestLog4j2Appenders.java |    95 +
 .../hadoop/hive/ql/metadata/StringAppender.java |   128 +
 .../hadoop/hive/ql/metadata/TestHive.java       |    50 +-
 .../TestSQL11ReservedKeyWordsNegative.java      |    32 +-
 .../TestSQL11ReservedKeyWordsPositive.java      |    23 +-
 .../parse/TestUpdateDeleteSemanticAnalyzer.java |    34 +-
 .../positive/TestTransactionStatement.java      |   102 +
 .../hive/ql/session/TestSessionState.java       |     2 +-
 .../udf/generic/TestGenericUDFAesDecrypt.java   |   233 +
 .../udf/generic/TestGenericUDFAesEncrypt.java   |   228 +
 .../ql/udf/generic/TestGenericUDFBRound.java    |   202 +
 .../clientnegative/alter_table_wrong_location.q |     4 +
 .../queries/clientnegative/ctas_noemptyfolder.q |    10 +
 .../queries/clientnegative/load_orc_negative3.q |     6 +
 .../clientnegative/mismatch_columns_insertion.q |     4 +
 .../queries/clientnegative/nvl_mismatch_type.q  |    20 +
 .../annotate_stats_deep_filters.q               |    67 +
 .../clientpositive/authorization_1_sql_std.q    |     4 +
 .../clientpositive/cast_tinyint_to_double.q     |     7 +
 ql/src/test/queries/clientpositive/cbo_rp_gby.q |    24 +
 .../queries/clientpositive/cbo_rp_gby_empty.q   |    30 +
 .../test/queries/clientpositive/cbo_rp_insert.q |    17 +
 .../test/queries/clientpositive/cbo_rp_join.q   |    65 +
 .../test/queries/clientpositive/cbo_rp_limit.q  |    16 +
 .../clientpositive/cbo_rp_outer_join_ppr.q      |    40 +
 .../queries/clientpositive/cbo_rp_semijoin.q    |    17 +
 .../clientpositive/cbo_rp_simple_select.q       |    56 +
 .../test/queries/clientpositive/cbo_rp_stats.q  |    10 +
 .../queries/clientpositive/cbo_rp_subq_exists.q |    67 +
 .../queries/clientpositive/cbo_rp_subq_in.q     |    56 +
 .../queries/clientpositive/cbo_rp_subq_not_in.q |    81 +
 .../queries/clientpositive/cbo_rp_udf_udaf.q    |    20 +
 .../test/queries/clientpositive/cbo_rp_union.q  |    14 +
 .../test/queries/clientpositive/cbo_rp_views.q  |    46 +
 .../queries/clientpositive/cbo_rp_windowing.q   |    21 +
 .../queries/clientpositive/cbo_rp_windowing_2.q |   439 +
 ql/src/test/queries/clientpositive/char_udf1.q  |     9 +-
 .../clientpositive/columnstats_quoting.q        |     8 +
 .../queries/clientpositive/compustat_avro.q     |     8 +-
 .../test/queries/clientpositive/create_like.q   |    12 +
 .../queries/clientpositive/dynamic_rdd_cache.q  |   111 +
 .../queries/clientpositive/flatten_and_or.q     |    19 +
 .../queries/clientpositive/folder_predicate.q   |    32 +
 ql/src/test/queries/clientpositive/groupby13.q  |    16 +
 .../queries/clientpositive/groupby1_map_nomap.q |     2 +
 ql/src/test/queries/clientpositive/groupby5.q   |     2 +
 ql/src/test/queries/clientpositive/groupby6.q   |     2 +
 .../clientpositive/groupby_grouping_id2.q       |     2 +
 .../clientpositive/groupby_ppr_multi_distinct.q |     2 +
 ql/src/test/queries/clientpositive/having2.q    |    27 +
 .../clientpositive/insertoverwrite_bucket.q     |    28 +
 ql/src/test/queries/clientpositive/keyword_2.q  |    14 +
 ql/src/test/queries/clientpositive/lineage3.q   |    22 +-
 .../clientpositive/load_dyn_part14_win.q        |    18 +-
 .../test/queries/clientpositive/load_orc_part.q |     4 +
 .../queries/clientpositive/macro_duplicate.q    |    10 +
 .../queries/clientpositive/multi_column_in.q    |    71 +
 .../test/queries/clientpositive/orc_file_dump.q |    57 +
 .../test/queries/clientpositive/orc_ppd_basic.q |   177 +
 .../clientpositive/parquet_ppd_boolean.q        |    35 +
 .../queries/clientpositive/parquet_ppd_char.q   |    76 +
 .../queries/clientpositive/parquet_ppd_date.q   |   101 +
 .../clientpositive/parquet_ppd_decimal.q        |   163 +
 .../clientpositive/parquet_ppd_partition.q      |     9 +
 .../clientpositive/parquet_ppd_timestamp.q      |    98 +
 .../clientpositive/parquet_ppd_varchar.q        |    76 +
 .../clientpositive/parquet_predicate_pushdown.q |   292 +
 .../test/queries/clientpositive/pointlookup.q   |    59 +
 .../test/queries/clientpositive/pointlookup2.q  |    51 +
 .../test/queries/clientpositive/pointlookup3.q  |    41 +
 .../queries/clientpositive/ptfgroupbyjoin.q     |    61 +
 .../queries/clientpositive/selectDistinctStar.q |     2 +
 .../clientpositive/smb_join_partition_key.q     |    35 +
 .../spark_dynamic_partition_pruning.q           |   180 +
 .../spark_dynamic_partition_pruning_2.q         |   118 +
 ...spark_vectorized_dynamic_partition_pruning.q |   192 +
 .../test/queries/clientpositive/stats_ppr_all.q |    24 +
 ql/src/test/queries/clientpositive/structin.q   |    23 +
 .../clientpositive/tez_dynpart_hashjoin_1.q     |   101 +
 .../clientpositive/tez_dynpart_hashjoin_2.q     |    83 +
 .../tez_vector_dynpart_hashjoin_1.q             |   102 +
 .../tez_vector_dynpart_hashjoin_2.q             |    84 +
 .../queries/clientpositive/udf_aes_decrypt.q    |    21 +
 .../queries/clientpositive/udf_aes_encrypt.q    |    21 +
 ql/src/test/queries/clientpositive/udf_bround.q |    44 +
 .../clientpositive/udf_from_utc_timestamp.q     |    30 +-
 .../queries/clientpositive/udf_percentile.q     |     2 +
 .../clientpositive/udf_to_utc_timestamp.q       |    30 +-
 .../clientpositive/unionall_unbalancedppd.q     |   195 +
 .../test/queries/clientpositive/varchar_udf1.q  |     6 +-
 .../test/queries/clientpositive/vector_acid3.q  |    17 +
 .../vector_aggregate_without_gby.q              |    14 +
 .../test/queries/clientpositive/vector_bround.q |    14 +
 .../clientpositive/vector_cast_constant.q       |     4 +-
 .../queries/clientpositive/vectorized_casts.q   |     6 +
 .../alter_table_wrong_location.q.out            |     9 +
 .../clientnegative/char_pad_convert_fail0.q.out |     2 +-
 .../clientnegative/char_pad_convert_fail1.q.out |     2 +-
 .../clientnegative/char_pad_convert_fail3.q.out |     2 +-
 .../clientnegative/ctas_noemptyfolder.q.out     |    19 +
 .../clientnegative/exchange_partition.q.out     |     2 +-
 .../clientnegative/load_orc_negative3.q.out     |    25 +
 .../mismatch_columns_insertion.q.out            |     9 +
 .../clientnegative/nvl_mismatch_type.q.out      |    43 +
 .../groupby2_map_skew_multi_distinct.q.out      |     9 +
 .../spark/groupby2_multi_distinct.q.out         |     9 +
 .../groupby3_map_skew_multi_distinct.q.out      |     9 +
 .../spark/groupby3_multi_distinct.q.out         |     9 +
 .../spark/groupby_grouping_sets7.q.out          |     9 +
 .../annotate_stats_deep_filters.q.out           |   244 +
 .../clientpositive/annotate_stats_filter.q.out  |    10 +-
 .../authorization_1_sql_std.q.out               |    11 +
 .../clientpositive/cast_tinyint_to_double.q.out |    38 +
 .../results/clientpositive/cbo_rp_gby.q.out     |   124 +
 .../clientpositive/cbo_rp_gby_empty.q.out       |    77 +
 .../results/clientpositive/cbo_rp_insert.q.out  |    89 +
 .../results/clientpositive/cbo_rp_join.q.out    | 15028 ++++++++
 .../results/clientpositive/cbo_rp_join0.q.out   |     4 +-
 .../results/clientpositive/cbo_rp_limit.q.out   |    90 +
 .../cbo_rp_outer_join_ppr.q.java1.7.out         |   855 +
 .../clientpositive/cbo_rp_semijoin.q.out        |   440 +
 .../clientpositive/cbo_rp_simple_select.q.out   |   755 +
 .../results/clientpositive/cbo_rp_stats.q.out   |    14 +
 .../clientpositive/cbo_rp_subq_exists.q.out     |   297 +
 .../results/clientpositive/cbo_rp_subq_in.q.out |   151 +
 .../clientpositive/cbo_rp_subq_not_in.q.out     |   365 +
 .../clientpositive/cbo_rp_udf_udaf.q.out        |   125 +
 .../results/clientpositive/cbo_rp_union.q.out   |   920 +
 .../results/clientpositive/cbo_rp_views.q.out   |   237 +
 .../clientpositive/cbo_rp_windowing.q.out       |   293 +
 .../clientpositive/cbo_rp_windowing_2.q.out     |  2338 ++
 .../clientpositive/char_udf1.q.java1.7.out      |    22 +-
 .../clientpositive/columnstats_quoting.q.out    |   114 +
 .../results/clientpositive/compustat_avro.q.out |     8 +-
 .../clientpositive/constprog_partitioner.q.out  |    30 +-
 .../clientpositive/convert_enum_to_string.q.out |     9 +-
 .../clientpositive/correlationoptimizer10.q.out |    48 +-
 .../clientpositive/correlationoptimizer5.q.out  |     6 +-
 .../results/clientpositive/create_like.q.out    |    66 +
 .../results/clientpositive/decimal_udf.q.out    |    18 +-
 .../clientpositive/dynamic_rdd_cache.q.out      |  1428 +
 .../clientpositive/exchange_partition.q.out     |     4 +-
 .../clientpositive/exchange_partition2.q.out    |     4 +-
 .../clientpositive/exchange_partition3.q.out    |     4 +-
 .../clientpositive/filter_cond_pushdown.q.out   |    32 +-
 .../clientpositive/filter_join_breaktask.q.out  |    12 +-
 .../results/clientpositive/flatten_and_or.q.out |    66 +
 .../test/results/clientpositive/fold_when.q.out |    16 +-
 .../clientpositive/folder_predicate.q.out       |   368 +
 .../test/results/clientpositive/groupby13.q.out |    86 +
 .../clientpositive/groupby1_map_nomap.q.out     |     8 +-
 .../test/results/clientpositive/groupby5.q.out  |     8 +-
 .../test/results/clientpositive/groupby6.q.out  |     8 +-
 .../clientpositive/groupby_duplicate_key.q.out  |    16 +-
 .../clientpositive/groupby_grouping_id2.q.out   |    28 +-
 .../groupby_multi_single_reducer2.q.out         |     2 +-
 .../groupby_multi_single_reducer3.q.out         |    12 +-
 .../groupby_ppr_multi_distinct.q.out            |     8 +-
 .../clientpositive/groupby_sort_1_23.q.out      |    56 +-
 .../clientpositive/groupby_sort_skew_1_23.q.out |    56 +-
 .../test/results/clientpositive/having2.q.out   |   353 +
 .../clientpositive/infer_const_type.q.out       |     7 +-
 .../clientpositive/input_testxpath2.q.out       |     2 +-
 .../clientpositive/input_testxpath4.q.out       |     2 +-
 .../clientpositive/insertoverwrite_bucket.q.out |   104 +
 ql/src/test/results/clientpositive/join32.q.out |     2 +-
 .../clientpositive/join32_lessSize.q.out        |     6 +-
 ql/src/test/results/clientpositive/join33.q.out |     2 +-
 .../join_cond_pushdown_unqual4.q.out            |     2 +-
 .../test/results/clientpositive/keyword_2.q.out |    51 +
 .../test/results/clientpositive/lineage2.q.out  |  2296 +-
 .../test/results/clientpositive/lineage3.q.out  |  2290 +-
 .../list_bucket_query_oneskew_3.q.out           |     6 +-
 .../clientpositive/load_dyn_part14_win.q.out    |   167 +-
 .../results/clientpositive/load_orc_part.q.out  |    18 +
 .../clientpositive/macro_duplicate.q.out        |    56 +
 .../clientpositive/multi_column_in.q.out        |   410 +
 .../results/clientpositive/multi_insert.q.out   |     8 +-
 .../clientpositive/multi_insert_gby.q.out       |     2 +-
 .../multi_insert_lateral_view.q.out             |     4 +-
 ...i_insert_move_tasks_share_dependencies.q.out |   360 +-
 .../test/results/clientpositive/null_cast.q.out |     6 +-
 .../results/clientpositive/orc_file_dump.q.out  |   447 +
 .../clientpositive/orc_predicate_pushdown.q.out |    36 +-
 .../clientpositive/parquet_ppd_boolean.q.out    |   200 +
 .../clientpositive/parquet_ppd_char.q.out       |   220 +
 .../clientpositive/parquet_ppd_date.q.out       |   301 +
 .../clientpositive/parquet_ppd_decimal.q.out    |   490 +
 .../clientpositive/parquet_ppd_partition.q.out  |    47 +
 .../clientpositive/parquet_ppd_timestamp.q.out  |   292 +
 .../clientpositive/parquet_ppd_varchar.q.out    |   220 +
 .../parquet_predicate_pushdown.q.out            |  1270 +
 .../results/clientpositive/pointlookup.q.out    |   198 +
 .../results/clientpositive/pointlookup2.q.out   |  1647 +
 .../results/clientpositive/pointlookup3.q.out   |  1394 +
 .../results/clientpositive/ppd_gby_join.q.out   |     4 +-
 .../test/results/clientpositive/ppd_join.q.out  |     4 +-
 .../test/results/clientpositive/ppd_join2.q.out |    22 +-
 .../test/results/clientpositive/ppd_join3.q.out |    52 +-
 .../clientpositive/ppd_outer_join4.q.out        |     2 +-
 ql/src/test/results/clientpositive/ptf.q.out    |    27 +-
 .../results/clientpositive/ptfgroupbyjoin.q.out |   519 +
 .../clientpositive/rand_partitionpruner3.q.out  |    12 +-
 .../clientpositive/selectDistinctStar.q.out     |     8 +-
 .../clientpositive/select_unquote_not.q.out     |     8 +-
 .../results/clientpositive/show_functions.q.out |     3 +
 .../clientpositive/smb_join_partition_key.q.out |   128 +
 .../clientpositive/spark/auto_join18.q.out      |    24 +-
 .../clientpositive/spark/auto_join30.q.out      |    51 +-
 .../clientpositive/spark/auto_join32.q.out      |    24 +-
 .../spark/auto_smb_mapjoin_14.q.out             |    30 +-
 .../spark/auto_sortmerge_join_10.q.out          |    23 +-
 .../results/clientpositive/spark/bucket2.q.out  |     3 -
 .../results/clientpositive/spark/bucket3.q.out  |     3 -
 .../results/clientpositive/spark/bucket4.q.out  |     3 -
 .../spark/column_access_stats.q.out             |     4 -
 .../spark/constprog_partitioner.q.out           |    30 +-
 .../spark/dynamic_rdd_cache.q.out               |  1073 +
 .../spark/filter_join_breaktask.q.out           |    12 +-
 .../clientpositive/spark/groupby10.q.out        |    32 +-
 .../clientpositive/spark/groupby1_map.q.out     |   412 +
 .../spark/groupby1_map_nomap.q.out              |   412 +
 .../spark/groupby1_map_skew.q.out               |   427 +
 .../clientpositive/spark/groupby1_noskew.q.out  |   406 +
 .../clientpositive/spark/groupby2_map.q.out     |   118 +
 .../spark/groupby2_map_multi_distinct.q.out     |   232 +
 .../spark/groupby2_map_skew.q.out               |   129 +
 .../clientpositive/spark/groupby2_noskew.q.out  |   111 +
 .../spark/groupby2_noskew_multi_distinct.q.out  |   114 +
 .../clientpositive/spark/groupby4_map.q.out     |    93 +
 .../spark/groupby4_map_skew.q.out               |    93 +
 .../clientpositive/spark/groupby4_noskew.q.out  |   104 +
 .../results/clientpositive/spark/groupby5.q.out |   433 +
 .../clientpositive/spark/groupby5_map.q.out     |    95 +
 .../spark/groupby5_map_skew.q.out               |    95 +
 .../clientpositive/spark/groupby5_noskew.q.out  |   418 +
 .../results/clientpositive/spark/groupby6.q.out |   117 +
 .../clientpositive/spark/groupby6_map.q.out     |   109 +
 .../spark/groupby6_map_skew.q.out               |   122 +
 .../clientpositive/spark/groupby6_noskew.q.out  |   104 +
 .../clientpositive/spark/groupby7_map.q.out     |    23 +-
 .../spark/groupby7_map_skew.q.out               |    38 +-
 .../clientpositive/spark/groupby7_noskew.q.out  |    17 +-
 .../groupby7_noskew_multi_single_reducer.q.out  |    18 +-
 .../results/clientpositive/spark/groupby8.q.out |    62 +-
 .../spark/groupby8_map_skew.q.out               |    37 +-
 .../spark/groupby_grouping_id2.q.out            |   234 +
 .../spark/groupby_multi_single_reducer2.q.out   |     2 +-
 .../spark/groupby_multi_single_reducer3.q.out   |    12 +-
 .../clientpositive/spark/groupby_position.q.out |    37 +-
 .../spark/groupby_ppr_multi_distinct.q.out      |   350 +
 .../spark/groupby_resolution.q.out              |   796 +
 .../spark/groupby_sort_1_23.q.out               |    90 +-
 .../spark/groupby_sort_skew_1_23.q.out          |    90 +-
 .../clientpositive/spark/insert_into3.q.out     |    33 +-
 .../results/clientpositive/spark/join18.q.out   |    24 +-
 .../results/clientpositive/spark/join22.q.out   |    19 +-
 .../results/clientpositive/spark/join32.q.out   |     2 +-
 .../clientpositive/spark/join32_lessSize.q.out  |     6 +-
 .../results/clientpositive/spark/join33.q.out   |     2 +-
 .../spark/join_cond_pushdown_unqual4.q.out      |     2 +-
 .../spark/limit_partition_metadataonly.q.out    |     2 -
 .../clientpositive/spark/limit_pushdown.q.out   |    31 +-
 .../spark/list_bucket_dml_2.q.java1.7.out       |     3 -
 .../clientpositive/spark/load_dyn_part14.q.out  |    30 +-
 .../clientpositive/spark/multi_insert.q.out     |     8 +-
 .../clientpositive/spark/multi_insert_gby.q.out |     2 +-
 .../spark/multi_insert_lateral_view.q.out       |     4 +-
 ...i_insert_move_tasks_share_dependencies.q.out |   536 +-
 .../clientpositive/spark/nullgroup.q.out        |   265 +
 .../clientpositive/spark/nullgroup2.q.out       |   300 +
 .../clientpositive/spark/nullgroup4.q.out       |   292 +
 .../spark/nullgroup4_multi_distinct.q.out       |   133 +
 .../spark/optimize_nullscan.q.out               |     3 -
 .../test/results/clientpositive/spark/pcr.q.out |     6 -
 .../clientpositive/spark/ppd_gby_join.q.out     |     4 +-
 .../results/clientpositive/spark/ppd_join.q.out |     4 +-
 .../clientpositive/spark/ppd_join2.q.out        |    22 +-
 .../clientpositive/spark/ppd_join3.q.out        |    52 +-
 .../clientpositive/spark/ppd_outer_join4.q.out  |     2 +-
 .../test/results/clientpositive/spark/ptf.q.out |    17 +-
 .../results/clientpositive/spark/sample3.q.out  |     3 -
 .../results/clientpositive/spark/sample9.q.out  |     3 -
 .../clientpositive/spark/skewjoinopt11.q.out    |    60 +-
 .../clientpositive/spark/skewjoinopt9.q.out     |    20 +-
 .../clientpositive/spark/smb_mapjoin_11.q.out   |     6 -
 .../spark/spark_dynamic_partition_pruning.q.out |  5573 +++
 .../spark_dynamic_partition_pruning_2.q.out     |  1015 +
 ...k_vectorized_dynamic_partition_pruning.q.out |  5822 +++
 .../clientpositive/spark/subquery_exists.q.out  |    12 +-
 .../clientpositive/spark/subquery_in.q.out      |    36 +-
 .../spark/subquery_multiinsert.q.java1.7.out    |    16 +-
 .../clientpositive/spark/temp_table_gb1.q.out   |    67 +
 .../clientpositive/spark/udaf_collect_set.q.out |   212 +
 .../clientpositive/spark/udf_example_add.q.out  |     3 -
 .../clientpositive/spark/udf_in_file.q.out      |     3 -
 .../results/clientpositive/spark/udf_max.q.out  |    62 +
 .../results/clientpositive/spark/udf_min.q.out  |    62 +
 .../clientpositive/spark/udf_percentile.q.out   |   450 +
 .../results/clientpositive/spark/union10.q.out  |    36 +-
 .../results/clientpositive/spark/union11.q.out  |    38 +-
 .../results/clientpositive/spark/union15.q.out  |    23 +-
 .../results/clientpositive/spark/union16.q.out  |   450 +-
 .../results/clientpositive/spark/union2.q.out   |    36 +-
 .../results/clientpositive/spark/union20.q.out  |    18 +-
 .../results/clientpositive/spark/union25.q.out  |    21 +-
 .../results/clientpositive/spark/union28.q.out  |    21 +-
 .../results/clientpositive/spark/union3.q.out   |    45 +-
 .../results/clientpositive/spark/union30.q.out  |    21 +-
 .../results/clientpositive/spark/union4.q.out   |    18 +-
 .../results/clientpositive/spark/union5.q.out   |    20 +-
 .../results/clientpositive/spark/union9.q.out   |    54 +-
 .../clientpositive/spark/union_remove_1.q.out   |    23 +-
 .../clientpositive/spark/union_remove_15.q.out  |    23 +-
 .../clientpositive/spark/union_remove_16.q.out  |    23 +-
 .../clientpositive/spark/union_remove_18.q.out  |    23 +-
 .../clientpositive/spark/union_remove_19.q.out  |    75 +-
 .../clientpositive/spark/union_remove_20.q.out  |    23 +-
 .../clientpositive/spark/union_remove_21.q.out  |    21 +-
 .../clientpositive/spark/union_remove_22.q.out  |    46 +-
 .../clientpositive/spark/union_remove_24.q.out  |    23 +-
 .../clientpositive/spark/union_remove_25.q.out  |    59 +-
 .../clientpositive/spark/union_remove_4.q.out   |    23 +-
 .../clientpositive/spark/union_remove_6.q.out   |    23 +-
 .../spark/union_remove_6_subq.q.out             |    84 +-
 .../clientpositive/spark/union_remove_7.q.out   |    23 +-
 .../clientpositive/spark/union_top_level.q.out  |    59 +-
 .../clientpositive/spark/union_view.q.out       |    33 +-
 .../spark/vector_cast_constant.q.java1.7.out    |    41 +-
 .../spark/vector_count_distinct.q.out           |    31 +-
 .../spark/vector_decimal_mapjoin.q.out          |     1 +
 .../clientpositive/spark/vector_elt.q.out       |     7 -
 .../spark/vector_left_outer_join.q.out          |     2 +
 .../spark/vector_mapjoin_reduce.q.out           |    23 +-
 .../spark/vector_string_concat.q.out            |     3 -
 .../clientpositive/spark/vectorization_0.q.out  |     2 +-
 .../clientpositive/spark/vectorization_13.q.out |     4 +-
 .../clientpositive/spark/vectorization_15.q.out |     2 +-
 .../clientpositive/spark/vectorization_17.q.out |    12 +-
 .../spark/vectorization_decimal_date.q.out      |     4 -
 .../spark/vectorization_div0.q.out              |     3 -
 .../spark/vectorization_short_regress.q.out     |    40 +-
 .../clientpositive/spark/vectorized_case.q.out  |     5 +-
 .../spark/vectorized_mapjoin.q.out              |     1 +
 .../spark/vectorized_math_funcs.q.out           |     3 -
 .../spark/vectorized_nested_mapjoin.q.out       |     2 +
 .../clientpositive/spark/vectorized_ptf.q.out   |    21 +-
 .../spark/vectorized_string_funcs.q.out         |     3 -
 .../results/clientpositive/stats_ppr_all.q.out  |   284 +
 .../test/results/clientpositive/structin.q.out  |   110 +
 .../clientpositive/subquery_exists.q.out        |    12 +-
 .../results/clientpositive/subquery_in.q.out    |    36 +-
 .../clientpositive/subquery_in_having.q.out     |    50 +-
 .../subquery_multiinsert.q.java1.7.out          |    16 +-
 .../subquery_unqualcolumnrefs.q.out             |    26 +-
 .../results/clientpositive/subquery_views.q.out |    40 +-
 .../clientpositive/tez/explainuser_1.q.out      |   346 +-
 .../clientpositive/tez/explainuser_2.q.out      |    12 +-
 .../tez/filter_join_breaktask.q.out             |    12 +-
 .../clientpositive/tez/orc_ppd_basic.q.out      |   701 +
 .../test/results/clientpositive/tez/ptf.q.out   |    15 +-
 .../clientpositive/tez/selectDistinctStar.q.out |     8 +-
 .../clientpositive/tez/subquery_exists.q.out    |    12 +-
 .../clientpositive/tez/subquery_in.q.out        |    36 +-
 .../tez/tez_dynpart_hashjoin_1.q.out            |   791 +
 .../tez/tez_dynpart_hashjoin_2.q.out            |   564 +
 .../tez/tez_vector_dynpart_hashjoin_1.q.out     |   804 +
 .../tez/tez_vector_dynpart_hashjoin_2.q.out     |   570 +
 .../results/clientpositive/tez/union2.q.out     |    28 +-
 .../results/clientpositive/tez/union9.q.out     |    40 +-
 .../clientpositive/tez/vector_acid3.q.out       |    31 +
 .../tez/vector_cast_constant.q.java1.7.out      |    21 +-
 .../tez/vector_char_mapjoin1.q.out              |     1 +
 .../clientpositive/tez/vector_decimal_udf.q.out |    24 +-
 .../clientpositive/tez/vector_inner_join.q.out  |    14 +-
 .../tez/vector_mapjoin_reduce.q.out             |    24 +-
 .../tez/vector_mr_diff_schema_alias.q.out       |     2 +-
 .../tez/vector_null_projection.q.out            |     4 +
 .../tez/vector_varchar_mapjoin1.q.out           |     1 +
 .../clientpositive/tez/vectorization_0.q.out    |     2 +-
 .../clientpositive/tez/vectorization_13.q.out   |     4 +-
 .../clientpositive/tez/vectorization_15.q.out   |     2 +-
 .../clientpositive/tez/vectorization_17.q.out   |    12 +-
 .../clientpositive/tez/vectorization_7.q.out    |     4 +-
 .../clientpositive/tez/vectorization_8.q.out    |     4 +-
 .../tez/vectorization_short_regress.q.out       |    40 +-
 .../clientpositive/tez/vectorized_case.q.out    |     2 +-
 .../clientpositive/tez/vectorized_casts.q.out   |    99 +-
 .../clientpositive/tez/vectorized_ptf.q.out     |    19 +-
 .../clientpositive/udf_aes_decrypt.q.out        |    79 +
 .../clientpositive/udf_aes_encrypt.q.out        |    79 +
 .../results/clientpositive/udf_bround.q.out     |   119 +
 .../clientpositive/udf_from_utc_timestamp.q.out |    66 +-
 .../results/clientpositive/udf_inline.q.out     |     8 +-
 .../clientpositive/udf_isnull_isnotnull.q.out   |     2 +-
 ql/src/test/results/clientpositive/udf_or.q.out |     4 +-
 .../results/clientpositive/udf_percentile.q.out |   104 +-
 .../test/results/clientpositive/udf_size.q.out  |     2 +-
 .../results/clientpositive/udf_struct.q.out     |     2 +-
 .../clientpositive/udf_to_utc_timestamp.q.out   |    66 +-
 .../test/results/clientpositive/udf_union.q.out |     2 +-
 .../test/results/clientpositive/union16.q.out   |   354 +-
 ql/src/test/results/clientpositive/union2.q.out |    32 +-
 ql/src/test/results/clientpositive/union9.q.out |    46 +-
 .../clientpositive/union_remove_6_subq.q.out    |    34 +-
 .../results/clientpositive/union_view.q.out     |    24 +
 .../clientpositive/unionall_unbalancedppd.q.out |   657 +
 .../clientpositive/varchar_udf1.q.java1.7.out   |    12 +-
 .../results/clientpositive/vector_acid3.q.out   |    31 +
 .../vector_aggregate_without_gby.q.out          |    96 +
 .../results/clientpositive/vector_bround.q.out  |    86 +
 .../vector_cast_constant.q.java1.7.out          |    32 +-
 .../clientpositive/vector_char_mapjoin1.q.out   |     1 +
 .../clientpositive/vector_decimal_udf.q.out     |    24 +-
 .../clientpositive/vector_inner_join.q.out      |    12 +-
 .../clientpositive/vector_mapjoin_reduce.q.out  |    26 +-
 .../vector_mr_diff_schema_alias.q.out           |     2 +-
 .../clientpositive/vector_null_projection.q.out |     4 +
 .../vector_varchar_mapjoin1.q.out               |     1 +
 .../clientpositive/vectorization_0.q.out        |     2 +-
 .../clientpositive/vectorization_13.q.out       |     4 +-
 .../clientpositive/vectorization_15.q.out       |     2 +-
 .../clientpositive/vectorization_17.q.out       |    12 +-
 .../clientpositive/vectorization_7.q.out        |     4 +-
 .../clientpositive/vectorization_8.q.out        |     4 +-
 .../vectorization_short_regress.q.out           |    40 +-
 .../clientpositive/vectorized_case.q.out        |     2 +-
 .../clientpositive/vectorized_casts.q.out       |    66 +-
 .../results/clientpositive/vectorized_ptf.q.out |    67 +-
 .../gen/thrift/gen-cpp/complex_constants.cpp    |     2 +-
 .../src/gen/thrift/gen-cpp/complex_constants.h  |     2 +-
 serde/src/gen/thrift/gen-cpp/complex_types.cpp  |   442 +-
 serde/src/gen/thrift/gen-cpp/complex_types.h    |   174 +-
 .../gen/thrift/gen-cpp/megastruct_constants.cpp |     2 +-
 .../gen/thrift/gen-cpp/megastruct_constants.h   |     2 +-
 .../src/gen/thrift/gen-cpp/megastruct_types.cpp |   585 +-
 serde/src/gen/thrift/gen-cpp/megastruct_types.h |   175 +-
 .../src/gen/thrift/gen-cpp/serde_constants.cpp  |     2 +-
 serde/src/gen/thrift/gen-cpp/serde_constants.h  |     2 +-
 serde/src/gen/thrift/gen-cpp/serde_types.cpp    |     5 +-
 serde/src/gen/thrift/gen-cpp/serde_types.h      |     5 +-
 .../gen/thrift/gen-cpp/testthrift_constants.cpp |     2 +-
 .../gen/thrift/gen-cpp/testthrift_constants.h   |     2 +-
 .../src/gen/thrift/gen-cpp/testthrift_types.cpp |    95 +-
 serde/src/gen/thrift/gen-cpp/testthrift_types.h |    45 +-
 .../hadoop/hive/serde/serdeConstants.java       |     7 +-
 .../hadoop/hive/serde/test/InnerStruct.java     |    24 +-
 .../hadoop/hive/serde/test/ThriftTestObj.java   |    62 +-
 .../hadoop/hive/serde2/thrift/test/Complex.java |   279 +-
 .../hive/serde2/thrift/test/IntString.java      |    40 +-
 .../hive/serde2/thrift/test/MegaStruct.java     |   521 +-
 .../hive/serde2/thrift/test/MiniStruct.java     |    38 +-
 .../hadoop/hive/serde2/thrift/test/MyEnum.java  |     2 +-
 .../hive/serde2/thrift/test/PropValueUnion.java |    60 +-
 .../hive/serde2/thrift/test/SetIntString.java   |    54 +-
 serde/src/gen/thrift/gen-php/Types.php          |    15 +-
 .../org/apache/hadoop/hive/serde/Types.php      |   373 +-
 .../src/gen/thrift/gen-py/complex/constants.py  |     2 +-
 serde/src/gen/thrift/gen-py/complex/ttypes.py   |    50 +-
 .../gen/thrift/gen-py/megastruct/constants.py   |     2 +-
 .../src/gen/thrift/gen-py/megastruct/ttypes.py  |    44 +-
 .../org_apache_hadoop_hive_serde/constants.py   |     2 +-
 .../org_apache_hadoop_hive_serde/ttypes.py      |     2 +-
 .../gen/thrift/gen-py/testthrift/constants.py   |     2 +-
 .../src/gen/thrift/gen-py/testthrift/ttypes.py  |    14 +-
 .../src/gen/thrift/gen-rb/complex_constants.rb  |     2 +-
 serde/src/gen/thrift/gen-rb/complex_types.rb    |     2 +-
 .../gen/thrift/gen-rb/megastruct_constants.rb   |     2 +-
 serde/src/gen/thrift/gen-rb/megastruct_types.rb |     2 +-
 serde/src/gen/thrift/gen-rb/serde_constants.rb  |     2 +-
 serde/src/gen/thrift/gen-rb/serde_types.rb      |     2 +-
 .../gen/thrift/gen-rb/testthrift_constants.rb   |     2 +-
 serde/src/gen/thrift/gen-rb/testthrift_types.rb |     2 +-
 .../hadoop/hive/ql/io/sarg/ExpressionTree.java  |   157 -
 .../hadoop/hive/ql/io/sarg/PredicateLeaf.java   |    87 -
 .../hadoop/hive/ql/io/sarg/SearchArgument.java  |   278 -
 .../apache/hadoop/hive/serde2/SerDeUtils.java   |    14 +-
 .../apache/hadoop/hive/serde2/WriteBuffers.java |     2 +-
 .../serde2/avro/AvroLazyObjectInspector.java    |    19 +-
 .../hadoop/hive/serde2/avro/InstanceCache.java  |    26 +-
 .../hadoop/hive/serde2/io/DateWritable.java     |    14 -
 .../hive/serde2/io/HiveDecimalWritable.java     |   185 -
 .../hive/serde2/lazy/LazyHiveDecimal.java       |     3 +-
 .../lazy/fast/LazySimpleDeserializeRead.java    |    16 +-
 .../hive/serde2/lazybinary/LazyBinaryDate.java  |     4 +-
 .../lazybinary/LazyBinaryHiveDecimal.java       |     2 +-
 .../hive/serde2/lazybinary/LazyBinarySerDe.java |    37 +-
 .../fast/LazyBinaryDeserializeRead.java         |     6 +-
 .../fast/LazyBinarySerializeWrite.java          |     5 +-
 .../ObjectInspectorConverters.java              |    31 +-
 .../objectinspector/ObjectInspectorFactory.java |    68 +-
 .../objectinspector/ObjectInspectorUtils.java   |    19 +
 .../ReflectionStructObjectInspector.java        |    60 +-
 .../SettableUnionObjectInspector.java           |     4 +-
 .../StandardConstantStructObjectInspector.java  |    51 +
 .../StandardStructObjectInspector.java          |     7 +-
 .../StandardUnionObjectInspector.java           |     4 +-
 .../ThriftUnionObjectInspector.java             |    44 +-
 .../hive/serde2/typeinfo/HiveDecimalUtils.java  |    35 +-
 .../hive/serde2/typeinfo/TypeInfoUtils.java     |     2 +-
 .../avro/TestAvroLazyObjectInspector.java       |    59 +
 .../hive/serde2/avro/TestInstanceCache.java     |    40 +-
 .../TestObjectInspectorConverters.java          |    89 +-
 .../TestReflectionObjectInspectors.java         |    71 +-
 .../TestThriftObjectInspectors.java             |    10 +-
 service/src/gen/thrift/gen-cpp/TCLIService.cpp  |   458 +-
 service/src/gen/thrift/gen-cpp/TCLIService.h    |   821 +-
 .../thrift/gen-cpp/TCLIService_constants.cpp    |     2 +-
 .../gen/thrift/gen-cpp/TCLIService_constants.h  |     2 +-
 .../gen/thrift/gen-cpp/TCLIService_types.cpp    |  3250 +-
 .../src/gen/thrift/gen-cpp/TCLIService_types.h  |  1482 +-
 service/src/gen/thrift/gen-cpp/ThriftHive.cpp   |   286 +-
 service/src/gen/thrift/gen-cpp/ThriftHive.h     |   389 +-
 .../thrift/gen-cpp/hive_service_constants.cpp   |     2 +-
 .../gen/thrift/gen-cpp/hive_service_constants.h |     2 +-
 .../gen/thrift/gen-cpp/hive_service_types.cpp   |   110 +-
 .../src/gen/thrift/gen-cpp/hive_service_types.h |    75 +-
 .../hadoop/hive/service/HiveClusterStatus.java  |    68 +-
 .../hive/service/HiveServerException.java       |    40 +-
 .../hadoop/hive/service/JobTrackerState.java    |     2 +-
 .../apache/hadoop/hive/service/ThriftHive.java  |   914 +-
 .../service/cli/thrift/TArrayTypeEntry.java     |    24 +-
 .../hive/service/cli/thrift/TBinaryColumn.java  |    64 +-
 .../hive/service/cli/thrift/TBoolColumn.java    |    62 +-
 .../hive/service/cli/thrift/TBoolValue.java     |    26 +-
 .../hive/service/cli/thrift/TByteColumn.java    |    62 +-
 .../hive/service/cli/thrift/TByteValue.java     |    26 +-
 .../hive/service/cli/thrift/TCLIService.java    |  1734 +-
 .../cli/thrift/TCLIServiceConstants.java        |     7 +-
 .../cli/thrift/TCancelDelegationTokenReq.java   |    32 +-
 .../cli/thrift/TCancelDelegationTokenResp.java  |    24 +-
 .../service/cli/thrift/TCancelOperationReq.java |    24 +-
 .../cli/thrift/TCancelOperationResp.java        |    24 +-
 .../service/cli/thrift/TCloseOperationReq.java  |    24 +-
 .../service/cli/thrift/TCloseOperationResp.java |    24 +-
 .../service/cli/thrift/TCloseSessionReq.java    |    24 +-
 .../service/cli/thrift/TCloseSessionResp.java   |    24 +-
 .../apache/hive/service/cli/thrift/TColumn.java |    20 +-
 .../hive/service/cli/thrift/TColumnDesc.java    |    50 +-
 .../hive/service/cli/thrift/TColumnValue.java   |    20 +-
 .../hive/service/cli/thrift/TDoubleColumn.java  |    62 +-
 .../hive/service/cli/thrift/TDoubleValue.java   |    26 +-
 .../cli/thrift/TExecuteStatementReq.java        |    87 +-
 .../cli/thrift/TExecuteStatementResp.java       |    34 +-
 .../service/cli/thrift/TFetchOrientation.java   |     2 +-
 .../service/cli/thrift/TFetchResultsReq.java    |    54 +-
 .../service/cli/thrift/TFetchResultsResp.java   |    42 +-
 .../service/cli/thrift/TGetCatalogsReq.java     |    24 +-
 .../service/cli/thrift/TGetCatalogsResp.java    |    34 +-
 .../hive/service/cli/thrift/TGetColumnsReq.java |    58 +-
 .../service/cli/thrift/TGetColumnsResp.java     |    34 +-
 .../cli/thrift/TGetDelegationTokenReq.java      |    40 +-
 .../cli/thrift/TGetDelegationTokenResp.java     |    34 +-
 .../service/cli/thrift/TGetFunctionsReq.java    |    50 +-
 .../service/cli/thrift/TGetFunctionsResp.java   |    34 +-
 .../hive/service/cli/thrift/TGetInfoReq.java    |    36 +-
 .../hive/service/cli/thrift/TGetInfoResp.java   |    32 +-
 .../hive/service/cli/thrift/TGetInfoType.java   |     2 +-
 .../hive/service/cli/thrift/TGetInfoValue.java  |    20 +-
 .../cli/thrift/TGetOperationStatusReq.java      |    24 +-
 .../cli/thrift/TGetOperationStatusResp.java     |    62 +-
 .../cli/thrift/TGetResultSetMetadataReq.java    |    24 +-
 .../cli/thrift/TGetResultSetMetadataResp.java   |    34 +-
 .../hive/service/cli/thrift/TGetSchemasReq.java |    42 +-
 .../service/cli/thrift/TGetSchemasResp.java     |    34 +-
 .../service/cli/thrift/TGetTableTypesReq.java   |    24 +-
 .../service/cli/thrift/TGetTableTypesResp.java  |    34 +-
 .../hive/service/cli/thrift/TGetTablesReq.java  |    79 +-
 .../hive/service/cli/thrift/TGetTablesResp.java |    34 +-
 .../service/cli/thrift/TGetTypeInfoReq.java     |    24 +-
 .../service/cli/thrift/TGetTypeInfoResp.java    |    34 +-
 .../service/cli/thrift/THandleIdentifier.java   |    50 +-
 .../hive/service/cli/thrift/TI16Column.java     |    62 +-
 .../hive/service/cli/thrift/TI16Value.java      |    26 +-
 .../hive/service/cli/thrift/TI32Column.java     |    62 +-
 .../hive/service/cli/thrift/TI32Value.java      |    26 +-
 .../hive/service/cli/thrift/TI64Column.java     |    62 +-
 .../hive/service/cli/thrift/TI64Value.java      |    26 +-
 .../hive/service/cli/thrift/TMapTypeEntry.java  |    32 +-
 .../service/cli/thrift/TOpenSessionReq.java     |    91 +-
 .../service/cli/thrift/TOpenSessionResp.java    |    91 +-
 .../service/cli/thrift/TOperationHandle.java    |    54 +-
 .../service/cli/thrift/TOperationState.java     |     2 +-
 .../hive/service/cli/thrift/TOperationType.java |     2 +-
 .../service/cli/thrift/TPrimitiveTypeEntry.java |    38 +-
 .../service/cli/thrift/TProtocolVersion.java    |     2 +-
 .../cli/thrift/TRenewDelegationTokenReq.java    |    32 +-
 .../cli/thrift/TRenewDelegationTokenResp.java   |    24 +-
 .../apache/hive/service/cli/thrift/TRow.java    |    46 +-
 .../apache/hive/service/cli/thrift/TRowSet.java |    86 +-
 .../hive/service/cli/thrift/TSessionHandle.java |    24 +-
 .../apache/hive/service/cli/thrift/TStatus.java |    83 +-
 .../hive/service/cli/thrift/TStatusCode.java    |     2 +-
 .../hive/service/cli/thrift/TStringColumn.java  |    62 +-
 .../hive/service/cli/thrift/TStringValue.java   |    26 +-
 .../service/cli/thrift/TStructTypeEntry.java    |    50 +-
 .../hive/service/cli/thrift/TTableSchema.java   |    46 +-
 .../hive/service/cli/thrift/TTypeDesc.java      |    46 +-
 .../hive/service/cli/thrift/TTypeEntry.java     |    20 +-
 .../apache/hive/service/cli/thrift/TTypeId.java |     2 +-
 .../service/cli/thrift/TTypeQualifierValue.java |    20 +-
 .../service/cli/thrift/TTypeQualifiers.java     |    54 +-
 .../service/cli/thrift/TUnionTypeEntry.java     |    50 +-
 .../cli/thrift/TUserDefinedTypeEntry.java       |    24 +-
 service/src/gen/thrift/gen-php/TCLIService.php  |   269 +-
 service/src/gen/thrift/gen-php/ThriftHive.php   |   125 +-
 service/src/gen/thrift/gen-php/Types.php        |    30 +-
 .../gen-py/TCLIService/TCLIService-remote       |   102 +-
 .../thrift/gen-py/TCLIService/TCLIService.py    |   439 +-
 .../gen/thrift/gen-py/TCLIService/constants.py  |     2 +-
 .../src/gen/thrift/gen-py/TCLIService/ttypes.py |   478 +-
 .../gen-py/hive_service/ThriftHive-remote       |  1021 +-
 .../thrift/gen-py/hive_service/ThriftHive.py    |   266 +-
 .../gen/thrift/gen-py/hive_service/constants.py |     2 +-
 .../gen/thrift/gen-py/hive_service/ttypes.py    |    19 +-
 .../gen/thrift/gen-rb/hive_service_constants.rb |     2 +-
 .../src/gen/thrift/gen-rb/hive_service_types.rb |     2 +-
 .../src/gen/thrift/gen-rb/t_c_l_i_service.rb    |     2 +-
 .../thrift/gen-rb/t_c_l_i_service_constants.rb  |     2 +-
 .../gen/thrift/gen-rb/t_c_l_i_service_types.rb  |     2 +-
 service/src/gen/thrift/gen-rb/thrift_hive.rb    |     2 +-
 .../hive/service/cli/CLIServiceUtils.java       |     7 -
 .../cli/operation/GetColumnsOperation.java      |    10 +-
 .../cli/operation/GetTablesOperation.java       |     7 +-
 .../cli/operation/LogDivertAppender.java        |   223 +-
 .../service/cli/operation/OperationManager.java |    17 +-
 .../service/cli/session/SessionManager.java     |    42 +-
 .../apache/hive/service/server/HiveServer2.java |    74 +-
 .../session/TestPluggableHiveSessionImpl.java   |    55 +
 shims/0.20S/pom.xml                             |     8 +-
 .../hadoop/hive/shims/Hadoop20SShims.java       |    46 +-
 shims/0.23/pom.xml                              |    21 +-
 .../apache/hadoop/hive/shims/Hadoop23Shims.java |   145 +-
 shims/common/pom.xml                            |    17 +-
 .../apache/hadoop/hive/shims/HadoopShims.java   |    37 +
 .../hadoop/hive/shims/HadoopShimsSecure.java    |    32 +
 .../hadoop/hive/shims/HiveEventCounter.java     |   102 -
 spark-client/pom.xml                            |     5 +
 .../hive/spark/client/SparkClientImpl.java      |    24 +-
 .../hive/spark/client/SparkClientUtilities.java |    13 +-
 .../hive/spark/client/TestSparkClient.java      |     4 +-
 .../src/test/resources/log4j.properties         |    23 -
 spark-client/src/test/resources/log4j2.xml      |    39 +
 storage-api/pom.xml                             |    78 +
 .../hadoop/hive/common/type/HiveDecimal.java    |   313 +
 .../hive/ql/exec/vector/BytesColumnVector.java  |   322 +
 .../hive/ql/exec/vector/ColumnVector.java       |   173 +
 .../ql/exec/vector/DecimalColumnVector.java     |   106 +
 .../hive/ql/exec/vector/DoubleColumnVector.java |   143 +
 .../hive/ql/exec/vector/LongColumnVector.java   |   189 +
 .../hive/ql/exec/vector/VectorizedRowBatch.java |   186 +
 .../hadoop/hive/ql/io/sarg/ExpressionTree.java  |   156 +
 .../hadoop/hive/ql/io/sarg/PredicateLeaf.java   |   103 +
 .../hadoop/hive/ql/io/sarg/SearchArgument.java  |   287 +
 .../hive/ql/io/sarg/SearchArgumentFactory.java  |    28 +
 .../hive/ql/io/sarg/SearchArgumentImpl.java     |   687 +
 .../hive/serde2/io/HiveDecimalWritable.java     |   174 +
 testutils/ptest2/pom.xml                        |    32 +-
 .../ptest2/src/main/resources/log4j.properties  |    37 -
 testutils/ptest2/src/main/resources/log4j2.xml  |    80 +
 1291 files changed, 156107 insertions(+), 50140 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/fc53e5d7/beeline/src/java/org/apache/hive/beeline/BeeLine.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/hive/blob/fc53e5d7/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java
----------------------------------------------------------------------
diff --cc beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java
index b6f244b,3388391..8e1d11b
--- a/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java
+++ b/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java
@@@ -79,10 -78,9 +79,11 @@@ class BeeLineOpts implements Completer 
    int timeout = -1;
    private String isolation = DEFAULT_ISOLATION_LEVEL;
    private String outputFormat = "table";
 +  // This configuration is used only for client side configuration.
 +  private HiveConf conf;
    private boolean trimScripts = true;
    private boolean allowMultiLineCommand = true;
+   private boolean showConnectedUrl = false;
  
    //This can be set for old behavior of nulls printed as empty strings
    private boolean nullEmptyString = false;

http://git-wip-us.apache.org/repos/asf/hive/blob/fc53e5d7/jdbc/src/java/org/apache/hive/jdbc/Utils.java
----------------------------------------------------------------------
diff --cc jdbc/src/java/org/apache/hive/jdbc/Utils.java
index 0e4693b,d8368a4..e4df7f4
--- a/jdbc/src/java/org/apache/hive/jdbc/Utils.java
+++ b/jdbc/src/java/org/apache/hive/jdbc/Utils.java
@@@ -37,8 -36,8 +36,8 @@@ import org.apache.hive.service.cli.thri
  import org.apache.http.client.CookieStore;
  import org.apache.http.cookie.Cookie;
  
 -class Utils {
 +public class Utils {
-   public static final Log LOG = LogFactory.getLog(Utils.class.getName());
+   static final Log LOG = LogFactory.getLog(Utils.class.getName());
    /**
      * The required prefix for the connection URL.
      */

http://git-wip-us.apache.org/repos/asf/hive/blob/fc53e5d7/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
----------------------------------------------------------------------
diff --cc ql/src/java/org/apache/hadoop/hive/ql/Driver.java
index a381f73,4030075..9ee6023
--- a/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
@@@ -388,12 -387,10 +388,15 @@@ public class Driver implements CommandP
      SessionState.get().setupQueryCurrentTimestamp();
  
      try {
+       // Initialize the transaction manager.  This must be done before analyze is called.
+       SessionState.get().initTxnMgr(conf);
 -
 -      command = new VariableSubstitution().substitute(conf, command);
++      
 +      command = new VariableSubstitution(new HiveVariableSource() {
 +        @Override
 +        public Map<String, String> getHiveVariable() {
 +          return SessionState.get().getHiveVariables();
 +        }
 +      }).substitute(conf, command);
        ctx = new Context(conf);
        ctx.setTryCount(getTryCount());
        ctx.setCmd(command);

http://git-wip-us.apache.org/repos/asf/hive/blob/fc53e5d7/ql/src/java/org/apache/hadoop/hive/ql/parse/ColumnStatsSemanticAnalyzer.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/hive/blob/fc53e5d7/ql/src/java/org/apache/hadoop/hive/ql/processors/SetProcessor.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/hive/blob/fc53e5d7/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java
----------------------------------------------------------------------


[18/43] hive git commit: HIVE-11336: Support initial file option for new CLI [beeline-cli branch](Ferdinand Xu, reviewed by Xuefu Zhang)

Posted by se...@apache.org.
HIVE-11336: Support initial file option for new CLI [beeline-cli branch](Ferdinand Xu, reviewed by Xuefu Zhang)


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

Branch: refs/heads/llap
Commit: e28043fb4753b26daaa8a01da61ceda04b970645
Parents: edbd8db
Author: Ferdinand Xu <ch...@intel.com>
Authored: Mon Jul 27 22:34:47 2015 -0400
Committer: Ferdinand Xu <ch...@intel.com>
Committed: Mon Jul 27 22:34:47 2015 -0400

----------------------------------------------------------------------
 .../java/org/apache/hive/beeline/BeeLine.java   | 44 +++++++++++++++-----
 .../org/apache/hive/beeline/BeeLineOpts.java    | 10 ++---
 2 files changed, 39 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/e28043fb/beeline/src/java/org/apache/hive/beeline/BeeLine.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLine.java b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
index d4beefc..406059d 100644
--- a/beeline/src/java/org/apache/hive/beeline/BeeLine.java
+++ b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
@@ -22,7 +22,6 @@
  */
 package org.apache.hive.beeline;
 
-import java.io.BufferedReader;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.Closeable;
@@ -31,7 +30,6 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.InputStreamReader;
 import java.io.PrintStream;
 import java.io.SequenceInputStream;
 import java.lang.reflect.InvocationTargetException;
@@ -672,6 +670,10 @@ public class BeeLine implements Closeable {
 
     getOpts().setScriptFile(commandLine.getOptionValue("f"));
 
+    if (commandLine.getOptionValues("i") != null) {
+      getOpts().setInitFiles(commandLine.getOptionValues("i"));
+    }
+
     dbName = commandLine.getOptionValue("database");
     getOpts().setVerbose(Boolean.valueOf(commandLine.getOptionValue("verbose")));
     getOpts().setSilent(Boolean.valueOf(commandLine.getOptionValue("slient")));
@@ -747,7 +749,7 @@ public class BeeLine implements Closeable {
       pass = cl.getOptionValue("p");
     }
     url = cl.getOptionValue("u");
-    getOpts().setInitFile(cl.getOptionValue("i"));
+    getOpts().setInitFiles(cl.getOptionValues("i"));
     getOpts().setScriptFile(cl.getOptionValue("f"));
     if (cl.getOptionValues('e') != null) {
       commands = Arrays.asList(cl.getOptionValues('e'));
@@ -835,6 +837,8 @@ public class BeeLine implements Closeable {
         getOpts().setShowHeader(false);
         getOpts().setOutputFormat("dsv");
         getOpts().setDelimiterForDSV(' ');
+
+        processInitFiles(opts.getInitFiles());
       }
 
       if (getOpts().getScriptFile() != null) {
@@ -853,13 +857,15 @@ public class BeeLine implements Closeable {
   }
 
   int runInit() {
-    String initFile = getOpts().getInitFile();
-    if (initFile != null) {
-      info("Running init script " + initFile);
-      try {
-        return executeFile(initFile);
-      } finally {
-        exit = false;
+    String initFiles[] = getOpts().getInitFiles();
+    if (initFiles != null && initFiles.length != 0) {
+      for (String initFile : initFiles) {
+        info("Running init script " + initFile);
+        try {
+          return executeFile(initFile);
+        } finally {
+          exit = false;
+        }
       }
     }
     return ERRNO_OK;
@@ -920,6 +926,24 @@ public class BeeLine implements Closeable {
     }
   }
 
+  /**
+   * Only initial files specified by i option will be executed. The hiverc file will be processed by session manager.
+   *
+   * @param files
+   * @throws IOException
+   */
+  public void processInitFiles(String[] files) throws IOException {
+    if (files == null || files.length == 0) {
+      return;
+    }
+    for (String initFile : files) {
+      int rc = executeFile(initFile);
+      if (rc != 0) {
+        System.exit(rc);
+      }
+    }
+  }
+
   private int execute(ConsoleReader reader, boolean exitOnError) {
     String line;
     while (!exit) {

http://git-wip-us.apache.org/repos/asf/hive/blob/e28043fb/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java b/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java
index fec95f2..d9f726d 100644
--- a/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java
+++ b/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java
@@ -93,7 +93,7 @@ class BeeLineOpts implements Completer {
   private String historyFile = new File(saveDir(), "history").getAbsolutePath();
 
   private String scriptFile = null;
-  private String initFile = null;
+  private String[] initFiles = null;
   private String authType = null;
   private char delimiterForDSV = DEFAULT_DELIMITER_FOR_DSV;
 
@@ -388,12 +388,12 @@ class BeeLineOpts implements Completer {
     return scriptFile;
   }
 
-  public String getInitFile() {
-    return initFile;
+  public String[] getInitFiles() {
+    return initFiles;
   }
 
-  public void setInitFile(String initFile) {
-    this.initFile = initFile;
+  public void setInitFiles(String[] initFiles) {
+    this.initFiles = initFiles;
   }
 
   public void setColor(boolean color) {


[22/43] hive git commit: HIVE-11640: Shell command doesn't work for new CLI[Beeline-cli branch](Ferdinand Xu, reviewed by Xuefu Zhang)

Posted by se...@apache.org.
HIVE-11640: Shell command doesn't work for new CLI[Beeline-cli branch](Ferdinand Xu, reviewed by Xuefu Zhang)


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

Branch: refs/heads/llap
Commit: b90a2ae5dfb3371bcf1a8ff5f683d8fdd5dbe0ee
Parents: 3d088de
Author: Ferdinand Xu <ch...@intel.com>
Authored: Mon Sep 7 23:36:29 2015 -0400
Committer: Ferdinand Xu <ch...@intel.com>
Committed: Mon Sep 7 23:36:29 2015 -0400

----------------------------------------------------------------------
 .../java/org/apache/hive/beeline/BeeLine.java   | 82 ++++++++++++--------
 .../java/org/apache/hive/beeline/Commands.java  | 44 +++++------
 .../apache/hive/beeline/cli/TestHiveCli.java    | 32 ++++++--
 3 files changed, 95 insertions(+), 63 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/b90a2ae5/beeline/src/java/org/apache/hive/beeline/BeeLine.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLine.java b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
index 1e4759b..11ff3f2 100644
--- a/beeline/src/java/org/apache/hive/beeline/BeeLine.java
+++ b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
@@ -695,6 +695,7 @@ public class BeeLine implements Closeable {
     if (!commands.isEmpty()) {
       embeddedConnect();
       connectDBInEmbededMode();
+      updateOptsForCli();
       for (Iterator<String> i = commands.iterator(); i.hasNext(); ) {
         String command = i.next().toString();
         debug(loc("executing-command", command));
@@ -811,6 +812,14 @@ public class BeeLine implements Closeable {
     }
   }
 
+  private void updateOptsForCli() {
+    getOpts().updateBeeLineOptsFromConf();
+    getOpts().setShowHeader(false);
+    getOpts().setOutputFormat("dsv");
+    getOpts().setDelimiterForDSV(' ');
+    getOpts().setNullEmptyString(true);
+  }
+
   /**
    * Start accepting input from stdin, and dispatch it
    * to the appropriate {@link CommandHandler} until the
@@ -836,10 +845,7 @@ public class BeeLine implements Closeable {
           return code;
         }
         defaultConnect(false);
-        getOpts().updateBeeLineOptsFromConf();
-        getOpts().setShowHeader(false);
-        getOpts().setOutputFormat("dsv");
-        getOpts().setDelimiterForDSV(' ');
+        updateOptsForCli();
 
         processInitFiles(opts.getInitFiles());
       }
@@ -958,6 +964,7 @@ public class BeeLine implements Closeable {
 
         // trim line
         line = (line == null) ? null : line.trim();
+
         if (!dispatch(line) && exitOnError) {
           return ERRNO_OTHER;
         }
@@ -1059,8 +1066,33 @@ public class BeeLine implements Closeable {
     output(loc("cmd-usage"));
   }
 
-  private String[] tokenizeCmd(String cmd) {
-    return cmd.split("\\s+");
+  /**
+   * This method is used for executing commands beginning with !
+   * @param line
+   * @return
+   */
+  public boolean execCommandWithPrefix(String line) {
+    Map<String, CommandHandler> cmdMap = new TreeMap<String, CommandHandler>();
+    line = line.substring(1);
+    for (int i = 0; i < commandHandlers.length; i++) {
+      String match = commandHandlers[i].matches(line);
+      if (match != null) {
+        cmdMap.put(match, commandHandlers[i]);
+      }
+    }
+
+    if (cmdMap.size() == 0) {
+      return error(loc("unknown-command", line));
+    }
+    if (cmdMap.size() > 1) {
+      // any exact match?
+      CommandHandler handler = cmdMap.get(line);
+      if (handler == null) {
+        return error(loc("multiple-matches", cmdMap.keySet().toString()));
+      }
+      return handler.execute(line);
+    }
+    return cmdMap.values().iterator().next().execute(line);
   }
 
   /**
@@ -1096,35 +1128,19 @@ public class BeeLine implements Closeable {
       line = "!help";
     }
 
-    if (line.startsWith(COMMAND_PREFIX)) {
-      Map<String, CommandHandler> cmdMap = new TreeMap<String, CommandHandler>();
-      line = line.substring(1);
-      for (int i = 0; i < commandHandlers.length; i++) {
-        String match = commandHandlers[i].matches(line);
-        if (match != null) {
-          CommandHandler prev = cmdMap.put(match, commandHandlers[i]);
-          if (prev != null) {
-            return error(loc("multiple-matches",
-                Arrays.asList(prev.getName(), commandHandlers[i].getName())));
-          }
-        }
-      }
-
-      if (cmdMap.size() == 0) {
-        return error(loc("unknown-command", line));
-      }
-      if (cmdMap.size() > 1) {
-        // any exact match?
-        CommandHandler handler = cmdMap.get(line);
-        if (handler == null) {
-          return error(loc("multiple-matches", cmdMap.keySet().toString()));
-        }
-        return handler.execute(line);
+    if (isBeeLine) {
+      if (line.startsWith(COMMAND_PREFIX) && !line.contains(";")) {
+        // handle the case "!cmd" for beeline
+        return execCommandWithPrefix(line);
+      } else {
+        return commands.sql(line, getOpts().getEntireLineAsCommand());
       }
-      return cmdMap.values().iterator().next()
-          .execute(line);
     } else {
-      return commands.sql(line, getOpts().getEntireLineAsCommand());
+      if (line.toLowerCase().startsWith("!connect")) {
+        return execCommandWithPrefix(line);
+      } else {
+        return commands.sql(line, getOpts().getEntireLineAsCommand());
+      }
     }
   }
 

http://git-wip-us.apache.org/repos/asf/hive/blob/b90a2ae5/beeline/src/java/org/apache/hive/beeline/Commands.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/Commands.java b/beeline/src/java/org/apache/hive/beeline/Commands.java
index 5e5cfec..d16b4ec 100644
--- a/beeline/src/java/org/apache/hive/beeline/Commands.java
+++ b/beeline/src/java/org/apache/hive/beeline/Commands.java
@@ -824,7 +824,7 @@ public class Commands {
     if (cmd == null || cmd.isEmpty())
       return false;
     String[] tokens = tokenizeCmd(cmd);
-    return tokens[0].equalsIgnoreCase("!source");
+    return tokens[0].equalsIgnoreCase("source");
   }
 
   private boolean sourceFile(String cmd) {
@@ -866,6 +866,7 @@ public class Commands {
       }
       String[] cmds = lines.split(";");
       for (String c : cmds) {
+        c = c.trim();
         if (!executeInternal(c, false)) {
           return false;
         }
@@ -878,11 +879,10 @@ public class Commands {
     return true;
   }
 
-  private String cliToBeelineCmd(String cmd) {
+  public String cliToBeelineCmd(String cmd) {
     if (cmd == null)
       return null;
-    String[] tokens = tokenizeCmd(cmd);
-    if (tokens[0].equalsIgnoreCase("source")) {
+    if (cmd.toLowerCase().equals("quit") || cmd.toLowerCase().equals("exit")) {
       return BeeLine.COMMAND_PREFIX + cmd;
     } else if (cmd.startsWith("!")) {
       String shell_cmd = cmd.substring(1);
@@ -896,6 +896,10 @@ public class Commands {
   // Return false only occurred error when execution the sql and the sql should follow the rules
   // of beeline.
   private boolean executeInternal(String sql, boolean call) {
+    if (!beeLine.isBeeLine()) {
+      sql = cliToBeelineCmd(sql);
+    }
+
     if (sql == null || sql.length() == 0) {
       return true;
     }
@@ -905,8 +909,13 @@ public class Commands {
       return true;
     }
 
+    // is source CMD
+    if (isSourceCMD(sql)) {
+      return sourceFile(sql);
+    }
+
     if (sql.startsWith(BeeLine.COMMAND_PREFIX)) {
-      sql = sql.substring(1);
+      return beeLine.execCommandWithPrefix(sql);
     }
 
     String prefix = call ? "call" : "sql";
@@ -921,6 +930,10 @@ public class Commands {
       return true;
     }
 
+    if (!(beeLine.assertConnection())) {
+      return false;
+    }
+
     ClientHook hook = null;
     if (!beeLine.isBeeLine()) {
       hook = ClientCommandHookFactory.get().getHook(sql);
@@ -1096,10 +1109,6 @@ public class Commands {
       beeLine.handleException(e);
     }
 
-    if (!(beeLine.assertConnection())) {
-      return false;
-    }
-
     line = line.trim();
     List<String> cmdList = new ArrayList<String>();
     if (entireLineAsCommand) {
@@ -1120,20 +1129,6 @@ public class Commands {
     for (int i = 0; i < cmdList.size(); i++) {
       String sql = cmdList.get(i).trim();
       if (sql.length() != 0) {
-        if (!beeLine.isBeeLine()) {
-          sql = cliToBeelineCmd(sql);
-          if (sql.equalsIgnoreCase("quit") || sql.equalsIgnoreCase("exit")) {
-            beeLine.setExit(true);
-            return true;
-          }
-        }
-
-        // is source CMD
-        if (isSourceCMD(sql)) {
-          sourceFile(sql);
-          continue;
-        }
-
         if (!executeInternal(sql, call)) {
           return false;
         }
@@ -1205,6 +1200,9 @@ public class Commands {
     return true;
   }
 
+  public boolean exit(String line) {
+    return quit(line);
+  }
 
   /**
    * Close all connections.

http://git-wip-us.apache.org/repos/asf/hive/blob/b90a2ae5/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
----------------------------------------------------------------------
diff --git a/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java b/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
index e06d2ea..953ba5f 100644
--- a/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
+++ b/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
@@ -46,6 +46,7 @@ public class TestHiveCli {
       "create table if not exists test.testSrcTbl2(sc2 string);";
   private final static String SOURCE_CONTEXT3 =
       "create table if not exists test.testSrcTbl3(sc3 string);";
+  private final static String SOURCE_CONTEXT4 = "show tables;!ls;show tables;\nquit;";
   final static String CMD =
       "create database if not exists test;\ncreate table if not exists test.testTbl(a string, b "
           + "string);\n";
@@ -90,19 +91,23 @@ public class TestHiveCli {
     String output = os.toString();
     LOG.debug(output);
     if (contains) {
-      Assert.assertTrue(
-          "The expected keyword \"" + keywords + "\" doesn't occur in the output: " + output,
+      Assert.assertTrue("The expected keyword \"" + keywords + "\" occur in the output: " + output,
           output.contains(keywords));
     } else {
       Assert.assertFalse(
-          "The expected keyword \"" + keywords + "\" doesn't occur in the output: " + output,
-          output.contains(keywords));
+          "The expected keyword \"" + keywords + "\" should be excluded occurred in the output: "
+              + output, output.contains(keywords));
     }
   }
 
   @Test
   public void testInValidCmd() {
-    verifyCMD("!lss\n", "Unknown command: lss", errS, null, ERRNO_OK, true);
+    verifyCMD("!lss\n", "Failed to execute lss", errS, null, ERRNO_OK, true);
+  }
+
+  @Test
+  public void testCmd() {
+    verifyCMD("show tables;!ls;show tables;\n", "src", os, null, ERRNO_OK, true);
   }
 
   @Test
@@ -152,6 +157,14 @@ public class TestHiveCli {
   }
 
   @Test
+  public void testSourceCmd3() {
+    File f = generateTmpFile(SOURCE_CONTEXT4);
+    verifyCMD("source " + f.getPath() + ";" + "desc testSrcTbl4;\nquit;\n", "src", os,
+        new String[] { "--database", "test" }, ERRNO_OK, true);
+    f.delete();
+  }
+
+  @Test
   public void testSqlFromCmd() {
     verifyCMD(null, "", os, new String[] { "-e", "show databases;" }, ERRNO_OK, true);
   }
@@ -192,8 +205,7 @@ public class TestHiveCli {
 
   @Test
   public void testErrOutput() {
-    verifyCMD(
-        "show tables;set system:xxx=5;set system:yyy=${system:xxx};\nlss;",
+    verifyCMD("show tables;set system:xxx=5;set system:yyy=${system:xxx};\nlss;",
         "cannot recognize input near 'lss' '<EOF>' '<EOF>'", errS, null, ERRNO_OK, true);
   }
 
@@ -224,6 +236,12 @@ public class TestHiveCli {
         "hive (invalidDB)>", os, null, ERRNO_OK, false);
   }
 
+  @Test
+  public void testNoErrorDB() {
+    verifyCMD(null, "Error: Method not supported (state=,code=0)", errS, new String[] { "-e", "show tables;" },
+        ERRNO_OK, false);
+  }
+
   private void redirectOutputStream() {
     // Setup output stream to redirect output to
     os = new ByteArrayOutputStream();


[29/43] hive git commit: HIVE-11717: nohup mode is not support for new hive cli(Ferdinand Xu, reviewed by Xuefu Zhang)

Posted by se...@apache.org.
HIVE-11717: nohup mode is not support for new hive cli(Ferdinand Xu, reviewed by Xuefu Zhang)


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

Branch: refs/heads/llap
Commit: dc9ca294eff7f4309beb18cb540b6eccbe7e0b13
Parents: fdf6bd0
Author: Ferdinand Xu <ch...@intel.com>
Authored: Sun Sep 20 21:52:08 2015 -0400
Committer: Ferdinand Xu <ch...@intel.com>
Committed: Sun Sep 20 21:52:08 2015 -0400

----------------------------------------------------------------------
 bin/beeline    | 5 +++++
 bin/ext/cli.sh | 9 +++++++++
 2 files changed, 14 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/dc9ca294/bin/beeline
----------------------------------------------------------------------
diff --git a/bin/beeline b/bin/beeline
index bceb7b9..6ca53b2 100644
--- a/bin/beeline
+++ b/bin/beeline
@@ -18,6 +18,11 @@
 bin=`dirname "$0"`
 bin=`cd "$bin"; pwd`
 
+# If process is backgrounded, don't change terminal settings
+if [[ ! $(ps -o stat= -p $$) == *+ ]]; then
+  export HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS -Djline.terminal=jline.UnsupportedTerminal"
+fi
+
 # Set Hadoop User classpath to true so that httpclient jars are taken from
 # hive lib instead of hadoop lib.
 export HADOOP_USER_CLASSPATH_FIRST=true

http://git-wip-us.apache.org/repos/asf/hive/blob/dc9ca294/bin/ext/cli.sh
----------------------------------------------------------------------
diff --git a/bin/ext/cli.sh b/bin/ext/cli.sh
index 96a69b0..893b7fc 100644
--- a/bin/ext/cli.sh
+++ b/bin/ext/cli.sh
@@ -16,6 +16,14 @@
 THISSERVICE=cli
 export SERVICE_LIST="${SERVICE_LIST}${THISSERVICE} "
 
+updateBeelineOpts() {
+  # If process is backgrounded, don't change terminal settings
+  if [[ ! $(ps -o stat= -p $$) == *+ ]]; then
+    echo "background"
+    export HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS -Djline.terminal=jline.UnsupportedTerminal"
+  fi
+}
+
 updateCli() {
   if [ "$USE_DEPRECATED_CLI" == "true" ]; then
     CLASS=org.apache.hadoop.hive.cli.CliDriver
@@ -24,6 +32,7 @@ updateCli() {
     export HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS -Dlog4j.configuration=beeline-log4j.properties"
     CLASS=org.apache.hive.beeline.cli.HiveCli
     JAR=hive-beeline-*.jar
+    updateBeelineOpts
   fi
 }
 


[07/43] hive git commit: HIVE-10905 Quit&Exit fails ending with '; ' [beeline-cli Branch](Chinna Rao Lalam, reviewed by Ferdinand Xu)

Posted by se...@apache.org.
HIVE-10905 Quit&Exit fails ending with ';' [beeline-cli Branch](Chinna Rao Lalam, reviewed by Ferdinand Xu)


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

Branch: refs/heads/llap
Commit: 2243de3b2bc4ef5a12dc869ea2d4b2ec787a6b74
Parents: 120e33a
Author: Ferdinand Xu <ch...@intel.com>
Authored: Wed Jun 3 18:48:41 2015 -0400
Committer: Ferdinand Xu <ch...@intel.com>
Committed: Wed Jun 3 18:48:41 2015 -0400

----------------------------------------------------------------------
 beeline/src/java/org/apache/hive/beeline/BeeLine.java | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/2243de3b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLine.java b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
index 45a7e87..b7d2f2e 100644
--- a/beeline/src/java/org/apache/hive/beeline/BeeLine.java
+++ b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
@@ -1053,7 +1053,8 @@ public class BeeLine implements Closeable {
     if (cmd == null)
       return null;
     String[] tokens = tokenizeCmd(cmd);
-    if (cmd.equalsIgnoreCase("quit") || cmd.equalsIgnoreCase("exit")) {
+    if (cmd.equalsIgnoreCase("quit") || cmd.equalsIgnoreCase("exit")
+	|| cmd.equalsIgnoreCase("quit;") || cmd.equals("exit;")) {
       return null;
     } else if (tokens[0].equalsIgnoreCase("source")) {
       return COMMAND_PREFIX + cmd;


[30/43] hive git commit: HIVE-11944: Address the review items on HIVE-11778(Ferdinand Xu, reviewed by Xuefu Zhang)

Posted by se...@apache.org.
HIVE-11944: Address the review items on HIVE-11778(Ferdinand Xu, reviewed by Xuefu Zhang)


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

Branch: refs/heads/llap
Commit: 185795696fda8c587d9994ca3f16cbac699832ea
Parents: dc9ca29
Author: Ferdinand Xu <ch...@intel.com>
Authored: Thu Sep 24 20:45:57 2015 -0400
Committer: Ferdinand Xu <ch...@intel.com>
Committed: Thu Sep 24 20:45:57 2015 -0400

----------------------------------------------------------------------
 beeline/src/java/org/apache/hive/beeline/BeeLine.java | 3 +--
 ql/src/java/org/apache/hadoop/hive/ql/Driver.java     | 2 +-
 2 files changed, 2 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/18579569/beeline/src/java/org/apache/hive/beeline/BeeLine.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLine.java b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
index e96d933..f2aeac5 100644
--- a/beeline/src/java/org/apache/hive/beeline/BeeLine.java
+++ b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
@@ -93,8 +93,6 @@ import org.apache.hadoop.hive.conf.HiveConf;
 import org.apache.hadoop.io.IOUtils;
 import org.apache.hive.beeline.cli.CliOptionsProcessor;
 
-import static org.apache.hadoop.hive.metastore.MetaStoreUtils.DEFAULT_DATABASE_NAME;
-
 /**
  * A console SQL shell with command completion.
  * <p>
@@ -142,6 +140,7 @@ public class BeeLine implements Closeable {
 
   public static final String BEELINE_DEFAULT_JDBC_DRIVER = "org.apache.hive.jdbc.HiveDriver";
   public static final String BEELINE_DEFAULT_JDBC_URL = "jdbc:hive2://";
+  public static final String DEFAULT_DATABASE_NAME = "default";
 
   private static final String SCRIPT_OUTPUT_PREFIX = ">>>";
   private static final int SCRIPT_OUTPUT_PAD_SIZE = 5;

http://git-wip-us.apache.org/repos/asf/hive/blob/18579569/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/Driver.java b/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
index 9ee6023..db5fa62 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
@@ -390,7 +390,7 @@ public class Driver implements CommandProcessor {
     try {
       // Initialize the transaction manager.  This must be done before analyze is called.
       SessionState.get().initTxnMgr(conf);
-      
+
       command = new VariableSubstitution(new HiveVariableSource() {
         @Override
         public Map<String, String> getHiveVariable() {


[28/43] hive git commit: HIVE-10824: Need to update start script changes in .cmd files(Ferdinand Xu, reviewed by Xuefu Zhang)

Posted by se...@apache.org.
HIVE-10824: Need to update start script changes in .cmd files(Ferdinand Xu, reviewed by Xuefu Zhang)


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

Branch: refs/heads/llap
Commit: fdf6bd0b5800db7649c91422aa4ece8f52be1245
Parents: 4a91efc
Author: Ferdinand Xu <ch...@intel.com>
Authored: Thu Sep 17 21:29:32 2015 -0400
Committer: Ferdinand Xu <ch...@intel.com>
Committed: Thu Sep 17 21:29:32 2015 -0400

----------------------------------------------------------------------
 bin/ext/cli.cmd | 35 ++++++++++++++++++++++++++++-------
 1 file changed, 28 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/fdf6bd0b/bin/ext/cli.cmd
----------------------------------------------------------------------
diff --git a/bin/ext/cli.cmd b/bin/ext/cli.cmd
index 9e85691..3a96d03 100644
--- a/bin/ext/cli.cmd
+++ b/bin/ext/cli.cmd
@@ -14,20 +14,41 @@
 @rem See the License for the specific language governing permissions and
 @rem limitations under the License.
 
-set CLASS=org.apache.hadoop.hive.cli.CliDriver
-pushd %HIVE_LIB%
-for /f %%a IN ('dir /b hive-cli-*.jar') do (
-	set JAR=%HIVE_LIB%\%%a
-)
-popd
-
 if [%1]==[cli_help] goto :cli_help
 
 :cli
+	call :update_cli
 	call %HIVE_BIN_PATH%\ext\util\execHiveCmd.cmd %CLASS%
 goto :EOF
 
 :cli_help
+	call :update_cli
 	set HIVEARGS=--help
 	call :cli
 goto :EOF
+
+:update_cli
+	if /I "%USE_DEPRECATED_CLI%" == "true" (
+		call :old_cli
+	) else if (
+		call :new_cli
+	)
+goto :EOF
+
+:old_cli
+	set CLASS=org.apache.hadoop.hive.cli.CliDriver
+	pushd %HIVE_LIB%
+	for /f %%a IN ('dir /b hive-cli-*.jar') do (
+		set JAR=%HIVE_LIB%\%%a
+	)
+	popd
+goto :EOF
+
+:new_cli
+	set CLASS=org.apache.hive.beeline.cli.HiveCli
+	pushd %HIVE_LIB%
+	for /f %%a IN ('dir /b hive-beeline-*.jar') do (
+		set JAR=%HIVE_LIB%\%%a
+	)
+	popd
+goto :EOF
\ No newline at end of file


[03/43] hive git commit: HIVE-10623: Implement hive cli options using beeline functionality (Ferdinand via Xuefu)

Posted by se...@apache.org.
HIVE-10623: Implement hive cli options using beeline functionality (Ferdinand via Xuefu)


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

Branch: refs/heads/llap
Commit: 03366392c6f17ae7688ad1646046af4c5b5b6792
Parents: 753b2b3
Author: Xuefu Zhang <xz...@Cloudera.com>
Authored: Thu May 14 21:33:44 2015 -0700
Committer: Xuefu Zhang <xz...@Cloudera.com>
Committed: Thu May 14 21:33:44 2015 -0700

----------------------------------------------------------------------
 .../java/org/apache/hive/beeline/BeeLine.java   | 140 ++++++++++++++++-
 .../hive/beeline/cli/CliOptionsProcessor.java   | 104 +++++++++++++
 .../org/apache/hive/beeline/cli/HiveCli.java    |  41 +++++
 .../apache/hive/beeline/cli/TestHiveCli.java    | 153 +++++++++++++++++++
 beeline/src/test/resources/hive-site.xml        |  37 +++++
 5 files changed, 468 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/03366392/beeline/src/java/org/apache/hive/beeline/BeeLine.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLine.java b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
index 0da15f6..4a82635 100644
--- a/beeline/src/java/org/apache/hive/beeline/BeeLine.java
+++ b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
@@ -88,6 +88,8 @@ import org.apache.commons.cli.OptionBuilder;
 import org.apache.commons.cli.Options;
 import org.apache.commons.cli.ParseException;
 import org.apache.hadoop.io.IOUtils;
+import org.apache.hive.beeline.cli.CliOptionsProcessor;
+import org.apache.hive.jdbc.Utils;
 
 /**
  * A console SQL shell with command completion.
@@ -126,8 +128,10 @@ public class BeeLine implements Closeable {
   private ConsoleReader consoleReader;
   private List<String> batch = null;
   private final Reflector reflector;
+  private String dbName = null;
 
   private History history;
+  private boolean isBeeLine = true;
 
   private static final Options options = new Options();
 
@@ -491,10 +495,14 @@ public class BeeLine implements Closeable {
 
 
   public BeeLine() {
+    this(true);
+  }
+
+  public BeeLine(boolean isBeeLine) {
     beeLineCommandCompleter = new BeeLineCommandCompleter(BeeLineCommandCompleter.getCompleters
         (this));
     reflector = new Reflector(this);
-
+    this.isBeeLine = isBeeLine;
     // attempt to dynamically load signal handler
     /* TODO disable signal handler
     try {
@@ -508,7 +516,6 @@ public class BeeLine implements Closeable {
     */
   }
 
-
   DatabaseConnection getDatabaseConnection() {
     return getDatabaseConnections().current();
   }
@@ -633,7 +640,63 @@ public class BeeLine implements Closeable {
         super.processOption(arg, iter);
       }
     }
+  }
+
+  int initArgsFromCliVars(String[] args) {
+    List<String> commands = Collections.emptyList();
+
+    CliOptionsProcessor optionsProcessor = new CliOptionsProcessor();
+    if (!optionsProcessor.process(args)) {
+      return 1;
+    }
+    CommandLine commandLine = optionsProcessor.getCommandLine();
+
+
+    Properties confProps = commandLine.getOptionProperties("hiveconf");
+    for (String propKey : confProps.stringPropertyNames()) {
+      getOpts().getHiveConfVariables().put(propKey, confProps.getProperty(propKey));
+    }
+
+    Properties hiveVars = commandLine.getOptionProperties("define");
+    for (String propKey : hiveVars.stringPropertyNames()) {
+      getOpts().getHiveConfVariables().put(propKey, hiveVars.getProperty(propKey));
+    }
+
+    Properties hiveVars2 = commandLine.getOptionProperties("hivevar");
+    for (String propKey : hiveVars2.stringPropertyNames()) {
+      getOpts().getHiveConfVariables().put(propKey, hiveVars2.getProperty(propKey));
+    }
+
+    getOpts().setScriptFile(commandLine.getOptionValue("f"));
+
+    dbName = commandLine.getOptionValue("database");
+    getOpts().setVerbose(Boolean.valueOf(commandLine.getOptionValue("verbose")));
+    getOpts().setSilent(Boolean.valueOf(commandLine.getOptionValue("slient")));
+
+    int code = 0;
+    if (commandLine.getOptionValues("e") != null) {
+      commands = Arrays.asList(commandLine.getOptionValues("e"));
+    }
 
+    if (!commands.isEmpty() && getOpts().getScriptFile() != null) {
+      System.err.println("The '-e' and '-f' options cannot be specified simultaneously");
+      optionsProcessor.printCliUsage();
+      return 1;
+    }
+
+    if (!commands.isEmpty()) {
+      embeddedConnect();
+      connectDBInEmbededMode();
+      for (Iterator<String> i = commands.iterator(); i.hasNext(); ) {
+        String command = i.next().toString();
+        debug(loc("executing-command", command));
+        if (!dispatch(command)) {
+          code++;
+        }
+      }
+      exit = true; // execute and exit
+    }
+    return code;
   }
 
   int initArgs(String[] args) {
@@ -687,7 +750,6 @@ public class BeeLine implements Closeable {
       commands = Arrays.asList(cl.getOptionValues('e'));
     }
 
-
     // TODO: temporary disable this for easier debugging
     /*
     if (url == null) {
@@ -755,9 +817,15 @@ public class BeeLine implements Closeable {
     }
 
     try {
-      int code = initArgs(args);
-      if (code != 0) {
-        return code;
+      if (isBeeLine) {
+        int code = initArgs(args);
+        if (code != 0) {
+          return code;
+        }
+      } else {
+        int code = initArgsFromCliVars(args);
+        if (code != 0)
+          return code;
       }
 
       if (getOpts().getScriptFile() != null) {
@@ -788,6 +856,33 @@ public class BeeLine implements Closeable {
     return ERRNO_OK;
   }
 
+  private int embeddedConnect() {
+    if (!dispatch("!connect " + Utils.URL_PREFIX + " '' ''")) {
+      return ERRNO_OTHER;
+    } else {
+      return ERRNO_OK;
+    }
+  }
+
+  private int connectDBInEmbededMode() {
+    if (dbName != null && !dbName.isEmpty()) {
+      if (!dispatch("use " + dbName + ";")) {
+        return ERRNO_OTHER;
+      }
+    }
+    return ERRNO_OK;
+  }
+
+  public int defaultConnect(boolean exitOnError) {
+    if (embeddedConnect() != ERRNO_OK && exitOnError) {
+      return ERRNO_OTHER;
+    }
+    if (connectDBInEmbededMode() != ERRNO_OK && exitOnError) {
+      return ERRNO_OTHER;
+    }
+    return ERRNO_OK;
+  }
+
   private int executeFile(String fileName) {
     FileInputStream initStream = null;
     try {
@@ -805,13 +900,20 @@ public class BeeLine implements Closeable {
 
   private int execute(ConsoleReader reader, boolean exitOnError) {
     String line;
+    if (!isBeeLine) {
+      if (defaultConnect(exitOnError) != ERRNO_OK && exitOnError) {
+        return ERRNO_OTHER;
+      }
+    }
     while (!exit) {
       try {
         // Execute one instruction; terminate on executing a script if there is an error
         // in silent mode, prevent the query and prompt being echoed back to terminal
         line = (getOpts().isSilent() && getOpts().getScriptFile() != null) ?
                  reader.readLine(null, ConsoleReader.NULL_MASK) : reader.readLine(getPrompt());
-
+        if (!isBeeLine) {
+          line = cliToBeelineCmd(line);
+        }
         if (!dispatch(line) && exitOnError) {
           return ERRNO_OTHER;
         }
@@ -914,6 +1016,30 @@ public class BeeLine implements Closeable {
     output(loc("cmd-usage"));
   }
 
+  private String[] tokenizeCmd(String cmd) {
+    return cmd.split("\\s+");
+  }
+
+  public String cliToBeelineCmd(String cmd) {
+    if (cmd == null)
+      return null;
+    String cmd_trimmed = cmd.trim();
+    String[] tokens = tokenizeCmd(cmd_trimmed);
+
+    if (cmd_trimmed.equalsIgnoreCase("quit") || cmd_trimmed.equalsIgnoreCase("exit")) {
+      return null;
+    } else if (tokens[0].equalsIgnoreCase("source")) {
+      //TODO
+      return cmd;
+    } else if (cmd_trimmed.startsWith("!")) {
+      String shell_cmd = cmd_trimmed.substring(1);
+      return "!sh " + shell_cmd;
+    } else { // local mode
+      // command like dfs
+      return cmd;
+    }
+  }
+
 
   /**
    * Dispatch the specified line to the appropriate {@link CommandHandler}.

http://git-wip-us.apache.org/repos/asf/hive/blob/03366392/beeline/src/java/org/apache/hive/beeline/cli/CliOptionsProcessor.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/cli/CliOptionsProcessor.java b/beeline/src/java/org/apache/hive/beeline/cli/CliOptionsProcessor.java
new file mode 100644
index 0000000..61c5ab6
--- /dev/null
+++ b/beeline/src/java/org/apache/hive/beeline/cli/CliOptionsProcessor.java
@@ -0,0 +1,104 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hive.beeline.cli;
+
+import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.GnuParser;
+import org.apache.commons.cli.HelpFormatter;
+import org.apache.commons.cli.Option;
+import org.apache.commons.cli.OptionBuilder;
+import org.apache.commons.cli.Options;
+import org.apache.commons.cli.ParseException;
+
+/**
+ * This class is used for parsing the options of Hive Cli
+ */
+public class CliOptionsProcessor {
+  private final Options options = new Options();
+  private org.apache.commons.cli.CommandLine commandLine;
+
+  public CliOptionsProcessor() {
+    // -database database
+    options.addOption(OptionBuilder.hasArg().withArgName("databasename").withLongOpt("database")
+        .withDescription("Specify the database to use").create());
+
+    // -e 'quoted-query-string'
+    options.addOption(OptionBuilder.hasArg().withArgName("quoted-query-string").withDescription
+        ("SQL from command line").create('e'));
+
+    // -f <query-file>
+    options.addOption(OptionBuilder.hasArg().withArgName("filename").withDescription("SQL from " +
+        "files").create('f'));
+
+    // -i <init-query-file>
+    options.addOption(OptionBuilder.hasArg().withArgName("filename").withDescription
+        ("Initialization SQL file").create('i'));
+
+    // -hiveconf x=y
+    options.addOption(OptionBuilder.withValueSeparator().hasArgs(2).withArgName("property=value")
+        .withLongOpt("hiveconf").withDescription("Use value for given property").create());
+
+    // Substitution option -d, --define
+    options.addOption(OptionBuilder.withValueSeparator().hasArgs(2).withArgName("key=value")
+        .withLongOpt("define").withDescription("Variable subsitution to apply to hive commands. e" +
+            ".g. -d A=B or --define A=B").create('d'));
+
+    // Substitution option --hivevar
+    options.addOption(OptionBuilder.withValueSeparator().hasArgs(2).withArgName("key=value")
+        .withLongOpt("hivevar").withDescription("Variable subsitution to apply to hive commands. " +
+            "e.g. --hivevar A=B").create());
+
+    // [-S|--silent]
+    options.addOption(new Option("S", "silent", false, "Silent mode in interactive shell"));
+
+    // [-v|--verbose]
+    options.addOption(new Option("v", "verbose", false, "Verbose mode (echo executed SQL to the "
+        + "console)"));
+
+    // [-H|--help]
+    options.addOption(new Option("H", "help", false, "Print help information"));
+  }
+
+  public boolean process(String []argv){
+    try {
+      commandLine = new GnuParser().parse(options, argv);
+
+      if(commandLine.hasOption("help")){
+        printCliUsage();
+        return false;
+      }
+    } catch (ParseException e) {
+      System.err.println(e.getMessage());
+      printCliUsage();
+      return false;
+    }
+    return true;
+  }
+
+  public void printCliUsage() {
+    new HelpFormatter().printHelp("hive", options);
+  }
+
+  public CommandLine getCommandLine() {
+    return commandLine;
+  }
+
+  public void setCommandLine(CommandLine commandLine) {
+    this.commandLine = commandLine;
+  }
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/03366392/beeline/src/java/org/apache/hive/beeline/cli/HiveCli.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/cli/HiveCli.java b/beeline/src/java/org/apache/hive/beeline/cli/HiveCli.java
new file mode 100644
index 0000000..3e0da77
--- /dev/null
+++ b/beeline/src/java/org/apache/hive/beeline/cli/HiveCli.java
@@ -0,0 +1,41 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hive.beeline.cli;
+
+import org.apache.hive.beeline.BeeLine;
+import org.apache.hive.jdbc.Utils;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+public class HiveCli {
+  private BeeLine beeLine;
+
+  public static void main(String[] args) throws IOException {
+    int status = new HiveCli().runWithArgs(args, null);
+    System.exit(status);
+  }
+
+  public int runWithArgs(String[] cmd, InputStream inputStream) throws IOException {
+    beeLine = new BeeLine(false);
+    return beeLine.begin(cmd, inputStream);
+  }
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/03366392/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
----------------------------------------------------------------------
diff --git a/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java b/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
new file mode 100644
index 0000000..cc0b598
--- /dev/null
+++ b/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
@@ -0,0 +1,153 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hive.beeline.cli;
+
+import junit.framework.Assert;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.BufferedWriter;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.PrintStream;
+
+public class TestHiveCli {
+  private static final Log LOG = LogFactory.getLog(TestHiveCli.class.getName());
+
+  final static String CMD = "create database if not exists test;\ncreate table if not exists test" +
+      ".testTbl(a " +
+      "" + "string, b string);\n";
+  private HiveCli cli;
+  private OutputStream os;
+  private PrintStream ps;
+  private OutputStream errS;
+  private PrintStream errPs;
+  private File tmp = null;
+
+  private void executeCMD(String[] args, String input, int retCode) {
+    InputStream inputStream = null;
+    int ret = 0;
+    try {
+      if (input != null) {
+        inputStream = IOUtils.toInputStream(input);
+      }
+      ret = cli.runWithArgs(args, inputStream);
+    } catch (IOException e) {
+      LOG.error("Failed to execute command due to the error: " + e);
+    } finally {
+      if (retCode != ret) {
+        LOG.error("Failed due to the error:" + errS.toString());
+        Assert.fail("Supported return code is " + retCode + " while the actual is " + ret);
+      }
+    }
+  }
+
+  private void verifyCMD(String CMD, String keywords, OutputStream os, String[] options, int
+      retCode) {
+    executeCMD(options, CMD, retCode);
+    String output = os.toString();
+    Assert.assertTrue(output.contains(keywords));
+  }
+
+  @Test
+  public void testInValidCmd() {
+    verifyCMD("!lss\n", "Failed to execute lss", errS, null, 0);
+  }
+
+  @Test
+  public void testHelp() {
+    verifyCMD(null, "usage: hive", os, new String[]{"-H"}, 1);
+  }
+
+  @Test
+  public void testInvalidDatabaseOptions() {
+    verifyCMD("\nshow tables\nquit\n", "Database does not exist: invalidDB", errS, new
+        String[]{"--database", "invalidDB"}, 0);
+  }
+
+  @Test
+  public void testDatabaseOptions() {
+    verifyCMD("\nshow tables;\nquit;", "testTbl", os, new String[]{"--database", "test"}, 0);
+  }
+
+  @Test
+  public void testSqlFromCmd() {
+    verifyCMD(null, "", os, new String[]{"-e", "show databases;"}, 0);
+  }
+
+  @Test
+  public void testSqlFromCmdWithDBName() {
+    verifyCMD(null, "testTbl", os, new String[]{"-e", "show tables;", "--database", "test"}, 0);
+  }
+
+  @Test
+  public void testInvalidOptions() {
+    verifyCMD(null, "The '-e' and '-f' options cannot be specified simultaneously", errS, new
+        String[]{"-e", "show tables;", "-f", "path/to/file"}, 1);
+  }
+
+  @Test
+  public void testInvalidOptions2() {
+    verifyCMD(null, "Unrecognized option: -k", errS, new String[]{"-k"}, 1);
+  }
+
+  private void redirectOutputStream() {
+    // Setup output stream to redirect output to
+    os = new ByteArrayOutputStream();
+    ps = new PrintStream(os);
+    errS = new ByteArrayOutputStream();
+    errPs = new PrintStream(errS);
+    System.setOut(ps);
+    System.setErr(errPs);
+  }
+
+  private void initFileFromFile() {
+    BufferedWriter bw = null;
+    try {
+      // create a tmp file
+      tmp = File.createTempFile("test", ".sql");
+      bw = new BufferedWriter(new FileWriter(tmp));
+      bw.write(CMD);
+    } catch (IOException e) {
+      LOG.error("Failed to write tmp file due to the exception: " + e);
+    } finally {
+      IOUtils.closeQuietly(bw);
+    }
+    executeCMD(new String[]{"-f", "\"" + tmp.getAbsolutePath() + "\""}, null, 0);
+  }
+
+  @Before
+  public void setup() {
+    cli = new HiveCli();
+    redirectOutputStream();
+    initFileFromFile();
+  }
+
+  @After
+  public void tearDown() {
+    tmp.delete();
+  }
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/03366392/beeline/src/test/resources/hive-site.xml
----------------------------------------------------------------------
diff --git a/beeline/src/test/resources/hive-site.xml b/beeline/src/test/resources/hive-site.xml
new file mode 100644
index 0000000..d2df03c
--- /dev/null
+++ b/beeline/src/test/resources/hive-site.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+
+<configuration>
+  <property>
+    <name>hive.in.test</name>
+    <value>true</value>
+    <description>Internal marker for test. Used for masking env-dependent values</description>
+  </property>
+  <property>
+    <name>javax.jdo.option.ConnectionURL</name>
+    <value>jdbc:derby:;databaseName=${test.tmp.dir}/metastore_db;create=true</value>
+    <description>JDBC connect string for a JDBC metastore</description>
+  </property>
+  <property>
+    <!--  this should eventually be deprecated since the metastore should supply this -->
+    <name>hive.metastore.warehouse.dir</name>
+    <value>${test.tmp.dir}/warehouse</value>
+    <description></description>
+  </property>
+</configuration>


[09/43] hive git commit: Merge branch 'master' into beeline-cli

Posted by se...@apache.org.
Merge branch 'master' into beeline-cli


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

Branch: refs/heads/llap
Commit: 00e0d55a8bab27c82655e1aa237138847fd964b3
Parents: 2243de3 2a77e87
Author: Xuefu Zhang <xz...@Cloudera.com>
Authored: Thu Jun 25 20:40:55 2015 -0700
Committer: Xuefu Zhang <xz...@Cloudera.com>
Committed: Thu Jun 25 20:40:55 2015 -0700

----------------------------------------------------------------------
 NOTICE                                          |    2 +-
 README.txt                                      |   36 +-
 RELEASE_NOTES.txt                               | 1020 ++-
 accumulo-handler/pom.xml                        |    2 +-
 .../accumulo/AccumuloConnectionParameters.java  |  111 +-
 .../hive/accumulo/AccumuloStorageHandler.java   |   50 +
 .../hive/accumulo/HiveAccumuloHelper.java       |  280 +
 .../mr/HiveAccumuloTableInputFormat.java        |   74 +-
 .../mr/HiveAccumuloTableOutputFormat.java       |   63 +-
 .../TestAccumuloConnectionParameters.java       |   19 +
 .../hive/accumulo/TestHiveAccumuloHelper.java   |   75 +
 .../mr/TestHiveAccumuloTableInputFormat.java    |    8 +-
 .../mr/TestHiveAccumuloTableOutputFormat.java   |    2 +-
 .../positive/accumulo_predicate_pushdown.q.out  |   76 +-
 .../results/positive/accumulo_queries.q.out     |   70 +-
 ant/pom.xml                                     |    2 +-
 .../apache/hadoop/hive/ant/QTestGenTask.java    |   37 +-
 beeline/pom.xml                                 |    8 +-
 .../java/org/apache/hive/beeline/BeeLine.java   |    2 +-
 .../org/apache/hive/beeline/BeeLineOpts.java    |    9 +
 .../java/org/apache/hive/beeline/Commands.java  |   18 +-
 .../apache/hive/beeline/HiveSchemaHelper.java   |    1 -
 .../org/apache/hive/beeline/HiveSchemaTool.java |    3 +
 .../hive/beeline/TestBeelineArgParsing.java     |   32 +-
 .../test/resources/DummyDriver-1.0-SNAPSHOT.jar |  Bin 2812 -> 0 bytes
 beeline/src/test/resources/DummyDriver.txt      |   59 +
 .../src/test/resources/postgresql-9.3.jdbc3.jar |  Bin 539003 -> 0 bytes
 bin/ext/hiveserver2.cmd                         |   51 +-
 bin/hive.cmd                                    |    2 +-
 cli/pom.xml                                     |    2 +-
 common/pom.xml                                  |   22 +-
 .../hadoop/hive/common/JvmPauseMonitor.java     |  229 +
 .../hive/common/jsonexplain/tez/Attr.java       |    6 +-
 .../hive/common/jsonexplain/tez/Connection.java |    6 +-
 .../hadoop/hive/common/jsonexplain/tez/Op.java  |   64 +-
 .../hive/common/jsonexplain/tez/Printer.java    |   41 +
 .../hive/common/jsonexplain/tez/Stage.java      |   95 +-
 .../common/jsonexplain/tez/TezJsonParser.java   |   63 +-
 .../hive/common/jsonexplain/tez/Vertex.java     |   75 +-
 .../hive/common/metrics/LegacyMetrics.java      |  229 +
 .../hadoop/hive/common/metrics/Metrics.java     |  253 -
 .../hive/common/metrics/common/Metrics.java     |   64 +
 .../common/metrics/common/MetricsFactory.java   |   62 +
 .../metrics/metrics2/CodahaleMetrics.java       |  347 +
 .../metrics/metrics2/MetricsReporting.java      |   27 +
 .../org/apache/hadoop/hive/conf/HiveConf.java   |   93 +-
 .../hive/conf/LoopingByteArrayInputStream.java  |    2 +-
 .../apache/hive/common/util/HiveTestUtils.java  |   46 +
 .../hive/common/metrics/TestLegacyMetrics.java  |  295 +
 .../hadoop/hive/common/metrics/TestMetrics.java |  286 -
 .../metrics/metrics2/TestCodahaleMetrics.java   |  138 +
 .../hive/common/type/TestHiveBaseChar.java      |    2 +-
 .../hive/common/type/TestHiveVarchar.java       |   22 +-
 contrib/pom.xml                                 |    2 +-
 .../util/typedbytes/TypedBytesInput.java        |    2 +-
 .../util/typedbytes/TypedBytesOutput.java       |    2 +-
 .../util/typedbytes/TypedBytesRecordInput.java  |    2 +-
 .../util/typedbytes/TypedBytesRecordOutput.java |    2 +-
 .../typedbytes/TypedBytesWritableInput.java     |    2 +-
 .../typedbytes/TypedBytesWritableOutput.java    |    2 +-
 .../test/results/clientpositive/url_hook.q.out  |    4 +
 data/conf/spark/standalone/hive-site.xml        |    6 +
 data/conf/spark/yarn-client/hive-site.xml       |    6 +
 data/files/ct_events_clean.txt                  |   76 +
 data/files/customers.txt                        |    3 +
 data/files/emp2.txt                             |   16 +
 data/files/nested_orders.txt                    |    8 +
 data/files/orders.txt                           |    8 +
 data/files/service_request_clean.txt            |   76 +
 data/files/sortdp.txt                           |   32 +
 data/files/store_200                            |   12 +
 data/files/vectortab_a_1k                       | 1000 +++
 data/files/vectortab_b_1k                       | 1000 +++
 data/scripts/q_test_cleanup.sql                 |    2 +-
 data/scripts/q_test_cleanup_for_encryption.sql  |    2 +-
 data/scripts/q_test_init_for_encryption.sql     |    2 +-
 dev-support/jenkins-submit-build.sh             |   14 +-
 hbase-handler/pom.xml                           |    2 +-
 .../hive/hbase/HBaseTestStructSerializer.java   |   20 +-
 .../results/positive/external_table_ppd.q.out   |    8 +-
 .../results/positive/hbase_custom_key2.q.out    |   18 +-
 .../results/positive/hbase_custom_key3.q.out    |   24 +-
 .../results/positive/hbase_ppd_key_range.q.out  |   76 +-
 .../test/results/positive/hbase_pushdown.q.out  |   68 +-
 .../test/results/positive/hbase_queries.q.out   |   42 +-
 .../test/results/positive/hbase_timestamp.q.out |   32 +-
 .../test/results/positive/ppd_key_ranges.q.out  |   32 +-
 hcatalog/core/pom.xml                           |    2 +-
 .../hive/hcatalog/common/HCatException.java     |    2 +-
 .../data/HCatRecordObjectInspectorFactory.java  |    2 +-
 .../hcatalog/data/schema/HCatFieldSchema.java   |    6 +-
 .../hive/hcatalog/mapreduce/OutputJobInfo.java  |    2 +-
 .../hive/hcatalog/data/TestJsonSerDe.java       |    2 +-
 hcatalog/hcatalog-pig-adapter/pom.xml           |    2 +-
 .../apache/hive/hcatalog/pig/HCatLoader.java    |    8 -
 .../hive/hcatalog/pig/TestHCatLoader.java       |   44 -
 .../hcatalog/pig/TestHCatLoaderEncryption.java  |   27 +-
 hcatalog/pom.xml                                |    2 +-
 hcatalog/server-extensions/pom.xml              |    9 +-
 .../src/test/e2e/templeton/inpdir/xmlmapper.py  |   15 +
 .../src/test/e2e/templeton/inpdir/xmlreducer.py |   16 +
 .../tests/jobsubmission_streaming.conf          |    2 +-
 hcatalog/streaming/pom.xml                      |    2 +-
 .../streaming/DelimitedInputWriter.java         |    2 +-
 .../hive/hcatalog/streaming/HiveEndPoint.java   |    2 +-
 .../hive/hcatalog/streaming/TestStreaming.java  |    2 +-
 hcatalog/webhcat/java-client/pom.xml            |    2 +-
 .../hive/hcatalog/api/TestHCatClient.java       |    2 +-
 hcatalog/webhcat/svr/pom.xml                    |    2 +-
 .../hive/hcatalog/templeton/AppConfig.java      |    2 +
 .../hive/hcatalog/templeton/HcatDelegator.java  |    4 +-
 .../hive/hcatalog/templeton/HiveDelegator.java  |   15 +-
 .../hive/hcatalog/templeton/JarDelegator.java   |    8 +-
 .../hcatalog/templeton/LauncherDelegator.java   |   14 +
 .../hive/hcatalog/templeton/PigDelegator.java   |   13 +-
 .../apache/hive/hcatalog/templeton/Server.java  |   34 +-
 .../hive/hcatalog/templeton/SqoopDelegator.java |   20 +-
 .../hcatalog/templeton/StreamingDelegator.java  |    3 +-
 .../templeton/tool/JobSubmissionConstants.java  |    3 +
 .../hcatalog/templeton/tool/LaunchMapper.java   |  241 +-
 .../templeton/tool/TempletonControllerJob.java  |    7 +-
 hwi/pom.xml                                     |    2 +-
 itests/custom-serde/pom.xml                     |    2 +-
 itests/hcatalog-unit/pom.xml                    |    2 +-
 itests/hive-jmh/pom.xml                         |    2 +-
 .../benchmark/storage/ColumnarStorageBench.java |    4 +-
 itests/hive-minikdc/pom.xml                     |   22 +-
 .../hive/minikdc/TestHs2HooksWithMiniKdc.java   |    2 +-
 itests/hive-unit-hadoop2/pom.xml                |    2 +-
 itests/hive-unit/pom.xml                        |   90 +-
 .../org/apache/hadoop/hive/UtilsForTest.java    |   41 +
 .../apache/hadoop/hive/hooks/TestHs2Hooks.java  |   10 +-
 .../hadoop/hive/metastore/TestFilterHooks.java  |   29 +-
 .../hive/metastore/TestMetaStoreMetrics.java    |   94 +
 .../TestHiveAuthorizerCheckInvocation.java      |   34 +-
 .../plugin/TestHiveAuthorizerShowFilters.java   |    6 +-
 .../hive/ql/txn/compactor/TestCompactor.java    |   11 +-
 .../org/apache/hive/jdbc/TestJdbcDriver2.java   |   20 +
 .../apache/hive/jdbc/TestJdbcWithMiniHS2.java   |  123 +
 .../authorization/TestJdbcMetadataApiAuth.java  |  260 +
 .../TestJdbcWithSQLAuthorization.java           |   18 +
 itests/pom.xml                                  |    3 +-
 itests/qtest-accumulo/pom.xml                   |  508 ++
 .../test/java/org/apache/hive/TestDummy.java    |   31 +
 itests/qtest-spark/pom.xml                      |    2 +-
 itests/qtest/pom.xml                            |   23 +-
 .../test/resources/testconfiguration.properties |   30 +-
 itests/test-serde/pom.xml                       |    2 +-
 itests/util/pom.xml                             |    2 +-
 .../org/apache/hadoop/hive/ql/QTestUtil.java    |   27 +-
 jdbc/pom.xml                                    |    2 +-
 .../org/apache/hive/jdbc/HiveConnection.java    |   50 +-
 .../apache/hive/jdbc/HivePreparedStatement.java |    2 +-
 .../apache/hive/jdbc/HiveQueryResultSet.java    |   50 +-
 .../org/apache/hive/jdbc/HiveStatement.java     |   32 +-
 .../hive/jdbc/HttpRequestInterceptorBase.java   |   18 +
 metastore/dbs/derby/execute.sh                  |   37 -
 metastore/dbs/derby/prepare.sh                  |   63 -
 metastore/dbs/postgres/execute.sh               |   29 -
 metastore/dbs/postgres/prepare.sh               |   72 -
 metastore/pom.xml                               |    2 +-
 .../upgrade/derby/hive-schema-2.0.0.derby.sql   |  336 +
 .../derby/upgrade-1.2.0-to-2.0.0.derby.sql      |    3 +
 .../scripts/upgrade/derby/upgrade.order.derby   |    2 +-
 .../upgrade/mssql/hive-schema-2.0.0.mssql.sql   |  947 +++
 .../mssql/upgrade-1.2.0-to-2.0.0.mssql.sql      |    5 +
 .../scripts/upgrade/mssql/upgrade.order.mssql   |    2 +-
 .../upgrade/mysql/021-HIVE-7018.mysql.sql       |   53 +
 .../upgrade/mysql/hive-schema-1.3.0.mysql.sql   |   10 +-
 .../upgrade/mysql/hive-schema-2.0.0.mysql.sql   |  834 +++
 .../mysql/upgrade-1.2.0-to-1.3.0.mysql.sql      |    2 +-
 .../mysql/upgrade-1.2.0-to-2.0.0.mysql.sql      |    4 +
 .../scripts/upgrade/mysql/upgrade.order.mysql   |    2 +-
 .../upgrade/oracle/hive-schema-2.0.0.oracle.sql |  788 ++
 .../oracle/upgrade-1.2.0-to-2.0.0.oracle.sql    |    4 +
 .../scripts/upgrade/oracle/upgrade.order.oracle |    2 +-
 .../postgres/hive-schema-1.3.0.postgres.sql     |   36 -
 .../postgres/hive-schema-2.0.0.postgres.sql     | 1457 ++++
 .../upgrade-1.2.0-to-2.0.0.postgres.sql         |   12 +
 .../upgrade/postgres/upgrade.order.postgres     |    2 +-
 .../apache/hadoop/hive/metastore/Deadline.java  |    2 +-
 .../hadoop/hive/metastore/HiveAlterHandler.java |   42 +-
 .../hadoop/hive/metastore/HiveMetaStore.java    |  246 +-
 .../hive/metastore/HiveMetaStoreClient.java     |   13 +-
 .../hive/metastore/HiveMetaStoreFsImpl.java     |    1 -
 .../hive/metastore/MetaStoreDirectSql.java      |   26 +-
 .../hive/metastore/MetaStoreSchemaInfo.java     |    8 +-
 .../hadoop/hive/metastore/ObjectStore.java      |    6 +-
 .../hive/metastore/StatObjectConverter.java     |   16 +-
 .../apache/hadoop/hive/metastore/Warehouse.java |   14 +-
 .../hive/metastore/txn/CompactionInfo.java      |    9 +
 .../metastore/txn/CompactionTxnHandler.java     |   28 +-
 .../hadoop/hive/metastore/txn/TxnHandler.java   |   36 +-
 odbc/pom.xml                                    |    2 +-
 packaging/pom.xml                               |    2 +-
 pom.xml                                         |   53 +-
 ql/pom.xml                                      |    9 +-
 .../java/org/apache/hadoop/hive/ql/Driver.java  |   11 +-
 .../apache/hadoop/hive/ql/exec/ColumnInfo.java  |    2 +-
 .../org/apache/hadoop/hive/ql/exec/DDLTask.java |   37 +-
 .../hive/ql/exec/DefaultFetchFormatter.java     |    1 -
 .../apache/hadoop/hive/ql/exec/ExplainTask.java |   58 +-
 .../hive/ql/exec/ExprNodeEvaluatorFactory.java  |   12 +-
 .../ql/exec/ExprNodeGenericFuncEvaluator.java   |    3 +-
 .../hive/ql/exec/ExprNodeNullEvaluator.java     |   47 -
 .../hadoop/hive/ql/exec/FunctionRegistry.java   |   12 +-
 .../hadoop/hive/ql/exec/MapJoinOperator.java    |    6 +-
 .../hive/ql/exec/OrcFileMergeOperator.java      |   70 +-
 .../hive/ql/exec/PTFRollingPartition.java       |   30 +-
 .../hive/ql/exec/PartitionKeySampler.java       |    9 +-
 .../hadoop/hive/ql/exec/ReduceSinkOperator.java |    7 +-
 .../apache/hadoop/hive/ql/exec/TaskFactory.java |    2 +-
 .../apache/hadoop/hive/ql/exec/TaskRunner.java  |    1 +
 .../apache/hadoop/hive/ql/exec/Utilities.java   |   39 +-
 .../hadoop/hive/ql/exec/mr/ExecDriver.java      |   16 +-
 .../persistence/BytesBytesMultiHashMap.java     |   48 +-
 .../persistence/HybridHashTableContainer.java   |   59 +-
 .../persistence/MapJoinBytesTableContainer.java |   74 +-
 .../hadoop/hive/ql/exec/spark/CacheTran.java    |   54 +
 .../hive/ql/exec/spark/GroupByShuffler.java     |    4 +
 .../hive/ql/exec/spark/HashTableLoader.java     |   23 +-
 .../ql/exec/spark/HivePairFlatMapFunction.java  |    1 +
 .../ql/exec/spark/HiveSparkClientFactory.java   |    1 +
 .../ql/exec/spark/LocalHiveSparkClient.java     |    8 +-
 .../hadoop/hive/ql/exec/spark/MapInput.java     |   16 +
 .../hadoop/hive/ql/exec/spark/MapTran.java      |   22 +-
 .../hadoop/hive/ql/exec/spark/ReduceTran.java   |   23 +-
 .../ql/exec/spark/RemoteHiveSparkClient.java    |   16 +-
 .../hadoop/hive/ql/exec/spark/ShuffleTran.java  |   24 +
 .../hive/ql/exec/spark/SmallTableCache.java     |   73 +
 .../hive/ql/exec/spark/SortByShuffler.java      |    5 +
 .../hadoop/hive/ql/exec/spark/SparkPlan.java    |  150 +
 .../hive/ql/exec/spark/SparkPlanGenerator.java  |   25 +-
 .../hive/ql/exec/spark/SparkShuffler.java       |    2 +
 .../hadoop/hive/ql/exec/spark/SparkTran.java    |    6 +
 .../hive/ql/exec/spark/SparkUtilities.java      |   53 +-
 .../ql/exec/spark/session/SparkSessionImpl.java |    2 +-
 .../spark/session/SparkSessionManagerImpl.java  |   63 +-
 .../ql/exec/spark/status/SparkJobMonitor.java   |    2 +-
 .../hive/ql/exec/tez/HashTableLoader.java       |   74 +-
 .../hive/ql/exec/tez/HiveSplitGenerator.java    |   24 +
 .../hadoop/hive/ql/exec/tez/TezJobMonitor.java  |   12 +-
 .../hive/ql/exec/tez/TezSessionPoolManager.java |   21 +-
 .../hive/ql/exec/tez/TezSessionState.java       |   10 -
 .../hive/ql/exec/vector/BytesColumnVector.java  |    9 +
 .../hive/ql/exec/vector/ColumnVector.java       |   10 +
 .../ql/exec/vector/VectorColumnSetInfo.java     |   42 +-
 .../hive/ql/exec/vector/VectorCopyRow.java      |   35 +-
 .../ql/exec/vector/VectorFilterOperator.java    |    5 +-
 .../ql/exec/vector/VectorGroupByOperator.java   |   16 +-
 .../ql/exec/vector/VectorMapJoinOperator.java   |    8 +-
 .../VectorMapJoinOuterFilteredOperator.java     |    6 +-
 .../ql/exec/vector/VectorizationContext.java    |  111 +-
 .../ql/exec/vector/VectorizedBatchUtil.java     |    7 +-
 .../mapjoin/VectorMapJoinCommonOperator.java    |   58 +-
 .../VectorMapJoinGenerateResultOperator.java    |   47 +-
 ...pJoinInnerBigOnlyGenerateResultOperator.java |   53 +-
 .../VectorMapJoinInnerBigOnlyLongOperator.java  |   15 +-
 ...ctorMapJoinInnerBigOnlyMultiKeyOperator.java |   15 +-
 ...VectorMapJoinInnerBigOnlyStringOperator.java |   12 +-
 ...ectorMapJoinInnerGenerateResultOperator.java |   39 +-
 .../mapjoin/VectorMapJoinInnerLongOperator.java |   17 +-
 .../VectorMapJoinInnerMultiKeyOperator.java     |   19 +-
 .../VectorMapJoinInnerStringOperator.java       |   17 +-
 ...orMapJoinLeftSemiGenerateResultOperator.java |   40 +-
 .../VectorMapJoinLeftSemiLongOperator.java      |   13 +-
 .../VectorMapJoinLeftSemiMultiKeyOperator.java  |   17 +-
 .../VectorMapJoinLeftSemiStringOperator.java    |   17 +-
 ...ectorMapJoinOuterGenerateResultOperator.java |  805 +-
 .../mapjoin/VectorMapJoinOuterLongOperator.java |  189 +-
 .../VectorMapJoinOuterMultiKeyOperator.java     |  184 +-
 .../VectorMapJoinOuterStringOperator.java       |  185 +-
 .../mapjoin/VectorMapJoinRowBytesContainer.java |    2 +-
 .../fast/VectorMapJoinFastBytesHashMap.java     |    8 +-
 .../VectorMapJoinFastBytesHashMultiSet.java     |    4 +-
 .../fast/VectorMapJoinFastBytesHashTable.java   |   10 +-
 .../mapjoin/fast/VectorMapJoinFastKeyStore.java |   10 +-
 .../fast/VectorMapJoinFastLongHashMap.java      |    2 +-
 .../fast/VectorMapJoinFastLongHashTable.java    |   18 +-
 .../fast/VectorMapJoinFastTableContainer.java   |    2 +-
 .../fast/VectorMapJoinFastValueStore.java       |    8 +-
 .../VectorMapJoinOptimizedLongCommon.java       |    4 +-
 .../apache/hadoop/hive/ql/hooks/ATSHook.java    |   27 +-
 .../hadoop/hive/ql/io/HiveInputFormat.java      |   39 +-
 .../org/apache/hadoop/hive/ql/io/IOContext.java |    2 +-
 .../ql/io/avro/AvroContainerOutputFormat.java   |    2 +-
 .../hadoop/hive/ql/io/merge/MergeFileTask.java  |    6 +-
 .../hive/ql/io/orc/ColumnStatisticsImpl.java    |  217 +-
 .../ql/io/orc/ConversionTreeReaderFactory.java  |   38 +
 .../hive/ql/io/orc/OrcFileKeyWrapper.java       |   27 +-
 .../io/orc/OrcFileStripeMergeRecordReader.java  |   23 +-
 .../hadoop/hive/ql/io/orc/OrcInputFormat.java   |    8 +-
 .../hadoop/hive/ql/io/orc/OrcRecordUpdater.java |   24 +-
 .../apache/hadoop/hive/ql/io/orc/OrcUtils.java  |    6 +-
 .../hive/ql/io/orc/RecordReaderFactory.java     |  269 +
 .../hadoop/hive/ql/io/orc/RecordReaderImpl.java |   11 +-
 .../hadoop/hive/ql/io/orc/WriterImpl.java       |    2 +-
 .../io/parquet/FilterPredicateLeafBuilder.java  |    8 +-
 .../hive/ql/io/parquet/LeafFilterFactory.java   |   20 +-
 .../ql/io/parquet/MapredParquetInputFormat.java |    3 +-
 .../io/parquet/MapredParquetOutputFormat.java   |    2 +-
 .../parquet/VectorizedParquetInputFormat.java   |    2 +-
 .../convert/DataWritableRecordConverter.java    |    8 +-
 .../ql/io/parquet/convert/ETypeConverter.java   |   10 +-
 .../convert/HiveCollectionConverter.java        |   29 +-
 .../io/parquet/convert/HiveGroupConverter.java  |   24 +-
 .../io/parquet/convert/HiveSchemaConverter.java |   18 +-
 .../io/parquet/convert/HiveStructConverter.java |    6 +-
 .../hive/ql/io/parquet/convert/Repeated.java    |   38 +-
 .../parquet/read/DataWritableReadSupport.java   |   20 +-
 .../read/ParquetRecordReaderWrapper.java        |   31 +-
 .../serde/AbstractParquetMapInspector.java      |   13 +-
 .../serde/DeepParquetHiveMapInspector.java      |    6 +-
 .../serde/ParquetHiveArrayInspector.java        |   43 +-
 .../ql/io/parquet/serde/ParquetHiveSerDe.java   |    4 +-
 .../serde/StandardParquetHiveMapInspector.java  |    6 +-
 .../hive/ql/io/parquet/timestamp/NanoTime.java  |    6 +-
 .../parquet/write/DataWritableWriteSupport.java |    8 +-
 .../ql/io/parquet/write/DataWritableWriter.java |   10 +-
 .../write/ParquetRecordWriterWrapper.java       |    6 +-
 .../ql/io/rcfile/stats/PartialScanTask.java     |    4 +-
 .../io/rcfile/truncate/ColumnTruncateTask.java  |    4 +-
 .../hive/ql/io/sarg/SearchArgumentImpl.java     |   10 +-
 .../hadoop/hive/ql/lockmgr/DbLockManager.java   |    4 +-
 .../hadoop/hive/ql/lockmgr/DbTxnManager.java    |    2 +-
 .../hadoop/hive/ql/lockmgr/DummyTxnManager.java |   15 -
 .../hadoop/hive/ql/lockmgr/HiveLockObject.java  |    2 +-
 .../zookeeper/ZooKeeperHiveLockManager.java     |    2 +
 .../apache/hadoop/hive/ql/metadata/Hive.java    |   17 +-
 .../formatting/JsonMetaDataFormatter.java       |    2 +-
 .../metadata/formatting/MetaDataFormatter.java  |    2 +-
 .../formatting/TextMetaDataFormatter.java       |   76 +-
 .../hive/ql/optimizer/ColumnPrunerProcCtx.java  |   27 +
 .../ql/optimizer/ColumnPrunerProcFactory.java   |   49 +-
 .../hive/ql/optimizer/ConstantPropagate.java    |   12 +-
 .../ql/optimizer/ConstantPropagateProcCtx.java  |   21 +
 .../optimizer/ConstantPropagateProcFactory.java |  235 +-
 .../hive/ql/optimizer/ConvertJoinMapJoin.java   |   46 +-
 .../hive/ql/optimizer/GenMRTableScan1.java      |    2 +-
 .../hive/ql/optimizer/GenMapRedUtils.java       |    5 +-
 .../hive/ql/optimizer/GroupByOptimizer.java     |    7 +-
 .../ql/optimizer/NonBlockingOpDeDupProc.java    |    9 -
 .../hadoop/hive/ql/optimizer/Optimizer.java     |    4 +
 .../PrunerExpressionOperatorFactory.java        |    3 -
 .../ql/optimizer/ReduceSinkMapJoinProc.java     |    2 +-
 .../optimizer/RemoveDynamicPruningBySize.java   |   19 +-
 .../hive/ql/optimizer/SimpleFetchOptimizer.java |    2 -
 .../ql/optimizer/calcite/HiveCalciteUtil.java   |  143 +-
 .../ql/optimizer/calcite/HiveRelCollation.java  |   18 +
 .../ql/optimizer/calcite/HiveRelOptUtil.java    |  167 +-
 .../ql/optimizer/calcite/RelOptHiveTable.java   |    6 +-
 .../calcite/reloperators/HiveAggregate.java     |   58 +
 .../calcite/reloperators/HiveGroupingID.java    |   17 +
 .../calcite/reloperators/HiveMultiJoin.java     |  198 +
 .../calcite/reloperators/HiveProject.java       |    5 +-
 .../calcite/reloperators/HiveSemiJoin.java      |   79 +
 .../calcite/reloperators/HiveSortExchange.java  |   18 +
 .../rules/HiveExpandDistinctAggregatesRule.java |  278 +
 .../rules/HiveInsertExchange4JoinRule.java      |   27 +-
 .../rules/HiveJoinProjectTransposeRule.java     |   60 +
 .../calcite/rules/HiveJoinToMultiJoinRule.java  |  309 +-
 .../calcite/rules/HivePreFilteringRule.java     |  218 +
 .../calcite/rules/HiveProjectMergeRule.java     |    1 -
 .../calcite/rules/HiveRelFieldTrimmer.java      |  181 +
 .../calcite/rules/HiveWindowingFixRule.java     |  163 +
 .../calcite/translator/ASTConverter.java        |    2 -
 .../calcite/translator/HiveOpConverter.java     |  304 +-
 .../translator/HiveOpConverterPostProc.java     |   90 +-
 .../calcite/translator/PlanModifierUtil.java    |   47 +-
 .../calcite/translator/RexNodeConverter.java    |    5 +-
 .../correlation/ReduceSinkDeDuplication.java    |   15 +-
 .../ql/optimizer/lineage/ExprProcFactory.java   |    3 +-
 .../ql/optimizer/pcr/PcrExprProcFactory.java    |    3 +-
 .../hive/ql/optimizer/physical/Vectorizer.java  |  204 +-
 .../spark/SetSparkReducerParallelism.java       |   30 +-
 .../spark/SparkReduceSinkMapJoinProc.java       |    2 +-
 .../stats/annotation/StatsRulesProcFactory.java |  285 +-
 .../hadoop/hive/ql/parse/CalcitePlanner.java    |  121 +-
 .../hive/ql/parse/DDLSemanticAnalyzer.java      |    3 +-
 .../hive/ql/parse/ExplainSemanticAnalyzer.java  |    9 +-
 .../hadoop/hive/ql/parse/GenTezUtils.java       |   24 +
 .../apache/hadoop/hive/ql/parse/HiveParser.g    |   11 +-
 .../hive/ql/parse/OptimizeTezProcContext.java   |   14 +
 .../hadoop/hive/ql/parse/PTFInvocationSpec.java |    8 +
 .../hadoop/hive/ql/parse/PTFTranslator.java     |   15 +-
 .../apache/hadoop/hive/ql/parse/ParseUtils.java |   42 +-
 .../hive/ql/parse/ProcessAnalyzeTable.java      |    4 +-
 .../org/apache/hadoop/hive/ql/parse/QB.java     |   19 +
 .../hadoop/hive/ql/parse/SemanticAnalyzer.java  |  270 +-
 .../hive/ql/parse/TableAccessAnalyzer.java      |    6 +-
 .../hadoop/hive/ql/parse/TaskCompiler.java      |    4 +-
 .../hadoop/hive/ql/parse/TezCompiler.java       |   24 +-
 .../hive/ql/parse/TypeCheckProcFactory.java     |    4 +-
 .../hadoop/hive/ql/parse/WindowingSpec.java     |   86 +-
 .../hive/ql/parse/spark/GenSparkUtils.java      |    2 +-
 .../parse/spark/SparkProcessAnalyzeTable.java   |    2 +-
 .../hive/ql/plan/AbstractOperatorDesc.java      |    2 +-
 .../hadoop/hive/ql/plan/ColStatistics.java      |   33 +-
 .../hadoop/hive/ql/plan/ConditionalWork.java    |    4 +-
 .../hive/ql/plan/ExprNodeConstantDesc.java      |   15 +-
 .../hadoop/hive/ql/plan/ExprNodeNullDesc.java   |   69 -
 .../apache/hadoop/hive/ql/plan/FilterDesc.java  |    4 +-
 .../apache/hadoop/hive/ql/plan/JoinDesc.java    |    7 -
 .../apache/hadoop/hive/ql/plan/PlanUtils.java   |   28 +-
 .../hadoop/hive/ql/plan/ReduceSinkDesc.java     |   15 +-
 .../apache/hadoop/hive/ql/plan/Statistics.java  |   15 +-
 .../hadoop/hive/ql/plan/TableScanDesc.java      |   22 +-
 .../hadoop/hive/ql/plan/VectorGroupByDesc.java  |   23 +-
 .../hadoop/hive/ql/plan/ptf/BoundaryDef.java    |   42 +-
 .../hadoop/hive/ql/plan/ptf/CurrentRowDef.java  |   12 +-
 .../hive/ql/plan/ptf/RangeBoundaryDef.java      |   38 +-
 .../hive/ql/plan/ptf/ValueBoundaryDef.java      |   50 +-
 .../hadoop/hive/ql/plan/ptf/WindowFrameDef.java |   31 +-
 .../hadoop/hive/ql/processors/SetProcessor.java |    3 +
 .../AuthorizationPreEventListener.java          |    8 +-
 .../AuthorizationMetaStoreFilterHook.java       |    9 +-
 .../authorization/plugin/HiveOperationType.java |   19 +-
 .../plugin/HivePrivilegeObjectUtils.java        |   51 +
 .../plugin/sqlstd/Operation2Privilege.java      |   17 +-
 .../SQLStdHiveAuthorizationValidator.java       |    5 +
 .../hadoop/hive/ql/session/OperationLog.java    |    2 +-
 .../hadoop/hive/ql/session/SessionState.java    |   26 +-
 .../apache/hadoop/hive/ql/stats/StatsUtils.java |  264 +-
 .../hive/ql/txn/compactor/CompactorMR.java      |    9 +-
 .../hadoop/hive/ql/txn/compactor/Initiator.java |    2 +-
 .../hadoop/hive/ql/txn/compactor/Worker.java    |    3 +-
 .../org/apache/hadoop/hive/ql/udf/UDFCrc32.java |   75 +
 .../org/apache/hadoop/hive/ql/udf/UDFMd5.java   |   33 +-
 .../apache/hadoop/hive/ql/udf/UDFRegExp.java    |   76 -
 .../org/apache/hadoop/hive/ql/udf/UDFSha1.java  |   88 +
 .../hive/ql/udf/generic/GenericUDAFAverage.java |   43 +-
 .../ql/udf/generic/GenericUDAFCollectList.java  |   15 +-
 .../ql/udf/generic/GenericUDAFCollectSet.java   |   14 +-
 .../ql/udf/generic/GenericUDAFFirstValue.java   |   47 +-
 .../ql/udf/generic/GenericUDAFLastValue.java    |   39 +-
 .../hive/ql/udf/generic/GenericUDAFMax.java     |   51 +-
 .../hive/ql/udf/generic/GenericUDAFMin.java     |    8 +-
 .../GenericUDAFMkCollectionEvaluator.java       |   21 +-
 .../generic/GenericUDAFStreamingEvaluator.java  |   85 +-
 .../hive/ql/udf/generic/GenericUDAFSum.java     |   41 +-
 .../hadoop/hive/ql/udf/generic/GenericUDF.java  |   23 -
 .../hive/ql/udf/generic/GenericUDFBaseDTI.java  |   18 +
 .../hive/ql/udf/generic/GenericUDFCoalesce.java |    2 +-
 .../hive/ql/udf/generic/GenericUDFDecode.java   |    2 +-
 .../hive/ql/udf/generic/GenericUDFEncode.java   |    2 +-
 .../hive/ql/udf/generic/GenericUDFGreatest.java |    1 +
 .../hive/ql/udf/generic/GenericUDFInstr.java    |    2 +-
 .../hive/ql/udf/generic/GenericUDFLocate.java   |    2 +-
 .../ql/udf/generic/GenericUDFParamUtils.java    |   71 +
 .../hive/ql/udf/generic/GenericUDFPrintf.java   |    3 +-
 .../hive/ql/udf/generic/GenericUDFRegExp.java   |  133 +
 .../hive/ql/udf/generic/GenericUDFSha2.java     |  137 +
 .../ql/udf/generic/GenericUDFSortArray.java     |   17 +-
 .../udf/generic/GenericUDFSubstringIndex.java   |  159 +
 .../udf/generic/GenericUDFToUnixTimeStamp.java  |    6 +-
 .../ql/udf/generic/GenericUDFTranslate.java     |    8 +-
 .../ql/udf/generic/GenericUDFUnixTimeStamp.java |   36 +-
 .../hive/ql/udf/generic/GenericUDFUtils.java    |    6 +-
 .../hadoop/hive/ql/udf/ptf/MatchPath.java       |    5 +-
 .../hive/ql/udf/ptf/WindowingTableFunction.java |  174 +-
 .../apache/hadoop/hive/ql/TestTxnCommands2.java |   18 +
 .../hadoop/hive/ql/exec/TestUtilities.java      |   11 +
 .../exec/vector/TestVectorGroupByOperator.java  |    2 +-
 .../hadoop/hive/ql/io/orc/TestFileDump.java     |    9 +-
 .../io/parquet/AbstractTestParquetDirect.java   |   26 +-
 .../ql/io/parquet/TestArrayCompatibility.java   |   78 +-
 .../ql/io/parquet/TestDataWritableWriter.java   |   52 +-
 .../ql/io/parquet/TestHiveSchemaConverter.java  |   16 +-
 .../hive/ql/io/parquet/TestMapStructures.java   |   64 +-
 .../parquet/TestMapredParquetInputFormat.java   |    2 +-
 .../parquet/TestMapredParquetOutputFormat.java  |    2 +-
 .../io/parquet/TestParquetRowGroupFilter.java   |    6 +-
 .../hive/ql/io/parquet/TestParquetSerDe.java    |    8 +-
 .../serde/TestAbstractParquetMapInspector.java  |    4 +-
 .../serde/TestDeepParquetHiveMapInspector.java  |    4 +-
 .../serde/TestParquetHiveArrayInspector.java    |    3 +-
 .../TestStandardParquetHiveMapInspector.java    |    4 +-
 .../hive/ql/io/sarg/TestSearchArgumentImpl.java |   29 +-
 .../hive/ql/lockmgr/TestDummyTxnManager.java    |  119 +-
 .../apache/hadoop/hive/ql/parse/TestIUD.java    |    7 +
 .../hadoop/hive/ql/plan/TestViewEntity.java     |   53 +-
 .../hadoop/hive/ql/session/TestAddResource.java |  116 +-
 .../hive/ql/session/TestSessionState.java       |   30 +-
 .../hadoop/hive/ql/udaf/TestStreamingSum.java   |   16 +-
 .../apache/hadoop/hive/ql/udf/TestUDFCrc32.java |   74 +
 .../apache/hadoop/hive/ql/udf/TestUDFJson.java  |   18 +
 .../apache/hadoop/hive/ql/udf/TestUDFSha1.java  |   57 +
 .../ql/udf/generic/TestGenericUDFRegexp.java    |  135 +
 .../hive/ql/udf/generic/TestGenericUDFSha2.java |  271 +
 .../ql/udf/generic/TestGenericUDFSortArray.java |  158 +
 .../generic/TestGenericUDFSubstringIndex.java   |   97 +
 .../clientnegative/lockneg_try_lock_db_in_use.q |    2 +-
 .../clientnegative/ptf_negative_NoWindowDefn.q  |    9 +
 .../table_nonprintable_negative.q               |   11 +
 .../udaf_collect_set_unsupported.q              |    3 +
 .../clientnegative/udf_sort_array_wrong3.q      |    2 +-
 .../clientpositive/alter_change_db_location.q   |    5 +
 .../queries/clientpositive/alter_merge_2_orc.q  |    6 +-
 .../clientpositive/alter_table_partition_drop.q |   11 +
 .../queries/clientpositive/ambiguitycheck.q     |    2 -
 .../clientpositive/authorization_view_sqlstd.q  |    4 +
 ql/src/test/queries/clientpositive/auto_join0.q |   12 +-
 ql/src/test/queries/clientpositive/auto_join1.q |    3 +
 .../test/queries/clientpositive/auto_join21.q   |    1 +
 .../test/queries/clientpositive/auto_join29.q   |    1 +
 .../test/queries/clientpositive/auto_join30.q   |    1 +
 .../clientpositive/auto_sortmerge_join_10.q     |    1 +
 .../clientpositive/auto_sortmerge_join_13.q     |    1 +
 .../clientpositive/auto_sortmerge_join_14.q     |    1 +
 .../clientpositive/auto_sortmerge_join_15.q     |    1 +
 .../clientpositive/auto_sortmerge_join_5.q      |    3 +
 .../clientpositive/auto_sortmerge_join_9.q      |    1 +
 .../queries/clientpositive/autogen_colalias.q   |    4 +-
 .../queries/clientpositive/avro_timestamp.q     |    2 +
 .../queries/clientpositive/avro_timestamp_win.q |   28 +
 ql/src/test/queries/clientpositive/bucket2.q    |    1 +
 ql/src/test/queries/clientpositive/bucket3.q    |    1 +
 ql/src/test/queries/clientpositive/bucket4.q    |    1 +
 .../clientpositive/bucket_map_join_tez1.q       |    1 +
 .../clientpositive/bucket_map_join_tez2.q       |    1 +
 ql/src/test/queries/clientpositive/cbo_gby.q    |    3 +
 .../test/queries/clientpositive/cbo_rp_join0.q  |   26 +
 .../test/queries/clientpositive/cbo_rp_join1.q  |   22 +
 .../test/queries/clientpositive/cbo_subq_in.q   |    1 +
 .../test/queries/clientpositive/cbo_udf_udaf.q  |    2 +
 .../test/queries/clientpositive/cbo_windowing.q |    6 +-
 .../clientpositive/correlationoptimizer1.q      |    1 +
 ql/src/test/queries/clientpositive/count.q      |    1 +
 ql/src/test/queries/clientpositive/cross_join.q |    1 +
 .../clientpositive/cross_product_check_1.q      |   10 +-
 .../clientpositive/cross_product_check_2.q      |    7 +-
 .../clientpositive/crtseltbl_serdeprops.q       |   11 +
 ql/src/test/queries/clientpositive/ctas.q       |    2 +
 ql/src/test/queries/clientpositive/cteViews.q   |   41 +
 .../disable_merge_for_bucketing.q               |    1 +
 .../clientpositive/dynamic_partition_pruning.q  |    1 +
 .../dynamic_partition_pruning_2.q               |   18 +
 .../clientpositive/dynpart_sort_opt_bucketing.q |   73 +
 .../dynpart_sort_opt_vectorization.q            |    1 +
 .../clientpositive/dynpart_sort_optimization.q  |    1 +
 .../clientpositive/dynpart_sort_optimization2.q |    8 +-
 .../clientpositive/encryption_drop_partition.q  |   18 +
 .../clientpositive/encryption_drop_table.q      |   18 +
 .../clientpositive/encryption_drop_view.q       |    6 +
 .../encryption_insert_partition_dynamic.q       |    8 +-
 .../encryption_insert_partition_static.q        |   41 +-
 .../clientpositive/encryption_insert_values.q   |   15 +
 .../encryption_join_unencrypted_tbl.q           |    4 +-
 ...yption_join_with_different_encryption_keys.q |    8 +-
 .../encryption_load_data_to_encrypted_tables.q  |    4 +-
 .../clientpositive/encryption_move_tbl.q        |   20 +
 .../encryption_select_read_only_encrypted_tbl.q |    4 +-
 .../clientpositive/exec_parallel_column_stats.q |    5 +
 .../test/queries/clientpositive/explainuser_2.q |    7 +-
 .../test/queries/clientpositive/explainuser_3.q |  115 +
 .../clientpositive/filter_cond_pushdown.q       |   19 +
 .../clientpositive/filter_join_breaktask2.q     |    2 +
 ql/src/test/queries/clientpositive/fold_case.q  |    8 +
 .../clientpositive/fold_eq_with_case_when.q     |   21 +
 ql/src/test/queries/clientpositive/groupby1.q   |    1 +
 ql/src/test/queries/clientpositive/groupby2.q   |    1 +
 ql/src/test/queries/clientpositive/groupby3.q   |    1 +
 ...groupby_complex_types_multi_single_reducer.q |    8 +-
 .../clientpositive/groupby_grouping_sets6.q     |    1 -
 ql/src/test/queries/clientpositive/having.q     |    1 +
 .../clientpositive/hybridgrace_hashjoin_1.q     |    1 +
 .../clientpositive/hybridgrace_hashjoin_2.q     |    6 +-
 .../test/queries/clientpositive/insert_into1.q  |   16 +-
 .../test/queries/clientpositive/insert_into2.q  |   15 +-
 .../clientpositive/insert_into_with_schema2.q   |   34 +
 .../clientpositive/insert_nonacid_from_acid.q   |    2 +
 ql/src/test/queries/clientpositive/join0.q      |    1 +
 ql/src/test/queries/clientpositive/join1.q      |    1 +
 ql/src/test/queries/clientpositive/join42.q     |   36 +
 ql/src/test/queries/clientpositive/join43.q     |   83 +
 .../join_merge_multi_expressions.q              |    2 +
 .../test/queries/clientpositive/join_nullsafe.q |    3 +
 .../clientpositive/json_serde_qualified_types.q |   12 +
 .../queries/clientpositive/limit_pushdown.q     |    1 +
 .../queries/clientpositive/load_dyn_part1.q     |    1 +
 .../queries/clientpositive/load_dyn_part2.q     |    1 +
 .../queries/clientpositive/load_dyn_part3.q     |    1 +
 .../test/queries/clientpositive/lvj_mapjoin.q   |    1 +
 .../queries/clientpositive/mapjoin_decimal.q    |    7 +-
 .../queries/clientpositive/mapjoin_mapjoin.q    |    1 +
 ql/src/test/queries/clientpositive/mapreduce1.q |    1 +
 ql/src/test/queries/clientpositive/mapreduce2.q |    1 +
 ql/src/test/queries/clientpositive/merge1.q     |    1 +
 ql/src/test/queries/clientpositive/merge2.q     |    1 +
 ql/src/test/queries/clientpositive/mergejoin.q  |    3 +-
 .../clientpositive/metadata_only_queries.q      |    1 +
 ql/src/test/queries/clientpositive/mrr.q        |    3 +
 .../clientpositive/orc_int_type_promotion.q     |   79 +
 ql/src/test/queries/clientpositive/orc_merge1.q |    3 +
 ql/src/test/queries/clientpositive/orc_merge2.q |    1 +
 ql/src/test/queries/clientpositive/orc_merge3.q |    1 +
 ql/src/test/queries/clientpositive/orc_merge4.q |    1 +
 ql/src/test/queries/clientpositive/orc_merge5.q |    1 +
 ql/src/test/queries/clientpositive/orc_merge6.q |    1 +
 ql/src/test/queries/clientpositive/orc_merge7.q |    1 +
 ql/src/test/queries/clientpositive/orc_merge9.q |   44 +
 .../clientpositive/orc_merge_incompat1.q        |    1 +
 .../clientpositive/orc_merge_incompat2.q        |    1 +
 ql/src/test/queries/clientpositive/parallel.q   |    1 +
 .../queries/clientpositive/partition_date2.q    |    2 +
 .../clientpositive/partition_timestamp.q        |    2 +
 .../clientpositive/partition_timestamp2.q       |    2 +
 .../clientpositive/partition_timestamp2_win.q   |   58 +
 .../clientpositive/partition_timestamp_win.q    |   59 +
 ql/src/test/queries/clientpositive/ptf.q        |    1 +
 .../test/queries/clientpositive/ptf_matchpath.q |    1 +
 .../test/queries/clientpositive/ptf_streaming.q |    1 +
 .../queries/clientpositive/ql_rewrite_gbtoidx.q |    4 +-
 .../queries/clientpositive/script_env_var1.q    |    4 +-
 .../test/queries/clientpositive/script_pipe.q   |    1 +
 .../queries/clientpositive/selectDistinctStar.q |    5 +-
 .../clientpositive/select_dummy_source.q        |    1 +
 ql/src/test/queries/clientpositive/skewjoin.q   |   12 +-
 .../queries/clientpositive/stats_noscan_1.q     |    1 +
 .../queries/clientpositive/stats_only_null.q    |    4 +
 .../queries/clientpositive/subquery_exists.q    |    2 +
 .../test/queries/clientpositive/subquery_in.q   |    1 +
 .../queries/clientpositive/table_nonprintable.q |   30 +
 ql/src/test/queries/clientpositive/temp_table.q |    7 +-
 .../clientpositive/tez_bmj_schema_evolution.q   |    1 +
 ql/src/test/queries/clientpositive/tez_dml.q    |    3 +
 ql/src/test/queries/clientpositive/tez_join.q   |    1 +
 .../test/queries/clientpositive/tez_join_hash.q |    3 +
 .../clientpositive/tez_join_result_complex.q    |  139 +
 .../queries/clientpositive/tez_join_tests.q     |    1 +
 .../queries/clientpositive/tez_joins_explain.q  |    2 +-
 .../queries/clientpositive/tez_multi_union.q    |    1 +
 .../clientpositive/tez_schema_evolution.q       |   12 +-
 .../test/queries/clientpositive/tez_self_join.q |   33 +
 ql/src/test/queries/clientpositive/tez_smb_1.q  |   32 +
 .../test/queries/clientpositive/tez_smb_main.q  |    1 +
 ql/src/test/queries/clientpositive/tez_union.q  |    1 +
 ql/src/test/queries/clientpositive/tez_union2.q |    1 +
 .../tez_union_dynamic_partition.q               |   22 +
 .../queries/clientpositive/tez_union_group_by.q |    1 +
 .../clientpositive/tez_union_multiinsert.q      |    1 +
 ql/src/test/queries/clientpositive/transform1.q |    1 +
 .../queries/clientpositive/udaf_collect_set_2.q |  222 +
 .../clientpositive/udaf_percentile_approx_23.q  |    4 +-
 ql/src/test/queries/clientpositive/udf_crc32.q  |   13 +
 .../clientpositive/udf_folder_constants.q       |   11 +
 ql/src/test/queries/clientpositive/udf_sha1.q   |   13 +
 ql/src/test/queries/clientpositive/udf_sha2.q   |   41 +
 .../queries/clientpositive/udf_sort_array.q     |   10 +
 .../clientpositive/udf_substring_index.q        |   32 +
 .../queries/clientpositive/udf_unix_timestamp.q |    8 +-
 ql/src/test/queries/clientpositive/union2.q     |    1 +
 ql/src/test/queries/clientpositive/union3.q     |    1 +
 ql/src/test/queries/clientpositive/union35.q    |    2 -
 ql/src/test/queries/clientpositive/union4.q     |    1 +
 ql/src/test/queries/clientpositive/union5.q     |    1 +
 ql/src/test/queries/clientpositive/union6.q     |    1 +
 ql/src/test/queries/clientpositive/union7.q     |    1 +
 ql/src/test/queries/clientpositive/union8.q     |    1 +
 ql/src/test/queries/clientpositive/union9.q     |    1 +
 .../queries/clientpositive/unionDistinct_1.q    |    1 +
 .../queries/clientpositive/unionDistinct_2.q    |    2 +
 .../update_after_multiple_inserts.q             |    2 +
 .../clientpositive/update_all_partitioned.q     |    4 +-
 .../queries/clientpositive/update_all_types.q   |    2 +
 .../queries/clientpositive/update_orig_table.q  |    2 +
 .../clientpositive/update_where_partitioned.q   |    4 +-
 .../queries/clientpositive/vector_aggregate_9.q |    1 +
 .../queries/clientpositive/vector_between_in.q  |    1 +
 .../clientpositive/vector_binary_join_groupby.q |    1 +
 .../test/queries/clientpositive/vector_bucket.q |    1 +
 .../clientpositive/vector_cast_constant.q       |    1 +
 .../test/queries/clientpositive/vector_char_2.q |    1 +
 .../test/queries/clientpositive/vector_char_4.q |    1 +
 .../clientpositive/vector_char_mapjoin1.q       |    1 +
 .../queries/clientpositive/vector_char_simple.q |    1 +
 .../queries/clientpositive/vector_coalesce.q    |   52 +-
 .../queries/clientpositive/vector_coalesce_2.q  |    1 +
 .../clientpositive/vector_count_distinct.q      |    1 +
 .../queries/clientpositive/vector_data_types.q  |   13 +-
 .../test/queries/clientpositive/vector_date_1.q |    1 +
 .../queries/clientpositive/vector_decimal_1.q   |    1 +
 .../clientpositive/vector_decimal_10_0.q        |    1 +
 .../queries/clientpositive/vector_decimal_2.q   |    1 +
 .../clientpositive/vector_decimal_aggregate.q   |    1 +
 .../clientpositive/vector_decimal_cast.q        |    1 +
 .../clientpositive/vector_decimal_expressions.q |   12 +-
 .../clientpositive/vector_decimal_mapjoin.q     |    1 +
 .../clientpositive/vector_decimal_math_funcs.q  |    1 +
 .../clientpositive/vector_decimal_precision.q   |    1 +
 .../clientpositive/vector_decimal_round.q       |    1 +
 .../clientpositive/vector_decimal_round_2.q     |    1 +
 .../queries/clientpositive/vector_decimal_udf.q |    1 +
 .../clientpositive/vector_decimal_udf2.q        |    1 +
 .../queries/clientpositive/vector_distinct_2.q  |    1 +
 ql/src/test/queries/clientpositive/vector_elt.q |    1 +
 .../queries/clientpositive/vector_groupby_3.q   |    1 +
 .../clientpositive/vector_groupby_reduce.q      |    4 +
 .../clientpositive/vector_grouping_sets.q       |   64 +
 .../queries/clientpositive/vector_if_expr.q     |    1 +
 .../queries/clientpositive/vector_inner_join.q  |    1 +
 .../queries/clientpositive/vector_interval_1.q  |    1 +
 .../queries/clientpositive/vector_interval_2.q  |    1 +
 .../clientpositive/vector_interval_mapjoin.q    |   88 +
 .../test/queries/clientpositive/vector_join30.q |  161 +
 .../clientpositive/vector_join_filters.q        |   38 +
 .../queries/clientpositive/vector_join_nulls.q  |   33 +
 .../clientpositive/vector_left_outer_join.q     |    1 +
 .../clientpositive/vector_left_outer_join2.q    |    3 +
 .../clientpositive/vector_leftsemi_mapjoin.q    |    1 +
 .../clientpositive/vector_mapjoin_reduce.q      |    1 +
 .../vector_mr_diff_schema_alias.q               |    1 +
 .../clientpositive/vector_multi_insert.q        |    1 +
 .../vector_non_string_partition.q               |    1 +
 .../clientpositive/vector_null_projection.q     |   21 +
 .../clientpositive/vector_nullsafe_join.q       |   73 +
 .../queries/clientpositive/vector_orderby_5.q   |    1 +
 .../queries/clientpositive/vector_outer_join0.q |    1 +
 .../queries/clientpositive/vector_outer_join1.q |   20 +-
 .../queries/clientpositive/vector_outer_join2.q |   19 +-
 .../queries/clientpositive/vector_outer_join3.q |   18 +-
 .../queries/clientpositive/vector_outer_join4.q |   17 +-
 .../queries/clientpositive/vector_outer_join5.q |  174 +
 .../vector_partition_diff_num_cols.q            |    1 +
 .../vector_partitioned_date_time.q              |    5 +-
 .../vector_partitioned_date_time_win.q          |  129 +
 .../vector_reduce_groupby_decimal.q             |    1 +
 .../clientpositive/vector_string_concat.q       |    1 +
 .../queries/clientpositive/vector_varchar_4.q   |    1 +
 .../clientpositive/vector_varchar_mapjoin1.q    |    1 +
 .../clientpositive/vector_varchar_simple.q      |    1 +
 .../queries/clientpositive/vectorization_0.q    |    3 +
 .../queries/clientpositive/vectorization_1.q    |    3 +
 .../queries/clientpositive/vectorization_10.q   |    3 +
 .../queries/clientpositive/vectorization_11.q   |    3 +
 .../queries/clientpositive/vectorization_12.q   |    3 +
 .../queries/clientpositive/vectorization_13.q   |  142 +-
 .../queries/clientpositive/vectorization_14.q   |    3 +
 .../queries/clientpositive/vectorization_15.q   |    3 +
 .../queries/clientpositive/vectorization_16.q   |    1 +
 .../queries/clientpositive/vectorization_17.q   |   51 +
 .../queries/clientpositive/vectorization_2.q    |    3 +
 .../queries/clientpositive/vectorization_3.q    |    3 +
 .../queries/clientpositive/vectorization_4.q    |    3 +
 .../queries/clientpositive/vectorization_5.q    |    3 +
 .../queries/clientpositive/vectorization_6.q    |    3 +
 .../queries/clientpositive/vectorization_7.q    |   80 +-
 .../queries/clientpositive/vectorization_8.q    |   81 +-
 .../queries/clientpositive/vectorization_9.q    |   39 +-
 .../clientpositive/vectorization_decimal_date.q |    1 +
 .../queries/clientpositive/vectorization_div0.q |    1 +
 .../clientpositive/vectorization_limit.q        |    1 +
 .../clientpositive/vectorization_part_project.q |    5 +-
 .../clientpositive/vectorization_pushdown.q     |    1 +
 .../vectorization_short_regress.q               |  420 +-
 .../clientpositive/vectorized_bucketmapjoin1.q  |    1 +
 .../queries/clientpositive/vectorized_case.q    |    1 +
 .../queries/clientpositive/vectorized_casts.q   |    3 +
 .../queries/clientpositive/vectorized_context.q |    1 +
 .../clientpositive/vectorized_date_funcs.q      |    3 +
 .../clientpositive/vectorized_distinct_gby.q    |    3 +-
 .../vectorized_dynamic_partition_pruning.q      |    1 +
 .../queries/clientpositive/vectorized_mapjoin.q |    3 +
 .../clientpositive/vectorized_math_funcs.q      |    1 +
 .../clientpositive/vectorized_nested_mapjoin.q  |    3 +
 .../queries/clientpositive/vectorized_parquet.q |    1 +
 .../clientpositive/vectorized_rcfile_columnar.q |    2 +-
 .../clientpositive/vectorized_shufflejoin.q     |   11 +-
 .../clientpositive/vectorized_string_funcs.q    |    1 +
 .../clientpositive/vectorized_timestamp_funcs.q |   42 +-
 ql/src/test/queries/clientpositive/windowing.q  |    2 +-
 .../clientpositive/windowing_windowspec.q       |    2 -
 .../clientpositive/windowing_windowspec2.q      |   60 +
 .../clientpositive/windowing_windowspec3.q      |   62 +
 ql/src/test/resources/RefreshedJarClassV1.txt   |   26 +
 ql/src/test/resources/RefreshedJarClassV2.txt   |   26 +
 ql/src/test/resources/SessionStateTest.jar.v1   |  Bin 2176 -> 0 bytes
 ql/src/test/resources/SessionStateTest.jar.v2   |  Bin 2177 -> 0 bytes
 .../clientnegative/authorization_ctas2.q.out    |    2 +
 .../lockneg_try_lock_db_in_use.q.out            |    9 +-
 .../ptf_negative_NoWindowDefn.q.out             |    1 +
 .../table_nonprintable_negative.q.out           |   19 +
 .../udaf_collect_set_unsupported.q.out          |    1 +
 .../clientnegative/udf_sort_array_wrong1.q.out  |    2 +-
 .../clientnegative/udf_sort_array_wrong2.q.out  |    2 +-
 .../clientnegative/udf_sort_array_wrong3.q.out  |    2 +-
 .../results/clientpositive/add_part_exist.q.out |    2 +
 ql/src/test/results/clientpositive/alter1.q.out |    4 +
 ql/src/test/results/clientpositive/alter2.q.out |    4 +
 ql/src/test/results/clientpositive/alter3.q.out |    4 +
 ql/src/test/results/clientpositive/alter4.q.out |    4 +
 ql/src/test/results/clientpositive/alter5.q.out |    4 +
 .../alter_change_db_location.q.out              |   37 +
 .../results/clientpositive/alter_db_owner.q.out |    6 +
 .../results/clientpositive/alter_index.q.out    |    2 +
 .../clientpositive/alter_merge_2_orc.q.out      |   16 +-
 .../clientpositive/alter_rename_partition.q.out |    6 +
 .../alter_table_partition_drop.q.out            |   74 +
 .../clientpositive/annotate_stats_filter.q.out  |   28 +-
 .../clientpositive/annotate_stats_join.q.out    |    8 +-
 .../annotate_stats_join_pkfk.q.out              |   42 +-
 .../clientpositive/annotate_stats_limit.q.out   |    2 +-
 .../clientpositive/annotate_stats_part.q.out    |   10 +-
 .../clientpositive/annotate_stats_select.q.out  |    6 +-
 .../clientpositive/annotate_stats_table.q.out   |    4 +-
 .../authorization_owner_actions_db.q.out        |    2 +
 .../authorization_view_sqlstd.q.out             |   14 +
 .../results/clientpositive/auto_join0.q.out     |  235 +-
 .../results/clientpositive/auto_join1.q.out     |    8 +-
 .../results/clientpositive/auto_join14.q.out    |   12 +-
 .../results/clientpositive/auto_join16.q.out    |    4 +-
 .../results/clientpositive/auto_join30.q.out    |   24 +
 .../results/clientpositive/auto_join31.q.out    |    4 +
 .../results/clientpositive/auto_join32.q.out    |   32 +-
 .../results/clientpositive/auto_join8.q.out     |   14 +-
 .../clientpositive/auto_join_stats.q.out        |   28 +-
 .../clientpositive/auto_join_stats2.q.out       |    8 +-
 .../auto_join_without_localtask.q.out           |   60 +
 .../clientpositive/auto_sortmerge_join_1.q.out  |    8 +
 .../clientpositive/auto_sortmerge_join_12.q.out |    2 +-
 .../clientpositive/auto_sortmerge_join_14.q.out |    4 +
 .../clientpositive/auto_sortmerge_join_15.q.out |    4 +
 .../clientpositive/auto_sortmerge_join_2.q.out  |    8 +
 .../clientpositive/auto_sortmerge_join_3.q.out  |    8 +
 .../clientpositive/auto_sortmerge_join_4.q.out  |    8 +
 .../clientpositive/auto_sortmerge_join_5.q.out  |   14 +
 .../clientpositive/auto_sortmerge_join_6.q.out  |   66 +
 .../clientpositive/auto_sortmerge_join_7.q.out  |    8 +
 .../clientpositive/auto_sortmerge_join_8.q.out  |    8 +
 .../clientpositive/auto_sortmerge_join_9.q.out  |  143 +
 .../clientpositive/autogen_colalias.q.out       |   12 +-
 .../clientpositive/avro_timestamp.q.java1.7.out |    8 +-
 .../clientpositive/avro_timestamp.q.java1.8.out |    8 +-
 .../avro_timestamp_win.q.java1.7.out            |  134 +
 .../avro_timestamp_win.q.java1.8.out            |  134 +
 .../clientpositive/binarysortable_1.q.out       |  Bin 4302 -> 4329 bytes
 .../clientpositive/bucket_map_join_1.q.out      |   10 +-
 .../clientpositive/bucket_map_join_2.q.out      |   10 +-
 .../results/clientpositive/bucketmapjoin1.q.out |   28 +-
 .../bucketsortoptimize_insert_2.q.out           |   20 +
 .../bucketsortoptimize_insert_4.q.out           |   16 +
 .../bucketsortoptimize_insert_5.q.out           |   20 +
 .../bucketsortoptimize_insert_6.q.out           |   24 +
 .../bucketsortoptimize_insert_7.q.out           |    2 +-
 .../test/results/clientpositive/cbo_gby.q.out   |   18 +-
 .../clientpositive/cbo_rp_auto_join1.q.out      |    4 +-
 .../results/clientpositive/cbo_rp_join0.q.out   | 6867 ++++++++++++++++++
 .../results/clientpositive/cbo_rp_join1.q.out   |  426 ++
 .../results/clientpositive/cbo_subq_in.q.out    |    2 +
 .../results/clientpositive/cbo_udf_udaf.q.out   |   18 +-
 .../results/clientpositive/cbo_windowing.q.out  |  122 +-
 .../clientpositive/column_access_stats.q.out    |   78 +-
 .../clientpositive/columnstats_partlvl.q.out    |   14 +-
 .../clientpositive/columnstats_partlvl_dp.q.out |    8 +-
 .../clientpositive/columnstats_tbllvl.q.out     |   14 +-
 .../results/clientpositive/complex_alias.q.out  |   42 +-
 .../clientpositive/compute_stats_date.q.out     |    2 +-
 .../clientpositive/correlationoptimizer1.q.out  |   16 +-
 .../clientpositive/correlationoptimizer10.q.out |    6 +-
 .../clientpositive/correlationoptimizer11.q.out |    8 +-
 .../clientpositive/correlationoptimizer15.q.out |    6 +-
 .../clientpositive/correlationoptimizer2.q.out  |   10 +-
 .../clientpositive/correlationoptimizer3.q.out  |   12 +-
 .../clientpositive/correlationoptimizer4.q.out  |    6 +-
 .../clientpositive/correlationoptimizer5.q.out  |    6 +
 .../clientpositive/correlationoptimizer6.q.out  |   48 +-
 .../results/clientpositive/create_view.q.out    |    2 +
 .../clientpositive/cross_product_check_1.q.out  |   20 +-
 .../clientpositive/cross_product_check_2.q.out  |   76 +-
 .../clientpositive/crtseltbl_serdeprops.q.out   |   35 +
 ql/src/test/results/clientpositive/ctas.q.out   |    2 +
 .../test/results/clientpositive/cteViews.q.out  |  242 +
 .../test/results/clientpositive/database.q.out  |   12 +
 .../clientpositive/database_location.q.out      |    8 +
 .../clientpositive/database_properties.q.out    |    6 +
 .../clientpositive/dbtxnmgr_query5.q.out        |    2 +
 .../clientpositive/decimal_precision2.q.out     |   28 +-
 .../clientpositive/describe_database.q.out      |    4 +
 .../clientpositive/describe_database_json.q.out |   12 +
 .../clientpositive/describe_table_json.q.out    |    4 +
 .../display_colstats_tbllvl.q.out               |    6 +-
 .../dynpart_sort_opt_bucketing.q.out            |  277 +
 .../dynpart_sort_optimization2.q.out            |  166 +-
 .../encrypted/encryption_drop_partition.q.out   |   81 +
 .../encrypted/encryption_drop_table.q.out       |   62 +
 .../encrypted/encryption_drop_view.q.out        |   34 +
 .../encryption_insert_partition_dynamic.q.out   |   32 +-
 .../encryption_insert_partition_static.q.out    |  387 +-
 .../encrypted/encryption_insert_values.q.out    |   71 +
 .../encryption_join_unencrypted_tbl.q.out       |   16 +-
 ...on_join_with_different_encryption_keys.q.out |   16 +-
 ...cryption_load_data_to_encrypted_tables.q.out |    8 +-
 .../encrypted/encryption_move_tbl.q.out         |   55 +
 ...ryption_select_read_only_encrypted_tbl.q.out |    8 +-
 .../exec_parallel_column_stats.q.out            |   51 +
 .../clientpositive/explain_logical.q.out        |   28 +-
 .../clientpositive/explain_rearrange.q.out      |   32 +-
 .../clientpositive/filter_cond_pushdown.q.out   |  382 +
 .../clientpositive/filter_join_breaktask.q.out  |   12 +-
 .../clientpositive/filter_join_breaktask2.q.out |    8 +-
 .../results/clientpositive/filter_numeric.q.out |    6 +-
 .../test/results/clientpositive/fold_case.q.out |  186 +-
 .../clientpositive/fold_eq_with_case_when.q.out |  231 +
 .../test/results/clientpositive/fold_when.q.out |   32 +-
 .../test/results/clientpositive/groupby10.q.out |  140 +-
 .../test/results/clientpositive/groupby11.q.out |   70 +-
 .../test/results/clientpositive/groupby2.q.out  |   33 +-
 .../clientpositive/groupby2_map_skew.q.out      |   33 +-
 .../test/results/clientpositive/groupby8.q.out  |  140 +-
 .../clientpositive/groupby8_map_skew.q.out      |   70 +-
 ...pby_complex_types_multi_single_reducer.q.out |   68 +-
 .../results/clientpositive/groupby_cube1.q.out  |  137 +-
 .../clientpositive/groupby_grouping_sets2.q.out |   36 +-
 .../clientpositive/groupby_grouping_sets3.q.out |   32 +-
 .../clientpositive/groupby_grouping_sets4.q.out |   72 +-
 .../clientpositive/groupby_grouping_sets5.q.out |   44 +-
 .../clientpositive/groupby_grouping_sets6.q.out |   70 +-
 .../results/clientpositive/groupby_ppd.q.out    |   34 +-
 .../clientpositive/groupby_rollup1.q.out        |  123 +-
 .../results/clientpositive/groupby_sort_6.q.out |   46 +-
 ql/src/test/results/clientpositive/having.q.out |   28 +-
 .../test/results/clientpositive/having2.q.out   |   32 +-
 .../identity_project_remove_skip.q.out          |    6 +
 .../results/clientpositive/implicit_cast1.q.out |    8 +-
 .../clientpositive/index_auto_empty.q.out       |    8 +-
 .../clientpositive/index_auto_unused.q.out      |    4 +-
 .../results/clientpositive/index_creation.q.out |    2 +
 .../results/clientpositive/index_serde.q.out    |    6 +-
 .../clientpositive/index_skewtable.q.out        |   12 +-
 .../clientpositive/infer_const_type.q.out       |   28 +-
 ql/src/test/results/clientpositive/input2.q.out |    4 +
 .../test/results/clientpositive/input21.q.out   |   10 +-
 .../test/results/clientpositive/input23.q.out   |    8 +-
 .../test/results/clientpositive/input24.q.out   |    4 +-
 .../test/results/clientpositive/input25.q.out   |   36 +-
 .../test/results/clientpositive/input26.q.out   |   28 +-
 ql/src/test/results/clientpositive/input3.q.out |    4 +
 ql/src/test/results/clientpositive/input6.q.out |    2 +-
 ql/src/test/results/clientpositive/input9.q.out |    6 +-
 .../results/clientpositive/input_part4.q.out    |    6 +-
 .../test/results/clientpositive/insert1.q.out   |   46 +-
 .../results/clientpositive/insert_into1.q.out   |   86 +-
 .../results/clientpositive/insert_into2.q.out   |   82 +-
 .../insert_into_with_schema2.q.out              |  135 +
 .../insert_nonacid_from_acid.q.out              |   20 +-
 ql/src/test/results/clientpositive/join14.q.out |   14 +-
 ql/src/test/results/clientpositive/join19.q.out |   62 +-
 ql/src/test/results/clientpositive/join28.q.out |    2 +-
 ql/src/test/results/clientpositive/join29.q.out |    6 +
 ql/src/test/results/clientpositive/join31.q.out |    6 +
 ql/src/test/results/clientpositive/join32.q.out |    2 +-
 .../clientpositive/join32_lessSize.q.out        |   10 +-
 ql/src/test/results/clientpositive/join33.q.out |    2 +-
 ql/src/test/results/clientpositive/join42.q.out |  312 +
 ql/src/test/results/clientpositive/join43.q.out |  648 ++
 ql/src/test/results/clientpositive/join8.q.out  |   16 +-
 .../join_cond_pushdown_unqual1.q.out            |   48 +-
 .../join_cond_pushdown_unqual2.q.out            |   24 +-
 .../join_cond_pushdown_unqual3.q.out            |   48 +-
 .../join_cond_pushdown_unqual4.q.out            |   24 +-
 .../results/clientpositive/join_hive_626.q.out  |   28 +-
 .../join_merge_multi_expressions.q.out          |    6 +-
 .../results/clientpositive/join_nullsafe.q.out  |   16 +-
 .../results/clientpositive/join_reorder.q.out   |   92 +-
 .../results/clientpositive/join_reorder2.q.out  |   68 +-
 .../results/clientpositive/join_reorder3.q.out  |   68 +-
 .../results/clientpositive/join_reorder4.q.out  |   54 +-
 .../test/results/clientpositive/join_view.q.out |   18 +-
 .../json_serde_qualified_types.q.out            |   33 +
 .../test/results/clientpositive/keyword_1.q.out |    8 +-
 .../clientpositive/lateral_view_explode2.q.out  |    6 +-
 .../list_bucket_query_oneskew_2.q.out           |   22 +-
 .../clientpositive/mapjoin_subquery.q.out       |    4 +-
 .../clientpositive/mapjoin_subquery2.q.out      |   20 +-
 .../results/clientpositive/merge_join_1.q.out   |   32 +-
 .../results/clientpositive/mergejoins.q.out     |   40 +-
 .../clientpositive/mergejoins_mixed.q.out       |  332 +-
 .../results/clientpositive/metadataonly1.q.out  |   72 +-
 .../results/clientpositive/multiMapJoin1.q.out  |   76 +
 .../results/clientpositive/multiMapJoin2.q.out  |   30 +-
 .../clientpositive/multigroupby_singlemr.q.out  |  136 +-
 .../results/clientpositive/nullformatCTAS.q.out |    6 +-
 .../results/clientpositive/nullgroup3.q.out     |   16 +-
 .../results/clientpositive/nullgroup5.q.out     |   14 +-
 .../clientpositive/optimize_nullscan.q.out      |   82 +-
 .../clientpositive/orc_int_type_promotion.q.out |  377 +
 .../results/clientpositive/orc_merge1.q.out     |    8 +-
 .../results/clientpositive/orc_merge9.q.out     |  186 +
 .../clientpositive/orc_predicate_pushdown.q.out |   36 +-
 .../clientpositive/partition_boolexpr.q.out     |    8 +-
 .../clientpositive/partition_date2.q.out        |    8 +-
 .../clientpositive/partition_timestamp.q.out    |    8 +-
 .../clientpositive/partition_timestamp2.q.out   |    8 +-
 .../partition_timestamp2_win.q.out              |  399 +
 .../partition_timestamp_win.q.out               |  316 +
 .../test/results/clientpositive/ppd_gby.q.out   |   41 +-
 .../test/results/clientpositive/ppd_gby2.q.out  |   49 +-
 .../results/clientpositive/ppd_gby_join.q.out   |   68 +-
 .../test/results/clientpositive/ppd_join.q.out  |   64 +-
 .../test/results/clientpositive/ppd_join2.q.out |   81 +-
 .../test/results/clientpositive/ppd_join3.q.out |   91 +-
 .../test/results/clientpositive/ppd_join4.q.out |   24 +-
 .../test/results/clientpositive/ppd_join5.q.out |   22 +-
 .../clientpositive/ppd_outer_join2.q.out        |   16 +-
 .../clientpositive/ppd_outer_join3.q.out        |   16 +-
 .../clientpositive/ppd_outer_join4.q.out        |   32 +-
 .../clientpositive/ppd_outer_join5.q.out        |   72 +-
 .../clientpositive/ppd_repeated_alias.q.out     |   78 +-
 .../results/clientpositive/ppd_udf_col.q.out    |  190 +-
 .../test/results/clientpositive/ppd_union.q.out |   42 +-
 .../results/clientpositive/ppd_union_view.q.out |   46 +-
 ql/src/test/results/clientpositive/ppd_vc.q.out |    8 +-
 .../clientpositive/ql_rewrite_gbtoidx.q.out     |  258 +-
 .../ql_rewrite_gbtoidx_cbo_1.q.out              |  260 +-
 .../ql_rewrite_gbtoidx_cbo_2.q.out              |   16 +-
 .../query_result_fileformat.q.out               |   12 +-
 ql/src/test/results/clientpositive/quote1.q.out |    6 +-
 .../results/clientpositive/quotedid_basic.q.out |   70 +-
 .../results/clientpositive/quotedid_skew.q.out  |   40 +-
 .../clientpositive/reduce_deduplicate.q.out     |   16 +-
 .../results/clientpositive/rename_column.q.out  |    4 +
 .../runtime_skewjoin_mapjoin_spark.q.out        |   27 +-
 .../test/results/clientpositive/sample6.q.out   |   12 +-
 .../clientpositive/script_env_var1.q.out        |    8 +-
 .../clientpositive/selectDistinctStar.q.out     |   92 +-
 .../clientpositive/select_dummy_source.q.out    |   34 +-
 .../test/results/clientpositive/semijoin.q.out  |   10 +-
 .../results/clientpositive/show_functions.q.out |    6 +
 .../results/clientpositive/show_tables.q.out    |   18 +
 .../test/results/clientpositive/skewjoin.q.out  |   89 +-
 .../clientpositive/skewjoin_mapjoin1.q.out      |  112 +-
 .../clientpositive/skewjoin_mapjoin10.q.out     |   26 +-
 .../clientpositive/skewjoin_mapjoin11.q.out     |   32 +-
 .../clientpositive/skewjoin_mapjoin2.q.out      |   72 +-
 .../clientpositive/skewjoin_mapjoin3.q.out      |   32 +-
 .../clientpositive/skewjoin_mapjoin4.q.out      |   40 +-
 .../clientpositive/skewjoin_mapjoin5.q.out      |   50 +-
 .../clientpositive/skewjoin_mapjoin6.q.out      |   48 +-
 .../clientpositive/skewjoin_mapjoin7.q.out      |   68 +-
 .../clientpositive/skewjoin_mapjoin8.q.out      |   20 +-
 .../clientpositive/skewjoin_mapjoin9.q.out      |   40 +-
 .../skewjoin_union_remove_1.q.out               |  144 +-
 .../skewjoin_union_remove_2.q.out               |   48 +-
 .../results/clientpositive/skewjoinopt1.q.out   |  144 +-
 .../results/clientpositive/skewjoinopt10.q.out  |   52 +-
 .../results/clientpositive/skewjoinopt11.q.out  |   84 +-
 .../results/clientpositive/skewjoinopt12.q.out  |   40 +-
 .../results/clientpositive/skewjoinopt13.q.out  |   28 +-
 .../results/clientpositive/skewjoinopt14.q.out  |   48 +-
 .../results/clientpositive/skewjoinopt15.q.out  |   34 +-
 .../results/clientpositive/skewjoinopt16.q.out  |   40 +-
 .../results/clientpositive/skewjoinopt17.q.out  |   80 +-
 .../results/clientpositive/skewjoinopt18.q.out  |    6 +-
 .../results/clientpositive/skewjoinopt19.q.out  |   40 +-
 .../results/clientpositive/skewjoinopt2.q.out   |  168 +-
 .../results/clientpositive/skewjoinopt20.q.out  |   40 +-
 .../results/clientpositive/skewjoinopt3.q.out   |   80 +-
 .../results/clientpositive/skewjoinopt4.q.out   |   80 +-
 .../results/clientpositive/skewjoinopt5.q.out   |   40 +-
 .../results/clientpositive/skewjoinopt6.q.out   |   40 +-
 .../results/clientpositive/skewjoinopt7.q.out   |   52 +-
 .../results/clientpositive/skewjoinopt8.q.out   |   52 +-
 .../results/clientpositive/skewjoinopt9.q.out   |   54 +-
 .../results/clientpositive/smb_mapjoin9.q.out   |    8 +-
 .../spark/annotate_stats_join.q.out             |  212 +-
 .../clientpositive/spark/auto_join0.q.out       |   97 +-
 .../clientpositive/spark/auto_join1.q.out       |   68 +-
 .../clientpositive/spark/auto_join10.q.out      |   28 +-
 .../clientpositive/spark/auto_join11.q.out      |   32 +-
 .../clientpositive/spark/auto_join14.q.out      |   70 +-
 .../clientpositive/spark/auto_join16.q.out      |   68 +-
 .../clientpositive/spark/auto_join17.q.out      |   60 +-
 .../clientpositive/spark/auto_join18.q.out      |   30 +-
 .../spark/auto_join18_multi_distinct.q.out      |   30 +-
 .../clientpositive/spark/auto_join19.q.out      |   56 +-
 .../clientpositive/spark/auto_join26.q.out      |   68 +-
 .../clientpositive/spark/auto_join27.q.out      |   31 +-
 .../clientpositive/spark/auto_join32.q.out      |  104 +-
 .../clientpositive/spark/auto_join4.q.out       |   14 +-
 .../clientpositive/spark/auto_join5.q.out       |   24 +-
 .../clientpositive/spark/auto_join6.q.out       |   10 +-
 .../clientpositive/spark/auto_join8.q.out       |   16 +-
 .../clientpositive/spark/auto_join9.q.out       |   56 +-
 .../spark/auto_join_filters.q.out               |    4 +-
 .../clientpositive/spark/auto_join_nulls.q.out  |    6 +-
 .../clientpositive/spark/auto_join_stats.q.out  |    4 +-
 .../clientpositive/spark/auto_join_stats2.q.out |    8 +-
 .../spark/auto_join_without_localtask.q.out     |   32 +-
 .../spark/auto_sortmerge_join_10.q.out          |   10 +
 .../spark/auto_sortmerge_join_12.q.out          |    2 +-
 .../spark/auto_sortmerge_join_5.q.out           |    6 +
 .../spark/bucket_map_join_1.q.out               |   10 +-
 .../spark/bucket_map_join_2.q.out               |   10 +-
 .../clientpositive/spark/bucketmapjoin1.q.out   |   28 +-
 .../spark/bucketsortoptimize_insert_7.q.out     |   18 +-
 .../results/clientpositive/spark/cbo_gby.q.out  |   24 +-
 .../clientpositive/spark/cbo_subq_in.q.out      |    2 +
 .../clientpositive/spark/cbo_udf_udaf.q.out     |   18 +-
 .../spark/column_access_stats.q.out             |  104 +-
 .../spark/constprog_partitioner.q.out           |   80 +-
 .../results/clientpositive/spark/count.q.out    |   24 +-
 .../clientpositive/spark/cross_join.q.out       |   74 +-
 .../spark/cross_product_check_1.q.out           |   60 +-
 .../spark/cross_product_check_2.q.out           |  106 +-
 .../results/clientpositive/spark/ctas.q.out     |    2 +
 .../spark/filter_join_breaktask.q.out           |   12 +-
 .../spark/filter_join_breaktask2.q.out          |    8 +-
 .../results/clientpositive/spark/groupby1.q.out |    8 +-
 .../clientpositive/spark/groupby10.q.out        |   88 +-
 .../clientpositive/spark/groupby11.q.out        |   44 +-
 .../results/clientpositive/spark/groupby2.q.out |   25 +-
 .../results/clientpositive/spark/groupby3.q.out |    8 +-
 .../clientpositive/spark/groupby3_map.q.out     |    8 +-
 .../spark/groupby3_map_multi_distinct.q.out     |    8 +-
 .../spark/groupby3_map_skew.q.out               |    8 +-
 .../clientpositive/spark/groupby3_noskew.q.out  |    6 +-
 .../spark/groupby3_noskew_multi_distinct.q.out  |    6 +-
 .../results/clientpositive/spark/groupby4.q.out |    6 +-
 .../results/clientpositive/spark/groupby8.q.out |   88 +-
 .../spark/groupby8_map_skew.q.out               |   44 +-
 ...pby_complex_types_multi_single_reducer.q.out |   90 +-
 .../clientpositive/spark/groupby_cube1.q.out    |  151 +-
 .../clientpositive/spark/groupby_map_ppr.q.out  |    8 +-
 .../spark/groupby_map_ppr_multi_distinct.q.out  |    8 +-
 .../clientpositive/spark/groupby_position.q.out |  130 +-
 .../clientpositive/spark/groupby_ppr.q.out      |    8 +-
 .../clientpositive/spark/groupby_rollup1.q.out  |  133 +-
 .../spark/groupby_sort_1_23.q.out               |  101 +-
 .../spark/groupby_sort_skew_1_23.q.out          |  101 +-
 .../results/clientpositive/spark/having.q.out   |   94 +-
 .../spark/index_auto_self_join.q.out            |  116 +-
 .../spark/infer_bucket_sort_map_operators.q.out |    5 +-
 .../spark/infer_bucket_sort_merge.q.out         |    4 +-
 .../clientpositive/spark/innerjoin.q.out        |   54 +-
 .../results/clientpositive/spark/insert1.q.out  |   46 +-
 .../clientpositive/spark/insert_into1.q.out     |   92 +-
 .../clientpositive/spark/insert_into2.q.out     |   88 +-
 .../results/clientpositive/spark/join1.q.out    |   38 +-
 .../results/clientpositive/spark/join10.q.out   |   28 +-
 .../results/clientpositive/spark/join11.q.out   |   18 +-
 .../results/clientpositive/spark/join14.q.out   |   60 +-
 .../results/clientpositive/spark/join16.q.out   |   36 +-
 .../results/clientpositive/spark/join17.q.out   |   52 +-
 .../results/clientpositive/spark/join18.q.out   |   12 +-
 .../spark/join18_multi_distinct.q.out           |   12 +-
 .../results/clientpositive/spark/join19.q.out   |   62 +-
 .../results/clientpositive/spark/join28.q.out   |    2 +-
 .../results/clientpositive/spark/join29.q.out   |   66 +-
 .../results/clientpositive/spark/join31.q.out   |  104 +-
 .../results/clientpositive/spark/join32.q.out   |    2 +-
 .../clientpositive/spark/join32_lessSize.q.out  |   10 +-
 .../results/clientpositive/spark/join33.q.out   |    2 +-
 .../results/clientpositive/spark/join34.q.out   |   44 +-
 .../results/clientpositive/spark/join35.q.out   |   96 +-
 .../results/clientpositive/spark/join4.q.out    |   16 +-
 .../results/clientpositive/spark/join40.q.out   |  116 +-
 .../results/clientpositive/spark/join5.q.out    |   20 +-
 .../results/clientpositive/spark/join6.q.out    |   10 +-
 .../results/clientpositive/spark/join8.q.out    |   18 +-
 .../results/clientpositive/spark/join9.q.out    |   42 +-
 .../clientpositive/spark/join_alt_syntax.q.out  |   42 +-
 .../spark/join_cond_pushdown_unqual1.q.out      |   48 +-
 .../spark/join_cond_pushdown_unqual2.q.out      |   24 +-
 .../spark/join_cond_pushdown_unqual3.q.out      |   48 +-
 .../spark/join_cond_pushdown_unqual4.q.out      |   24 +-
 .../clientpositive/spark/join_hive_626.q.out    |   28 +-
 .../spark/join_merge_multi_expressions.q.out    |    6 +-
 .../clientpositive/spark/join_nullsafe.q.out    |   16 +-
 .../clientpositive/spark/join_reorder.q.out     |   92 +-
 .../clientpositive/spark/join_reorder2.q.out    |   68 +-
 .../clientpositive/spark/join_reorder3.q.out    |   68 +-
 .../clientpositive/spark/join_reorder4.q.out    |   54 +-
 .../results/clientpositive/spark/join_vc.q.out  |   40 +-
 .../clientpositive/spark/join_view.q.out        |   18 +-
 .../spark/lateral_view_explode2.q.out           |    6 +-
 .../spark/limit_partition_metadataonly.q.out    |    4 +-
 .../clientpositive/spark/limit_pushdown.q.out   |  150 +-
 .../clientpositive/spark/load_dyn_part13.q.out  |   12 +-
 .../clientpositive/spark/load_dyn_part14.q.out  |    9 +
 .../clientpositive/spark/louter_join_ppr.q.out  |  514 +-
 .../clientpositive/spark/mapjoin_decimal.q.out  |   41 +-
 .../clientpositive/spark/mapjoin_subquery.q.out |    4 +-
 .../spark/mapjoin_subquery2.q.out               |   30 +-
 .../results/clientpositive/spark/merge1.q.out   |    4 +-
 .../results/clientpositive/spark/merge2.q.out   |    4 +-
 .../clientpositive/spark/mergejoins.q.out       |   40 +-
 .../clientpositive/spark/mergejoins_mixed.q.out |  332 +-
 .../spark/metadata_only_queries.q.out           |   12 +-
 .../clientpositive/spark/multi_insert.q.out     |   48 +
 ...i_insert_move_tasks_share_dependencies.q.out |   48 +
 .../clientpositive/spark/multi_join_union.q.out |    8 +
 .../spark/multigroupby_singlemr.q.out           |  146 +-
 .../spark/optimize_nullscan.q.out               |   76 +-
 .../results/clientpositive/spark/order2.q.out   |    2 +-
 .../spark/outer_join_ppr.q.java1.7.out          |  366 +-
 .../spark/outer_join_ppr.q.java1.8.out          |  366 +-
 .../clientpositive/spark/parallel_join1.q.out   |   38 +-
 .../clientpositive/spark/parallel_orderby.q.out |    6 +-
 .../test/results/clientpositive/spark/pcr.q.out |    4 +-
 .../clientpositive/spark/ppd_gby_join.q.out     |  144 +-
 .../results/clientpositive/spark/ppd_join.q.out |  124 +-
 .../clientpositive/spark/ppd_join2.q.out        |   81 +-
 .../clientpositive/spark/ppd_join3.q.out        |   91 +-
 .../clientpositive/spark/ppd_join4.q.out        |   24 +-
 .../clientpositive/spark/ppd_join5.q.out        |   54 +-
 .../clientpositive/spark/ppd_join_filter.q.out  |  442 +-
 .../clientpositive/spark/ppd_outer_join1.q.out  |  120 +-
 .../clientpositive/spark/ppd_outer_join2.q.out  |  158 +-
 .../clientpositive/spark/ppd_outer_join3.q.out  |  154 +-
 .../clientpositive/spark/ppd_outer_join4.q.out  |   32 +-
 .../clientpositive/spark/ppd_outer_join5.q.out  |   72 +-
 .../spark/ql_rewrite_gbtoidx.q.out              |  263 +-
 .../spark/ql_rewrite_gbtoidx_cbo_1.q.out        |  469 +-
 .../spark/reduce_deduplicate.q.out              |   16 +-
 .../clientpositive/spark/router_join_ppr.q.out  |  582 +-
 .../spark/runtime_skewjoin_mapjoin_spark.q.out  |    5 +-
 .../results/clientpositive/spark/sample6.q.out  |   12 +-
 .../clientpositive/spark/script_env_var1.q.out  |    8 +-
 .../results/clientpositive/spark/semijoin.q.out |   36 +-
 .../results/clientpositive/spark/skewjoin.q.out |  243 +-
 .../clientpositive/spark/skewjoin_noskew.q.out  |   32 +-
 .../spark/skewjoin_union_remove_1.q.out         |  120 +-
 .../spark/skewjoin_union_remove_2.q.out         |   42 +-
 .../clientpositive/spark/skewjoinopt1.q.out     |  120 +-
 .../clientpositive/spark/skewjoinopt10.q.out    |   32 +-
 .../clientpositive/spark/skewjoinopt11.q.out    |   64 +-
 .../clientpositive/spark/skewjoinopt12.q.out    |   30 +-
 .../clientpositive/spark/skewjoinopt13.q.out    |   28 +-
 .../clientpositive/spark/skewjoinopt14.q.out    |   40 +-
 .../clientpositive/spark/skewjoinopt15.q.out    |   40 +-
 .../clientpositive/spark/skewjoinopt16.q.out    |   30 +-
 .../clientpositive/spark/skewjoinopt17.q.out    |   60 +-
 .../clientpositive/spark/skewjoinopt18.q.out    |    6 +-
 .../clientpositive/spark/skewjoinopt19.q.out    |   30 +-
 .../clientpositive/spark/skewjoinopt2.q.out     |  128 +-
 .../clientpositive/spark/skewjoinopt20.q.out    |   30 +-
 .../clientpositive/spark/skewjoinopt3.q.out     |   60 +-
 .../clientpositive/spark/skewjoinopt4.q.out     |   60 +-
 .../clientpositive/spark/skewjoinopt5.q.out     |   30 +-
 .../clientpositive/spark/skewjoinopt6.q.out     |   30 +-
 .../clientpositive/spark/skewjoinopt7.q.out     |   42 +-
 .../clientpositive/spark/skewjoinopt8.q.out     |   42 +-
 .../clientpositive/spark/skewjoinopt9.q.out     |   42 +-
 .../results/clientpositive/spark/stats1.q.out   |    8 +-
 .../results/clientpositive/spark/stats12.q.out  |    2 +-
 .../results/clientpositive/spark/stats13.q.out  |    2 +-
 .../results/clientpositive/spark/stats2.q.out   |    2 +-
 .../results/clientpositive/spark/stats7.q.out   |    2 +-
 .../results/clientpositive/spark/stats8.q.out   |    2 +-
 .../clientpositive/spark/stats_noscan_2.q.out   |    8 +-
 .../clientpositive/spark/stats_only_null.q.out  |    8 +-
 .../clientpositive/spark/subquery_exists.q.out  |   22 +-
 .../clientpositive/spark/subquery_in.q.out      |  230 +-
 .../spark/subquery_multiinsert.q.java1.7.out    |   14 +-
 .../spark/subquery_multiinsert.q.java1.8.out    |   14 +-
 .../spark/table_access_keys_stats.q.out         |   18 +-
 .../clientpositive/spark/temp_table.q.out       |  100 +-
 .../spark/tez_joins_explain.q.out               |    2 -
 .../clientpositive/spark/transform1.q.out       |    8 +-
 .../clientpositive/spark/udf_in_file.q.out      |    8 +-
 .../results/clientpositive/spark/union.q.out    |   12 +-
 .../results/clientpositive/spark/union10.q.out  |   18 +-
 .../results/clientpositive/spark/union11.q.out  |   93 +-
 .../results/clientpositive/spark/union12.q.out  |   14 +-
 .../results/clientpositive/spark/union13.q.out  |    8 +-
 .../results/clientpositive/spark/union14.q.out  |   84 +-
 .../results/clientpositive/spark/union15.q.out  |  111 +-
 .../results/clientpositive/spark/union16.q.out  |  125 +
 .../results/clientpositive/spark/union17.q.out  |   24 +-
 .../results/clientpositive/spark/union18.q.out  |   10 +
 .../results/clientpositive/spark/union19.q.out  |   16 +-
 .../results/clientpositive/spark/union2.q.out   |   12 +-
 .../results/clientpositive/spark/union20.q.out  |   28 +-
 .../results/clientpositive/spark/union21.q.out  |   24 +-
 .../results/clientpositive/spark/union22.q.out  |    9 +
 .../results/clientpositive/spark/union23.q.out  |    7 +
 .../results/clientpositive/spark/union24.q.out  |   71 +-
 .../results/clientpositive/spark/union25.q.out  |   52 +-
 .../results/clientpositive/spark/union26.q.out  |   16 +
 .../results/clientpositive/spark/union27.q.out  |    8 +
 .../results/clientpositive/spark/union28.q.out  |   76 +-
 .../results/clientpositive/spark/union29.q.out  |   12 +
 .../results/clientpositive/spark/union3.q.out   |   12 +
 .../results/clientpositive/spark/union30.q.out  |   80 +-
 .../results/clientpositive/spark/union31.q.out  |   32 +
 .../results/clientpositive/spark/union32.q.out  |   30 +
 .../results/clientpositive/spark/union33.q.out  |   26 +-
 .../results/clientpositive/spark/union34.q.out  |   63 +-
 .../results/clientpositive/spark/union4.q.out   |   12 +-
 .../results/clientpositive/spark/union5.q.out   |   62 +-
 .../results/clientpositive/spark/union6.q.out   |    8 +-
 .../results/clientpositive/spark/union7.q.out   |   82 +-
 .../results/clientpositive/spark/union8.q.out   |   13 +-
 .../results/clientpositive/spark/union9.q.out   |   19 +-
 .../spark/union_lateralview.q.out               |   24 +
 .../clientpositive/spark/union_ppr.q.out        |   10 +
 .../clientpositive/spark/union_remove_1.q.out   |   28 +-
 .../clientpositive/spark/union_remove_10.q.out  |   24 +-
 .../clientpositive/spark/union_remove_11.q.out  |   12 +
 .../clientpositive/spark/union_remove_12.q.out  |   14 +-
 .../clientpositive/spark/union_remove_13.q.out  |   22 +-
 .../clientpositive/spark/union_remove_14.q.out  |   14 +-
 .../clientpositive/spark/union_remove_15.q.out  |   30 +-
 .../clientpositive/spark/union_remove_16.q.out  |   30 +-
 .../clientpositive/spark/union_remove_17.q.out  |    8 +
 .../clientpositive/spark/union_remove_18.q.out  |   30 +-
 .../clientpositive/spark/union_remove_19.q.out  |  220 +-
 .../clientpositive/spark/union_remove_2.q.out   |   24 +-
 .../clientpositive/spark/union_remove_20.q.out  |   30 +-
 .../clientpositive/spark/union_remove_21.q.out  |   82 +-
 .../clientpositive/spark/union_remove_22.q.out  |   52 +-
 .../clientpositive/spark/union_remove_23.q.out  |   30 +-
 .../clientpositive/spark/union_remove_24.q.out  |   30 +-
 .../clientpositive/spark/union_remove_25.q.out  |   44 +-
 .../clientpositive/spark/union_remove_3.q.out   |   12 +
 .../clientpositive/spark/union_remove_4.q.out   |   28 +-
 .../clientpositive/spark/union_remove_5.q.out   |   24 +-
 .../clientpositive/spark/union_remove_6.q.out   |   22 +-
 .../spark/union_remove_6_subq.q.out             |   44 +-
 .../clientpositive/spark/union_remove_7.q.out   |   28 +-
 .../clientpositive/spark/union_remove_8.q.out   |   24 +-
 .../clientpositive/spark/union_remove_9.q.out   |   22 +-
 .../clientpositive/spark/union_top_level.q.out  |   66 +-
 .../clientpositive/spark/union_view.q.out       |  143 +
 .../spark/vector_cast_constant.q.java1.7.out    |    6 +-
 .../spark/vector_cast_constant.q.java1.8.out    |    6 +-
 .../spark/vector_count_distinct.q.out           |    6 +-
 .../spark/vector_data_types.q.out               |  116 +-
 .../spark/vector_decimal_aggregate.q.out        |   12 +-
 .../spark/vector_distinct_2.q.out               |    4 +-
 .../clientpositive/spark/vector_elt.q.out       |    2 +-
 .../clientpositive/spark/vector_groupby_3.q.out |    6 +-
 .../spark/vector_mapjoin_reduce.q.out           |  261 +-
 .../clientpositive/spark/vector_orderby_5.q.out |    6 +-
 .../spark/vector_string_concat.q.out            |    6 +-
 .../clientpositive/spark/vectorization_0.q.out  |   28 +-
 .../clientpositive/spark/vectorization_1.q.out  |    8 +-
 .../clientpositive/spark/vectorization_10.q.out |  428 +-
 .../clientpositive/spark/vectorization_11.q.out |   74 +-
 .../clientpositive/spark/vectorization_12.q.out |  994 +--
 .../clientpositive/spark/vectorization_13.q.out |  430 +-
 .../clientpositive/spark/vectorization_14.q.out | 1182 +--
 .../clientpositive/spark/vectorization_15.q.out |   68 +-
 .../clientpositive/spark/vectorization_16.q.out |    8 +-
 .../clientpositive/spark/vectorization_17.q.out |  507 ++
 .../clientpositive/spark/vectorization_2.q.out  |    8 +-
 .../clientpositive/spark/vectorization_3.q.out  |    8 +-
 .../clientpositive/spark/vectorization_4.q.out  |    8 +-
 .../clientpositive/spark/vectorization_5.q.out  |    8 +-
 .../clientpositive/spark/vectorization_6.q.out  | 3042 ++++----
 .../clientpositive/spark/vectorization_7.q.out  |  328 +-
 .../clientpositive/spark/vectorization_8.q.out  |  314 +-
 .../clientpositive/spark/vectorization_9.q.out  |  965 ++-
 .../spark/vectorization_div0.q.out              |    6 +-
 .../spark/vectorization_part_project.q.out      |   42 +-
 .../spark/vectorization_pushdown.q.out          |    8 +-
 .../spark/vectorization_short_regress.q.out     | 1338 ++--
 .../clientpositive/spark/vectorized_case.q.out  |    2 +-
 .../spark/vectorized_mapjoin.q.out              |   68 +-
 .../spark/vectorized_nested_mapjoin.q.out       |    8 +-
 .../spark/vectorized_rcfile_columnar.q.out      |   24 +-
 .../spark/vectorized_shufflejoin.q.out          |   89 +-
 .../spark/vectorized_timestamp_funcs.q.out      |  408 +-
 .../clientpositive/spark/windowing.q.out        |    4 +-
 .../test/results/clientpositive/stats12.q.out   |    2 +-
 .../test/results/clientpositive/stats13.q.out   |    2 +-
 ql/src/test/results/clientpositive/stats2.q.out |    2 +-
 ql/src/test/results/clientpositive/stats7.q.out |    2 +-
 ql/src/test/results/clientpositive/stats8.q.out |    2 +-
 .../results/clientpositive/stats_noscan_2.q.out |    8 +-
 .../subq_where_serialization.q.out              |    5 +
 .../clientpositive/subquery_exists.q.out        |    2 +
 .../clientpositive/subquery_in_having.q.out     |  132 +-
 .../subquery_multiinsert.q.java1.7.out          |   18 +-
 .../clientpositive/subquery_notexists.q.out     |   12 +-
 .../subquery_notexists_having.q.out             |   12 +-
 .../results/clientpositive/subquery_notin.q.out |   50 +-
 .../subquery_notin_having.q.java1.7.out         |   70 +-
 .../subquery_unqual_corr_expr.q.out             |    8 +-
 .../subquery_unqualcolumnrefs.q.out             |   74 +-
 .../results/clientpositive/subquery_views.q.out |   20 +-
 .../symlink_text_input_format.q.out             |   24 +-
 .../clientpositive/table_nonprintable.q.out     |   72 +
 .../results/clientpositive/temp_table.q.out     |   84 +-
 .../temp_table_display_colstats_tbllvl.q.out    |    6 +-
 .../clientpositive/temp_table_names.q.out       |    8 +
 .../tez/acid_vectorization_partition.q.out      |   20 +-
 .../clientpositive/tez/alter_merge_2_orc.q.out  |   16 +-
 .../results/clientpositive/tez/auto_join0.q.out |   91 +-
 .../results/clientpositive/tez/auto_join1.q.out |    8 +-
 .../tez/auto_sortmerge_join_10.q.out            |   14 +
 .../tez/auto_sortmerge_join_12.q.out            |    5 +-
 .../tez/auto_sortmerge_join_5.q.out             |    6 +
 .../results/clientpositive/tez/cbo_gby.q.out    |   18 +-
 .../clientpositive/tez/cbo_subq_in.q.out        |    2 +
 .../clientpositive/tez/cbo_udf_udaf.q.out       |   18 +-
 .../clientpositive/tez/cbo_windowing.q.out      |  122 +-
 .../tez/cross_product_check_1.q.out             |   20 +-
 .../tez/cross_product_check_2.q.out             |   88 +-
 .../test/results/clientpositive/tez/ctas.q.out  |    2 +
 .../tez/dynamic_partition_pruning.q.out         |  390 +-
 .../tez/dynamic_partition_pruning_2.q.out       |  126 +
 .../tez/dynpart_sort_optimization2.q.out        |  166 +-
 .../clientpositive/tez/explainuser_1.q.out      | 1713 +++--
 .../clientpositive/tez/explainuser_2.q.out      | 1053 ++-
 .../clientpositive/tez/explainuser_3.q.out      |  522 ++
 .../tez/filter_join_breaktask2.q.out            |    8 +-
 .../results/clientpositive/tez/groupby2.q.out   |   17 +-
 .../results/clientpositive/tez/having.q.out     |   28 +-
 .../tez/hybridgrace_hashjoin_2.q.out            |   20 +-
 .../clientpositive/tez/insert_into1.q.out       |   86 +-
 .../clientpositive/tez/insert_into2.q.out       |   82 +-
 .../clientpositive/tez/join_nullsafe.q.out      |   20 +-
 .../clientpositive/tez/limit_pushdown.q.out     |   31 +-
 .../clientpositive/tez/mapjoin_decimal.q.out    |   42 +-
 .../results/clientpositive/tez/mergejoin.q.out  |   12 +
 .../clientpositive/tez/metadataonly1.q.out      |   72 +-
 .../test/results/clientpositive/tez/mrr.q.out   | 2074 +++---
 .../clientpositive/tez/optimize_nullscan.q.out  |   72 +-
 .../results/clientpositive/tez/orc_merge1.q.out |    8 +-
 .../clientpositive/tez/script_env_var1.q.out    |    8 +-
 .../clientpositive/tez/selectDistinctStar.q.out |  108 +-
 .../results/clientpositive/tez/skewjoin.q.out   |   84 +-
 .../clientpositive/tez/stats_only_null.q.out    |  422 ++
 .../clientpositive/tez/subquery_exists.q.out    |    2 +
 .../results/clientpositive/tez/temp_table.q.out |   93 +-
 .../results/clientpositive/tez/tez_dml.q.out    | 2008 ++---
 .../results/clientpositive/tez/tez_join.q.out   |   28 +-
 .../clientpositive/tez/tez_join_hash.q.out      |  297 +-
 .../tez/tez_join_result_complex.q.out           | 2159 ++++++
 .../clientpositive/tez/tez_joins_explain.q.out  |    2 -
 .../clientpositive/tez/tez_multi_union.q.out    | 1002 +--
 .../tez/tez_schema_evolution.q.out              |   96 +-
 .../clientpositive/tez/tez_self_join.q.out      |  205 +
 .../results/clientpositive/tez/tez_smb_1.q.out  |  278 +
 .../clientpositive/tez/tez_smb_main.q.out       |   20 +
 .../results/clientpositive/tez/tez_union.q.out  |   81 +
 .../results/clientpositive/tez/tez_union2.q.out |   18 +
 .../tez/tez_union_dynamic_partition.q.out       |  148 +
 .../clientpositive/tez/tez_union_group_by.q.out |   51 +-
 .../tez/tez_union_multiinsert.q.out             |  126 +-
 .../results/clientpositive/tez/transform1.q.out |    8 +-
 .../results/clientpositive/tez/union2.q.out     |   10 +
 .../results/clientpositive/tez/union3.q.out     |   12 +
 .../results/clientpositive/tez/union4.q.out     |   12 +
 .../results/clientpositive/tez/union5.q.out     |   12 +-
 .../results/clientpositive/tez/union6.q.out     |   10 +
 .../results/clientpositive/tez/union7.q.out     |   12 +-
 .../results/clientpositive/tez/union8.q.out     |    9 +
 .../results/clientpositive/tez/union9.q.out     |   15 +
 .../clientpositive/tez/unionDistinct_1.q.out    |  817 ++-
 .../clientpositive/tez/unionDistinct_2.q.out    |   38 +-
 .../tez/update_after_multiple_inserts.q.out     |   12 +-
 .../tez/update_all_partitioned.q.out            |   14 +-
 .../clientpositive/tez/update_all_types.q.out   |   48 +-
 .../clientpositive/tez/update_orig_table.q.out  |   17 +-
 .../tez/update_where_partitioned.q.out          |   20 +-
 .../clientpositive/tez/vector_bucket.q.out      |   10 +-
 .../clientpositive/tez/vector_coalesce.q.out    |  400 +-
 .../tez/vector_count_distinct.q.out             |   29 +-
 .../clientpositive/tez/vector_data_types.q.out  |  116 +-
 .../clientpositive/tez/vector_date_1.q.out      |   20 +-
 .../tez/vector_decimal_expressions.q.out        |   99 +-
 .../tez/vector_groupby_reduce.q.out             |   10 +-
 .../tez/vector_grouping_sets.q.out              |  266 +
 .../clientpositive/tez/vector_interval_2.q.out  |   60 +-
 .../tez/vector_interval_mapjoin.q.out           |  281 +
 .../clientpositive/tez/vector_join30.q.out      | 1367 ++++
 .../tez/vector_join_filters.q.out               |  222 +
 .../clientpositive/tez/vector_join_nulls.q.out  |  195 +
 .../tez/vector_left_outer_join2.q.out           |   20 +-
 .../tez/vector_left_outer_join3.q.out           |  222 +
 .../tez/vector_leftsemi_mapjoin.q.out           | 1092 +--
 .../tez/vector_mr_diff_schema_alias.q.out       |   42 +-
 .../tez/vector_multi_insert.q.out               |   20 +-
 .../tez/vector_null_projection.q.out            |  178 +
 .../tez/vector_nullsafe_join.q.out              | 1210 +++
 .../clientpositive/tez/vector_outer_join1.q.out |  376 +-
 .../clientpositive/tez/vector_outer_join2.q.out |  122 +-
 .../clientpositive/tez/vector_outer_join3.q.out |  164 +-
 .../clientpositive/tez/vector_outer_join4.q.out | 1060 +--
 .../clientpositive/tez/vector_outer_join5.q.out | 1328 ++++
 .../tez/vector_partitioned_date_time.q.out      |   10 +-
 .../clientpositive/tez/vectorization_0.q.out    |    8 +-
 .../clientpositive/tez/vectorization_1.q.out    |    8 +-
 .../clientpositive/tez/vectorization_10.q.out   |  428 +-
 .../clientpositive/tez/vectorization_11.q.out   |   74 +-
 .../clientpositive/tez/vectorization_12.q.out   |  994 +--
 .../clientpositive/tez/vectorization_13.q.out   |  414 +-
 .../clientpositive/tez/vectorization_14.q.out   | 1170 +--
 .../clientpositive/tez/vectorization_15.q.out   |   58 +-
 .../clientpositive/tez/vectorization_17.q.out   |  507 ++
 .../clientpositive/tez/vectorization_2.q.out    |    8 +-
 .../clientpositive/tez/vectorization_3.q.out    |    8 +-
 .../clientpositive/tez/vectorization_4.q.out    |    8 +-
 .../clientpositive/tez/vectorization_5.q.out    |    8 +-
 .../clientpositive/tez/vectorization_6.q.out    | 3042 ++++----
 .../clientpositive/tez/vectorization_7.q.out    |  320 +-
 .../clientpositive/tez/vectorization_8.q.out    |  306 +-
 .../clientpositive/tez/vectorization_9.q.out    |  957 ++-
 .../tez/vectorization_limit.q.out               |   31 +-
 .../tez/vectorization_part_project.q.out        |   40 +-
 .../tez/vectorization_short_regress.q.out       | 1240 ++--
 .../clientpositive/tez/vectorized_casts.q.out   |   42 +-
 .../tez/vectorized_date_funcs.q.out             |  272 +-
 .../tez/vectorized_distinct_gby.q.out           |   56 +-
 .../vectorized_dynamic_partition_pruning.q.out  |  398 +-
 .../clientpositive/tez/vectorized_mapjoin.q.out |    8 +-
 .../tez/vectorized_nested_mapjoin.q.out         |    8 +-
 .../tez/vectorized_rcfile_columnar.q.out        |   24 +-
 .../tez/vectorized_shufflejoin.q.out            |   37 +-
 .../tez/vectorized_timestamp_funcs.q.out        |  396 +-
 .../tez/vectorized_timestamp_ints_casts.q.out   |  234 +
 .../tez_join_result_complex.q.out               | 1337 ++++
 .../clientpositive/timestamp_literal.q.out      |   12 +-
 .../results/clientpositive/transform1.q.out     |    8 +-
 .../results/clientpositive/type_widening.q.out  |    4 +-
 .../clientpositive/udaf_collect_set_2.q.out     |  742 ++
 .../udaf_percentile_approx_23.q.out             |   16 +-
 ql/src/test/results/clientpositive/udf5.q.out   |   30 +-
 .../results/clientpositive/udf_add_months.q.out |    4 +-
 .../clientpositive/udf_bitwise_shiftleft.q.out  |    4 +-
 .../clientpositive/udf_bitwise_shiftright.q.out |    4 +-
 .../udf_bitwise_shiftrightunsigned.q.out        |    4 +-
 .../test/results/clientpositive/udf_cbrt.q.out  |    4 +-
 .../test/results/clientpositive/udf_crc32.q.out |   60 +
 .../clientpositive/udf_current_database.q.out   |   16 +-
 .../clientpositive/udf_date_format.q.out        |    4 +-
 .../results/clientpositive/udf_decode.q.out     |    6 +-
 .../results/clientpositive/udf_factorial.q.out  |    4 +-
 .../clientpositive/udf_folder_constants.q.out   |  120 +
 .../clientpositive/udf_from_utc_timestamp.q.out |    4 +-
 .../results/clientpositive/udf_in_file.q.out    |   10 +-
 .../results/clientpositive/udf_last_day.q.out   |    4 +-
 .../results/clientpositive/udf_length.q.out     |    4 +-
 .../clientpositive/udf_levenshtein.q.out        |    4 +-
 .../test/results/clientpositive/udf_md5.q.out   |    4 +-
 .../clientpositive/udf_months_between.q.out     |    4 +-
 .../results/clientpositive/udf_quarter.q.out    |    4 +-
 .../test/results/clientpositive/udf_sha1.q.out  |   61 +
 .../test/results/clientpositive/udf_sha2.q.out  |  134 +
 .../results/clientpositive/udf_sort_array.q.out |   33 +
 .../results/clientpositive/udf_soundex.q.out    |    4 +-
 .../clientpositive/udf_substring_index.q.out    |  107 +
 .../clientpositive/udf_to_utc_timestamp.q.out   |    4 +-
 .../test/results/clientpositive/udf_trunc.q.out |   32 +-
 .../clientpositive/udf_unix_timestamp.q.out     |   32 +-
 .../results/clientpositive/udtf_stack.q.out     |    8 +-
 .../test/results/clientpositive/union10.q.out   |   12 +-
 .../test/results/clientpositive/union11.q.out   |   16 +-
 .../test/results/clientpositive/union12.q.out   |   12 +-
 .../test/results/clientpositive/union14.q.out   |   12 +-
 .../test/results/clientpositive/union15.q.out   |   16 +-
 .../test/results/clientpositive/union17.q.out   |   22 +-
 .../test/results/clientpositive/union18.q.out   |    8 +-
 .../test/results/clientpositive/union19.q.out   |   20 +-
 .../test/results/clientpositive/union20.q.out   |    4 +-
 .../test/results/clientpositive/union21.q.out   |   24 +-
 .../test/results/clientpositive/union22.q.out   |    7 +
 ql/src/test/results/clientpositive/union4.q.out |    8 +-
 ql/src/test/results/clientpositive/union5.q.out |   12 +-
 ql/src/test/results/clientpositive/union7.q.out |   12 +-
 .../clientpositive/unionDistinct_1.q.out        |  351 +-
 .../clientpositive/unionDistinct_2.q.out        |   42 +-
 .../results/clientpositive/union_remove_1.q.out |   24 +-
 .../clientpositive/union_remove_10.q.out        |   24 +-
 .../clientpositive/union_remove_11.q.out        |   30 +-
 .../clientpositive/union_remove_12.q.out        |   20 +-
 .../clientpositive/union_remove_13.q.out        |   28 +-
 .../clientpositive/union_remove_14.q.out        |   20 +-
 .../clientpositive/union_remove_15.q.out        |   28 +-
 .../clientpositive/union_remove_16.q.out        |   28 +-
 .../clientpositive/union_remove_17.q.out        |   20 +-
 .../clientpositive/union_remove_18.q.out        |   28 +-
 .../clientpositive/union_remove_19.q.out        |   56 +-
 .../results/clientpositive/union_remove_2.q.out |   24 +-
 .../clientpositive/union_remove_20.q.out        |   28 +-
 .../clientpositive/union_remove_21.q.out        |   24 +-
 .../clientpositive/union_remove_22.q.out        |   56 +-
 .../clientpositive/union_remove_23.q.out        |   34 +-
 .../clientpositive/union_remove_24.q.out        |   28 +-
 .../clientpositive/union_remove_25.q.out        |   24 +-
 .../results/clientpositive/union_remove_3.q.out |   30 +-
 .../results/clientpositive/union_remove_4.q.out |   24 +-
 .../results/clientpositive/union_remove_5.q.out |   24 +-
 .../results/clientpositive/union_remove_6.q.out |   32 +-
 .../clientpositive/union_remove_6_subq.q.out    |   32 +-
 .../results/clientpositive/union_remove_7.q.out |   24 +-
 .../results/clientpositive/union_remove_8.q.out |   24 +-
 .../results/clientpositive/union_remove_9.q.out |   32 +-
 .../results/clientpositive/union_view.q.out     |  216 +-
 .../update_after_multiple_inserts.q.out         |   12 +-
 .../clientpositive/update_all_partitioned.q.out |   14 +-
 .../clientpositive/update_all_types.q.out       |   48 +-
 .../clientpositive/update_orig_table.q.out      |   17 +-
 .../update_where_partitioned.q.out              |   20 +-
 .../results/clientpositive/vector_bucket.q.out  |   10 +-
 .../clientpositive/vector_coalesce.q.out        |  288 +-
 .../clientpositive/vector_data_types.q.out      |  116 +-
 .../results/clientpositive/vector_date_1.q.out  |   20 +-
 .../vector_decimal_expressions.q.out            |   73 +-
 .../clientpositive/vector_groupby_reduce.q.out  |   10 +-
 .../clientpositive/vector_grouping_sets.q.out   |  253 +
 .../clientpositive/vector_interval_2.q.out      |   60 +-
 .../vector_interval_mapjoin.q.out               |  281 +
 .../results/clientpositive/vector_join30.q.out  | 2218 ++++++
 .../clientpositive/vector_join_filters.q.out    |  222 +
 .../clientpositive/vector_join_nulls.q.out      |  195 +
 .../vector_left_outer_join2.q.out               |    8 +-
 .../vector_leftsemi_mapjoin.q.out               |   48 +-
 .../clientpositive/vector_mapjoin_reduce.q.out  |   12 +
 .../vector_mr_diff_schema_alias.q.out           |   42 +-
 .../clientpositive/vector_multi_insert.q.out    |    6 +-
 .../clientpositive/vector_null_projection.q.out |  167 +
 .../clientpositive/vector_nullsafe_join.q.out   | 1208 +++
 .../clientpositive/vector_outer_join1.q.out     |  368 +-
 .../clientpositive/vector_outer_join2.q.out     |  118 +-
 .../clientpositive/vector_outer_join3.q.out     |  152 +-
 .../clientpositive/vector_outer_join4.q.out     | 1052 +--
 .../clientpositive/vector_outer_join5.q.out     | 1300 ++++
 .../vector_partitioned_date_time.q.out          |   10 +-
 .../vector_partitioned_date_time_win.q.out      | 2036 ++++++
 .../clientpositive/vectorization_0.q.out        |    8 +-
 .../clientpositive/vectorization_1.q.out        |    8 +-
 .../clientpositive/vectorization_10.q.out       |  428 +-
 .../clientpositive/vectorization_11.q.out       |   74 +-
 .../clientpositive/vectorization_12.q.out       |  994 +--
 .../clientpositive/vectorization_13.q.out       |  414 +-
 .../clientpositive/vectorization_14.q.out       | 1170 +--
 .../clientpositive/vectorization_15.q.out       |   58 +-
 .../clientpositive/vectorization_17.q.out       |  500 ++
 .../clientpositive/vectorization_2.q.out        |    8 +-
 .../clientpositive/vectorization_3.q.out        |    8 +-
 .../clientpositive/vectorization_4.q.out        |    8 +-
 .../clientpositive/vectorization_5.q.out        |    8 +-
 .../clientpositive/vectorization_6.q.out        | 3042 ++++----
 .../clientpositive/vectorization_7.q.out        |  312 +-
 .../clientpositive/vectorization_8.q.out        |  298 +-
 .../clientpositive/vectorization_9.q.out        |  957 ++-
 .../vectorization_part_project.q.out            |   40 +-
 .../vectorization_short_regress.q.out           | 1240 ++--
 .../clientpositive/vectorized_casts.q.out       |   42 +-
 .../clientpositive/vectorized_date_funcs.q.out  |  272 +-
 .../vectorized_distinct_gby.q.out               |    4 +-
 .../clientpositive/vectorized_mapjoin.q.out     |    8 +-
 .../vectorized_nested_mapjoin.q.out             |    8 +-
 .../vectorized_rcfile_columnar.q.out            |   24 +-
 .../clientpositive/vectorized_shufflejoin.q.out |   44 +-
 .../vectorized_timestamp_funcs.q.out            |  396 +-
 .../test/results/clientpositive/windowing.q.out |    4 +-
 .../clientpositive/windowing_windowspec.q.out   |  108 -
 .../clientpositive/windowing_windowspec2.q.out  | 3084 ++++++++
 .../clientpositive/windowing_windowspec3.q.out  |  232 +
 serde/pom.xml                                   |    4 +-
 .../hadoop/hive/ql/io/sarg/SearchArgument.java  |    2 +-
 .../hive/serde2/ColumnProjectionUtils.java      |   29 +-
 .../hadoop/hive/serde2/NullStructSerDe.java     |    2 +-
 .../hive/serde2/io/HiveDecimalWritable.java     |    5 +-
 .../hive/serde2/io/HiveVarcharWritable.java     |    7 +-
 .../hive/serde2/io/TimestampWritable.java       |    2 +-
 .../hive/serde2/lazy/LazySerDeParameters.java   |   18 +
 .../MetadataListStructObjectInspector.java      |    2 +-
 .../ObjectInspectorConverters.java              |    5 +-
 .../objectinspector/ObjectInspectorUtils.java   |    6 +-
 .../AbstractPrimitiveObjectInspector.java       |    1 +
 .../PrimitiveObjectInspectorFactory.java        |    4 +-
 .../primitive/WritableVoidObjectInspector.java  |    5 +
 .../hive/serde2/typeinfo/CharTypeInfo.java      |    5 +-
 .../hive/serde2/typeinfo/DecimalTypeInfo.java   |    7 +-
 .../hive/serde2/typeinfo/PrimitiveTypeInfo.java |    5 +-
 .../hive/serde2/typeinfo/VarcharTypeInfo.java   |    5 +-
 .../apache/hadoop/hive/serde2/VerifyFast.java   |   10 +-
 .../hive/serde2/io/TestTimestampWritable.java   |    2 +-
 .../hive/serde2/lazy/TestLazySimpleSerDe.java   |    9 +-
 service/pom.xml                                 |    2 +-
 .../org/apache/hive/service/CookieSigner.java   |   18 +
 .../apache/hive/service/auth/HttpAuthUtils.java |    2 +-
 .../auth/LdapAuthenticationProviderImpl.java    |  460 +-
 .../service/auth/TSetIpAddressProcessor.java    |    4 +-
 .../org/apache/hive/service/cli/CLIService.java |   13 -
 .../apache/hive/service/cli/ColumnValue.java    |    2 +
 .../java/org/apache/hive/service/cli/Type.java  |    2 +-
 .../cli/operation/GetCatalogsOperation.java     |   12 +-
 .../cli/operation/GetColumnsOperation.java      |   34 +
 .../cli/operation/GetFunctionsOperation.java    |   25 +
 .../cli/operation/GetSchemasOperation.java      |   13 +
 .../cli/operation/GetTableTypesOperation.java   |    4 +
 .../cli/operation/GetTablesOperation.java       |   10 +
 .../cli/operation/GetTypeInfoOperation.java     |    4 +
 .../cli/operation/MetadataOperation.java        |   35 +
 .../service/cli/operation/OperationManager.java |   13 +-
 .../service/cli/operation/SQLOperation.java     |   16 +-
 .../hive/service/cli/session/HiveSession.java   |   12 +-
 .../service/cli/session/HiveSessionImpl.java    |   30 +-
 .../cli/session/HiveSessionImplwithUGI.java     |   21 -
 .../service/cli/session/SessionManager.java     |    6 +-
 .../service/cli/thrift/ThriftCLIService.java    |    4 +
 .../service/cli/thrift/ThriftHttpServlet.java   |   20 +-
 .../apache/hive/service/server/HiveServer2.java |   28 +-
 .../TestLdapAuthenticationProviderImpl.java     |   18 +
 shims/0.20S/pom.xml                             |    2 +-
 .../hadoop/hive/shims/Hadoop20SShims.java       |    5 -
 .../apache/hadoop/mapred/WebHCatJTShim20S.java  |   10 +
 shims/0.23/pom.xml                              |    2 +-
 .../apache/hadoop/hive/shims/Hadoop23Shims.java |   22 +-
 .../apache/hadoop/mapred/WebHCatJTShim23.java   |   18 +-
 shims/aggregator/pom.xml                        |    2 +-
 shims/common/pom.xml                            |    2 +-
 .../apache/hadoop/hive/shims/HadoopShims.java   |    7 +-
 .../hive/thrift/HadoopThriftAuthBridge.java     |    6 +-
 shims/pom.xml                                   |    2 +-
 shims/scheduler/pom.xml                         |    2 +-
 spark-client/pom.xml                            |    4 +-
 .../apache/hive/spark/client/JobContext.java    |    2 +-
 .../hive/spark/client/JobContextImpl.java       |    7 +-
 .../hive/spark/client/SparkClientImpl.java      |    5 +-
 .../hive/spark/client/SparkClientUtilities.java |   13 +-
 .../apache/hive/spark/client/rpc/RpcServer.java |   18 +
 testutils/metastore/dbs/derby/execute.sh        |   37 +
 testutils/metastore/dbs/derby/prepare.sh        |   63 +
 testutils/metastore/dbs/postgres/execute.sh     |   29 +
 testutils/metastore/dbs/postgres/prepare.sh     |   72 +
 testutils/pom.xml                               |    2 +-
 .../org/apache/hive/ptest/execution/PTest.java  |   12 +-
 .../ptest/execution/conf/TestConfiguration.java |   12 +-
 .../execution/conf/TestTestConfiguration.java   |   38 +-
 .../resources/test-configuration.properties     |    2 +
 1727 files changed, 103421 insertions(+), 39461 deletions(-)
----------------------------------------------------------------------



[02/43] hive git commit: Merge branch 'master' into beeline-cli

Posted by se...@apache.org.
Merge branch 'master' into beeline-cli


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

Branch: refs/heads/llap
Commit: 753b2b308afeb3808a3c10de5474f863d975a46f
Parents: 2ddd86d 3e713bc
Author: Xuefu Zhang <xz...@Cloudera.com>
Authored: Thu May 14 21:31:01 2015 -0700
Committer: Xuefu Zhang <xz...@Cloudera.com>
Committed: Thu May 14 21:31:01 2015 -0700

----------------------------------------------------------------------
 .../src/test/templates/TestAccumuloCliDriver.vm |    19 +-
 .../apache/hadoop/hive/ant/QTestGenTask.java    |    25 +
 .../java/org/apache/hive/beeline/BeeLine.java   |    10 +-
 bin/beeline.cmd                                 |    11 +-
 bin/ext/hiveserver2.cmd                         |     2 +-
 bin/ext/orcfiledump.sh                          |     9 +-
 bin/hive                                        |     2 +-
 .../org/apache/hadoop/hive/conf/HiveConf.java   |    27 +-
 data/files/tjoin1.txt                           |     3 +
 data/files/tjoin2.txt                           |     4 +
 dev-support/jenkins-execute-build.sh            |     2 +-
 dev-support/jenkins-execute-hms-test.sh         |     4 +-
 .../src/test/templates/TestHBaseCliDriver.vm    |    18 +-
 .../templates/TestHBaseNegativeCliDriver.vm     |    19 +-
 .../apache/hive/hcatalog/common/HCatUtil.java   |    37 +-
 .../hive/hcatalog/common/HiveClientCache.java   |    94 +-
 .../DefaultOutputCommitterContainer.java        |     6 +-
 .../mapreduce/FileOutputCommitterContainer.java |    22 +-
 .../mapreduce/FileOutputFormatContainer.java    |     8 +-
 .../hcatalog/mapreduce/HCatBaseInputFormat.java |    50 +-
 .../hcatalog/mapreduce/HCatOutputFormat.java    |     6 +-
 .../hcatalog/mapreduce/HCatRecordReader.java    |     4 +-
 .../hive/hcatalog/mapreduce/HCatSplit.java      |    21 +-
 .../hive/hcatalog/mapreduce/HCatTableInfo.java  |    12 +
 .../hcatalog/mapreduce/InitializeInput.java     |     6 +-
 .../hive/hcatalog/mapreduce/InputJobInfo.java   |     5 +
 .../hive/hcatalog/mapreduce/PartInfo.java       |   117 +-
 .../hive/hcatalog/mapreduce/Security.java       |    10 +-
 .../mapreduce/TaskCommitContextRegistry.java    |     6 +-
 .../hcatalog/common/TestHiveClientCache.java    |    37 +-
 .../hcatalog/mapreduce/HCatMapReduceTest.java   |     3 +-
 .../mapreduce/TestHCatOutputFormat.java         |     5 +-
 .../hcatalog/mapreduce/TestHCatPartitioned.java |    32 +-
 .../hcatalog/mapreduce/TestPassProperties.java  |     5 +-
 .../apache/hive/hcatalog/pig/PigHCatUtil.java   |    10 +-
 .../deployers/config/webhcat/webhcat-site.xml   |     9 +-
 .../templeton/deployers/deploy_e2e_artifacts.sh |     3 +
 .../src/test/e2e/templeton/deployers/env.sh     |     1 +
 .../streaming/AbstractRecordWriter.java         |    11 +-
 .../hive/hcatalog/streaming/HiveEndPoint.java   |     9 +-
 .../hive/hcatalog/api/HCatClientHMSImpl.java    |    17 +-
 .../hcatalog/api/repl/TestReplicationTask.java  |    14 +-
 hcatalog/webhcat/svr/pom.xml                    |    13 +-
 .../svr/src/main/config/webhcat-default.xml     |    10 +-
 .../hcatalog/templeton/CompleteDelegator.java   |     6 +-
 .../hcatalog/templeton/SecureProxySupport.java  |     9 +-
 .../hcatalog/templeton/tool/LaunchMapper.java   |     2 +-
 .../templeton/tool/TempletonControllerJob.java  |    15 +-
 .../hive/metastore/TestHiveMetaStore.java       |    30 +
 .../hive/beeline/TestBeeLineWithArgs.java       |    12 +
 .../test/resources/testconfiguration.properties |     9 +-
 .../org/apache/hadoop/hive/ql/QTestUtil.java    |    46 +
 .../org/apache/hive/jdbc/HiveConnection.java    |     3 +-
 metastore/dbs/derby/execute.sh                  |    37 +
 metastore/dbs/derby/prepare.sh                  |    63 +
 metastore/dbs/postgres/execute.sh               |    29 +
 metastore/dbs/postgres/prepare.sh               |    72 +
 .../upgrade/mssql/006-HIVE-9456.mssql.sql       |   323 +
 .../upgrade/mssql/hive-schema-1.2.0.mssql.sql   |   256 +-
 .../upgrade/mssql/hive-schema-1.3.0.mssql.sql   |   256 +-
 .../mssql/upgrade-1.1.0-to-1.2.0.mssql.sql      |     1 +
 .../upgrade/mysql/021-HIVE-7018.mysql.sql       |    53 -
 .../upgrade/mysql/hive-schema-1.2.0.mysql.sql   |    10 +-
 .../upgrade/mysql/hive-schema-1.3.0.mysql.sql   |    10 +-
 .../mysql/upgrade-1.1.0-to-1.2.0.mysql.sql      |     2 +-
 .../hive/metastore/AggregateStatsCache.java     |    33 +-
 .../hadoop/hive/metastore/HiveMetaStore.java    |    27 +-
 .../hive/metastore/HiveMetaStoreClient.java     |     6 +-
 .../hadoop/hive/metastore/IMetaStoreClient.java |     3 +
 .../hive/metastore/MetaStoreDirectSql.java      |    24 +-
 .../hive/metastore/RetryingMetaStoreClient.java |    89 +-
 .../hadoop/hive/metastore/txn/TxnHandler.java   |    35 +-
 .../hive/metastore/TestHiveMetastoreCli.java    |    63 +
 .../hive/metastore/txn/TestTxnHandler.java      |    39 +-
 packaging/src/main/assembly/bin.xml             |     1 +
 pom.xml                                         |     5 +
 .../java/org/apache/hadoop/hive/ql/Context.java |    10 +-
 .../hive/ql/exec/CommonMergeJoinOperator.java   |    54 +-
 .../hadoop/hive/ql/exec/FunctionRegistry.java   |     7 +-
 .../hadoop/hive/ql/exec/HashTableLoader.java    |     4 +-
 .../hadoop/hive/ql/exec/MapJoinOperator.java    |   227 +-
 .../apache/hadoop/hive/ql/exec/ObjectCache.java |     7 +
 .../apache/hadoop/hive/ql/exec/Operator.java    |     4 +
 .../hadoop/hive/ql/exec/ReduceSinkOperator.java |     3 +-
 .../apache/hadoop/hive/ql/exec/Registry.java    |    29 +-
 .../apache/hadoop/hive/ql/exec/Utilities.java   |    18 +
 .../hadoop/hive/ql/exec/mr/ExecDriver.java      |     1 +
 .../hadoop/hive/ql/exec/mr/HashTableLoader.java |     2 +-
 .../hadoop/hive/ql/exec/mr/ObjectCache.java     |     5 +
 .../persistence/BytesBytesMultiHashMap.java     |     1 +
 .../exec/persistence/HybridHashTableConf.java   |    86 +
 .../persistence/HybridHashTableContainer.java   |   248 +-
 .../ql/exec/persistence/KeyValueContainer.java  |    31 +-
 .../ql/exec/persistence/ObjectContainer.java    |    31 +-
 .../hive/ql/exec/spark/HashTableLoader.java     |     2 +-
 .../hadoop/hive/ql/exec/tez/DagUtils.java       |     1 +
 .../hive/ql/exec/tez/HashTableLoader.java       |    65 +-
 .../hadoop/hive/ql/exec/tez/ObjectCache.java    |     6 +
 .../hive/ql/exec/tez/TezSessionState.java       |    13 +-
 .../ql/exec/vector/VectorColumnSetInfo.java     |     3 +-
 .../exec/vector/VectorMapJoinBaseOperator.java  |   185 +
 .../ql/exec/vector/VectorMapJoinOperator.java   |   127 +-
 .../VectorMapJoinOuterFilteredOperator.java     |   120 +
 .../mapjoin/VectorMapJoinCommonOperator.java    |    16 +-
 .../VectorMapJoinGenerateResultOperator.java    |    34 +-
 .../VectorMapJoinInnerBigOnlyLongOperator.java  |     5 +
 ...ctorMapJoinInnerBigOnlyMultiKeyOperator.java |     5 +
 ...VectorMapJoinInnerBigOnlyStringOperator.java |     5 +
 ...ectorMapJoinInnerGenerateResultOperator.java |    15 +
 .../mapjoin/VectorMapJoinInnerLongOperator.java |     4 +
 .../VectorMapJoinInnerMultiKeyOperator.java     |     4 +
 .../VectorMapJoinInnerStringOperator.java       |     4 +
 .../VectorMapJoinLeftSemiLongOperator.java      |     5 +
 .../VectorMapJoinLeftSemiMultiKeyOperator.java  |     5 +
 .../VectorMapJoinLeftSemiStringOperator.java    |     5 +
 ...ectorMapJoinOuterGenerateResultOperator.java |    31 +-
 .../mapjoin/VectorMapJoinOuterLongOperator.java |     4 +
 .../VectorMapJoinOuterMultiKeyOperator.java     |     4 +
 .../VectorMapJoinOuterStringOperator.java       |     4 +
 .../mapjoin/VectorMapJoinRowBytesContainer.java |     2 +-
 .../fast/VectorMapJoinFastBytesHashMap.java     |     4 +-
 .../VectorMapJoinFastBytesHashMultiSet.java     |     4 +-
 .../fast/VectorMapJoinFastBytesHashSet.java     |     4 +-
 .../fast/VectorMapJoinFastBytesHashTable.java   |     4 +-
 .../mapjoin/fast/VectorMapJoinFastHashMap.java  |     4 +-
 .../fast/VectorMapJoinFastHashMultiSet.java     |     4 +-
 .../mapjoin/fast/VectorMapJoinFastHashSet.java  |     4 +-
 .../fast/VectorMapJoinFastHashTable.java        |     4 +-
 .../fast/VectorMapJoinFastHashTableLoader.java  |     4 +-
 .../fast/VectorMapJoinFastLongHashMap.java      |     4 +-
 .../fast/VectorMapJoinFastLongHashMultiSet.java |     4 +-
 .../fast/VectorMapJoinFastLongHashSet.java      |     4 +-
 .../fast/VectorMapJoinFastLongHashTable.java    |     4 +-
 .../fast/VectorMapJoinFastMultiKeyHashMap.java  |     6 +-
 .../VectorMapJoinFastMultiKeyHashMultiSet.java  |     4 +-
 .../fast/VectorMapJoinFastMultiKeyHashSet.java  |     4 +-
 .../fast/VectorMapJoinFastStringHashMap.java    |     4 +-
 .../VectorMapJoinFastStringHashMultiSet.java    |     4 +-
 .../fast/VectorMapJoinFastStringHashSet.java    |     4 +-
 .../fast/VectorMapJoinFastTableContainer.java   |    23 +-
 .../hive/ql/io/orc/ColumnStatisticsImpl.java    |    33 +-
 .../hive/ql/io/orc/DateColumnStatistics.java    |     6 +-
 .../apache/hadoop/hive/ql/io/orc/FileDump.java  |    91 +-
 .../hadoop/hive/ql/io/orc/JsonFileDump.java     |   365 +
 .../hadoop/hive/ql/io/orc/RecordReaderImpl.java |   222 +-
 .../hive/ql/io/sarg/SearchArgumentImpl.java     |    85 +-
 .../ql/lockmgr/zookeeper/ZooKeeperHiveLock.java |    22 +
 .../BucketingSortingReduceSinkOptimizer.java    |    13 +
 .../optimizer/ConstantPropagateProcFactory.java |    83 +-
 .../ql/optimizer/IdentityProjectRemover.java    |    12 +
 .../ql/optimizer/LimitPushdownOptimizer.java    |     9 +-
 .../ql/optimizer/NonBlockingOpDeDupProc.java    |    11 +
 .../hadoop/hive/ql/optimizer/Optimizer.java     |    12 +-
 .../ql/optimizer/calcite/cost/HiveCost.java     |    16 +-
 .../calcite/reloperators/HiveSortExchange.java  |    37 +-
 .../rules/HiveInsertExchange4JoinRule.java      |     6 +-
 .../calcite/translator/HiveOpConverter.java     |    28 +-
 .../translator/HiveOpConverterPostProc.java     |    10 +
 .../hive/ql/optimizer/physical/Vectorizer.java  |    23 +-
 .../hadoop/hive/ql/parse/CalcitePlanner.java    |     1 +
 .../apache/hadoop/hive/ql/parse/HiveParser.g    |    19 +-
 .../org/apache/hadoop/hive/ql/parse/QB.java     |    10 +-
 .../hadoop/hive/ql/parse/SemanticAnalyzer.java  |   104 +-
 .../hadoop/hive/ql/parse/WindowingSpec.java     |     7 +-
 .../apache/hadoop/hive/ql/plan/MapJoinDesc.java |     2 +-
 .../apache/hadoop/hive/ql/plan/PlanUtils.java   |    46 +-
 .../MetaStoreAuthzAPIAuthorizerEmbedOnly.java   |     3 +-
 .../hadoop/hive/ql/session/SessionState.java    |    31 +-
 .../hadoop/hive/ql/txn/compactor/Cleaner.java   |    38 +-
 .../hive/ql/txn/compactor/CompactorThread.java  |    12 +-
 .../hadoop/hive/ql/txn/compactor/Initiator.java |    11 +-
 .../hadoop/hive/ql/txn/compactor/Worker.java    |    42 +-
 .../org/apache/hadoop/hive/ql/udf/UDFMd5.java   |    79 +
 .../hive/ql/udf/generic/GenericUDFQuarter.java  |    85 +
 .../apache/hadoop/hive/ql/TestTxnCommands2.java |    18 +-
 .../fast/TestVectorMapJoinFastLongHashMap.java  |    14 +-
 .../TestVectorMapJoinFastMultiKeyHashMap.java   |    14 +-
 .../hive/ql/io/orc/TestColumnStatistics.java    |    20 +-
 .../hadoop/hive/ql/io/orc/TestJsonFileDump.java |   138 +
 .../hive/ql/io/orc/TestRecordReaderImpl.java    |   170 +-
 .../hive/ql/io/sarg/TestSearchArgumentImpl.java |   104 +-
 ...tedCharsInColumnNameCreateTableNegative.java |    87 +
 .../hadoop/hive/ql/plan/TestViewEntity.java     |   108 +
 .../hive/ql/txn/compactor/TestCleaner.java      |    56 +-
 .../hive/ql/txn/compactor/TestInitiator.java    |    63 +-
 .../hive/ql/txn/compactor/TestWorker.java       |    45 +
 .../hadoop/hive/ql/udf/TestGenericUDFDate.java  |    92 -
 .../hive/ql/udf/TestGenericUDFDateAdd.java      |   145 -
 .../hive/ql/udf/TestGenericUDFDateDiff.java     |   116 -
 .../hive/ql/udf/TestGenericUDFDateSub.java      |   143 -
 .../hadoop/hive/ql/udf/TestGenericUDFUtils.java |    58 -
 .../apache/hadoop/hive/ql/udf/TestUDFMd5.java   |    57 +
 .../hive/ql/udf/generic/TestGenericUDFDate.java |    92 +
 .../ql/udf/generic/TestGenericUDFDateAdd.java   |   143 +
 .../ql/udf/generic/TestGenericUDFDateDiff.java  |   116 +
 .../ql/udf/generic/TestGenericUDFDateSub.java   |   143 +
 .../ql/udf/generic/TestGenericUDFQuarter.java   |   182 +
 .../ql/udf/generic/TestGenericUDFUtils.java     |    57 +
 .../clientpositive/auto_sortmerge_join_13.q     |     2 +
 .../test/queries/clientpositive/bucket_many.q   |    16 +
 .../test/queries/clientpositive/explainuser_2.q |     1 +
 .../extrapolate_part_stats_partial.q            |     2 +
 .../extrapolate_part_stats_partial_ndv.q        |     2 +
 ql/src/test/queries/clientpositive/fold_case.q  |    12 +
 ql/src/test/queries/clientpositive/fold_when.q  |    31 +
 .../clientpositive/hybridgrace_hashjoin_1.q     |   258 +
 .../clientpositive/hybridgrace_hashjoin_2.q     |   152 +
 .../queries/clientpositive/hybridhashjoin.q     |   250 -
 .../clientpositive/insert_overwrite_directory.q |   141 +
 .../queries/clientpositive/limit_pushdown.q     |     4 +
 .../queries/clientpositive/mapjoin_mapjoin.q    |     1 +
 ql/src/test/queries/clientpositive/mergejoin.q  |    17 +
 .../test/queries/clientpositive/tez_join_hash.q |     2 +
 .../test/queries/clientpositive/tez_smb_main.q  |     6 +
 ql/src/test/queries/clientpositive/udf_md5.q    |    13 +
 .../test/queries/clientpositive/udf_quarter.q   |   100 +
 .../clientpositive/vector_binary_join_groupby.q |    55 +
 .../clientpositive/vector_left_outer_join2.q    |    62 +
 .../clientpositive/vector_leftsemi_mapjoin.q    |   403 +
 .../clientpositive/windowing_windowspec.q       |     2 +
 ql/src/test/resources/orc-file-dump.json        |  1354 ++
 .../annotate_stats_join_pkfk.q.out              |    20 +-
 .../results/clientpositive/bucket_many.q.out    |   230 +
 .../encryption_insert_partition_static.q.out    |    14 +-
 .../test/results/clientpositive/fold_case.q.out |   301 +
 .../test/results/clientpositive/fold_when.q.out |   480 +
 .../insert_overwrite_directory.q.out            |  1813 +++
 ql/src/test/results/clientpositive/join32.q.out |    84 +-
 .../clientpositive/join32_lessSize.q.out        |   423 +-
 ql/src/test/results/clientpositive/join33.q.out |    84 +-
 .../clientpositive/join_alt_syntax.q.out        |   306 +-
 .../clientpositive/join_cond_pushdown_2.q.out   |   150 +-
 .../clientpositive/join_cond_pushdown_4.q.out   |   150 +-
 .../results/clientpositive/limit_pushdown.q.out |    88 +
 .../test/results/clientpositive/mergejoin.q.out |   844 +-
 .../ql_rewrite_gbtoidx_cbo_2.q.out              |    14 +-
 .../results/clientpositive/show_functions.q.out |     3 +
 .../results/clientpositive/spark/cbo_gby.q.out  |     4 +-
 .../clientpositive/spark/cbo_udf_udaf.q.out     |     2 +-
 ...pby_complex_types_multi_single_reducer.q.out |    38 +-
 .../results/clientpositive/spark/join32.q.out   |    88 +-
 .../clientpositive/spark/join32_lessSize.q.out  |   286 +-
 .../results/clientpositive/spark/join33.q.out   |    88 +-
 .../clientpositive/spark/join_alt_syntax.q.out  |   210 +-
 .../spark/join_cond_pushdown_2.q.out            |    98 +-
 .../spark/join_cond_pushdown_4.q.out            |    98 +-
 .../spark/lateral_view_explode2.q.out           |     4 +-
 .../clientpositive/spark/limit_pushdown.q.out   |    94 +
 .../clientpositive/spark/union_remove_25.q.out  |     2 +-
 .../clientpositive/spark/union_top_level.q.out  |    16 +-
 .../spark/vector_cast_constant.q.java1.7.out    |    16 +-
 .../spark/vector_cast_constant.q.java1.8.out    |    16 +-
 .../spark/vectorized_timestamp_funcs.q.out      |     4 +-
 .../clientpositive/tez/auto_join29.q.out        |   500 +
 .../clientpositive/tez/explainuser_2.q.out      |  1529 +-
 .../tez/hybridgrace_hashjoin_1.q.out            |  1587 ++
 .../tez/hybridgrace_hashjoin_2.q.out            |  1417 ++
 .../clientpositive/tez/hybridhashjoin.q.out     |  1566 --
 .../clientpositive/tez/limit_pushdown.q.out     |    94 +
 .../results/clientpositive/tez/mergejoin.q.out  |   844 +-
 .../tez/vector_binary_join_groupby.q.out        |   303 +
 .../tez/vector_left_outer_join2.q.out           |   553 +
 .../tez/vector_leftsemi_mapjoin.q.out           | 13807 +++++++++++++++++
 .../test/results/clientpositive/udf_md5.q.out   |    61 +
 .../results/clientpositive/udf_quarter.q.out    |   246 +
 .../vector_binary_join_groupby.q.out            |   293 +
 .../vector_left_outer_join2.q.out               |   568 +
 .../vector_leftsemi_mapjoin.q.out               | 13572 ++++++++++++++++
 .../clientpositive/windowing_windowspec.q.out   |   108 +
 ql/src/test/templates/TestCliDriver.vm          |    18 +-
 ql/src/test/templates/TestCompareCliDriver.vm   |    21 +-
 ql/src/test/templates/TestNegativeCliDriver.vm  |    18 +-
 ql/src/test/templates/TestParseNegative.vm      |    17 +-
 .../hadoop/hive/ql/io/sarg/PredicateLeaf.java   |    19 +-
 service/pom.xml                                 |     5 +
 .../auth/LdapAuthenticationProviderImpl.java    |     2 +-
 .../thrift/EmbeddedThriftBinaryCLIService.java  |     5 +
 .../cli/thrift/ThriftBinaryCLIService.java      |     1 -
 .../apache/hive/service/server/HiveServer2.java |   106 +-
 .../service/cli/session/TestSessionHooks.java   |     3 +-
 testutils/metastore/execute-test-on-lxc.sh      |     7 +-
 .../ptest2/src/main/resources/source-prep.vm    |    11 +
 .../hive/ptest/execution/TestScripts.java       |    23 +
 .../TestScripts.testPrepGit.approved.txt        |     2 +-
 .../TestScripts.testPrepHadoop1.approved.txt    |   111 +
 .../TestScripts.testPrepNone.approved.txt       |     2 +-
 .../TestScripts.testPrepSvn.approved.txt        |     2 +-
 287 files changed, 47828 insertions(+), 6152 deletions(-)
----------------------------------------------------------------------



[20/43] hive git commit: HIVE-11624:Beeline-cli: support hive.cli.print.header in new CLI[beeline-cli branch](Ke Jia, reviewed by Ferdinand Xu)

Posted by se...@apache.org.
HIVE-11624:Beeline-cli: support hive.cli.print.header in new CLI[beeline-cli branch](Ke Jia, reviewed by Ferdinand Xu)


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

Branch: refs/heads/llap
Commit: 1f5c745cd0347321b0462e6a1a9d4b6ebf17599d
Parents: 80f6184
Author: Ke Jia <ke...@intel.com>
Authored: Tue Aug 25 01:57:47 2015 -0400
Committer: Ferdinand Xu <ch...@intel.com>
Committed: Tue Aug 25 01:57:47 2015 -0400

----------------------------------------------------------------------
 beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java   | 9 ++++++++-
 .../src/test/org/apache/hive/beeline/cli/TestHiveCli.java   | 7 +++++++
 2 files changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/1f5c745c/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java b/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java
index 72e9037..b6f244b 100644
--- a/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java
+++ b/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java
@@ -409,7 +409,14 @@ class BeeLineOpts implements Completer {
   }
 
   public boolean getShowHeader() {
-    return showHeader;
+    if (beeLine.isBeeLine()) {
+      return showHeader;
+    } else {
+      boolean header;
+      HiveConf conf = beeLine.getCommands().getHiveConf(true);
+      header = HiveConf.getBoolVar(conf, HiveConf.ConfVars.HIVE_CLI_PRINT_HEADER);
+      return header;
+    }
   }
 
   public void setHeaderInterval(int headerInterval) {

http://git-wip-us.apache.org/repos/asf/hive/blob/1f5c745c/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
----------------------------------------------------------------------
diff --git a/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java b/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
index c7eaa8e..7f6ab13 100644
--- a/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
+++ b/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
@@ -95,6 +95,13 @@ public class TestHiveCli {
   }
 
   @Test
+  public void testSetHeaderValue() {
+    verifyCMD(
+        "create database if not exists test;\ncreate table if not exists test.testTbl(a string, b string);\nset hive.cli.print.header=true;\n select * from test.testTbl;\n",
+        "testtbl.a testtbl.b", os, null, ERRNO_OK);
+  }
+
+  @Test
   public void testHelp() {
     verifyCMD(null, "usage: hive", os, new String[] { "-H" }, ERRNO_ARGS);
   }


[21/43] hive git commit: HIVE-11637: Support hive.cli.print.current.db in new CLI[beeline-cli branch](Ferdinand Xu, reviewed by Dong Chen)

Posted by se...@apache.org.
HIVE-11637: Support hive.cli.print.current.db in new CLI[beeline-cli branch](Ferdinand Xu, reviewed by Dong Chen)


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

Branch: refs/heads/llap
Commit: 3d088de024ee277e9bb1d650ffef71c300266e7f
Parents: 1f5c745
Author: Ferdinand Xu <ch...@intel.com>
Authored: Wed Aug 26 23:18:43 2015 -0400
Committer: Ferdinand Xu <ch...@intel.com>
Committed: Wed Aug 26 23:18:43 2015 -0400

----------------------------------------------------------------------
 .../java/org/apache/hive/beeline/BeeLine.java   |  62 ++++++-----
 .../hive/beeline/ClientCommandHookFactory.java  |  85 +++++++++++++++
 .../org/apache/hive/beeline/ClientHook.java     |  33 ++++++
 .../java/org/apache/hive/beeline/Commands.java  |   8 ++
 .../beeline/TestClientCommandHookFactory.java   |  32 ++++++
 .../apache/hive/beeline/cli/TestHiveCli.java    | 103 ++++++++++++++-----
 6 files changed, 269 insertions(+), 54 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/3d088de0/beeline/src/java/org/apache/hive/beeline/BeeLine.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLine.java b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
index 406059d..1e4759b 100644
--- a/beeline/src/java/org/apache/hive/beeline/BeeLine.java
+++ b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
@@ -94,6 +94,8 @@ import org.apache.hadoop.io.IOUtils;
 import org.apache.hive.beeline.cli.CliOptionsProcessor;
 import org.apache.hive.jdbc.Utils;
 
+import static org.apache.hadoop.hive.metastore.MetaStoreUtils.DEFAULT_DATABASE_NAME;
+
 /**
  * A console SQL shell with command completion.
  * <p>
@@ -132,6 +134,7 @@ public class BeeLine implements Closeable {
   private List<String> batch = null;
   private final Reflector reflector;
   private String dbName = null;
+  private String currentDatabase = null;
 
   private History history;
   private boolean isBeeLine = true;
@@ -1121,32 +1124,8 @@ public class BeeLine implements Closeable {
       return cmdMap.values().iterator().next()
           .execute(line);
     } else {
-      boolean needsUpdate = isConfNeedsUpdate(line);
-      boolean res = commands.sql(line, getOpts().getEntireLineAsCommand());
-      if (needsUpdate) {
-        getOpts().setHiveConf(getCommands().getHiveConf(false));
-      }
-      return res;
-    }
-  }
-
-  /**
-   * Update the configurations for the CLI mode in the client side
-   *
-   * @param line
-   */
-  private boolean isConfNeedsUpdate(String line) {
-    if (isBeeLine) {
-      return false;
-    }
-    String[] cmds = line.split(";");
-    boolean containsSetCMD = false;
-    for (String s : cmds) {
-      if (s.toLowerCase().startsWith("set")) {
-        return true;
-      }
+      return commands.sql(line, getOpts().getEntireLineAsCommand());
     }
-    return containsSetCMD;
   }
 
   /**
@@ -1410,7 +1389,27 @@ public class BeeLine implements Closeable {
     HiveConf conf = getCommands().getHiveConf(true);
     prompt = conf.getVar(HiveConf.ConfVars.CLIPROMPT);
     prompt = getCommands().substituteVariables(conf, prompt);
-    return prompt + "> ";
+    return prompt + getFormattedDb(conf) + "> ";
+  }
+
+  /**
+   * Retrieve the current database name string to display, based on the
+   * configuration value.
+   *
+   * @param conf storing whether or not to show current db
+   * @return String to show user for current db value
+   */
+  String getFormattedDb(HiveConf conf) {
+    if (!HiveConf.getBoolVar(conf, HiveConf.ConfVars.CLIPRINTCURRENTDB)) {
+      return "";
+    }
+    String currDb = getCurrentDatabase();
+
+    if (currDb == null) {
+      return "";
+    }
+
+    return " (" + currDb + ")";
   }
 
   String getPromptForBeeline() {
@@ -2158,4 +2157,15 @@ public class BeeLine implements Closeable {
   public void setBeeLine(boolean isBeeLine) {
     this.isBeeLine = isBeeLine;
   }
+
+  public String getCurrentDatabase() {
+    if (currentDatabase == null) {
+      currentDatabase = DEFAULT_DATABASE_NAME;
+    }
+    return currentDatabase;
+  }
+
+  public void setCurrentDatabase(String currentDatabase) {
+    this.currentDatabase = currentDatabase;
+  }
 }

http://git-wip-us.apache.org/repos/asf/hive/blob/3d088de0/beeline/src/java/org/apache/hive/beeline/ClientCommandHookFactory.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/ClientCommandHookFactory.java b/beeline/src/java/org/apache/hive/beeline/ClientCommandHookFactory.java
new file mode 100644
index 0000000..c4d97bc
--- /dev/null
+++ b/beeline/src/java/org/apache/hive/beeline/ClientCommandHookFactory.java
@@ -0,0 +1,85 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hive.beeline;
+
+/**
+ * We need to update some client side information after executing some Hive Commands
+ */
+public class ClientCommandHookFactory {
+  private final static ClientCommandHookFactory instance = new ClientCommandHookFactory();
+
+  private ClientCommandHookFactory() {
+  }
+
+  public static ClientCommandHookFactory get() {
+    return instance;
+  }
+
+  public class SetCommandHook extends ClientHook {
+
+    public SetCommandHook(String sql) {
+      super(sql);
+    }
+
+    @Override
+    public void postHook(BeeLine beeLine) {
+      if (!beeLine.isBeeLine()) {
+        beeLine.getOpts().setHiveConf(beeLine.getCommands().getHiveConf(false));
+      }
+    }
+  }
+
+  public class UseCommandHook extends ClientHook {
+
+    public UseCommandHook(String sql) {
+      super(sql);
+    }
+
+    @Override
+    public void postHook(BeeLine beeLine) {
+      if (!beeLine.isBeeLine()) {
+        // Handler multi-line sql
+        String line = sql.replaceAll("\\s+", " ");
+        String strs[] = line.split(" ");
+        String dbName;
+        if (strs == null || strs.length != 2) {
+          // unable to parse the use command
+          dbName = "";
+        } else {
+          dbName = strs[1];
+        }
+        beeLine.setCurrentDatabase(dbName);
+      }
+    }
+  }
+
+  public ClientHook getHook(String cmdLine) {
+    if (cmdLine.toLowerCase().startsWith("set")) {
+      // Only set A = B command needs updating the configuration stored in client side.
+      if (cmdLine.contains("=")) {
+        return new SetCommandHook(cmdLine);
+      } else {
+        return null;
+      }
+    } else if (cmdLine.toLowerCase().startsWith("use")) {
+      return new UseCommandHook(cmdLine);
+    } else {
+      return null;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/3d088de0/beeline/src/java/org/apache/hive/beeline/ClientHook.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/ClientHook.java b/beeline/src/java/org/apache/hive/beeline/ClientHook.java
new file mode 100644
index 0000000..3de6def
--- /dev/null
+++ b/beeline/src/java/org/apache/hive/beeline/ClientHook.java
@@ -0,0 +1,33 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hive.beeline;
+
+/**
+ * This is the client's hook and used for new Hive CLI. For some configurations like
+ * set and use, it may change some prompt information in the client side. So the hook
+ * will be executed after some of the commands are used.
+ */
+public abstract class ClientHook {
+  protected String sql;
+
+  public ClientHook(String sql) {
+    this.sql = sql;
+  }
+
+  abstract void postHook(BeeLine beeLine);
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/3d088de0/beeline/src/java/org/apache/hive/beeline/Commands.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/Commands.java b/beeline/src/java/org/apache/hive/beeline/Commands.java
index 01349e2..5e5cfec 100644
--- a/beeline/src/java/org/apache/hive/beeline/Commands.java
+++ b/beeline/src/java/org/apache/hive/beeline/Commands.java
@@ -921,6 +921,11 @@ public class Commands {
       return true;
     }
 
+    ClientHook hook = null;
+    if (!beeLine.isBeeLine()) {
+      hook = ClientCommandHookFactory.get().getHook(sql);
+    }
+
     try {
       Statement stmnt = null;
       boolean hasResults;
@@ -988,6 +993,9 @@ public class Commands {
       return beeLine.error(e);
     }
     beeLine.showWarnings();
+    if (hook != null) {
+      hook.postHook(beeLine);
+    }
     return true;
   }
 

http://git-wip-us.apache.org/repos/asf/hive/blob/3d088de0/beeline/src/test/org/apache/hive/beeline/TestClientCommandHookFactory.java
----------------------------------------------------------------------
diff --git a/beeline/src/test/org/apache/hive/beeline/TestClientCommandHookFactory.java b/beeline/src/test/org/apache/hive/beeline/TestClientCommandHookFactory.java
new file mode 100644
index 0000000..c86de0a
--- /dev/null
+++ b/beeline/src/test/org/apache/hive/beeline/TestClientCommandHookFactory.java
@@ -0,0 +1,32 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hive.beeline;
+
+import junit.framework.Assert;
+import org.junit.Test;
+
+public class TestClientCommandHookFactory {
+  @Test
+  public void testGetHook() {
+    Assert.assertNull(ClientCommandHookFactory.get().getHook("set a;"));
+    Assert.assertTrue(ClientCommandHookFactory.get()
+        .getHook("set a=b;") instanceof ClientCommandHookFactory.SetCommandHook);
+    Assert.assertTrue(ClientCommandHookFactory.get()
+        .getHook("USE a.b") instanceof ClientCommandHookFactory.UseCommandHook);
+  }
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/3d088de0/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
----------------------------------------------------------------------
diff --git a/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java b/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
index 7f6ab13..e06d2ea 100644
--- a/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
+++ b/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
@@ -74,92 +74,111 @@ public class TestHiveCli {
     }
   }
 
-  private void verifyCMD(String CMD, String keywords, OutputStream os, String[] options,
-      int retCode) {
+  /**
+   * This method is used for verifying CMD to see whether the output contains the keywords provided.
+   *
+   * @param CMD
+   * @param keywords
+   * @param os
+   * @param options
+   * @param retCode
+   * @param contains
+   */
+  private void verifyCMD(String CMD, String keywords, OutputStream os, String[] options, int retCode,
+      boolean contains) {
     executeCMD(options, CMD, retCode);
     String output = os.toString();
     LOG.debug(output);
-    Assert.assertTrue(
-        "The expected keyword \"" + keywords + "\" doesn't occur in the output: " + output,
-        output.contains(keywords));
+    if (contains) {
+      Assert.assertTrue(
+          "The expected keyword \"" + keywords + "\" doesn't occur in the output: " + output,
+          output.contains(keywords));
+    } else {
+      Assert.assertFalse(
+          "The expected keyword \"" + keywords + "\" doesn't occur in the output: " + output,
+          output.contains(keywords));
+    }
   }
 
   @Test
   public void testInValidCmd() {
-    verifyCMD("!lss\n", "Unknown command: lss", errS, null, ERRNO_OK);
+    verifyCMD("!lss\n", "Unknown command: lss", errS, null, ERRNO_OK, true);
   }
 
   @Test
   public void testSetPromptValue() {
-    verifyCMD("set hive.cli.prompt=MYCLI;SHOW\nTABLES;", "MYCLI> ", os, null, ERRNO_OK);
+    verifyCMD("set hive.cli.prompt=MYCLI;SHOW\nTABLES;", "MYCLI> ", os, null,
+        ERRNO_OK, true);
   }
 
   @Test
   public void testSetHeaderValue() {
     verifyCMD(
         "create database if not exists test;\ncreate table if not exists test.testTbl(a string, b string);\nset hive.cli.print.header=true;\n select * from test.testTbl;\n",
-        "testtbl.a testtbl.b", os, null, ERRNO_OK);
+        "testtbl.a testtbl.b", os, null, ERRNO_OK, true);
   }
 
   @Test
   public void testHelp() {
-    verifyCMD(null, "usage: hive", os, new String[] { "-H" }, ERRNO_ARGS);
+    verifyCMD(null, "usage: hive", os, new String[] { "-H" }, ERRNO_ARGS, true);
   }
 
   @Test
   public void testInvalidDatabaseOptions() {
-    verifyCMD("\nshow tables;\nquit;\n", "Database does not exist: invalidDB", errS,
-        new String[] { "--database", "invalidDB" }, ERRNO_OK);
+    verifyCMD("\nshow tables;\nquit;\n", "Database does not exist: invalidDB",
+        errS, new String[] { "--database", "invalidDB" }, ERRNO_OK, true);
   }
 
   @Test
   public void testDatabaseOptions() {
-    verifyCMD("\nshow tables;\nquit;", "testtbl", os, new String[] { "--database", "test" },
-        ERRNO_OK);
+    verifyCMD("\nshow tables;\nquit;", "testtbl", os,
+        new String[] { "--database", "test" }, ERRNO_OK, true);
   }
 
   @Test
   public void testSourceCmd() {
     File f = generateTmpFile(SOURCE_CONTEXT);
-    verifyCMD("source " + f.getPath() + ";" + "desc testSrcTbl;\nquit;\n", "sc1", os,
-        new String[] { "--database", "test" }, ERRNO_OK);
+    verifyCMD("source " + f.getPath() + ";" + "desc testSrcTbl;\nquit;\n",
+        "sc1", os, new String[] { "--database", "test" }, ERRNO_OK, true);
     f.delete();
   }
 
   @Test
   public void testSourceCmd2() {
     File f = generateTmpFile(SOURCE_CONTEXT3);
-    verifyCMD("source " + f.getPath() + ";" + "desc testSrcTbl3;\nquit;\n", "sc3", os,
-        new String[] { "--database", "test" }, ERRNO_OK);
+    verifyCMD("source " + f.getPath() + ";" + "desc testSrcTbl3;\nquit;\n",
+        "sc3", os, new String[] { "--database", "test" }, ERRNO_OK, true);
     f.delete();
   }
 
   @Test
   public void testSqlFromCmd() {
-    verifyCMD(null, "", os, new String[] { "-e", "show databases;" }, ERRNO_OK);
+    verifyCMD(null, "", os, new String[] { "-e", "show databases;" }, ERRNO_OK, true);
   }
 
   @Test
   public void testSqlFromCmdWithDBName() {
-    verifyCMD(null, "testtbl", os, new String[] { "-e", "show tables;", "--database", "test" },
-        ERRNO_OK);
+    verifyCMD(null, "testtbl", os,
+        new String[] { "-e", "show tables;", "--database", "test" }, ERRNO_OK, true);
   }
 
   @Test
   public void testInvalidOptions() {
-    verifyCMD(null, "The '-e' and '-f' options cannot be specified simultaneously", errS,
-        new String[] { "-e", "show tables;", "-f", "path/to/file" }, ERRNO_ARGS);
+    verifyCMD(null,
+        "The '-e' and '-f' options cannot be specified simultaneously", errS,
+        new String[] { "-e", "show tables;", "-f", "path/to/file" }, ERRNO_ARGS, true);
   }
 
   @Test
   public void testInvalidOptions2() {
-    verifyCMD(null, "Unrecognized option: -k", errS, new String[] { "-k" }, ERRNO_ARGS);
+    verifyCMD(null, "Unrecognized option: -k", errS, new String[] { "-k" },
+        ERRNO_ARGS, true);
   }
 
   @Test
   public void testVariables() {
-    verifyCMD("set system:xxx=5;\nset system:yyy=${system:xxx};\nset system:yyy;", "", os, null,
-        ERRNO_OK);
+    verifyCMD(
+        "set system:xxx=5;\nset system:yyy=${system:xxx};\nset system:yyy;", "", os, null, ERRNO_OK, true);
   }
 
   @Test
@@ -167,14 +186,42 @@ public class TestHiveCli {
     File f = generateTmpFile(SOURCE_CONTEXT2);
     verifyCMD(
         "set hiveconf:zzz=" + f.getAbsolutePath() + ";\nsource ${hiveconf:zzz};\ndesc testSrcTbl2;",
-        "sc2", os, new String[] { "--database", "test" }, ERRNO_OK);
+        "sc2", os, new String[] { "--database", "test" }, ERRNO_OK, true);
     f.delete();
   }
 
   @Test
   public void testErrOutput() {
-    verifyCMD("show tables;set system:xxx=5;set system:yyy=${system:xxx};\nlss;",
-        "cannot recognize input near 'lss' '<EOF>' '<EOF>'", errS, null, ERRNO_OK);
+    verifyCMD(
+        "show tables;set system:xxx=5;set system:yyy=${system:xxx};\nlss;",
+        "cannot recognize input near 'lss' '<EOF>' '<EOF>'", errS, null, ERRNO_OK, true);
+  }
+
+  @Test
+  public void testUseCurrentDB1() {
+    verifyCMD(
+        "create database if not exists testDB; set hive.cli.print.current.db=true;use testDB;\n"
+            + "use default;drop if exists testDB;", "hive (testDB)>", os, null, ERRNO_OK, true);
+  }
+
+  @Test
+  public void testUseCurrentDB2() {
+    verifyCMD(
+        "create database if not exists testDB; set hive.cli.print.current.db=true;use\ntestDB;\nuse default;drop if exists testDB;",
+        "hive (testDB)>", os, null, ERRNO_OK, true);
+  }
+
+  @Test
+  public void testUseCurrentDB3() {
+    verifyCMD(
+        "create database if not exists testDB; set hive.cli.print.current.db=true;use  testDB;\n"
+            + "use default;drop if exists testDB;", "hive (testDB)>", os, null, ERRNO_OK, true);
+  }
+
+  @Test
+  public void testUseInvalidDB() {
+    verifyCMD("set hive.cli.print.current.db=true;use invalidDB;",
+        "hive (invalidDB)>", os, null, ERRNO_OK, false);
   }
 
   private void redirectOutputStream() {


[13/43] hive git commit: HIVE-11236 BeeLine-Cli: use the same output format as old CLI in the new CLI(Ferdinand Xu, reviewed by Xuefu Zhang)

Posted by se...@apache.org.
HIVE-11236 BeeLine-Cli: use the same output format as old CLI in the new CLI(Ferdinand Xu, reviewed by Xuefu Zhang)


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

Branch: refs/heads/llap
Commit: 30aa15556f85b08b4dd8c072bbf3b6ba792459fd
Parents: eccfdf0
Author: Ferdinand Xu <ch...@intel.com>
Authored: Mon Jul 13 21:49:25 2015 -0400
Committer: Ferdinand Xu <ch...@intel.com>
Committed: Mon Jul 13 21:49:25 2015 -0400

----------------------------------------------------------------------
 beeline/src/java/org/apache/hive/beeline/BeeLine.java   |  3 +++
 .../test/org/apache/hive/beeline/cli/TestHiveCli.java   | 12 ++++++------
 2 files changed, 9 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/30aa1555/beeline/src/java/org/apache/hive/beeline/BeeLine.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLine.java b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
index 7c53997..5a22956 100644
--- a/beeline/src/java/org/apache/hive/beeline/BeeLine.java
+++ b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
@@ -827,6 +827,9 @@ public class BeeLine implements Closeable {
           return code;
         }
         getOpts().updateBeeLineOptsFromConf();
+        getOpts().setShowHeader(false);
+        getOpts().setOutputFormat("dsv");
+        getOpts().setDelimiterForDSV(' ');
       }
 
       if (getOpts().getScriptFile() != null) {

http://git-wip-us.apache.org/repos/asf/hive/blob/30aa1555/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
----------------------------------------------------------------------
diff --git a/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java b/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
index fa94c89..ed4e7c6 100644
--- a/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
+++ b/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
@@ -41,11 +41,11 @@ public class TestHiveCli {
   private static final int ERRNO_OTHER = 2;
 
   private final static String SOURCE_CONTEXT =
-      "create table if not exists test.testSrcTbl(a string, b string);";
+      "create table if not exists test.testSrcTbl(sc1 string);";
   private final static String SOURCE_CONTEXT2 =
-      "create table if not exists test.testSrcTbl2(a string);";
+      "create table if not exists test.testSrcTbl2(sc2 string);";
   private final static String SOURCE_CONTEXT3 =
-      "create table if not exists test.testSrcTbl3(a string);";
+      "create table if not exists test.testSrcTbl3(sc3 string);";
   final static String CMD =
       "create database if not exists test;\ncreate table if not exists test.testTbl(a string, b "
           + "string);\n";
@@ -107,7 +107,7 @@ public class TestHiveCli {
   @Test
   public void testSourceCmd() {
     File f = generateTmpFile(SOURCE_CONTEXT);
-    verifyCMD("source " + f.getPath() + ";" + "desc testSrcTbl;\nquit;\n", "col_name", os,
+    verifyCMD("source " + f.getPath() + ";" + "desc testSrcTbl;\nquit;\n", "sc1", os,
         new String[] { "--database", "test" }, ERRNO_OK);
     f.delete();
   }
@@ -115,7 +115,7 @@ public class TestHiveCli {
   @Test
   public void testSourceCmd2() {
     File f = generateTmpFile(SOURCE_CONTEXT3);
-    verifyCMD("source " + f.getPath() + ";" + "desc testSrcTbl3;\nquit;\n", "col_name", os,
+    verifyCMD("source " + f.getPath() + ";" + "desc testSrcTbl3;\nquit;\n", "sc3", os,
         new String[] { "--database", "test" }, ERRNO_OK);
     f.delete();
   }
@@ -153,7 +153,7 @@ public class TestHiveCli {
     File f = generateTmpFile(SOURCE_CONTEXT2);
     verifyCMD(
         "set hiveconf:zzz=" + f.getAbsolutePath() + ";\nsource ${hiveconf:zzz};\ndesc testSrcTbl2;",
-        "col_name", os, new String[] { "--database", "test" }, ERRNO_OK);
+        "sc2", os, new String[] { "--database", "test" }, ERRNO_OK);
     f.delete();
   }
 


[17/43] hive git commit: HIVE-11352: Avoid the double connections with 'e' option[beeline-cli branch](Ferdinand Xu via Xuefu Zhang)

Posted by se...@apache.org.
HIVE-11352: Avoid the double connections with 'e' option[beeline-cli branch](Ferdinand Xu via Xuefu Zhang)


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

Branch: refs/heads/llap
Commit: edbd8db0cdda22b8ecbd8bf723c86f2f38fd3bae
Parents: 804f20a
Author: Ferdinand Xu <ch...@intel.com>
Authored: Sun Jul 26 22:32:59 2015 -0400
Committer: Ferdinand Xu <ch...@intel.com>
Committed: Sun Jul 26 22:32:59 2015 -0400

----------------------------------------------------------------------
 beeline/src/java/org/apache/hive/beeline/BeeLine.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/edbd8db0/beeline/src/java/org/apache/hive/beeline/BeeLine.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLine.java b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
index c47b9fe..d4beefc 100644
--- a/beeline/src/java/org/apache/hive/beeline/BeeLine.java
+++ b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
@@ -827,10 +827,10 @@ public class BeeLine implements Closeable {
         }
       } else {
         int code = initArgsFromCliVars(args);
-        defaultConnect(false);
-        if (code != 0){
+        if (code != 0 || exit) {
           return code;
         }
+        defaultConnect(false);
         getOpts().updateBeeLineOptsFromConf();
         getOpts().setShowHeader(false);
         getOpts().setOutputFormat("dsv");


[15/43] hive git commit: HIVE-11275: Merge branch 'master' into beeline-cl branch 07/14/2015i

Posted by se...@apache.org.
HIVE-11275: Merge branch 'master' into beeline-cl branch 07/14/2015i


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

Branch: refs/heads/llap
Commit: e6adedc1ca83ee30492dc3c05b16aeb81e640aef
Parents: 0ac8f6c e61a1a9
Author: Xuefu Zhang <xz...@Cloudera.com>
Authored: Wed Jul 15 21:33:21 2015 -0700
Committer: Xuefu Zhang <xz...@Cloudera.com>
Committed: Wed Jul 15 21:33:21 2015 -0700

----------------------------------------------------------------------
 .gitignore                                      |    1 +
 .../org/apache/hive/beeline/BeeLineOpts.java    |    4 +-
 .../java/org/apache/hive/beeline/Commands.java  |   23 +-
 bin/ext/hplsql.sh                               |   37 +
 bin/hplsql                                      |   25 +
 bin/hplsql.cmd                                  |   58 +
 .../apache/hadoop/hive/common/FileUtils.java    |    9 +-
 .../hadoop/hive/common/JvmPauseMonitor.java     |    7 +-
 .../hive/common/metrics/LegacyMetrics.java      |   30 +-
 .../hive/common/metrics/common/Metrics.java     |   27 +
 .../common/metrics/common/MetricsConstant.java  |   35 +
 .../common/metrics/common/MetricsVariable.java  |   26 +
 .../metrics/metrics2/CodahaleMetrics.java       |   58 +-
 .../org/apache/hadoop/hive/conf/HiveConf.java   |   12 +-
 .../metrics/metrics2/TestCodahaleMetrics.java   |   42 +
 data/files/encoding-utf8.txt                    |   12 +
 data/files/encoding_iso-8859-1.txt              |    4 +
 .../results/positive/external_table_ppd.q.out   |    1 -
 .../positive/hbase_binary_storage_queries.q.out |    2 -
 .../src/test/results/positive/hbase_stats.q.out |    7 -
 .../test/results/positive/hbase_stats2.q.out    |    7 -
 .../test/results/positive/hbase_stats3.q.out    |   12 -
 .../positive/hbase_stats_empty_partition.q.out  |    2 -
 .../SemanticAnalysis/HCatSemanticAnalyzer.java  |    7 +-
 .../src/test/e2e/templeton/deployers/env.sh     |    5 +-
 hcatalog/streaming/pom.xml                      |    6 +
 .../streaming/AbstractRecordWriter.java         |    4 +-
 .../streaming/mutate/HiveConfFactory.java       |   63 +
 .../mutate/UgiMetaStoreClientFactory.java       |  102 +
 .../streaming/mutate/client/AcidTable.java      |  112 +
 .../mutate/client/AcidTableSerializer.java      |  100 +
 .../mutate/client/ClientException.java          |   15 +
 .../mutate/client/ConnectionException.java      |   15 +
 .../streaming/mutate/client/MutatorClient.java  |  149 +
 .../mutate/client/MutatorClientBuilder.java     |  115 +
 .../streaming/mutate/client/TableType.java      |   37 +
 .../streaming/mutate/client/Transaction.java    |  114 +
 .../mutate/client/TransactionException.java     |   15 +
 .../mutate/client/lock/HeartbeatFactory.java    |   30 +
 .../mutate/client/lock/HeartbeatTimerTask.java  |   66 +
 .../streaming/mutate/client/lock/Lock.java      |  305 ++
 .../mutate/client/lock/LockException.java       |   15 +
 .../mutate/client/lock/LockFailureListener.java |   26 +
 .../mutate/doc-files/system-overview.dot        |   27 +
 .../hive/hcatalog/streaming/mutate/package.html |  495 +++
 .../mutate/worker/BucketIdException.java        |   11 +
 .../mutate/worker/BucketIdResolver.java         |   11 +
 .../mutate/worker/BucketIdResolverImpl.java     |   76 +
 .../mutate/worker/CreatePartitionHelper.java    |   83 +
 .../mutate/worker/GroupRevisitedException.java  |   11 +
 .../mutate/worker/GroupingValidator.java        |   74 +
 .../streaming/mutate/worker/Mutator.java        |   21 +
 .../mutate/worker/MutatorCoordinator.java       |  281 ++
 .../worker/MutatorCoordinatorBuilder.java       |   76 +
 .../streaming/mutate/worker/MutatorFactory.java |   16 +
 .../streaming/mutate/worker/MutatorImpl.java    |   86 +
 .../streaming/mutate/worker/OperationType.java  |    7 +
 .../worker/PartitionCreationException.java      |   15 +
 .../mutate/worker/RecordInspector.java          |   11 +
 .../mutate/worker/RecordInspectorImpl.java      |   45 +
 .../mutate/worker/RecordSequenceException.java  |   11 +
 .../mutate/worker/SequenceValidator.java        |   49 +
 .../mutate/worker/WorkerException.java          |   15 +
 .../streaming/mutate/ExampleUseCase.java        |   82 +
 .../streaming/mutate/MutableRecord.java         |   50 +
 .../mutate/ReflectiveMutatorFactory.java        |   51 +
 .../streaming/mutate/StreamingAssert.java       |  191 +
 .../streaming/mutate/StreamingTestUtils.java    |  261 ++
 .../streaming/mutate/TestMutations.java         |  544 +++
 .../mutate/client/TestAcidTableSerializer.java  |   66 +
 .../mutate/client/TestMutatorClient.java        |  176 +
 .../mutate/client/TestTransaction.java          |   95 +
 .../client/lock/TestHeartbeatTimerTask.java     |  100 +
 .../streaming/mutate/client/lock/TestLock.java  |  310 ++
 .../mutate/worker/TestBucketIdResolverImpl.java |   38 +
 .../mutate/worker/TestGroupingValidator.java    |   70 +
 .../mutate/worker/TestMutatorCoordinator.java   |  234 ++
 .../mutate/worker/TestMutatorImpl.java          |   99 +
 .../mutate/worker/TestRecordInspectorImpl.java  |   31 +
 .../mutate/worker/TestSequenceValidator.java    |   91 +
 .../hive/hcatalog/api/HCatClientHMSImpl.java    |   14 +-
 .../hive/hcatalog/templeton/AppConfig.java      |   28 +-
 .../hcatalog/templeton/SecureProxySupport.java  |    6 +-
 hplsql/pom.xml                                  |  128 +
 .../antlr4/org/apache/hive/hplsql/Hplsql.g4     | 1426 ++++++++
 .../java/org/apache/hive/hplsql/Arguments.java  |  206 ++
 .../main/java/org/apache/hive/hplsql/Conf.java  |  175 +
 .../main/java/org/apache/hive/hplsql/Conn.java  |  243 ++
 .../java/org/apache/hive/hplsql/Converter.java  |   56 +
 .../main/java/org/apache/hive/hplsql/Copy.java  |  426 +++
 .../main/java/org/apache/hive/hplsql/Exec.java  | 1959 +++++++++++
 .../java/org/apache/hive/hplsql/Expression.java |  574 +++
 .../main/java/org/apache/hive/hplsql/File.java  |  132 +
 .../java/org/apache/hive/hplsql/Handler.java    |   41 +
 .../java/org/apache/hive/hplsql/Hplsql.java     |   25 +
 .../java/org/apache/hive/hplsql/Interval.java   |  109 +
 .../main/java/org/apache/hive/hplsql/Query.java |  155 +
 .../main/java/org/apache/hive/hplsql/Scope.java |   69 +
 .../java/org/apache/hive/hplsql/Select.java     |  411 +++
 .../java/org/apache/hive/hplsql/Signal.java     |   48 +
 .../main/java/org/apache/hive/hplsql/Stmt.java  | 1021 ++++++
 .../org/apache/hive/hplsql/StreamGobbler.java   |   51 +
 .../main/java/org/apache/hive/hplsql/Timer.java |   59 +
 .../main/java/org/apache/hive/hplsql/Udf.java   |  117 +
 .../main/java/org/apache/hive/hplsql/Utils.java |  289 ++
 .../main/java/org/apache/hive/hplsql/Var.java   |  430 +++
 .../apache/hive/hplsql/functions/Function.java  |  709 ++++
 .../hive/hplsql/functions/FunctionDatetime.java |  151 +
 .../hive/hplsql/functions/FunctionMisc.java     |  188 +
 .../hive/hplsql/functions/FunctionOra.java      |  231 ++
 .../hive/hplsql/functions/FunctionString.java   |  276 ++
 .../org/apache/hive/hplsql/TestHplsqlLocal.java |  330 ++
 hplsql/src/test/queries/local/add.sql           |    2 +
 hplsql/src/test/queries/local/assign.sql        |    7 +
 hplsql/src/test/queries/local/bool_expr.sql     |   47 +
 hplsql/src/test/queries/local/break.sql         |   10 +
 hplsql/src/test/queries/local/case.sql          |   35 +
 hplsql/src/test/queries/local/cast.sql          |    4 +
 hplsql/src/test/queries/local/char.sql          |    1 +
 hplsql/src/test/queries/local/coalesce.sql      |    4 +
 hplsql/src/test/queries/local/concat.sql        |    2 +
 .../src/test/queries/local/create_function.sql  |   11 +
 .../src/test/queries/local/create_function2.sql |   11 +
 .../src/test/queries/local/create_procedure.sql |    9 +
 hplsql/src/test/queries/local/date.sql          |    5 +
 hplsql/src/test/queries/local/dbms_output.sql   |    6 +
 hplsql/src/test/queries/local/declare.sql       |   16 +
 .../test/queries/local/declare_condition.sql    |    8 +
 .../test/queries/local/declare_condition2.sql   |   10 +
 hplsql/src/test/queries/local/decode.sql        |   10 +
 hplsql/src/test/queries/local/equal.sql         |   55 +
 hplsql/src/test/queries/local/exception.sql     |   14 +
 hplsql/src/test/queries/local/exception2.sql    |   10 +
 hplsql/src/test/queries/local/exception3.sql    |    5 +
 hplsql/src/test/queries/local/exception4.sql    |    7 +
 hplsql/src/test/queries/local/exception5.sql    |   10 +
 hplsql/src/test/queries/local/exit.sql          |   31 +
 hplsql/src/test/queries/local/expr.sql          |   21 +
 hplsql/src/test/queries/local/for_range.sql     |   20 +
 hplsql/src/test/queries/local/if.sql            |   68 +
 hplsql/src/test/queries/local/instr.sql         |   49 +
 hplsql/src/test/queries/local/interval.sql      |   15 +
 hplsql/src/test/queries/local/lang.sql          |   57 +
 hplsql/src/test/queries/local/leave.sql         |   33 +
 hplsql/src/test/queries/local/len.sql           |    1 +
 hplsql/src/test/queries/local/length.sql        |    1 +
 hplsql/src/test/queries/local/lower.sql         |    1 +
 hplsql/src/test/queries/local/nvl.sql           |    4 +
 hplsql/src/test/queries/local/nvl2.sql          |    2 +
 hplsql/src/test/queries/local/print.sql         |    5 +
 hplsql/src/test/queries/local/return.sql        |    3 +
 hplsql/src/test/queries/local/seterror.sql      |   10 +
 hplsql/src/test/queries/local/sub.sql           |    1 +
 hplsql/src/test/queries/local/substr.sql        |    2 +
 hplsql/src/test/queries/local/substring.sql     |    8 +
 hplsql/src/test/queries/local/timestamp.sql     |    4 +
 hplsql/src/test/queries/local/timestamp_iso.sql |    2 +
 hplsql/src/test/queries/local/to_char.sql       |    1 +
 hplsql/src/test/queries/local/to_timestamp.sql  |    5 +
 hplsql/src/test/queries/local/trim.sql          |    1 +
 hplsql/src/test/queries/local/twopipes.sql      |    1 +
 hplsql/src/test/queries/local/upper.sql         |    1 +
 hplsql/src/test/queries/local/values_into.sql   |    6 +
 hplsql/src/test/queries/local/while.sql         |   20 +
 hplsql/src/test/results/local/add.out.txt       |    2 +
 hplsql/src/test/results/local/assign.out.txt    |    8 +
 hplsql/src/test/results/local/bool_expr.out.txt |   32 +
 hplsql/src/test/results/local/break.out.txt     |   29 +
 hplsql/src/test/results/local/case.out.txt      |   12 +
 hplsql/src/test/results/local/cast.out.txt      |    8 +
 hplsql/src/test/results/local/char.out.txt      |    1 +
 hplsql/src/test/results/local/coalesce.out.txt  |    4 +
 hplsql/src/test/results/local/concat.out.txt    |    2 +
 .../test/results/local/create_function.out.txt  |    9 +
 .../test/results/local/create_function2.out.txt |   10 +
 .../test/results/local/create_procedure.out.txt |    8 +
 hplsql/src/test/results/local/date.out.txt      |    4 +
 .../src/test/results/local/dbms_output.out.txt  |    3 +
 hplsql/src/test/results/local/declare.out.txt   |   13 +
 .../results/local/declare_condition.out.txt     |    7 +
 .../results/local/declare_condition2.out.txt    |   12 +
 hplsql/src/test/results/local/decode.out.txt    |   13 +
 hplsql/src/test/results/local/equal.out.txt     |   48 +
 hplsql/src/test/results/local/exception.out.txt |   13 +
 .../src/test/results/local/exception2.out.txt   |    5 +
 hplsql/src/test/results/local/exit.out.txt      |   42 +
 hplsql/src/test/results/local/expr.out.txt      |   29 +
 hplsql/src/test/results/local/for_range.out.txt |   65 +
 hplsql/src/test/results/local/if.out.txt        |   40 +
 hplsql/src/test/results/local/instr.out.txt     |   33 +
 hplsql/src/test/results/local/interval.out.txt  |   11 +
 hplsql/src/test/results/local/lang.out.txt      |   34 +
 hplsql/src/test/results/local/leave.out.txt     |   42 +
 hplsql/src/test/results/local/len.out.txt       |    1 +
 hplsql/src/test/results/local/length.out.txt    |    1 +
 hplsql/src/test/results/local/lower.out.txt     |    1 +
 hplsql/src/test/results/local/nvl.out.txt       |    4 +
 hplsql/src/test/results/local/nvl2.out.txt      |    2 +
 .../test/results/local/plhqlexception.out.txt   |    6 +
 .../test/results/local/plhqlexception1.out.txt  |   10 +
 .../test/results/local/plhqlexception2.out.txt  |  106 +
 hplsql/src/test/results/local/print.out.txt     |    6 +
 hplsql/src/test/results/local/return.out.txt    |    3 +
 .../results/local/select_conversion.out.txt     |    9 +
 hplsql/src/test/results/local/seterror.out.txt  |    6 +
 hplsql/src/test/results/local/sub.out.txt       |    1 +
 hplsql/src/test/results/local/substr.out.txt    |    2 +
 hplsql/src/test/results/local/substring.out.txt |    8 +
 hplsql/src/test/results/local/timestamp.out.txt |    4 +
 .../test/results/local/timestamp_iso.out.txt    |    2 +
 hplsql/src/test/results/local/to_char.out.txt   |    1 +
 .../src/test/results/local/to_timestamp.out.txt |    4 +
 hplsql/src/test/results/local/trim.out.txt      |    1 +
 hplsql/src/test/results/local/twopipes.out.txt  |    1 +
 hplsql/src/test/results/local/upper.out.txt     |    1 +
 .../src/test/results/local/values_into.out.txt  |   11 +
 hplsql/src/test/results/local/while.out.txt     |   72 +
 .../hive/metastore/TestMetaStoreMetrics.java    |   66 +-
 .../hive/beeline/TestBeeLineWithArgs.java       |   87 +
 .../test/resources/testconfiguration.properties |    2 +
 .../org/apache/hive/jdbc/HiveConnection.java    |   15 +-
 .../hive/metastore/AggregateStatsCache.java     |    5 +-
 .../hadoop/hive/metastore/HiveMetaStore.java    |   74 +-
 .../hive/metastore/HiveMetaStoreClient.java     |    7 +-
 .../hadoop/hive/metastore/IMetaStoreClient.java |   57 +-
 .../hive/metastore/MetaStoreDirectSql.java      |   56 +-
 .../hive/metastore/MetaStoreSchemaInfo.java     |    6 +-
 .../hadoop/hive/metastore/MetaStoreUtils.java   |   26 -
 .../hadoop/hive/metastore/ObjectStore.java      | 1894 +++++-----
 .../hive/metastore/PartitionDropOptions.java    |    6 -
 .../hadoop/hive/metastore/ProtectMode.java      |   97 -
 .../hive/metastore/tools/HiveMetaTool.java      |   23 +-
 .../hadoop/hive/metastore/TestObjectStore.java  |  230 ++
 pom.xml                                         |    9 +-
 ql/pom.xml                                      |    5 +
 .../java/org/apache/hadoop/hive/ql/Driver.java  |   34 +-
 .../org/apache/hadoop/hive/ql/ErrorMsg.java     |   22 +-
 .../org/apache/hadoop/hive/ql/QueryPlan.java    |    9 +-
 .../hive/ql/exec/CommonMergeJoinOperator.java   |   76 +-
 .../org/apache/hadoop/hive/ql/exec/DDLTask.java |  207 +-
 .../hadoop/hive/ql/exec/FilterOperator.java     |    3 +-
 .../hive/ql/exec/mr/ExecMapperContext.java      |   10 +-
 .../ql/exec/spark/SparkReduceRecordHandler.java |   29 +-
 .../hive/ql/exec/tez/HashTableLoader.java       |   19 +-
 .../ql/exec/tez/MergeFileRecordProcessor.java   |   42 +-
 .../hive/ql/exec/tez/ReduceRecordSource.java    |   33 +-
 .../ql/exec/vector/VectorizedBatchUtil.java     |   41 +-
 .../ql/exec/vector/VectorizedRowBatchCtx.java   |    2 +-
 .../mapjoin/VectorMapJoinRowBytesContainer.java |    9 +-
 .../hadoop/hive/ql/hooks/HookContext.java       |   12 +
 .../hadoop/hive/ql/hooks/LineageInfo.java       |   96 +
 .../hadoop/hive/ql/hooks/LineageLogger.java     |  441 +++
 .../hadoop/hive/ql/hooks/WriteEntity.java       |    6 +-
 .../hadoop/hive/ql/io/AcidInputFormat.java      |   60 +-
 .../hadoop/hive/ql/io/AcidOutputFormat.java     |   49 +-
 .../org/apache/hadoop/hive/ql/io/AcidUtils.java |  152 +-
 .../hadoop/hive/ql/io/FileFormatException.java  |   30 +
 .../ql/io/HiveContextAwareRecordReader.java     |    2 +-
 .../hadoop/hive/ql/io/HiveFileFormatUtils.java  |   19 +-
 .../org/apache/hadoop/hive/ql/io/IOContext.java |   43 -
 .../apache/hadoop/hive/ql/io/IOContextMap.java  |   81 +
 .../apache/hadoop/hive/ql/io/orc/FileDump.java  |    7 +-
 .../hadoop/hive/ql/io/orc/MemoryManager.java    |   39 +-
 .../apache/hadoop/hive/ql/io/orc/OrcFile.java   |   15 +-
 .../hadoop/hive/ql/io/orc/OrcInputFormat.java   |   60 +-
 .../hive/ql/io/orc/OrcNewInputFormat.java       |   16 +-
 .../hadoop/hive/ql/io/orc/OrcNewSplit.java      |   13 +-
 .../hive/ql/io/orc/OrcRawRecordMerger.java      |   66 +-
 .../hadoop/hive/ql/io/orc/OrcRecordUpdater.java |   63 +-
 .../apache/hadoop/hive/ql/io/orc/OrcSplit.java  |   16 +-
 .../hadoop/hive/ql/io/orc/ReaderImpl.java       |   19 +-
 .../hive/ql/io/orc/RecordReaderFactory.java     |    7 +-
 .../ql/io/orc/RunLengthIntegerReaderV2.java     |    8 +-
 .../hadoop/hive/ql/io/orc/WriterImpl.java       |   67 +-
 .../read/ParquetRecordReaderWrapper.java        |  102 +-
 .../ql/io/parquet/write/DataWritableWriter.java |  638 ++--
 .../hive/ql/io/sarg/SearchArgumentImpl.java     |  343 +-
 .../hadoop/hive/ql/lockmgr/DbTxnManager.java    |   20 +-
 .../hadoop/hive/ql/lockmgr/DummyTxnManager.java |    4 +
 .../hadoop/hive/ql/lockmgr/HiveLockObject.java  |   35 +
 .../hadoop/hive/ql/lockmgr/HiveTxnManager.java  |   50 +-
 .../hive/ql/lockmgr/HiveTxnManagerImpl.java     |  140 +
 .../ql/log/NoDeleteRollingFileAppender.java     |  176 +
 .../apache/hadoop/hive/ql/log/PerfLogger.java   |    1 -
 .../apache/hadoop/hive/ql/metadata/Hive.java    |   64 +-
 .../hadoop/hive/ql/metadata/HiveUtils.java      |    8 -
 .../hadoop/hive/ql/metadata/Partition.java      |   51 -
 .../apache/hadoop/hive/ql/metadata/Table.java   |   65 +-
 .../formatting/MetaDataFormatUtils.java         |   24 +-
 .../BucketingSortingReduceSinkOptimizer.java    |    4 +
 .../hive/ql/optimizer/ConstantPropagate.java    |    1 +
 .../ql/optimizer/ConstantPropagateProcCtx.java  |   10 +-
 .../optimizer/ConstantPropagateProcFactory.java |    4 +-
 .../optimizer/RemoveDynamicPruningBySize.java   |    2 +-
 .../ql/optimizer/calcite/HiveCalciteUtil.java   |   25 +-
 .../ql/optimizer/calcite/HiveRelOptUtil.java    |   73 +-
 .../calcite/cost/HiveOnTezCostModel.java        |   25 +-
 .../calcite/reloperators/HiveJoin.java          |   25 +-
 .../calcite/reloperators/HiveMultiJoin.java     |   37 +-
 .../calcite/reloperators/HiveSemiJoin.java      |   57 +-
 .../rules/HiveInsertExchange4JoinRule.java      |   13 +-
 .../calcite/rules/HiveJoinAddNotNullRule.java   |   16 +-
 .../calcite/rules/HiveJoinCommuteRule.java      |   96 +
 .../HiveJoinPushTransitivePredicatesRule.java   |  139 +
 .../calcite/rules/HiveJoinToMultiJoinRule.java  |  106 +-
 .../calcite/rules/HiveRelFieldTrimmer.java      |    3 +-
 .../calcite/stats/HiveRelMdSelectivity.java     |   11 +-
 .../calcite/translator/ASTConverter.java        |   20 +-
 .../calcite/translator/ExprNodeConverter.java   |   17 +
 .../calcite/translator/HiveOpConverter.java     |  161 +-
 .../translator/HiveOpConverterPostProc.java     |   34 +-
 .../translator/PlanModifierForASTConv.java      |   12 +-
 .../ql/optimizer/lineage/ExprProcFactory.java   |   98 +
 .../hive/ql/optimizer/lineage/Generator.java    |   16 +-
 .../hive/ql/optimizer/lineage/LineageCtx.java   |   79 +-
 .../ql/optimizer/lineage/OpProcFactory.java     |  228 +-
 .../ql/optimizer/physical/MemoryDecider.java    |  288 ++
 .../ql/optimizer/physical/SerializeFilter.java  |  178 +
 .../stats/annotation/StatsRulesProcFactory.java |   42 +-
 .../hadoop/hive/ql/parse/CalcitePlanner.java    |   78 +-
 .../hive/ql/parse/DDLSemanticAnalyzer.java      |  112 +-
 .../apache/hadoop/hive/ql/parse/EximUtil.java   |   31 +-
 .../hadoop/hive/ql/parse/GenTezProcContext.java |    8 +
 .../hadoop/hive/ql/parse/GenTezUtils.java       |   59 +-
 .../apache/hadoop/hive/ql/parse/GenTezWork.java |   10 +-
 .../org/apache/hadoop/hive/ql/parse/HiveLexer.g |    5 -
 .../apache/hadoop/hive/ql/parse/HiveParser.g    |   38 +-
 .../hive/ql/parse/LoadSemanticAnalyzer.java     |   79 +-
 .../hadoop/hive/ql/parse/SemanticAnalyzer.java  |   96 +-
 .../hive/ql/parse/SemanticAnalyzerFactory.java  |    8 +-
 .../hadoop/hive/ql/parse/TezCompiler.java       |   28 +-
 .../hive/ql/plan/AbstractOperatorDesc.java      |   14 +
 .../hadoop/hive/ql/plan/AlterTableDesc.java     |   20 +-
 .../apache/hadoop/hive/ql/plan/BaseWork.java    |    7 +
 .../hadoop/hive/ql/plan/DropTableDesc.java      |   26 +-
 .../hadoop/hive/ql/plan/FileSinkDesc.java       |   27 +-
 .../apache/hadoop/hive/ql/plan/FilterDesc.java  |   14 +
 .../hadoop/hive/ql/plan/HiveOperation.java      |    2 -
 .../apache/hadoop/hive/ql/plan/JoinDesc.java    |    4 +
 .../hadoop/hive/ql/plan/MergeJoinWork.java      |    8 +-
 .../hadoop/hive/ql/plan/OperatorDesc.java       |    2 +
 .../hadoop/hive/ql/plan/TableScanDesc.java      |   15 +-
 .../authorization/plugin/HiveAuthorizer.java    |   11 +
 .../plugin/HiveAuthorizerImpl.java              |   22 +
 .../authorization/plugin/HiveV1Authorizer.java  |   20 +
 .../hadoop/hive/ql/session/LineageState.java    |    9 +-
 .../hadoop/hive/ql/session/SessionState.java    |   18 +-
 .../apache/hadoop/hive/ql/stats/StatsUtils.java |   11 +
 .../hive/ql/txn/compactor/CompactorMR.java      |    4 +-
 .../ql/udf/generic/GenericUDAFCollectList.java  |    5 -
 .../ql/udf/generic/GenericUDAFCollectSet.java   |    5 -
 .../ql/udf/generic/GenericUDAFComputeStats.java |    4 +-
 .../hive/ql/udf/generic/GenericUDAFCount.java   |    4 -
 .../ql/udf/generic/GenericUDAFCovariance.java   |    4 -
 .../ql/udf/generic/GenericUDAFCumeDist.java     |    4 -
 .../ql/udf/generic/GenericUDAFDenseRank.java    |    4 -
 .../generic/GenericUDAFHistogramNumeric.java    |    2 +-
 .../generic/GenericUDAFPercentileApprox.java    |    2 +-
 .../udf/generic/NumDistinctValueEstimator.java  |   18 +
 .../hive/ql/udf/generic/NumericHistogram.java   |   14 +
 .../hadoop/hive/ql/util/JavaDataModel.java      |   30 -
 .../hive/ql/exec/TestFileSinkOperator.java      |    3 +-
 .../hadoop/hive/ql/exec/TestOperators.java      |    3 +-
 .../apache/hadoop/hive/ql/io/TestAcidUtils.java |   73 +-
 .../ql/io/TestHiveBinarySearchRecordReader.java |    2 +-
 .../hadoop/hive/ql/io/TestIOContextMap.java     |  133 +
 .../hadoop/hive/ql/io/orc/TestFileDump.java     |   50 +
 .../hive/ql/io/orc/TestInputOutputFormat.java   |  114 +-
 .../hive/ql/io/orc/TestOrcRawRecordMerger.java  |   57 +-
 .../hive/ql/io/orc/TestOrcRecordUpdater.java    |    6 +-
 .../hive/ql/io/sarg/TestSearchArgumentImpl.java |   32 +-
 .../parse/TestUpdateDeleteSemanticAnalyzer.java |    2 +-
 .../hive/ql/txn/compactor/CompactorTest.java    |   20 +-
 .../hive/ql/txn/compactor/TestCleaner.java      |    8 +-
 .../hive/ql/txn/compactor/TestCleaner2.java     |   14 +
 .../hive/ql/txn/compactor/TestInitiator.java    |    4 +
 .../hive/ql/txn/compactor/TestWorker.java       |   49 +-
 .../hive/ql/txn/compactor/TestWorker2.java      |   16 +
 .../alter_partition_invalidspec.q               |    8 -
 .../clientnegative/alter_partition_nodrop.q     |    9 -
 .../alter_partition_nodrop_table.q              |    9 -
 .../clientnegative/alter_partition_offline.q    |   11 -
 .../clientnegative/drop_table_failure3.q        |   12 -
 .../queries/clientnegative/exchange_partition.q |   19 +
 .../queries/clientnegative/load_orc_negative1.q |    4 +
 .../queries/clientnegative/load_orc_negative2.q |    6 +
 .../clientnegative/load_orc_negative_part.q     |   14 +
 .../queries/clientnegative/protectmode_part.q   |   15 -
 .../queries/clientnegative/protectmode_part1.q  |   21 -
 .../queries/clientnegative/protectmode_part2.q  |    9 -
 .../clientnegative/protectmode_part_no_drop.q   |   10 -
 .../clientnegative/protectmode_part_no_drop2.q  |   11 -
 .../queries/clientnegative/protectmode_tbl1.q   |    8 -
 .../queries/clientnegative/protectmode_tbl2.q   |   12 -
 .../queries/clientnegative/protectmode_tbl3.q   |   10 -
 .../queries/clientnegative/protectmode_tbl4.q   |   15 -
 .../queries/clientnegative/protectmode_tbl5.q   |   15 -
 .../queries/clientnegative/protectmode_tbl6.q   |    8 -
 .../queries/clientnegative/protectmode_tbl7.q   |   13 -
 .../queries/clientnegative/protectmode_tbl8.q   |   13 -
 .../clientnegative/protectmode_tbl_no_drop.q    |    9 -
 .../test/queries/clientnegative/sa_fail_hook3.q |    4 -
 .../alter_partition_protect_mode.q              |   26 -
 .../queries/clientpositive/ba_table_union.q     |    2 +-
 .../queries/clientpositive/cbo_rp_auto_join0.q  |    1 +
 .../queries/clientpositive/cbo_rp_auto_join1.q  |    1 +
 .../test/queries/clientpositive/cbo_rp_join0.q  |    1 +
 .../test/queries/clientpositive/constprog_dpp.q |   17 +
 ql/src/test/queries/clientpositive/cp_sel.q     |   11 +
 .../drop_partitions_ignore_protection.q         |   10 -
 .../queries/clientpositive/encoding_nonutf8.q   |    7 +
 .../encryption_insert_partition_static.q        |   17 -
 .../queries/clientpositive/fouter_join_ppr.q    |   73 +
 .../insert_non_utf8_encoding_table.q            |   20 +
 ql/src/test/queries/clientpositive/lineage2.q   |  116 +
 ql/src/test/queries/clientpositive/lineage3.q   |  162 +
 ql/src/test/queries/clientpositive/load_orc.q   |   10 +
 .../test/queries/clientpositive/load_orc_part.q |   15 +
 ql/src/test/queries/clientpositive/mrr.q        |    2 +
 .../test/queries/clientpositive/protectmode.q   |   63 -
 .../test/queries/clientpositive/protectmode2.q  |   23 -
 .../queries/clientpositive/select_same_col.q    |    5 +-
 .../clientpositive/vectorization_part_varchar.q |    7 +
 .../resources/orc-file-dump-bloomfilter.out     |   92 +-
 .../resources/orc-file-dump-bloomfilter2.out    |   92 +-
 .../orc-file-dump-dictionary-threshold.out      |   76 +-
 ql/src/test/resources/orc-file-dump.json        |  108 +-
 ql/src/test/resources/orc-file-dump.out         |   84 +-
 ql/src/test/resources/orc-file-has-null.out     |   62 +-
 .../alter_numbuckets_partitioned_table.q.out    |    8 -
 .../results/beelinepositive/create_like.q.out   |    3 -
 .../results/beelinepositive/create_like2.q.out  |    1 -
 .../beelinepositive/create_like_view.q.out      |    4 -
 .../beelinepositive/create_skewed_table1.q.out  |    3 -
 .../results/beelinepositive/create_view.q.out   |   14 -
 .../create_view_partitioned.q.out               |    3 -
 ql/src/test/results/beelinepositive/ctas.q.out  |    5 -
 .../describe_formatted_view_partitioned.q.out   |    1 -
 .../beelinepositive/describe_table.q.out        |    3 -
 .../test/results/beelinepositive/merge3.q.out   |    1 -
 .../part_inherit_tbl_props.q.out                |    1 -
 .../part_inherit_tbl_props_empty.q.out          |    1 -
 .../part_inherit_tbl_props_with_star.q.out      |    1 -
 .../results/beelinepositive/protectmode2.q.out  |    2 -
 .../test/results/beelinepositive/stats1.q.out   |    2 -
 .../test/results/beelinepositive/stats10.q.out  |    3 -
 .../test/results/beelinepositive/stats11.q.out  |    4 -
 .../test/results/beelinepositive/stats12.q.out  |    5 -
 .../test/results/beelinepositive/stats13.q.out  |    6 -
 .../test/results/beelinepositive/stats14.q.out  |    5 -
 .../test/results/beelinepositive/stats15.q.out  |    5 -
 .../test/results/beelinepositive/stats16.q.out  |    2 -
 .../test/results/beelinepositive/stats18.q.out  |    2 -
 .../test/results/beelinepositive/stats2.q.out   |    2 -
 .../test/results/beelinepositive/stats3.q.out   |    2 -
 .../test/results/beelinepositive/stats4.q.out   |    6 -
 .../test/results/beelinepositive/stats5.q.out   |    1 -
 .../test/results/beelinepositive/stats6.q.out   |    5 -
 .../test/results/beelinepositive/stats7.q.out   |    3 -
 .../test/results/beelinepositive/stats8.q.out   |   10 -
 .../test/results/beelinepositive/stats9.q.out   |    1 -
 .../beelinepositive/stats_empty_partition.q.out |    1 -
 .../clientnegative/alter_file_format.q.out      |    1 -
 .../alter_view_as_select_with_partition.q.out   |    1 -
 .../clientnegative/exchange_partition.q.out     |   54 +
 .../clientnegative/load_orc_negative1.q.out     |    9 +
 .../clientnegative/load_orc_negative2.q.out     |   25 +
 .../clientnegative/load_orc_negative_part.q.out |   52 +
 .../stats_partialscan_autogether.q.out          |    2 -
 .../clientnegative/udf_assert_true.q.out        |   12 +-
 .../clientnegative/udf_assert_true2.q.out       |    6 +-
 .../clientpositive/alter_file_format.q.out      |   19 -
 .../clientpositive/alter_merge_orc.q.out        |   24 +-
 .../clientpositive/alter_merge_stats_orc.q.out  |   30 +-
 .../alter_numbuckets_partitioned_table.q.out    |   16 -
 .../alter_numbuckets_partitioned_table2.q.out   |   27 -
 ...lter_numbuckets_partitioned_table2_h23.q.out |   27 -
 ...alter_numbuckets_partitioned_table_h23.q.out |   16 -
 .../alter_partition_change_col.q.out            |    8 +-
 .../alter_partition_clusterby_sortby.q.out      |    7 -
 .../clientpositive/alter_skewed_table.q.out     |    6 -
 .../clientpositive/alter_table_cascade.q.out    |    8 +-
 .../clientpositive/alter_table_not_sorted.q.out |    2 -
 .../clientpositive/alter_table_serde2.q.out     |    6 -
 .../clientpositive/alter_view_as_select.q.out   |    3 -
 .../clientpositive/annotate_stats_groupby.q.out |   28 +-
 .../annotate_stats_groupby2.q.out               |    8 +-
 .../annotate_stats_join_pkfk.q.out              |   20 +-
 .../clientpositive/annotate_stats_part.q.out    |    6 +-
 .../clientpositive/annotate_stats_select.q.out  |   52 +-
 .../clientpositive/annotate_stats_table.q.out   |    4 +-
 .../clientpositive/authorization_index.q.out    |    1 -
 .../results/clientpositive/auto_join12.q.out    |   54 +-
 .../results/clientpositive/auto_join13.q.out    |   26 +-
 .../results/clientpositive/auto_join5.q.out     |    8 +-
 .../results/clientpositive/auto_join8.q.out     |    2 +-
 .../auto_join_without_localtask.q.out           |  218 +-
 .../results/clientpositive/ba_table_union.q.out |   16 +-
 .../test/results/clientpositive/bucket5.q.out   |    1 -
 .../clientpositive/cbo_rp_auto_join0.q.out      |   32 +-
 .../clientpositive/cbo_rp_auto_join1.q.out      |  619 ++--
 .../results/clientpositive/cbo_rp_join0.q.out   |  185 +-
 .../test/results/clientpositive/cluster.q.out   |   20 +-
 .../test/results/clientpositive/combine2.q.out  |   16 +-
 .../constantPropagateForSubQuery.q.out          |   38 +-
 .../clientpositive/correlationoptimizer15.q.out |  120 +-
 .../clientpositive/correlationoptimizer6.q.out  | 1011 +++---
 ql/src/test/results/clientpositive/cp_sel.q.out |  195 ++
 .../create_alter_list_bucketing_table1.q.out    |    7 -
 .../results/clientpositive/create_like.q.out    |    9 -
 .../results/clientpositive/create_like2.q.out   |    1 -
 .../clientpositive/create_like_tbl_props.q.out  |    5 -
 .../clientpositive/create_like_view.q.out       |    4 -
 .../clientpositive/create_or_replace_view.q.out |    5 -
 .../clientpositive/create_skewed_table1.q.out   |    3 -
 .../results/clientpositive/create_view.q.out    |   14 -
 .../create_view_partitioned.q.out               |    3 -
 .../clientpositive/create_view_translate.q.out  |    2 -
 .../results/clientpositive/cross_join.q.out     |    8 +-
 ql/src/test/results/clientpositive/ctas.q.out   |    5 -
 .../results/clientpositive/ctas_colname.q.out   |    7 -
 .../results/clientpositive/ctas_hadoop20.q.out  |    5 -
 .../ctas_uses_database_location.q.out           |    1 -
 .../clientpositive/database_location.q.out      |    2 -
 .../results/clientpositive/decimal_serde.q.out  |    2 -
 .../clientpositive/default_file_format.q.out    |    5 -
 .../describe_comment_indent.q.out               |    1 -
 .../describe_comment_nonascii.q.out             |    1 -
 .../describe_formatted_view_partitioned.q.out   |    2 -
 .../clientpositive/describe_syntax.q.out        |    6 -
 .../results/clientpositive/describe_table.q.out |    7 -
 .../dynpart_sort_opt_vectorization.q.out        |   48 +-
 .../dynpart_sort_optimization.q.out             |   32 -
 .../dynpart_sort_optimization2.q.out            |   32 +-
 .../dynpart_sort_optimization_acid.q.out        |   60 +-
 .../clientpositive/encoding_nonutf8.q.out       |   36 +
 .../encryption_insert_partition_dynamic.q.out   |   18 +-
 .../encryption_insert_partition_static.q.out    |  739 +---
 .../encrypted/encryption_insert_values.q.out    |    1 -
 .../clientpositive/exim_hidden_files.q.out      |    1 -
 .../extrapolate_part_stats_full.q.out           |   24 +-
 .../extrapolate_part_stats_partial.q.out        |   76 +-
 .../extrapolate_part_stats_partial_ndv.q.out    |   38 +-
 .../clientpositive/fouter_join_ppr.q.out        | 1694 +++++++++
 .../clientpositive/groupby_sort_1_23.q.out      |   10 +-
 .../clientpositive/groupby_sort_skew_1_23.q.out |   10 +-
 .../clientpositive/index_auto_mult_tables.q.out |   12 +
 .../index_auto_mult_tables_compact.q.out        |    9 +
 .../clientpositive/index_auto_partitioned.q.out |    9 +
 .../clientpositive/index_auto_update.q.out      |    2 +
 .../results/clientpositive/index_bitmap.q.out   |   24 +
 .../index_bitmap_auto_partitioned.q.out         |   12 +
 .../clientpositive/index_bitmap_rc.q.out        |   24 +
 .../results/clientpositive/index_compact.q.out  |   18 +
 .../clientpositive/index_compact_2.q.out        |   18 +
 .../clientpositive/index_skewtable.q.out        |    1 -
 .../clientpositive/infer_bucket_sort.q.out      |   50 -
 .../infer_bucket_sort_bucketed_table.q.out      |    2 -
 .../infer_bucket_sort_convert_join.q.out        |    4 -
 .../infer_bucket_sort_dyn_part.q.out            |   16 -
 .../infer_bucket_sort_grouping_operators.q.out  |   12 -
 .../infer_bucket_sort_list_bucket.q.out         |    4 -
 .../infer_bucket_sort_map_operators.q.out       |    8 -
 .../infer_bucket_sort_merge.q.out               |    4 -
 .../infer_bucket_sort_multi_insert.q.out        |   16 -
 .../infer_bucket_sort_num_buckets.q.out         |    4 -
 .../infer_bucket_sort_reducers_power_two.q.out  |   12 -
 ql/src/test/results/clientpositive/input7.q.out |    2 +-
 .../results/clientpositive/input_part10.q.out   |    5 +-
 .../results/clientpositive/insert_into5.q.out   |    5 +-
 .../insert_non_utf8_encoding_table.q.out        |   89 +
 ql/src/test/results/clientpositive/join12.q.out |   28 +-
 ql/src/test/results/clientpositive/join13.q.out |   32 +-
 ql/src/test/results/clientpositive/join32.q.out |   36 +-
 .../clientpositive/join32_lessSize.q.out        |  118 +-
 ql/src/test/results/clientpositive/join33.q.out |   36 +-
 ql/src/test/results/clientpositive/join34.q.out |    2 +-
 ql/src/test/results/clientpositive/join35.q.out |    2 +-
 ql/src/test/results/clientpositive/join5.q.out  |   20 +-
 ql/src/test/results/clientpositive/join8.q.out  |    2 +-
 .../clientpositive/join_alt_syntax.q.out        |  104 +-
 .../clientpositive/join_cond_pushdown_1.q.out   |   42 +-
 .../clientpositive/join_cond_pushdown_2.q.out   |   62 +-
 .../clientpositive/join_cond_pushdown_3.q.out   |   42 +-
 .../clientpositive/join_cond_pushdown_4.q.out   |   62 +-
 .../results/clientpositive/join_merging.q.out   |  117 +-
 .../results/clientpositive/join_nulls.q.out     |    2 +-
 .../results/clientpositive/lateral_view.q.out   |   68 +-
 .../clientpositive/lateral_view_explode2.q.out  |    6 +-
 .../clientpositive/lateral_view_noalias.q.out   |   22 +-
 .../results/clientpositive/lb_fs_stats.q.out    |    2 -
 .../results/clientpositive/limit_pushdown.q.out |   98 +-
 .../test/results/clientpositive/lineage1.q.out  |    4 +-
 .../test/results/clientpositive/lineage2.q.out  | 2905 ++++++++++++++++
 .../test/results/clientpositive/lineage3.q.out  | 2482 +++++++++++++
 .../clientpositive/list_bucket_dml_1.q.out      |    4 -
 .../list_bucket_dml_10.q.java1.7.out            |    2 -
 .../list_bucket_dml_10.q.java1.8.out            |    2 -
 .../list_bucket_dml_11.q.java1.7.out            |    2 -
 .../list_bucket_dml_11.q.java1.8.out            |    2 -
 .../list_bucket_dml_12.q.java1.7.out            |    4 +-
 .../list_bucket_dml_12.q.java1.8.out            |    2 -
 .../list_bucket_dml_13.q.java1.7.out            |    4 +-
 .../list_bucket_dml_13.q.java1.8.out            |    2 -
 .../clientpositive/list_bucket_dml_14.q.out     |    1 -
 .../list_bucket_dml_2.q.java1.7.out             |    2 -
 .../list_bucket_dml_2.q.java1.8.out             |    2 -
 .../clientpositive/list_bucket_dml_3.q.out      |    2 -
 .../list_bucket_dml_4.q.java1.7.out             |    4 -
 .../list_bucket_dml_4.q.java1.8.out             |    4 -
 .../list_bucket_dml_5.q.java1.7.out             |    4 -
 .../list_bucket_dml_5.q.java1.8.out             |    4 -
 .../list_bucket_dml_6.q.java1.7.out             |    8 -
 .../list_bucket_dml_6.q.java1.8.out             |    8 -
 .../clientpositive/list_bucket_dml_7.q.out      |    8 -
 .../list_bucket_dml_8.q.java1.7.out             |    6 -
 .../list_bucket_dml_8.q.java1.8.out             |    6 -
 .../list_bucket_dml_9.q.java1.7.out             |    4 -
 .../list_bucket_dml_9.q.java1.8.out             |    4 -
 .../list_bucket_query_multiskew_1.q.out         |    2 -
 .../list_bucket_query_multiskew_2.q.out         |    2 -
 .../list_bucket_query_multiskew_3.q.out         |    6 -
 .../list_bucket_query_oneskew_1.q.out           |    2 -
 .../list_bucket_query_oneskew_2.q.out           |    2 -
 .../list_bucket_query_oneskew_3.q.out           |    2 -
 .../clientpositive/load_dyn_part13.q.out        |    8 +-
 .../clientpositive/load_dyn_part14.q.out        |   63 +-
 .../test/results/clientpositive/load_orc.q.out  |   43 +
 .../results/clientpositive/load_orc_part.q.out  |   70 +
 .../clientpositive/louter_join_ppr.q.out        |   74 +-
 .../clientpositive/mapjoin_mapjoin.q.out        |  120 +-
 ql/src/test/results/clientpositive/merge3.q.out |    1 -
 .../results/clientpositive/multiMapJoin1.q.out  |   10 +-
 .../results/clientpositive/multi_insert.q.out   |   32 +-
 ...i_insert_move_tasks_share_dependencies.q.out |   32 +-
 .../results/clientpositive/optional_outer.q.out |   36 +-
 .../results/clientpositive/orc_analyze.q.out    |   48 -
 .../results/clientpositive/orc_create.q.out     |    6 -
 .../orc_dictionary_threshold.q.out              |    2 +-
 .../clientpositive/outer_join_ppr.q.java1.7.out |  168 +-
 .../clientpositive/parallel_orderby.q.out       |    2 -
 .../parquet_array_null_element.q.out            |    1 -
 .../results/clientpositive/parquet_create.q.out |    1 -
 .../clientpositive/parquet_partitioned.q.out    |    1 -
 .../results/clientpositive/parquet_serde.q.out  |    5 -
 .../clientpositive/part_inherit_tbl_props.q.out |    2 -
 .../part_inherit_tbl_props_empty.q.out          |    2 -
 .../part_inherit_tbl_props_with_star.q.out      |    2 -
 .../partition_coltype_literals.q.out            |   16 -
 .../results/clientpositive/ppd_gby_join.q.out   |  104 +-
 .../test/results/clientpositive/ppd_join.q.out  |  106 +-
 .../test/results/clientpositive/ppd_join2.q.out |   88 +-
 .../test/results/clientpositive/ppd_join3.q.out |  114 +-
 .../clientpositive/ppd_outer_join4.q.out        |   88 +-
 .../results/clientpositive/ppd_random.q.out     |   80 +-
 .../results/clientpositive/ppd_udf_case.q.out   |   40 +-
 .../results/clientpositive/ppd_union_view.q.out |   78 +-
 .../results/clientpositive/protectmode2.q.out   |    2 -
 ql/src/test/results/clientpositive/ptf.q.out    |   28 +-
 .../clientpositive/rcfile_default_format.q.out  |    8 -
 .../clientpositive/rcfile_null_value.q.out      |   20 +-
 .../clientpositive/router_join_ppr.q.out        |  170 +-
 .../clientpositive/selectDistinctStar.q.out     |    2 -
 .../clientpositive/select_same_col.q.out        |    8 +-
 .../test/results/clientpositive/skewjoin.q.out  |   46 +-
 .../clientpositive/spark/alter_merge_orc.q.out  |   24 +-
 .../spark/alter_merge_stats_orc.q.out           |   30 +-
 .../clientpositive/spark/auto_join12.q.out      |   54 +-
 .../clientpositive/spark/auto_join13.q.out      |   40 +-
 .../clientpositive/spark/auto_join5.q.out       |   10 +-
 .../clientpositive/spark/auto_join8.q.out       |    2 +-
 .../spark/auto_join_without_localtask.q.out     |   90 +-
 .../results/clientpositive/spark/bucket5.q.out  |    1 -
 .../clientpositive/spark/cross_join.q.out       |    8 +-
 .../results/clientpositive/spark/ctas.q.out     |    5 -
 .../spark/groupby_sort_1_23.q.out               |   10 +-
 .../spark/groupby_sort_skew_1_23.q.out          |   10 +-
 .../infer_bucket_sort_bucketed_table.q.out      |    2 -
 .../spark/infer_bucket_sort_convert_join.q.out  |    4 -
 .../spark/infer_bucket_sort_map_operators.q.out |    8 -
 .../spark/infer_bucket_sort_merge.q.out         |    4 -
 .../spark/infer_bucket_sort_num_buckets.q.out   |    4 -
 .../infer_bucket_sort_reducers_power_two.q.out  |   12 -
 .../results/clientpositive/spark/join12.q.out   |   26 +-
 .../results/clientpositive/spark/join13.q.out   |   82 +-
 .../results/clientpositive/spark/join32.q.out   |  102 +-
 .../clientpositive/spark/join32_lessSize.q.out  |  232 +-
 .../results/clientpositive/spark/join33.q.out   |  102 +-
 .../results/clientpositive/spark/join34.q.out   |    2 +-
 .../results/clientpositive/spark/join35.q.out   |    2 +-
 .../results/clientpositive/spark/join5.q.out    |   20 +-
 .../results/clientpositive/spark/join8.q.out    |    2 +-
 .../clientpositive/spark/join_alt_syntax.q.out  |  272 +-
 .../spark/join_cond_pushdown_1.q.out            |   70 +-
 .../spark/join_cond_pushdown_2.q.out            |  134 +-
 .../spark/join_cond_pushdown_3.q.out            |   70 +-
 .../spark/join_cond_pushdown_4.q.out            |  134 +-
 .../clientpositive/spark/join_merging.q.out     |  115 +-
 .../spark/lateral_view_explode2.q.out           |    6 +-
 .../clientpositive/spark/limit_pushdown.q.out   |   80 +-
 .../spark/list_bucket_dml_10.q.java1.7.out      |    2 -
 .../spark/list_bucket_dml_10.q.java1.8.out      |    2 -
 .../spark/list_bucket_dml_2.q.java1.7.out       |    2 -
 .../spark/list_bucket_dml_2.q.java1.8.out       |    2 -
 .../spark/list_bucket_dml_2.q.out               |  Bin 28747 -> 28667 bytes
 .../clientpositive/spark/load_dyn_part13.q.out  |    8 +-
 .../clientpositive/spark/load_dyn_part14.q.out  |   57 +-
 .../clientpositive/spark/louter_join_ppr.q.out  |  172 +-
 .../clientpositive/spark/mapjoin_mapjoin.q.out  |  202 +-
 .../clientpositive/spark/multi_insert.q.out     |   32 +-
 ...i_insert_move_tasks_share_dependencies.q.out |   32 +-
 .../clientpositive/spark/orc_analyze.q.out      |   22 -
 .../spark/outer_join_ppr.q.java1.7.out          |  362 +-
 .../clientpositive/spark/parallel_orderby.q.out |    2 -
 .../clientpositive/spark/ppd_gby_join.q.out     |  106 +-
 .../results/clientpositive/spark/ppd_join.q.out |  110 +-
 .../clientpositive/spark/ppd_join2.q.out        |   86 +-
 .../clientpositive/spark/ppd_join3.q.out        |  116 +-
 .../clientpositive/spark/ppd_outer_join4.q.out  |  124 +-
 .../test/results/clientpositive/spark/ptf.q.out |   28 +-
 .../clientpositive/spark/router_join_ppr.q.out  |  370 +-
 .../results/clientpositive/spark/skewjoin.q.out |   46 +-
 .../results/clientpositive/spark/stats1.q.out   |    2 -
 .../results/clientpositive/spark/stats10.q.out  |    5 -
 .../results/clientpositive/spark/stats12.q.out  |    9 -
 .../results/clientpositive/spark/stats13.q.out  |   10 -
 .../results/clientpositive/spark/stats14.q.out  |    7 -
 .../results/clientpositive/spark/stats15.q.out  |    7 -
 .../results/clientpositive/spark/stats16.q.out  |    2 -
 .../results/clientpositive/spark/stats18.q.out  |    4 -
 .../results/clientpositive/spark/stats2.q.out   |    2 -
 .../results/clientpositive/spark/stats20.q.out  |    2 -
 .../results/clientpositive/spark/stats3.q.out   |    2 -
 .../results/clientpositive/spark/stats5.q.out   |    1 -
 .../results/clientpositive/spark/stats6.q.out   |    9 -
 .../results/clientpositive/spark/stats7.q.out   |    5 -
 .../results/clientpositive/spark/stats8.q.out   |   18 -
 .../results/clientpositive/spark/stats9.q.out   |    1 -
 .../clientpositive/spark/stats_counter.q.out    |    2 -
 .../spark/stats_counter_partitioned.q.out       |   16 -
 .../clientpositive/spark/stats_noscan_1.q.out   |   17 -
 .../clientpositive/spark/stats_noscan_2.q.out   |    6 -
 .../clientpositive/spark/stats_only_null.q.out  |    4 -
 .../spark/stats_partscan_1_23.q.out             |    6 -
 .../results/clientpositive/spark/statsfs.q.out  |   14 -
 .../results/clientpositive/spark/union22.q.out  |    4 +-
 .../results/clientpositive/spark/union28.q.out  |    4 +-
 .../results/clientpositive/spark/union29.q.out  |    4 +-
 .../results/clientpositive/spark/union30.q.out  |    4 +-
 .../results/clientpositive/spark/union33.q.out  |    4 +-
 .../clientpositive/spark/union_date_trim.q.out  |    4 +-
 .../clientpositive/spark/union_remove_1.q.out   |    5 +-
 .../clientpositive/spark/union_remove_10.q.out  |    3 +-
 .../clientpositive/spark/union_remove_11.q.out  |    3 +-
 .../clientpositive/spark/union_remove_12.q.out  |    3 +-
 .../clientpositive/spark/union_remove_13.q.out  |    1 -
 .../clientpositive/spark/union_remove_14.q.out  |    3 +-
 .../clientpositive/spark/union_remove_15.q.out  |    9 +-
 .../clientpositive/spark/union_remove_16.q.out  |    9 +-
 .../clientpositive/spark/union_remove_17.q.out  |    5 +-
 .../clientpositive/spark/union_remove_18.q.out  |   25 +-
 .../clientpositive/spark/union_remove_19.q.out  |   13 +-
 .../clientpositive/spark/union_remove_2.q.out   |    3 +-
 .../clientpositive/spark/union_remove_20.q.out  |    5 +-
 .../clientpositive/spark/union_remove_21.q.out  |    3 +-
 .../clientpositive/spark/union_remove_22.q.out  |   13 +-
 .../clientpositive/spark/union_remove_23.q.out  |    3 +-
 .../clientpositive/spark/union_remove_24.q.out  |    5 +-
 .../clientpositive/spark/union_remove_25.q.out  |   22 +-
 .../clientpositive/spark/union_remove_3.q.out   |    3 +-
 .../clientpositive/spark/union_remove_4.q.out   |    5 +-
 .../clientpositive/spark/union_remove_5.q.out   |    3 +-
 .../clientpositive/spark/union_remove_6.q.out   |    8 +-
 .../spark/union_remove_6_subq.q.out             |    8 +-
 .../clientpositive/spark/union_remove_7.q.out   |    5 +-
 .../clientpositive/spark/union_remove_8.q.out   |    3 +-
 .../clientpositive/spark/union_remove_9.q.out   |    3 +-
 .../clientpositive/spark/union_top_level.q.out  |  358 +-
 .../clientpositive/spark/vectorized_ptf.q.out   |  136 +-
 .../clientpositive/spark/windowing.q.out        |   40 +-
 ql/src/test/results/clientpositive/stats1.q.out |    2 -
 .../test/results/clientpositive/stats10.q.out   |    5 -
 .../test/results/clientpositive/stats11.q.out   |    8 -
 .../test/results/clientpositive/stats12.q.out   |    9 -
 .../test/results/clientpositive/stats13.q.out   |   10 -
 .../test/results/clientpositive/stats14.q.out   |    7 -
 .../test/results/clientpositive/stats15.q.out   |    7 -
 .../test/results/clientpositive/stats16.q.out   |    2 -
 .../test/results/clientpositive/stats18.q.out   |    4 -
 .../test/results/clientpositive/stats19.q.out   |   12 -
 ql/src/test/results/clientpositive/stats2.q.out |    2 -
 .../test/results/clientpositive/stats20.q.out   |    2 -
 ql/src/test/results/clientpositive/stats3.q.out |    2 -
 ql/src/test/results/clientpositive/stats4.q.out |   10 -
 ql/src/test/results/clientpositive/stats5.q.out |    1 -
 ql/src/test/results/clientpositive/stats6.q.out |    9 -
 ql/src/test/results/clientpositive/stats7.q.out |    5 -
 ql/src/test/results/clientpositive/stats8.q.out |   18 -
 ql/src/test/results/clientpositive/stats9.q.out |    1 -
 .../results/clientpositive/stats_counter.q.out  |    2 -
 .../stats_counter_partitioned.q.out             |   16 -
 .../clientpositive/stats_empty_partition.q.out  |    2 -
 .../clientpositive/stats_invalidation.q.out     |    2 -
 .../stats_list_bucket.q.java1.7.out             |    3 -
 .../stats_list_bucket.q.java1.8.out             |    3 -
 .../results/clientpositive/stats_noscan_1.q.out |   17 -
 .../results/clientpositive/stats_noscan_2.q.out |    6 -
 .../clientpositive/stats_only_null.q.out        |    4 -
 .../clientpositive/stats_partscan_1.q.out       |    6 -
 .../clientpositive/stats_partscan_1_23.q.out    |    6 -
 .../test/results/clientpositive/statsfs.q.out   |   14 -
 .../temp_table_windowing_expressions.q.out      |    8 +-
 .../clientpositive/tez/alter_merge_orc.q.out    |   24 +-
 .../tez/alter_merge_stats_orc.q.out             |   30 +-
 .../clientpositive/tez/constprog_dpp.q.out      |  113 +
 .../results/clientpositive/tez/cross_join.q.out |    8 +-
 .../test/results/clientpositive/tez/ctas.q.out  |    5 -
 .../tez/dynpart_sort_opt_vectorization.q.out    |   48 +-
 .../tez/dynpart_sort_optimization.q.out         |   32 -
 .../tez/dynpart_sort_optimization2.q.out        |   32 +-
 .../clientpositive/tez/explainuser_1.q.out      | 1729 +++++----
 .../clientpositive/tez/explainuser_2.q.out      | 3270 +++++++++---------
 .../results/clientpositive/tez/insert1.q.out    |  392 +--
 .../clientpositive/tez/limit_pushdown.q.out     |   78 +-
 .../clientpositive/tez/mapjoin_mapjoin.q.out    |  266 +-
 .../test/results/clientpositive/tez/mrr.q.out   |   82 +-
 .../clientpositive/tez/orc_analyze.q.out        |   48 -
 .../results/clientpositive/tez/orc_merge9.q.out |  186 +
 .../test/results/clientpositive/tez/ptf.q.out   |   28 +-
 .../clientpositive/tez/selectDistinctStar.q.out |    2 -
 .../results/clientpositive/tez/skewjoin.q.out   |   26 +-
 .../clientpositive/tez/stats_counter.q.out      |    2 -
 .../tez/stats_counter_partitioned.q.out         |   16 -
 .../clientpositive/tez/stats_noscan_1.q.out     |   17 -
 .../clientpositive/tez/stats_only_null.q.out    |    4 -
 .../results/clientpositive/tez/tez_fsstat.q.out |    2 -
 .../results/clientpositive/tez/tez_union.q.out  |   88 +-
 .../tez/tez_union_dynamic_partition.q.out       |   44 +-
 .../tez/tez_union_multiinsert.q.out             |    4 +-
 .../clientpositive/tez/unionDistinct_1.q.out    |   20 +-
 .../clientpositive/tez/vector_coalesce.q.out    |    6 +-
 .../clientpositive/tez/vector_decimal_2.q.out   |   55 +-
 .../tez/vector_decimal_round_2.q.out            |    8 +-
 .../clientpositive/tez/vector_interval_1.q.out  |   24 +-
 .../clientpositive/tez/vectorized_ptf.q.out     |  136 +-
 .../clientpositive/truncate_column.q.out        |   11 -
 .../results/clientpositive/udtf_stack.q.out     |   12 +-
 .../clientpositive/unicode_notation.q.out       |    3 -
 .../test/results/clientpositive/union22.q.out   |    4 +-
 .../test/results/clientpositive/union28.q.out   |    4 +-
 .../test/results/clientpositive/union29.q.out   |    4 +-
 .../test/results/clientpositive/union30.q.out   |    4 +-
 .../test/results/clientpositive/union33.q.out   |    4 +-
 .../clientpositive/unionDistinct_1.q.out        |   20 +-
 .../clientpositive/union_date_trim.q.out        |    4 +-
 .../results/clientpositive/union_remove_1.q.out |    5 +-
 .../clientpositive/union_remove_10.q.out        |    3 +-
 .../clientpositive/union_remove_11.q.out        |    3 +-
 .../clientpositive/union_remove_12.q.out        |    3 +-
 .../clientpositive/union_remove_13.q.out        |    1 -
 .../clientpositive/union_remove_14.q.out        |    3 +-
 .../clientpositive/union_remove_15.q.out        |    9 +-
 .../clientpositive/union_remove_16.q.out        |    9 +-
 .../clientpositive/union_remove_17.q.out        |    5 +-
 .../clientpositive/union_remove_18.q.out        |   25 +-
 .../clientpositive/union_remove_19.q.out        |   13 +-
 .../results/clientpositive/union_remove_2.q.out |    3 +-
 .../clientpositive/union_remove_20.q.out        |    5 +-
 .../clientpositive/union_remove_21.q.out        |    3 +-
 .../clientpositive/union_remove_22.q.out        |   13 +-
 .../clientpositive/union_remove_23.q.out        |    3 +-
 .../clientpositive/union_remove_24.q.out        |    5 +-
 .../clientpositive/union_remove_25.q.out        |   22 +-
 .../results/clientpositive/union_remove_3.q.out |    3 +-
 .../results/clientpositive/union_remove_4.q.out |    5 +-
 .../results/clientpositive/union_remove_5.q.out |    3 +-
 .../results/clientpositive/union_remove_6.q.out |    8 +-
 .../clientpositive/union_remove_6_subq.q.out    |    8 +-
 .../results/clientpositive/union_remove_7.q.out |    5 +-
 .../results/clientpositive/union_remove_8.q.out |    3 +-
 .../results/clientpositive/union_remove_9.q.out |    3 +-
 .../clientpositive/union_top_level.q.out        |  316 +-
 .../clientpositive/vector_coalesce.q.out        |    6 +-
 .../clientpositive/vector_decimal_2.q.out       |   55 +-
 .../clientpositive/vector_decimal_round_2.q.out |    8 +-
 .../clientpositive/vector_interval_1.q.out      |   24 +-
 .../vectorization_part_varchar.q.out            |   72 +
 .../results/clientpositive/vectorized_ptf.q.out |  132 +-
 .../test/results/clientpositive/windowing.q.out |   40 +-
 .../clientpositive/windowing_expressions.q.out  |    8 +-
 .../hadoop/hive/ql/io/sarg/ExpressionTree.java  |  157 +
 .../hadoop/hive/ql/io/sarg/SearchArgument.java  |   14 +-
 .../hive/serde2/AbstractEncodingAwareSerDe.java |    7 +-
 .../apache/hadoop/hive/serde2/SerDeUtils.java   |    4 +-
 .../hive/serde2/avro/AvroDeserializer.java      |   11 +-
 .../objectinspector/ObjectInspectorUtils.java   |   18 +-
 .../hive/serde2/avro/TestAvroDeserializer.java  |   63 +-
 .../avro/TestAvroObjectInspectorGenerator.java  |   33 +
 .../TestObjectInspectorUtils.java               |   22 +
 .../service/cli/session/HiveSessionBase.java    |    2 -
 .../service/cli/session/HiveSessionImpl.java    |   74 +-
 .../cli/session/HiveSessionImplwithUGI.java     |   63 +-
 .../service/cli/thrift/ThriftCLIService.java    |   21 +-
 .../apache/hive/service/server/HiveServer2.java |    6 +-
 .../apache/hive/service/cli/CLIServiceTest.java |  135 +-
 .../apache/hadoop/hive/shims/Hadoop23Shims.java |    5 +-
 906 files changed, 41224 insertions(+), 14620 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/e6adedc1/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/hive/blob/e6adedc1/beeline/src/java/org/apache/hive/beeline/Commands.java
----------------------------------------------------------------------
diff --cc beeline/src/java/org/apache/hive/beeline/Commands.java
index 8c406a3,3cdcfb8..01349e2
--- a/beeline/src/java/org/apache/hive/beeline/Commands.java
+++ b/beeline/src/java/org/apache/hive/beeline/Commands.java
@@@ -46,8 -43,8 +46,9 @@@ import java.sql.ResultSet
  import java.sql.SQLException;
  import java.sql.Statement;
  import java.sql.SQLWarning;
+ import java.util.ArrayList;
  import java.util.Arrays;
 +import java.util.HashMap;
  import java.util.Iterator;
  import java.util.LinkedList;
  import java.util.List;
@@@ -1091,27 -798,42 +1093,36 @@@ public class Commands 
      }
  
      line = line.trim();
-     String[] cmds;
+     List<String> cmdList = new ArrayList<String>();
      if (entireLineAsCommand) {
-       cmds = new String[1];
-       cmds[0] = line;
+       cmdList.add(line);
      } else {
-       cmds = line.split(";");
+       StringBuffer command = new StringBuffer();
+       for (String cmdpart: line.split(";")) {
+         if (cmdpart.endsWith("\\")) {
+           command.append(cmdpart.substring(0, cmdpart.length() -1)).append(";");
+           continue;
+         } else {
+           command.append(cmdpart);
+         }
+         cmdList.add(command.toString());
+         command.setLength(0);
+       }
      }
-     for (int i = 0; i < cmds.length; i++) {
-       String sql = cmds[i].trim();
+     for (int i = 0; i < cmdList.size(); i++) {
+       String sql = cmdList.get(i).trim();
        if (sql.length() != 0) {
 -        if (beeLine.isComment(sql)) {
 -          //skip this and rest cmds in the line
 -          break;
 -        }
 -        if (sql.startsWith(BeeLine.COMMAND_PREFIX)) {
 -          sql = sql.substring(1);
 -        }
 -
 -        String prefix = call ? "call" : "sql";
 -
 -        if (sql.startsWith(prefix)) {
 -          sql = sql.substring(prefix.length());
 +        if (!beeLine.isBeeLine()) {
 +          sql = cliToBeelineCmd(sql);
 +          if (sql.equalsIgnoreCase("quit") || sql.equalsIgnoreCase("exit")) {
 +            beeLine.setExit(true);
 +            return true;
 +          }
          }
  
 -        // batch statements?
 -        if (beeLine.getBatch() != null) {
 -          beeLine.getBatch().add(sql);
 +        // is source CMD
 +        if (isSourceCMD(sql)) {
 +          sourceFile(sql);
            continue;
          }
  

http://git-wip-us.apache.org/repos/asf/hive/blob/e6adedc1/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
----------------------------------------------------------------------


[39/43] hive git commit: HIVE-11132 : Queries using join and group by produce incorrect output when hive.auto.convert.join=false and hive.optimize.reducededuplication=true (Ashutosh Chauhan via Gopal V)

Posted by se...@apache.org.
HIVE-11132 : Queries using join and group by produce incorrect output when hive.auto.convert.join=false and hive.optimize.reducededuplication=true (Ashutosh Chauhan via Gopal V)

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/0463b7ad
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/0463b7ad
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/0463b7ad

Branch: refs/heads/llap
Commit: 0463b7ad8de52cd3f11d2340d471610796397be1
Parents: 7fb8d68
Author: Ashutosh Chauhan <ha...@apache.org>
Authored: Thu Sep 17 01:23:00 2015 -0700
Committer: Ashutosh Chauhan <ha...@apache.org>
Committed: Mon Sep 28 10:43:09 2015 -0700

----------------------------------------------------------------------
 .../correlation/ReduceSinkDeDuplication.java    |  15 +-
 .../queries/clientpositive/join_grp_diff_keys.q |  21 ++
 .../clientpositive/join_grp_diff_keys.q.out     | 190 +++++++++++++++++++
 3 files changed, 220 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/0463b7ad/ql/src/java/org/apache/hadoop/hive/ql/optimizer/correlation/ReduceSinkDeDuplication.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/correlation/ReduceSinkDeDuplication.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/correlation/ReduceSinkDeDuplication.java
index 56334ed..583e72f 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/correlation/ReduceSinkDeDuplication.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/correlation/ReduceSinkDeDuplication.java
@@ -28,6 +28,7 @@ import java.util.Map;
 import java.util.Stack;
 
 import org.apache.hadoop.hive.conf.HiveConf;
+import org.apache.hadoop.hive.conf.HiveConf.ConfVars;
 import org.apache.hadoop.hive.metastore.api.FieldSchema;
 import org.apache.hadoop.hive.ql.exec.GroupByOperator;
 import org.apache.hadoop.hive.ql.exec.JoinOperator;
@@ -78,7 +79,9 @@ public class ReduceSinkDeDuplication implements Transform {
 
     // for auto convert map-joins, it not safe to dedup in here (todo)
     boolean mergeJoins = !pctx.getConf().getBoolVar(HIVECONVERTJOIN) &&
-        !pctx.getConf().getBoolVar(HIVECONVERTJOINNOCONDITIONALTASK);
+        !pctx.getConf().getBoolVar(HIVECONVERTJOINNOCONDITIONALTASK) &&
+        !pctx.getConf().getBoolVar(ConfVars.HIVE_CONVERT_JOIN_BUCKET_MAPJOIN_TEZ) &&
+        !pctx.getConf().getBoolVar(ConfVars.HIVEDYNAMICPARTITIONHASHJOIN);
 
     // If multiple rules can be matched with same cost, last rule will be choosen as a processor
     // see DefaultRuleDispatcher#dispatch()
@@ -177,17 +180,17 @@ public class ReduceSinkDeDuplication implements Transform {
         ReduceSinkDeduplicateProcCtx dedupCtx) throws SemanticException;
 
     // for JOIN-RS case, it's not possible generally to merge if child has
-    // more key/partition columns than parents
+    // less key/partition columns than parents
     protected boolean merge(ReduceSinkOperator cRS, JoinOperator pJoin, int minReducer)
         throws SemanticException {
       List<Operator<?>> parents = pJoin.getParentOperators();
       ReduceSinkOperator[] pRSs = parents.toArray(new ReduceSinkOperator[parents.size()]);
       ReduceSinkDesc cRSc = cRS.getConf();
       ReduceSinkDesc pRS0c = pRSs[0].getConf();
-      if (cRSc.getKeyCols().size() > pRS0c.getKeyCols().size()) {
+      if (cRSc.getKeyCols().size() < pRS0c.getKeyCols().size()) {
         return false;
       }
-      if (cRSc.getPartitionCols().size() > pRS0c.getPartitionCols().size()) {
+      if (cRSc.getPartitionCols().size() != pRS0c.getPartitionCols().size()) {
         return false;
       }
       Integer moveReducerNumTo = checkNumReducer(cRSc.getNumReducers(), pRS0c.getNumReducers());
@@ -211,7 +214,7 @@ public class ReduceSinkDeDuplication implements Transform {
           pexprs[tag] = pRSs[tag].getConf().getKeyCols().get(i);
         }
         int found = CorrelationUtilities.indexOf(cexpr, pexprs, cRS, pRSs, sorted);
-        if (found < 0) {
+        if (found != i) {
           return false;
         }
       }
@@ -223,7 +226,7 @@ public class ReduceSinkDeDuplication implements Transform {
           pexprs[tag] = pRSs[tag].getConf().getPartitionCols().get(i);
         }
         int found = CorrelationUtilities.indexOf(cexpr, pexprs, cRS, pRSs, sorted);
-        if (found < 0) {
+        if (found != i) {
           return false;
         }
       }

http://git-wip-us.apache.org/repos/asf/hive/blob/0463b7ad/ql/src/test/queries/clientpositive/join_grp_diff_keys.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/join_grp_diff_keys.q b/ql/src/test/queries/clientpositive/join_grp_diff_keys.q
new file mode 100644
index 0000000..571df43
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/join_grp_diff_keys.q
@@ -0,0 +1,21 @@
+create table split    (id int, line_id int, orders string);
+create table bar      (id int, line_id int, orders string);
+create table foo      (id int, line_id int, orders string);
+create table forecast (id int, line_id int, orders string);
+
+set hive.auto.convert.join.noconditionaltask=false;
+
+explain 
+SELECT foo.id, count(*) as factor from 
+ foo JOIN bar  ON (foo.id = bar.id and foo.line_id = bar.line_id) 
+ JOIN split    ON (foo.id = split.id and foo.line_id = split.line_id) 
+ JOIN forecast ON (foo.id = forecast.id AND foo.line_id = forecast.line_id) 
+ WHERE foo.orders != 'blah'  
+ group by foo.id;
+
+drop table split;
+drop table bar;
+drop table foo;
+drop table forecast;
+
+reset hive.auto.convert.join.noconditionaltask;

http://git-wip-us.apache.org/repos/asf/hive/blob/0463b7ad/ql/src/test/results/clientpositive/join_grp_diff_keys.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/join_grp_diff_keys.q.out b/ql/src/test/results/clientpositive/join_grp_diff_keys.q.out
new file mode 100644
index 0000000..a3c3c61
--- /dev/null
+++ b/ql/src/test/results/clientpositive/join_grp_diff_keys.q.out
@@ -0,0 +1,190 @@
+PREHOOK: query: create table split    (id int, line_id int, orders string)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@split
+POSTHOOK: query: create table split    (id int, line_id int, orders string)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@split
+PREHOOK: query: create table bar      (id int, line_id int, orders string)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@bar
+POSTHOOK: query: create table bar      (id int, line_id int, orders string)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@bar
+PREHOOK: query: create table foo      (id int, line_id int, orders string)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@foo
+POSTHOOK: query: create table foo      (id int, line_id int, orders string)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@foo
+PREHOOK: query: create table forecast (id int, line_id int, orders string)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@forecast
+POSTHOOK: query: create table forecast (id int, line_id int, orders string)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@forecast
+PREHOOK: query: explain 
+SELECT foo.id, count(*) as factor from 
+ foo JOIN bar  ON (foo.id = bar.id and foo.line_id = bar.line_id) 
+ JOIN split    ON (foo.id = split.id and foo.line_id = split.line_id) 
+ JOIN forecast ON (foo.id = forecast.id AND foo.line_id = forecast.line_id) 
+ WHERE foo.orders != 'blah'  
+ group by foo.id
+PREHOOK: type: QUERY
+POSTHOOK: query: explain 
+SELECT foo.id, count(*) as factor from 
+ foo JOIN bar  ON (foo.id = bar.id and foo.line_id = bar.line_id) 
+ JOIN split    ON (foo.id = split.id and foo.line_id = split.line_id) 
+ JOIN forecast ON (foo.id = forecast.id AND foo.line_id = forecast.line_id) 
+ WHERE foo.orders != 'blah'  
+ group by foo.id
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+  Stage-1 is a root stage
+  Stage-2 depends on stages: Stage-1
+  Stage-0 depends on stages: Stage-2
+
+STAGE PLANS:
+  Stage: Stage-1
+    Map Reduce
+      Map Operator Tree:
+          TableScan
+            alias: foo
+            Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+            Filter Operator
+              predicate: ((id is not null and line_id is not null) and (orders <> 'blah')) (type: boolean)
+              Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+              Reduce Output Operator
+                key expressions: id (type: int), line_id (type: int)
+                sort order: ++
+                Map-reduce partition columns: id (type: int), line_id (type: int)
+                Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+          TableScan
+            alias: bar
+            Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+            Filter Operator
+              predicate: (id is not null and line_id is not null) (type: boolean)
+              Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+              Reduce Output Operator
+                key expressions: id (type: int), line_id (type: int)
+                sort order: ++
+                Map-reduce partition columns: id (type: int), line_id (type: int)
+                Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+          TableScan
+            alias: split
+            Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+            Filter Operator
+              predicate: (id is not null and line_id is not null) (type: boolean)
+              Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+              Reduce Output Operator
+                key expressions: id (type: int), line_id (type: int)
+                sort order: ++
+                Map-reduce partition columns: id (type: int), line_id (type: int)
+                Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+          TableScan
+            alias: forecast
+            Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+            Filter Operator
+              predicate: (id is not null and line_id is not null) (type: boolean)
+              Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+              Reduce Output Operator
+                key expressions: id (type: int), line_id (type: int)
+                sort order: ++
+                Map-reduce partition columns: id (type: int), line_id (type: int)
+                Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+      Reduce Operator Tree:
+        Join Operator
+          condition map:
+               Inner Join 0 to 1
+               Inner Join 0 to 2
+               Inner Join 0 to 3
+          keys:
+            0 id (type: int), line_id (type: int)
+            1 id (type: int), line_id (type: int)
+            2 id (type: int), line_id (type: int)
+            3 id (type: int), line_id (type: int)
+          outputColumnNames: _col0
+          Statistics: Num rows: 3 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+          Group By Operator
+            aggregations: count()
+            keys: _col0 (type: int)
+            mode: hash
+            outputColumnNames: _col0, _col1
+            Statistics: Num rows: 3 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+            File Output Operator
+              compressed: false
+              table:
+                  input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+                  output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+                  serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe
+
+  Stage: Stage-2
+    Map Reduce
+      Map Operator Tree:
+          TableScan
+            Reduce Output Operator
+              key expressions: _col0 (type: int)
+              sort order: +
+              Map-reduce partition columns: _col0 (type: int)
+              Statistics: Num rows: 3 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+              value expressions: _col1 (type: bigint)
+      Reduce Operator Tree:
+        Group By Operator
+          aggregations: count(VALUE._col0)
+          keys: KEY._col0 (type: int)
+          mode: mergepartial
+          outputColumnNames: _col0, _col1
+          Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+          File Output Operator
+            compressed: false
+            Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL 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: drop table split
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@split
+PREHOOK: Output: default@split
+POSTHOOK: query: drop table split
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@split
+POSTHOOK: Output: default@split
+PREHOOK: query: drop table bar
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@bar
+PREHOOK: Output: default@bar
+POSTHOOK: query: drop table bar
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@bar
+POSTHOOK: Output: default@bar
+PREHOOK: query: drop table foo
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@foo
+PREHOOK: Output: default@foo
+POSTHOOK: query: drop table foo
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@foo
+POSTHOOK: Output: default@foo
+PREHOOK: query: drop table forecast
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@forecast
+PREHOOK: Output: default@forecast
+POSTHOOK: query: drop table forecast
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@forecast
+POSTHOOK: Output: default@forecast


[38/43] hive git commit: HIVE-11946: TestNotificationListener is flaky (Jimmy, reviewed by Sergio)

Posted by se...@apache.org.
HIVE-11946: TestNotificationListener is flaky (Jimmy, reviewed by Sergio)


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

Branch: refs/heads/llap
Commit: 7fb8d68c76434b046d5963e5b176bd1e111cb805
Parents: ba21806
Author: Jimmy Xiang <jx...@cloudera.com>
Authored: Thu Sep 24 11:05:19 2015 -0700
Committer: Jimmy Xiang <jx...@cloudera.com>
Committed: Mon Sep 28 09:06:18 2015 -0700

----------------------------------------------------------------------
 .../apache/hive/hcatalog/listener/TestNotificationListener.java  | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/7fb8d68c/hcatalog/server-extensions/src/test/java/org/apache/hive/hcatalog/listener/TestNotificationListener.java
----------------------------------------------------------------------
diff --git a/hcatalog/server-extensions/src/test/java/org/apache/hive/hcatalog/listener/TestNotificationListener.java b/hcatalog/server-extensions/src/test/java/org/apache/hive/hcatalog/listener/TestNotificationListener.java
index 827031a..b667454 100644
--- a/hcatalog/server-extensions/src/test/java/org/apache/hive/hcatalog/listener/TestNotificationListener.java
+++ b/hcatalog/server-extensions/src/test/java/org/apache/hive/hcatalog/listener/TestNotificationListener.java
@@ -19,11 +19,11 @@
 
 package org.apache.hive.hcatalog.listener;
 
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Vector;
 
 import javax.jms.Connection;
 import javax.jms.ConnectionFactory;
@@ -64,7 +64,7 @@ import org.junit.Test;
 
 public class TestNotificationListener extends HCatBaseTest implements MessageListener {
 
-  private List<String> actualMessages = new ArrayList<String>();
+  private List<String> actualMessages = new Vector<String>();
 
   @Before
   public void setUp() throws Exception {


[36/43] hive git commit: HIVE-10048: JDBC - Support SSL encryption regardless of Authentication mechanism (Mubashir Kazia, reviewed by Sergio Pena)

Posted by se...@apache.org.
HIVE-10048: JDBC - Support SSL encryption regardless of Authentication mechanism (Mubashir Kazia, reviewed by Sergio Pena)


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

Branch: refs/heads/llap
Commit: abe622be4e82781ea831da3d01c093cdf532c93d
Parents: e570e4f
Author: Sergio Pena <se...@cloudera.com>
Authored: Sun Sep 27 22:10:22 2015 -0500
Committer: Sergio Pena <se...@cloudera.com>
Committed: Sun Sep 27 22:10:22 2015 -0500

----------------------------------------------------------------------
 .../org/apache/hive/jdbc/HiveConnection.java    | 63 ++++++++++++--------
 1 file changed, 37 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/abe622be/jdbc/src/java/org/apache/hive/jdbc/HiveConnection.java
----------------------------------------------------------------------
diff --git a/jdbc/src/java/org/apache/hive/jdbc/HiveConnection.java b/jdbc/src/java/org/apache/hive/jdbc/HiveConnection.java
index ba971fd..2969bc6 100644
--- a/jdbc/src/java/org/apache/hive/jdbc/HiveConnection.java
+++ b/jdbc/src/java/org/apache/hive/jdbc/HiveConnection.java
@@ -419,6 +419,38 @@ public class HiveConnection implements java.sql.Connection {
   }
 
   /**
+   * Create underlying SSL or non-SSL transport
+   *
+   * @return TTransport
+   * @throws TTransportException
+   */
+  private TTransport createUnderlyingTransport() throws TTransportException {
+    TTransport transport = null;
+    // Note: Thrift returns an SSL socket that is already bound to the specified host:port
+    // Therefore an open called on this would be a no-op later
+    // Hence, any TTransportException related to connecting with the peer are thrown here.
+    // Bubbling them up the call hierarchy so that a retry can happen in openTransport,
+    // if dynamic service discovery is configured.
+    if (isSslConnection()) {
+      // get SSL socket
+      String sslTrustStore = sessConfMap.get(JdbcConnectionParams.SSL_TRUST_STORE);
+      String sslTrustStorePassword = sessConfMap.get(
+        JdbcConnectionParams.SSL_TRUST_STORE_PASSWORD);
+
+      if (sslTrustStore == null || sslTrustStore.isEmpty()) {
+        transport = HiveAuthFactory.getSSLSocket(host, port, loginTimeout);
+      } else {
+        transport = HiveAuthFactory.getSSLSocket(host, port, loginTimeout,
+            sslTrustStore, sslTrustStorePassword);
+      }
+    } else {
+      // get non-SSL socket transport
+      transport = HiveAuthFactory.getSocketTransport(host, port, loginTimeout);
+    }
+    return transport;
+  }
+
+  /**
    * Create transport per the connection options
    * Supported transport options are:
    *   - SASL based transports over
@@ -433,6 +465,7 @@ public class HiveConnection implements java.sql.Connection {
    */
   private TTransport createBinaryTransport() throws SQLException, TTransportException {
     try {
+      TTransport socketTransport = createUnderlyingTransport();
       // handle secure connection if specified
       if (!JdbcConnectionParams.AUTH_SIMPLE.equals(sessConfMap.get(JdbcConnectionParams.AUTH_TYPE))) {
         // If Kerberos
@@ -454,46 +487,24 @@ public class HiveConnection implements java.sql.Connection {
         if (sessConfMap.containsKey(JdbcConnectionParams.AUTH_PRINCIPAL)) {
           transport = KerberosSaslHelper.getKerberosTransport(
               sessConfMap.get(JdbcConnectionParams.AUTH_PRINCIPAL), host,
-              HiveAuthFactory.getSocketTransport(host, port, loginTimeout), saslProps,
-              assumeSubject);
+              socketTransport, saslProps, assumeSubject);
         } else {
           // If there's a delegation token available then use token based connection
           String tokenStr = getClientDelegationToken(sessConfMap);
           if (tokenStr != null) {
             transport = KerberosSaslHelper.getTokenTransport(tokenStr,
-                host, HiveAuthFactory.getSocketTransport(host, port, loginTimeout), saslProps);
+                host, socketTransport, saslProps);
           } else {
             // we are using PLAIN Sasl connection with user/password
             String userName = getUserName();
             String passwd = getPassword();
-            // Note: Thrift returns an SSL socket that is already bound to the specified host:port
-            // Therefore an open called on this would be a no-op later
-            // Hence, any TTransportException related to connecting with the peer are thrown here.
-            // Bubbling them up the call hierarchy so that a retry can happen in openTransport,
-            // if dynamic service discovery is configured.
-            if (isSslConnection()) {
-              // get SSL socket
-              String sslTrustStore = sessConfMap.get(JdbcConnectionParams.SSL_TRUST_STORE);
-              String sslTrustStorePassword = sessConfMap.get(
-                JdbcConnectionParams.SSL_TRUST_STORE_PASSWORD);
-
-              if (sslTrustStore == null || sslTrustStore.isEmpty()) {
-                transport = HiveAuthFactory.getSSLSocket(host, port, loginTimeout);
-              } else {
-                transport = HiveAuthFactory.getSSLSocket(host, port, loginTimeout,
-                    sslTrustStore, sslTrustStorePassword);
-              }
-            } else {
-              // get non-SSL socket transport
-              transport = HiveAuthFactory.getSocketTransport(host, port, loginTimeout);
-            }
             // Overlay the SASL transport on top of the base socket transport (SSL or non-SSL)
-            transport = PlainSaslHelper.getPlainTransport(userName, passwd, transport);
+            transport = PlainSaslHelper.getPlainTransport(userName, passwd, socketTransport);
           }
         }
       } else {
         // Raw socket connection (non-sasl)
-        transport = HiveAuthFactory.getSocketTransport(host, port, loginTimeout);
+        transport = socketTransport;
       }
     } catch (SaslException e) {
       throw new SQLException("Could not create secure connection to "


[26/43] hive git commit: HIVE-11796: CLI option is not updated when executing the initial files[beeline-cli](Ferdinand Xu, reviewed by Xuefu Zhang)

Posted by se...@apache.org.
HIVE-11796: CLI option is not updated when executing the initial files[beeline-cli](Ferdinand Xu, reviewed by Xuefu Zhang)


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

Branch: refs/heads/llap
Commit: 6e3b173684f44245c15df64940862f00f6075460
Parents: 6380de2
Author: Ferdinand Xu <ch...@intel.com>
Authored: Wed Sep 16 22:07:47 2015 -0400
Committer: Ferdinand Xu <ch...@intel.com>
Committed: Wed Sep 16 22:07:47 2015 -0400

----------------------------------------------------------------------
 .../java/org/apache/hive/beeline/BeeLine.java   | 24 +-------------------
 .../java/org/apache/hive/beeline/Commands.java  |  4 ++++
 2 files changed, 5 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/6e3b1736/beeline/src/java/org/apache/hive/beeline/BeeLine.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLine.java b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
index d8e44de..e96d933 100644
--- a/beeline/src/java/org/apache/hive/beeline/BeeLine.java
+++ b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
@@ -694,7 +694,6 @@ public class BeeLine implements Closeable {
     if (!commands.isEmpty()) {
       embeddedConnect();
       connectDBInEmbededMode();
-      updateOptsForCli();
       for (Iterator<String> i = commands.iterator(); i.hasNext(); ) {
         String command = i.next().toString();
         debug(loc("executing-command", command));
@@ -811,7 +810,7 @@ public class BeeLine implements Closeable {
     }
   }
 
-  private void updateOptsForCli() {
+  public void updateOptsForCli() {
     getOpts().updateBeeLineOptsFromConf();
     getOpts().setShowHeader(false);
     getOpts().setOutputFormat("dsv");
@@ -844,9 +843,6 @@ public class BeeLine implements Closeable {
           return code;
         }
         defaultConnect(false);
-        updateOptsForCli();
-
-        processInitFiles(opts.getInitFiles());
       }
 
       if (getOpts().getScriptFile() != null) {
@@ -934,24 +930,6 @@ public class BeeLine implements Closeable {
     }
   }
 
-  /**
-   * Only initial files specified by i option will be executed. The hiverc file will be processed by session manager.
-   *
-   * @param files
-   * @throws IOException
-   */
-  public void processInitFiles(String[] files) throws IOException {
-    if (files == null || files.length == 0) {
-      return;
-    }
-    for (String initFile : files) {
-      int rc = executeFile(initFile);
-      if (rc != 0) {
-        System.exit(rc);
-      }
-    }
-  }
-
   private int execute(ConsoleReader reader, boolean exitOnError) {
     String line;
     while (!exit) {

http://git-wip-us.apache.org/repos/asf/hive/blob/6e3b1736/beeline/src/java/org/apache/hive/beeline/Commands.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/Commands.java b/beeline/src/java/org/apache/hive/beeline/Commands.java
index d16b4ec..44dd18b 100644
--- a/beeline/src/java/org/apache/hive/beeline/Commands.java
+++ b/beeline/src/java/org/apache/hive/beeline/Commands.java
@@ -1389,6 +1389,10 @@ public class Commands {
       beeLine.getDatabaseConnections().setConnection(
           new DatabaseConnection(beeLine, driver, url, props));
       beeLine.getDatabaseConnection().getConnection();
+
+      if (!beeLine.isBeeLine()) {
+        beeLine.updateOptsForCli();
+      }
       beeLine.runInit();
 
       beeLine.setCompletions();


[06/43] hive git commit: HIVE-10904 Use beeline-log4j.properties for migrated CLI [beeline-cli Branch] (Chinna Rao Lalam, reviewed by Ferdinand Xu)

Posted by se...@apache.org.
HIVE-10904 Use beeline-log4j.properties for migrated CLI [beeline-cli Branch] (Chinna Rao Lalam, reviewed by Ferdinand Xu)


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

Branch: refs/heads/llap
Commit: 120e33aa56f1a294bf6d2ad0cc7278272cf519b7
Parents: 0b38cd0
Author: Ferdinand Xu <ch...@intel.com>
Authored: Wed Jun 3 18:13:38 2015 -0400
Committer: Ferdinand Xu <ch...@intel.com>
Committed: Wed Jun 3 18:14:41 2015 -0400

----------------------------------------------------------------------
 bin/ext/cli.sh | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/120e33aa/bin/ext/cli.sh
----------------------------------------------------------------------
diff --git a/bin/ext/cli.sh b/bin/ext/cli.sh
index cdce7e3..96a69b0 100644
--- a/bin/ext/cli.sh
+++ b/bin/ext/cli.sh
@@ -21,6 +21,7 @@ updateCli() {
     CLASS=org.apache.hadoop.hive.cli.CliDriver
     JAR=hive-cli-*.jar
   else
+    export HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS -Dlog4j.configuration=beeline-log4j.properties"
     CLASS=org.apache.hive.beeline.cli.HiveCli
     JAR=hive-beeline-*.jar
   fi


[24/43] hive git commit: HIVE-11746: Connect command should not to be allowed from user[beeline-cli branch] (Ferdinand Xu, reviewed by Xuefu Zhang)

Posted by se...@apache.org.
HIVE-11746: Connect command should not to be allowed from user[beeline-cli branch] (Ferdinand Xu, reviewed by Xuefu Zhang)


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

Branch: refs/heads/llap
Commit: 5c39d0772da89eb3692cfb012831f2884d811f6f
Parents: fc53e5d
Author: Ferdinand Xu <ch...@intel.com>
Authored: Wed Sep 9 21:38:16 2015 -0400
Committer: Ferdinand Xu <ch...@intel.com>
Committed: Wed Sep 9 21:38:16 2015 -0400

----------------------------------------------------------------------
 beeline/src/java/org/apache/hive/beeline/BeeLine.java | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/5c39d077/beeline/src/java/org/apache/hive/beeline/BeeLine.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLine.java b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
index 6bc2451..5db1bf7 100644
--- a/beeline/src/java/org/apache/hive/beeline/BeeLine.java
+++ b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
@@ -881,7 +881,7 @@ public class BeeLine implements Closeable {
   }
 
   private int embeddedConnect() {
-    if (!dispatch("!connect " + Utils.URL_PREFIX + " '' ''")) {
+    if (!execCommandWithPrefix("!connect " + Utils.URL_PREFIX + " '' ''")) {
       return ERRNO_OTHER;
     } else {
       return ERRNO_OK;
@@ -1135,11 +1135,7 @@ public class BeeLine implements Closeable {
         return commands.sql(line, getOpts().getEntireLineAsCommand());
       }
     } else {
-      if (line.toLowerCase().startsWith("!connect")) {
-        return execCommandWithPrefix(line);
-      } else {
-        return commands.sql(line, getOpts().getEntireLineAsCommand());
-      }
+      return commands.sql(line, getOpts().getEntireLineAsCommand());
     }
   }
 


[10/43] hive git commit: HIVE-6791: Support variable substition for Beeline shell command (Ferdinand Xu, reviewed by Xuefu Zhang)

Posted by se...@apache.org.
HIVE-6791: Support variable substition for Beeline shell command (Ferdinand Xu, reviewed by Xuefu Zhang)


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

Branch: refs/heads/llap
Commit: 102b23b16bf26cbf439009b4b95542490a082710
Parents: 00e0d55
Author: Ferdinand Xu <ch...@intel.com>
Authored: Sun Jun 28 20:42:54 2015 -0400
Committer: Ferdinand Xu <ch...@intel.com>
Committed: Sun Jun 28 20:42:54 2015 -0400

----------------------------------------------------------------------
 .../java/org/apache/hive/beeline/BeeLine.java   |  75 +---
 .../java/org/apache/hive/beeline/Commands.java  | 430 ++++++++++++++-----
 .../apache/hive/beeline/cli/TestHiveCli.java    |  75 +++-
 .../org/apache/hadoop/hive/cli/CliDriver.java   |  24 +-
 .../hadoop/hive/conf/HiveVariableSource.java    |  24 ++
 .../hadoop/hive/conf/VariableSubstitution.java  |  70 +++
 .../hive/conf/TestVariableSubstitution.java     |  63 +++
 .../java/org/apache/hadoop/hive/ql/Driver.java  |  10 +-
 .../ql/parse/ColumnStatsSemanticAnalyzer.java   |  14 +-
 .../hive/ql/parse/VariableSubstitution.java     |  60 ---
 .../ql/processors/AddResourceProcessor.java     |  11 +-
 .../hive/ql/processors/CompileProcessor.java    |  11 +-
 .../ql/processors/DeleteResourceProcessor.java  |  11 +-
 .../hadoop/hive/ql/processors/DfsProcessor.java |  11 +-
 .../hadoop/hive/ql/processors/SetProcessor.java |  32 +-
 .../service/cli/operation/SQLOperation.java     |  10 +-
 16 files changed, 651 insertions(+), 280 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/102b23b1/beeline/src/java/org/apache/hive/beeline/BeeLine.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLine.java b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
index 66fe322..1d468eb 100644
--- a/beeline/src/java/org/apache/hive/beeline/BeeLine.java
+++ b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
@@ -87,6 +87,7 @@ import org.apache.commons.cli.GnuParser;
 import org.apache.commons.cli.OptionBuilder;
 import org.apache.commons.cli.Options;
 import org.apache.commons.cli.ParseException;
+import org.apache.hadoop.hive.conf.HiveConf;
 import org.apache.hadoop.io.IOUtils;
 import org.apache.hive.beeline.cli.CliOptionsProcessor;
 import org.apache.hive.jdbc.Utils;
@@ -830,7 +831,7 @@ public class BeeLine implements Closeable {
       }
 
       if (getOpts().getScriptFile() != null) {
-        return executeFile(getOpts().getScriptFile(), false);
+        return executeFile(getOpts().getScriptFile());
       }
       try {
         info(getApplicationTitle());
@@ -849,7 +850,7 @@ public class BeeLine implements Closeable {
     if (initFile != null) {
       info("Running init script " + initFile);
       try {
-        return executeFile(initFile, false);
+        return executeFile(initFile);
       } finally {
         exit = false;
       }
@@ -884,7 +885,7 @@ public class BeeLine implements Closeable {
     return ERRNO_OK;
   }
 
-  private int executeFile(String fileName, boolean isSourceCMD) {
+  private int executeFile(String fileName) {
     FileInputStream initStream = null;
     try {
       initStream = new FileInputStream(fileName);
@@ -894,31 +895,8 @@ public class BeeLine implements Closeable {
       return ERRNO_OTHER;
     } finally {
       IOUtils.closeStream(initStream);
-      if(!isSourceCMD) {
-        consoleReader = null;
-        output("");   // dummy new line
-      }
-    }
-  }
-
-  private boolean isSourceCMD(String cmd) {
-    if (cmd == null || cmd.isEmpty())
-      return false;
-    String[] tokens = tokenizeCmd(cmd);
-    return tokens[0].equalsIgnoreCase("!source");
-  }
-
-  private boolean sourceFile(String cmd) {
-    String[] tokens = tokenizeCmd(cmd);
-    String cmd_1 = getFirstCmd(cmd, tokens[0].length());
-    File sourceFile = new File(cmd_1);
-    if (!sourceFile.isFile()) {
-      return false;
-    } else {
-      boolean ret = (executeFile(cmd_1, true) == ERRNO_OK);
-      // For source command, we should not exit even when meeting some empty line.
-      setExit(false);
-      return ret;
+      consoleReader = null;
+      output("");   // dummy new line
     }
   }
 
@@ -933,10 +911,6 @@ public class BeeLine implements Closeable {
 
         // trim line
         line = (line == null) ? null : line.trim();
-        if (!isBeeLine) {
-          line = cliToBeelineCmd(line);
-        }
-
         if (!dispatch(line) && exitOnError) {
           return ERRNO_OTHER;
         }
@@ -1043,31 +1017,6 @@ public class BeeLine implements Closeable {
   }
 
   /**
-   * Extract and clean up the first command in the input.
-   */
-  private String getFirstCmd(String cmd, int length) {
-    return cmd.substring(length).trim();
-  }
-
-  private String cliToBeelineCmd(String cmd) {
-    if (cmd == null)
-      return null;
-    String[] tokens = tokenizeCmd(cmd);
-    if (cmd.equalsIgnoreCase("quit") || cmd.equalsIgnoreCase("exit")
-	|| cmd.equalsIgnoreCase("quit;") || cmd.equals("exit;")) {
-      return null;
-    } else if (tokens[0].equalsIgnoreCase("source")) {
-      return COMMAND_PREFIX + cmd;
-    } else if (cmd.startsWith("!")) {
-      String shell_cmd = cmd.substring(1);
-      return "!sh " + shell_cmd;
-    } else { // local mode
-      // command like dfs
-      return cmd;
-    }
-  }
-
-  /**
    * Dispatch the specified line to the appropriate {@link CommandHandler}.
    *
    * @param line
@@ -1089,10 +1038,6 @@ public class BeeLine implements Closeable {
       return true;
     }
 
-    if(isSourceCMD(line)){
-      return sourceFile(line);
-    }
-
     line = line.trim();
 
     // save it to the current script, if any
@@ -2121,4 +2066,12 @@ public class BeeLine implements Closeable {
   protected Reflector getReflector() {
     return reflector;
   }
+
+  public boolean isBeeLine() {
+    return isBeeLine;
+  }
+
+  public void setBeeLine(boolean isBeeLine) {
+    this.isBeeLine = isBeeLine;
+  }
 }

http://git-wip-us.apache.org/repos/asf/hive/blob/102b23b1/beeline/src/java/org/apache/hive/beeline/Commands.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/Commands.java b/beeline/src/java/org/apache/hive/beeline/Commands.java
index aaf6aec..d490273 100644
--- a/beeline/src/java/org/apache/hive/beeline/Commands.java
+++ b/beeline/src/java/org/apache/hive/beeline/Commands.java
@@ -22,6 +22,10 @@
  */
 package org.apache.hive.beeline;
 
+import org.apache.hadoop.hive.conf.HiveConf;
+import org.apache.hadoop.hive.conf.HiveVariableSource;
+import org.apache.hadoop.hive.conf.SystemVariables;
+import org.apache.hadoop.hive.conf.VariableSubstitution;
 import org.apache.hadoop.io.IOUtils;
 
 import java.io.BufferedReader;
@@ -32,7 +36,6 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.lang.reflect.Method;
-import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLClassLoader;
 import java.sql.CallableStatement;
@@ -44,9 +47,11 @@ import java.sql.SQLException;
 import java.sql.Statement;
 import java.sql.SQLWarning;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
 import java.util.TreeSet;
@@ -219,9 +224,8 @@ public class Commands {
 
 
   public boolean exportedkeys(String line) throws Exception {
-    return metadata("getExportedKeys", new String[] {
-        beeLine.getConnection().getCatalog(), null,
-        arg1(line, "table name"),});
+    return metadata("getExportedKeys",
+        new String[] { beeLine.getConnection().getCatalog(), null, arg1(line, "table name"), });
   }
 
 
@@ -709,10 +713,303 @@ public class Commands {
     return execute(line, false, false);
   }
 
+  /**
+   * This method is used for retrieving the latest configuration from hive server2.
+   * It uses the set command processor.
+   *
+   * @return
+   */
+  private Map<String, String> getHiveVariables() {
+    Map<String, String> result = new HashMap<>();
+    BufferedRows rows = getConfInternal();
+    while (rows.hasNext()) {
+      Rows.Row row = (Rows.Row) rows.next();
+      if (!row.isMeta) {
+        result.put(row.values[0], row.values[1]);
+      }
+    }
+    return result;
+  }
+
+  private HiveConf getHiveConf() {
+    HiveConf conf = new HiveConf();
+    BufferedRows rows = getConfInternal();
+    while (rows.hasNext()) {
+      addConf((Rows.Row) rows.next(), conf);
+    }
+    return conf;
+  }
+
+  private BufferedRows getConfInternal() {
+    Statement stmnt = null;
+    BufferedRows rows = null;
+    try {
+      stmnt = beeLine.createStatement();
+      boolean hasResults = stmnt.execute("set");
+      if (hasResults) {
+        ResultSet rs = stmnt.getResultSet();
+        rows = new BufferedRows(beeLine, rs);
+      }
+    } catch (SQLException e) {
+      beeLine.error(e);
+      if (stmnt != null) {
+        try {
+          stmnt.close();
+        } catch (SQLException e1) {
+          beeLine.error(e1);
+        }
+      }
+    }
+    return rows;
+  }
+
+  private void addConf(Rows.Row r, HiveConf hiveConf) {
+    if (r.isMeta) {
+      return;
+    }
+    if (r.values == null || r.values[0] == null || r.values[0].isEmpty()) {
+      return;
+    }
+    String val = r.values[0];
+    if (r.values[0].startsWith(SystemVariables.SYSTEM_PREFIX) || r.values[0]
+        .startsWith(SystemVariables.ENV_PREFIX)) {
+      return;
+    } else {
+      String[] kv = val.split("=", 2);
+      hiveConf.set(kv[0], kv[1]);
+    }
+  }
+
+  /**
+   * Extract and clean up the first command in the input.
+   */
+  private String getFirstCmd(String cmd, int length) {
+    return cmd.substring(length).trim();
+  }
+
+  private String[] tokenizeCmd(String cmd) {
+    return cmd.split("\\s+");
+  }
+
+  private boolean isSourceCMD(String cmd) {
+    if (cmd == null || cmd.isEmpty())
+      return false;
+    String[] tokens = tokenizeCmd(cmd);
+    return tokens[0].equalsIgnoreCase("!source");
+  }
+
+  private boolean sourceFile(String cmd) {
+    String[] tokens = tokenizeCmd(cmd);
+    String cmd_1 = getFirstCmd(cmd, tokens[0].length());
+
+    cmd_1 = substituteVariables(getHiveConf(), cmd_1);
+    File sourceFile = new File(cmd_1);
+    if (!sourceFile.isFile()) {
+      return false;
+    } else {
+      boolean ret;
+      try {
+        ret = sourceFileInternal(sourceFile);
+      } catch (IOException e) {
+        beeLine.error(e);
+        return false;
+      }
+      return ret;
+    }
+  }
+
+  private boolean sourceFileInternal(File sourceFile) throws IOException {
+    BufferedReader reader = null;
+    try {
+      reader = new BufferedReader(new FileReader(sourceFile));
+      String extra = reader.readLine();
+      String lines = null;
+      while (extra != null) {
+        if (beeLine.isComment(extra)) {
+          continue;
+        }
+        if (lines == null) {
+          lines = extra;
+        } else {
+          lines += "\n" + extra;
+        }
+        extra = reader.readLine();
+      }
+      String[] cmds = lines.split(";");
+      for (String c : cmds) {
+        if (!executeInternal(c, false)) {
+          return false;
+        }
+      }
+    } finally {
+      if (reader != null) {
+        reader.close();
+      }
+    }
+    return true;
+  }
+
+  private String cliToBeelineCmd(String cmd) {
+    if (cmd == null)
+      return null;
+    String[] tokens = tokenizeCmd(cmd);
+    if (tokens[0].equalsIgnoreCase("source")) {
+      return BeeLine.COMMAND_PREFIX + cmd;
+    } else if (cmd.startsWith("!")) {
+      String shell_cmd = cmd.substring(1);
+      return "!sh " + shell_cmd;
+    } else { // local mode
+      // command like dfs
+      return cmd;
+    }
+  }
+
+  // Return false only occurred error when execution the sql and the sql should follow the rules
+  // of beeline.
+  private boolean executeInternal(String sql, boolean call) {
+    if (sql == null || sql.length() == 0) {
+      return true;
+    }
+
+    if (beeLine.isComment(sql)) {
+      //skip this and rest cmds in the line
+      return true;
+    }
+
+    if (sql.startsWith(BeeLine.COMMAND_PREFIX)) {
+      sql = sql.substring(1);
+    }
+
+    String prefix = call ? "call" : "sql";
+
+    if (sql.startsWith(prefix)) {
+      sql = sql.substring(prefix.length());
+    }
+
+    // batch statements?
+    if (beeLine.getBatch() != null) {
+      beeLine.getBatch().add(sql);
+      return true;
+    }
+
+    try {
+      Statement stmnt = null;
+      boolean hasResults;
+      Thread logThread = null;
+
+      try {
+        long start = System.currentTimeMillis();
+
+        if (call) {
+          stmnt = beeLine.getDatabaseConnection().getConnection().prepareCall(sql);
+          hasResults = ((CallableStatement) stmnt).execute();
+        } else {
+          stmnt = beeLine.createStatement();
+          if (beeLine.getOpts().isSilent()) {
+            hasResults = stmnt.execute(sql);
+          } else {
+            logThread = new Thread(createLogRunnable(stmnt));
+            logThread.setDaemon(true);
+            logThread.start();
+            hasResults = stmnt.execute(sql);
+            logThread.interrupt();
+            logThread.join(DEFAULT_QUERY_PROGRESS_THREAD_TIMEOUT);
+          }
+        }
+
+        beeLine.showWarnings();
+
+        if (hasResults) {
+          do {
+            ResultSet rs = stmnt.getResultSet();
+            try {
+              int count = beeLine.print(rs);
+              long end = System.currentTimeMillis();
+
+              beeLine.info(
+                  beeLine.loc("rows-selected", count) + " " + beeLine.locElapsedTime(end - start));
+            } finally {
+              if (logThread != null) {
+                logThread.join(DEFAULT_QUERY_PROGRESS_THREAD_TIMEOUT);
+                showRemainingLogsIfAny(stmnt);
+                logThread = null;
+              }
+              rs.close();
+            }
+          } while (BeeLine.getMoreResults(stmnt));
+        } else {
+          int count = stmnt.getUpdateCount();
+          long end = System.currentTimeMillis();
+          beeLine.info(
+              beeLine.loc("rows-affected", count) + " " + beeLine.locElapsedTime(end - start));
+        }
+      } finally {
+        if (logThread != null) {
+          if (!logThread.isInterrupted()) {
+            logThread.interrupt();
+          }
+          logThread.join(DEFAULT_QUERY_PROGRESS_THREAD_TIMEOUT);
+          showRemainingLogsIfAny(stmnt);
+        }
+        if (stmnt != null) {
+          stmnt.close();
+        }
+      }
+    } catch (Exception e) {
+      return beeLine.error(e);
+    }
+    beeLine.showWarnings();
+    return true;
+  }
+
+  public String handleMultiLineCmd(String line) throws IOException {
+    //When using -e, console reader is not initialized and command is a single line
+    while (beeLine.getConsoleReader() != null && !(line.trim().endsWith(";")) && beeLine.getOpts()
+        .isAllowMultiLineCommand()) {
+
+      if (!beeLine.getOpts().isSilent()) {
+        StringBuilder prompt = new StringBuilder(beeLine.getPrompt());
+        for (int i = 0; i < prompt.length() - 1; i++) {
+          if (prompt.charAt(i) != '>') {
+            prompt.setCharAt(i, i % 2 == 0 ? '.' : ' ');
+          }
+        }
+      }
+
+      String extra;
+      if (beeLine.getOpts().isSilent() && beeLine.getOpts().getScriptFile() != null) {
+        extra = beeLine.getConsoleReader().readLine(null, jline.console.ConsoleReader.NULL_MASK);
+      } else {
+        extra = beeLine.getConsoleReader().readLine(beeLine.getPrompt());
+      }
+
+      if (extra == null) { //it happens when using -f and the line of cmds does not end with ;
+        break;
+      }
+      if (!beeLine.isComment(extra)) {
+        line += "\n" + extra;
+      }
+    }
+    return line;
+  }
+
   public boolean sql(String line, boolean entireLineAsCommand) {
     return execute(line, false, entireLineAsCommand);
   }
 
+  private String substituteVariables(HiveConf conf, String line) {
+    if (!beeLine.isBeeLine()) {
+      // Substitution is only supported in non-beeline mode.
+      return new VariableSubstitution(new HiveVariableSource() {
+        @Override
+        public Map<String, String> getHiveVariable() {
+          return getHiveVariables();
+        }
+      }).substitute(conf, line);
+    }
+    return line;
+  }
+
   public boolean sh(String line) {
     if (line == null || line.length() == 0) {
       return false;
@@ -723,9 +1020,7 @@ public class Commands {
     }
 
     line = line.substring("sh".length()).trim();
-
-    // Support variable substitution. HIVE-6791.
-    // line = new VariableSubstitution().substitute(new HiveConf(BeeLine.class), line.trim());
+    line = substituteVariables(getHiveConf(), line.trim());
 
     try {
       ShellCmdExecutor executor = new ShellCmdExecutor(line, beeLine.getOutputStream(),
@@ -738,7 +1033,6 @@ public class Commands {
       return true;
     } catch (Exception e) {
       beeLine.error("Exception raised from Shell command " + e);
-      beeLine.error(e);
       return false;
     }
   }
@@ -760,33 +1054,7 @@ public class Commands {
 
     // use multiple lines for statements not terminated by ";"
     try {
-      //When using -e, console reader is not initialized and command is a single line
-      while (beeLine.getConsoleReader() != null && !(line.trim().endsWith(";"))
-        && beeLine.getOpts().isAllowMultiLineCommand()) {
-
-        if (!beeLine.getOpts().isSilent()) {
-          StringBuilder prompt = new StringBuilder(beeLine.getPrompt());
-          for (int i = 0; i < prompt.length() - 1; i++) {
-            if (prompt.charAt(i) != '>') {
-              prompt.setCharAt(i, i % 2 == 0 ? '.' : ' ');
-            }
-          }
-        }
-
-        String extra = null;
-        if (beeLine.getOpts().isSilent() && beeLine.getOpts().getScriptFile() != null) {
-          extra = beeLine.getConsoleReader().readLine(null, jline.console.ConsoleReader.NULL_MASK);
-        } else {
-          extra = beeLine.getConsoleReader().readLine(beeLine.getPrompt());
-        }
-
-        if (extra == null) { //it happens when using -f and the line of cmds does not end with ;
-          break;
-        }
-        if (!beeLine.isComment(extra)) {
-          line += "\n" + extra;
-        }
-      }
+      line = handleMultiLineCmd(line);
     } catch (Exception e) {
       beeLine.handleException(e);
     }
@@ -806,93 +1074,23 @@ public class Commands {
     for (int i = 0; i < cmds.length; i++) {
       String sql = cmds[i].trim();
       if (sql.length() != 0) {
-        if (beeLine.isComment(sql)) {
-          //skip this and rest cmds in the line
-          break;
-        }
-        if (sql.startsWith(BeeLine.COMMAND_PREFIX)) {
-          sql = sql.substring(1);
-        }
-
-        String prefix = call ? "call" : "sql";
-
-        if (sql.startsWith(prefix)) {
-          sql = sql.substring(prefix.length());
+        if (!beeLine.isBeeLine()) {
+          sql = cliToBeelineCmd(sql);
+          if (sql.equalsIgnoreCase("quit") || sql.equalsIgnoreCase("exit")) {
+            beeLine.setExit(true);
+            return true;
+          }
         }
 
-        // batch statements?
-        if (beeLine.getBatch() != null) {
-          beeLine.getBatch().add(sql);
+        // is source CMD
+        if (isSourceCMD(sql)) {
+          sourceFile(sql);
           continue;
         }
 
-        try {
-          Statement stmnt = null;
-          boolean hasResults;
-          Thread logThread = null;
-
-          try {
-            long start = System.currentTimeMillis();
-
-            if (call) {
-              stmnt = beeLine.getDatabaseConnection().getConnection().prepareCall(sql);
-              hasResults = ((CallableStatement) stmnt).execute();
-            } else {
-              stmnt = beeLine.createStatement();
-              if (beeLine.getOpts().isSilent()) {
-                hasResults = stmnt.execute(sql);
-              } else {
-                logThread = new Thread(createLogRunnable(stmnt));
-                logThread.setDaemon(true);
-                logThread.start();
-                hasResults = stmnt.execute(sql);
-                logThread.interrupt();
-                logThread.join(DEFAULT_QUERY_PROGRESS_THREAD_TIMEOUT);
-              }
-            }
-
-            beeLine.showWarnings();
-
-            if (hasResults) {
-              do {
-                ResultSet rs = stmnt.getResultSet();
-                try {
-                  int count = beeLine.print(rs);
-                  long end = System.currentTimeMillis();
-
-                  beeLine.info(beeLine.loc("rows-selected", count) + " "
-                      + beeLine.locElapsedTime(end - start));
-                } finally {
-                  if (logThread != null) {
-                    logThread.join(DEFAULT_QUERY_PROGRESS_THREAD_TIMEOUT);
-                    showRemainingLogsIfAny(stmnt);
-                    logThread = null;
-                  }
-                  rs.close();
-                }
-              } while (BeeLine.getMoreResults(stmnt));
-            } else {
-              int count = stmnt.getUpdateCount();
-              long end = System.currentTimeMillis();
-              beeLine.info(beeLine.loc("rows-affected", count)
-                  + " " + beeLine.locElapsedTime(end - start));
-            }
-          } finally {
-            if (logThread != null) {
-              if (!logThread.isInterrupted()) {
-                logThread.interrupt();
-              }
-              logThread.join(DEFAULT_QUERY_PROGRESS_THREAD_TIMEOUT);
-              showRemainingLogsIfAny(stmnt);
-            }
-            if (stmnt != null) {
-              stmnt.close();
-            }
-          }
-        } catch (Exception e) {
-          return beeLine.error(e);
+        if (!executeInternal(sql, call)) {
+          return false;
         }
-        beeLine.showWarnings();
       }
     }
     return true;

http://git-wip-us.apache.org/repos/asf/hive/blob/102b23b1/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
----------------------------------------------------------------------
diff --git a/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java b/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
index 6cbb030..ff8ab17 100644
--- a/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
+++ b/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java
@@ -6,9 +6,9 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -42,6 +42,10 @@ public class TestHiveCli {
 
   private final static String SOURCE_CONTEXT =
       "create table if not exists test.testSrcTbl(a string, b string);";
+  private final static String SOURCE_CONTEXT2 =
+      "create table if not exists test.testSrcTbl2(a string);";
+  private final static String SOURCE_CONTEXT3 =
+      "create table if not exists test.testSrcTbl3(a string);";
   final static String CMD =
       "create database if not exists test;\ncreate table if not exists test.testTbl(a string, b "
           + "string);\n";
@@ -60,7 +64,7 @@ public class TestHiveCli {
         inputStream = IOUtils.toInputStream(input);
       }
       ret = cli.runWithArgs(args, inputStream);
-    } catch (IOException e) {
+    } catch (Throwable e) {
       LOG.error("Failed to execute command due to the error: " + e);
     } finally {
       if (retCode != ret) {
@@ -77,48 +81,81 @@ public class TestHiveCli {
     Assert.assertTrue(output.contains(keywords));
   }
 
-  @Test public void testInValidCmd() {
-    verifyCMD("!lss\n", "Failed to execute lss", errS, null, ERRNO_OK);
+  @Test
+  public void testInValidCmd() {
+    verifyCMD("!lss\n", "Unknown command: lss", errS, null, ERRNO_OK);
   }
 
-  @Test public void testHelp() {
+  @Test
+  public void testHelp() {
     verifyCMD(null, "usage: hive", os, new String[] { "-H" }, ERRNO_ARGS);
   }
 
-  @Test public void testInvalidDatabaseOptions() {
-    verifyCMD("\nshow tables\nquit\n", "Database does not exist: invalidDB", errS,
+  @Test
+  public void testInvalidDatabaseOptions() {
+    verifyCMD("\nshow tables;\nquit;\n", "Database does not exist: invalidDB", errS,
         new String[] { "--database", "invalidDB" }, ERRNO_OK);
   }
 
-  @Test public void testDatabaseOptions() {
+  @Test
+  public void testDatabaseOptions() {
     verifyCMD("\nshow tables;\nquit;", "testTbl", os, new String[] { "--database", "test" },
         ERRNO_OK);
   }
 
-  @Test public void testSourceCmd() {
+  @Test
+  public void testSourceCmd() {
     File f = generateTmpFile(SOURCE_CONTEXT);
-    verifyCMD("source " + f.getPath() + "\n" + "desc testSrcTbl\n" + "quit\n", "col_name", os,
+    verifyCMD("source " + f.getPath() + ";" + "desc testSrcTbl;\nquit;\n", "col_name", os,
         new String[] { "--database", "test" }, ERRNO_OK);
+    f.delete();
   }
 
-  @Test public void testSqlFromCmd() {
+  @Test
+  public void testSourceCmd2() {
+    File f = generateTmpFile(SOURCE_CONTEXT3);
+    verifyCMD("source " + f.getPath() + ";" + "desc testSrcTbl3;\nquit;\n", "col_name", os,
+        new String[] { "--database", "test" }, ERRNO_OK);
+    f.delete();
+  }
+
+  @Test
+  public void testSqlFromCmd() {
     verifyCMD(null, "", os, new String[] { "-e", "show databases;" }, ERRNO_OK);
   }
 
-  @Test public void testSqlFromCmdWithDBName() {
+  @Test
+  public void testSqlFromCmdWithDBName() {
     verifyCMD(null, "testTbl", os, new String[] { "-e", "show tables;", "--database", "test" },
         ERRNO_OK);
   }
 
-  @Test public void testInvalidOptions() {
+  @Test
+  public void testInvalidOptions() {
     verifyCMD(null, "The '-e' and '-f' options cannot be specified simultaneously", errS,
         new String[] { "-e", "show tables;", "-f", "path/to/file" }, ERRNO_ARGS);
   }
 
-  @Test public void testInvalidOptions2() {
+  @Test
+  public void testInvalidOptions2() {
     verifyCMD(null, "Unrecognized option: -k", errS, new String[] { "-k" }, ERRNO_ARGS);
   }
 
+  @Test
+  public void testVariables() {
+    verifyCMD("set system:xxx=5;\nset system:yyy=${system:xxx};\nset system:yyy;", "", os, null,
+        ERRNO_OK);
+  }
+
+  @Test
+  public void testVariablesForSource() {
+    File f = generateTmpFile(SOURCE_CONTEXT2);
+    verifyCMD(
+        "set hiveconf:zzz=" + f.getAbsolutePath() + ";\nsource ${hiveconf:zzz};\ndesc testSrcTbl2;",
+        "col_name", os, new String[] { "--database", "test" }, ERRNO_OK);
+    f.delete();
+  }
+
   private void redirectOutputStream() {
     // Setup output stream to redirect output to
     os = new ByteArrayOutputStream();
@@ -152,13 +189,15 @@ public class TestHiveCli {
     return file;
   }
 
-  @Before public void setup() {
+  @Before
+  public void setup() {
     cli = new HiveCli();
     redirectOutputStream();
     initFromFile();
   }
 
-  @After public void tearDown() {
+  @After
+  public void tearDown() {
     tmp.delete();
   }
 }

http://git-wip-us.apache.org/repos/asf/hive/blob/102b23b1/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java
----------------------------------------------------------------------
diff --git a/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java b/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java
index d62fd5c..4b52578 100644
--- a/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java
+++ b/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java
@@ -61,7 +61,9 @@ import org.apache.hadoop.hive.common.cli.ShellCmdExecutor;
 import org.apache.hadoop.hive.common.io.CachingPrintStream;
 import org.apache.hadoop.hive.common.io.FetchConverter;
 import org.apache.hadoop.hive.conf.HiveConf;
+import org.apache.hadoop.hive.conf.HiveVariableSource;
 import org.apache.hadoop.hive.conf.Validator;
+import org.apache.hadoop.hive.conf.VariableSubstitution;
 import org.apache.hadoop.hive.metastore.api.FieldSchema;
 import org.apache.hadoop.hive.ql.CommandNeedRetryException;
 import org.apache.hadoop.hive.ql.Driver;
@@ -69,7 +71,6 @@ import org.apache.hadoop.hive.ql.exec.FunctionRegistry;
 import org.apache.hadoop.hive.ql.exec.mr.HadoopJobExecHelper;
 import org.apache.hadoop.hive.ql.exec.tez.TezJobExecHelper;
 import org.apache.hadoop.hive.ql.parse.HiveParser;
-import org.apache.hadoop.hive.ql.parse.VariableSubstitution;
 import org.apache.hadoop.hive.ql.processors.CommandProcessor;
 import org.apache.hadoop.hive.ql.processors.CommandProcessorFactory;
 import org.apache.hadoop.hive.ql.processors.CommandProcessorResponse;
@@ -127,7 +128,12 @@ public class CliDriver {
 
     } else if (tokens[0].equalsIgnoreCase("source")) {
       String cmd_1 = getFirstCmd(cmd_trimmed, tokens[0].length());
-      cmd_1 = new VariableSubstitution().substitute(ss.getConf(), cmd_1);
+      cmd_1 = new VariableSubstitution(new HiveVariableSource() {
+        @Override
+        public Map<String, String> getHiveVariable() {
+          return SessionState.get().getHiveVariables();
+        }
+      }).substitute(ss.getConf(), cmd_1);
 
       File sourceFile = new File(cmd_1);
       if (! sourceFile.isFile()){
@@ -145,7 +151,12 @@ public class CliDriver {
     } else if (cmd_trimmed.startsWith("!")) {
 
       String shell_cmd = cmd_trimmed.substring(1);
-      shell_cmd = new VariableSubstitution().substitute(ss.getConf(), shell_cmd);
+      shell_cmd = new VariableSubstitution(new HiveVariableSource() {
+        @Override
+        public Map<String, String> getHiveVariable() {
+          return SessionState.get().getHiveVariables();
+        }
+      }).substitute(ss.getConf(), shell_cmd);
 
       // shell_cmd = "/bin/bash -c \'" + shell_cmd + "\'";
       try {
@@ -671,7 +682,12 @@ public class CliDriver {
 
     // read prompt configuration and substitute variables.
     prompt = conf.getVar(HiveConf.ConfVars.CLIPROMPT);
-    prompt = new VariableSubstitution().substitute(conf, prompt);
+    prompt = new VariableSubstitution(new HiveVariableSource() {
+      @Override
+      public Map<String, String> getHiveVariable() {
+        return SessionState.get().getHiveVariables();
+      }
+    }).substitute(conf, prompt);
     prompt2 = spacesForString(prompt);
 
     SessionState.start(ss);

http://git-wip-us.apache.org/repos/asf/hive/blob/102b23b1/common/src/java/org/apache/hadoop/hive/conf/HiveVariableSource.java
----------------------------------------------------------------------
diff --git a/common/src/java/org/apache/hadoop/hive/conf/HiveVariableSource.java b/common/src/java/org/apache/hadoop/hive/conf/HiveVariableSource.java
new file mode 100644
index 0000000..86f7a9c
--- /dev/null
+++ b/common/src/java/org/apache/hadoop/hive/conf/HiveVariableSource.java
@@ -0,0 +1,24 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hive.conf;
+
+import java.util.Map;
+
+public interface HiveVariableSource {
+  Map<String, String> getHiveVariable();
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/102b23b1/common/src/java/org/apache/hadoop/hive/conf/VariableSubstitution.java
----------------------------------------------------------------------
diff --git a/common/src/java/org/apache/hadoop/hive/conf/VariableSubstitution.java b/common/src/java/org/apache/hadoop/hive/conf/VariableSubstitution.java
new file mode 100644
index 0000000..e1f53ba
--- /dev/null
+++ b/common/src/java/org/apache/hadoop/hive/conf/VariableSubstitution.java
@@ -0,0 +1,70 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hive.conf;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.conf.Configuration;
+
+import java.util.Map;
+
+public class VariableSubstitution extends SystemVariables {
+  private static final Log l4j = LogFactory.getLog(VariableSubstitution.class);
+
+  private HiveVariableSource hiveVariableSource;
+
+  public VariableSubstitution(HiveVariableSource hiveVariableSource) {
+    this.hiveVariableSource = hiveVariableSource;
+  }
+
+  /**
+   * The super method will handle with the case of substitutions for system variables,
+   * hive conf variables and env variables. In this method, it will retrieve the hive
+   * variables using hiveVariableSource.
+   *
+   * @param conf
+   * @param var
+   * @return
+   */
+  @Override
+  protected String getSubstitute(Configuration conf, String var) {
+    String val = super.getSubstitute(conf, var);
+    if (val == null && hiveVariableSource != null) {
+      Map<String, String> vars = hiveVariableSource.getHiveVariable();
+      if (var.startsWith(HIVEVAR_PREFIX)) {
+        val = vars.get(var.substring(HIVEVAR_PREFIX.length()));
+      } else {
+        val = vars.get(var);
+      }
+    }
+    return val;
+  }
+
+  public String substitute(HiveConf conf, String expr) {
+    if (expr == null) {
+      return expr;
+    }
+    if (HiveConf.getBoolVar(conf, HiveConf.ConfVars.HIVEVARIABLESUBSTITUTE)) {
+      l4j.debug("Substitution is on: " + expr);
+    } else {
+      return expr;
+    }
+    int depth = HiveConf.getIntVar(conf, HiveConf.ConfVars.HIVEVARIABLESUBSTITUTEDEPTH);
+    return substitute(conf, expr, depth);
+  }
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/102b23b1/common/src/test/org/apache/hadoop/hive/conf/TestVariableSubstitution.java
----------------------------------------------------------------------
diff --git a/common/src/test/org/apache/hadoop/hive/conf/TestVariableSubstitution.java b/common/src/test/org/apache/hadoop/hive/conf/TestVariableSubstitution.java
new file mode 100644
index 0000000..faa07a7
--- /dev/null
+++ b/common/src/test/org/apache/hadoop/hive/conf/TestVariableSubstitution.java
@@ -0,0 +1,63 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hive.conf;
+
+import junit.framework.Assert;
+import org.junit.Test;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class TestVariableSubstitution {
+  private static class LocalMySource {
+    final Map<String, String> map = new HashMap<>();
+
+    public void put(String k, String v) {
+      map.put(k, v);
+    }
+
+    public String get(String k) {
+      return map.get(k);
+    }
+  }
+
+  private static LocalMySource getMySource() {
+    return localSource.get();
+  }
+
+  private static ThreadLocal<LocalMySource> localSource = new ThreadLocal<LocalMySource>() {
+    @Override protected LocalMySource initialValue() {
+      return new LocalMySource();
+    }
+  };
+
+  @Test public void testVariableSource() throws InterruptedException {
+    final VariableSubstitution variableSubstitution =
+        new VariableSubstitution(new HiveVariableSource() {
+          @Override public Map<String, String> getHiveVariable() {
+            return TestVariableSubstitution.getMySource().map;
+          }
+        });
+
+    String v = variableSubstitution.substitute(new HiveConf(), "${a}");
+    Assert.assertEquals("${a}", v);
+    TestVariableSubstitution.getMySource().put("a", "b");
+    v = variableSubstitution.substitute(new HiveConf(), "${a}");
+    Assert.assertEquals("b", v);
+  }
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/102b23b1/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/Driver.java b/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
index 669e6be..140d6aa 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
@@ -40,6 +40,8 @@ import org.apache.hadoop.fs.FSDataInputStream;
 import org.apache.hadoop.hive.common.ValidTxnList;
 import org.apache.hadoop.hive.conf.HiveConf;
 import org.apache.hadoop.hive.conf.HiveConf.ConfVars;
+import org.apache.hadoop.hive.conf.HiveVariableSource;
+import org.apache.hadoop.hive.conf.VariableSubstitution;
 import org.apache.hadoop.hive.metastore.MetaStoreUtils;
 import org.apache.hadoop.hive.metastore.api.Database;
 import org.apache.hadoop.hive.metastore.api.FieldSchema;
@@ -96,7 +98,6 @@ import org.apache.hadoop.hive.ql.parse.PrunedPartitionList;
 import org.apache.hadoop.hive.ql.parse.SemanticAnalyzer;
 import org.apache.hadoop.hive.ql.parse.SemanticAnalyzerFactory;
 import org.apache.hadoop.hive.ql.parse.SemanticException;
-import org.apache.hadoop.hive.ql.parse.VariableSubstitution;
 import org.apache.hadoop.hive.ql.plan.FileSinkDesc;
 import org.apache.hadoop.hive.ql.plan.HiveOperation;
 import org.apache.hadoop.hive.ql.plan.OperatorDesc;
@@ -385,7 +386,12 @@ public class Driver implements CommandProcessor {
     SessionState.get().setupQueryCurrentTimestamp();
 
     try {
-      command = new VariableSubstitution().substitute(conf,command);
+      command = new VariableSubstitution(new HiveVariableSource() {
+        @Override
+        public Map<String, String> getHiveVariable() {
+          return SessionState.get().getHiveVariables();
+        }
+      }).substitute(conf, command);
       ctx = new Context(conf);
       ctx.setTryCount(getTryCount());
       ctx.setCmd(command);

http://git-wip-us.apache.org/repos/asf/hive/blob/102b23b1/ql/src/java/org/apache/hadoop/hive/ql/parse/ColumnStatsSemanticAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/ColumnStatsSemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/ColumnStatsSemanticAnalyzer.java
index a5f0a7f..da2a902 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/ColumnStatsSemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/ColumnStatsSemanticAnalyzer.java
@@ -28,12 +28,13 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hive.conf.HiveConf;
 import org.apache.hadoop.hive.conf.HiveConf.ConfVars;
+import org.apache.hadoop.hive.conf.HiveVariableSource;
+import org.apache.hadoop.hive.conf.VariableSubstitution;
 import org.apache.hadoop.hive.metastore.api.FieldSchema;
 import org.apache.hadoop.hive.ql.Context;
 import org.apache.hadoop.hive.ql.ErrorMsg;
 import org.apache.hadoop.hive.ql.exec.Utilities;
 import org.apache.hadoop.hive.ql.metadata.HiveException;
-import org.apache.hadoop.hive.ql.metadata.InvalidTableException;
 import org.apache.hadoop.hive.ql.metadata.Table;
 import org.apache.hadoop.hive.ql.session.SessionState;
 import org.apache.hadoop.hive.serde.serdeConstants;
@@ -216,10 +217,10 @@ public class ColumnStatsSemanticAnalyzer extends SemanticAnalyzer {
       //for other usually not used types, just quote the value
       returnVal = "'" + partVal + "'";
     }
-    
+
     return returnVal;
   }
-  
+
   private String getColTypeOf (String partKey) throws SemanticException{
 
     for (FieldSchema fs : tbl.getPartitionKeys()) {
@@ -333,7 +334,12 @@ public class ColumnStatsSemanticAnalyzer extends SemanticAnalyzer {
     }
 
     rewrittenQuery = rewrittenQueryBuilder.toString();
-    rewrittenQuery = new VariableSubstitution().substitute(conf, rewrittenQuery);
+    rewrittenQuery = new VariableSubstitution(new HiveVariableSource() {
+      @Override
+      public Map<String, String> getHiveVariable() {
+        return SessionState.get().getHiveVariables();
+      }
+    }).substitute(conf, rewrittenQuery);
     return rewrittenQuery;
   }
 

http://git-wip-us.apache.org/repos/asf/hive/blob/102b23b1/ql/src/java/org/apache/hadoop/hive/ql/parse/VariableSubstitution.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/VariableSubstitution.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/VariableSubstitution.java
deleted file mode 100644
index e8b1d96..0000000
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/VariableSubstitution.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.hadoop.hive.ql.parse;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hive.conf.HiveConf;
-import org.apache.hadoop.hive.conf.HiveConf.ConfVars;
-import org.apache.hadoop.hive.ql.session.SessionState;
-import org.apache.hadoop.hive.conf.SystemVariables;
-
-import java.util.Map;
-
-public class VariableSubstitution extends SystemVariables {
-
-  private static final Log l4j = LogFactory.getLog(VariableSubstitution.class);
-
-  @Override
-  protected String getSubstitute(Configuration conf, String var) {
-    String val = super.getSubstitute(conf, var);
-    if (val == null && SessionState.get() != null) {
-      Map<String,String> vars = SessionState.get().getHiveVariables();
-      if (var.startsWith(HIVEVAR_PREFIX)) {
-        val =  vars.get(var.substring(HIVEVAR_PREFIX.length()));
-      } else {
-        val = vars.get(var);
-      }
-    }
-    return val;
-  }
-
-  public String substitute(HiveConf conf, String expr) {
-    if (expr == null) {
-      return expr;
-    }
-    if (HiveConf.getBoolVar(conf, ConfVars.HIVEVARIABLESUBSTITUTE)) {
-      l4j.debug("Substitution is on: " + expr);
-    } else {
-      return expr;
-    }
-    int depth = HiveConf.getIntVar(conf, ConfVars.HIVEVARIABLESUBSTITUTEDEPTH);
-    return substitute(conf, expr, depth);
-  }
-}

http://git-wip-us.apache.org/repos/asf/hive/blob/102b23b1/ql/src/java/org/apache/hadoop/hive/ql/processors/AddResourceProcessor.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/processors/AddResourceProcessor.java b/ql/src/java/org/apache/hadoop/hive/ql/processors/AddResourceProcessor.java
index 0558c53..d2ac993 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/processors/AddResourceProcessor.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/processors/AddResourceProcessor.java
@@ -19,11 +19,13 @@
 package org.apache.hadoop.hive.ql.processors;
 
 import java.util.Arrays;
+import java.util.Map;
 
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.hive.ql.parse.VariableSubstitution;
+import org.apache.hadoop.hive.conf.HiveVariableSource;
+import org.apache.hadoop.hive.conf.VariableSubstitution;
 import org.apache.hadoop.hive.ql.security.authorization.plugin.HiveOperationType;
 import org.apache.hadoop.hive.ql.session.SessionState;
 import org.apache.hadoop.hive.ql.session.SessionState.LogHelper;
@@ -45,7 +47,12 @@ public class AddResourceProcessor implements CommandProcessor {
   @Override
   public CommandProcessorResponse run(String command) {
     SessionState ss = SessionState.get();
-    command = new VariableSubstitution().substitute(ss.getConf(),command);
+    command = new VariableSubstitution(new HiveVariableSource() {
+      @Override
+      public Map<String, String> getHiveVariable() {
+        return SessionState.get().getHiveVariables();
+      }
+    }).substitute(ss.getConf(),command);
     String[] tokens = command.split("\\s+");
     SessionState.ResourceType t;
     if (tokens.length < 2

http://git-wip-us.apache.org/repos/asf/hive/blob/102b23b1/ql/src/java/org/apache/hadoop/hive/ql/processors/CompileProcessor.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/processors/CompileProcessor.java b/ql/src/java/org/apache/hadoop/hive/ql/processors/CompileProcessor.java
index 25ce168..7b79f64 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/processors/CompileProcessor.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/processors/CompileProcessor.java
@@ -24,6 +24,7 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.nio.charset.Charset;
 import java.util.Arrays;
+import java.util.Map;
 import java.util.StringTokenizer;
 import java.util.concurrent.atomic.AtomicInteger;
 
@@ -32,9 +33,10 @@ import org.apache.commons.compress.archivers.jar.JarArchiveOutputStream;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.hive.conf.HiveVariableSource;
+import org.apache.hadoop.hive.conf.VariableSubstitution;
 import org.apache.hadoop.hive.ql.CommandNeedRetryException;
 import org.apache.hadoop.hive.ql.metadata.HiveException;
-import org.apache.hadoop.hive.ql.parse.VariableSubstitution;
 import org.apache.hadoop.hive.ql.security.authorization.plugin.HiveOperationType;
 import org.apache.hadoop.hive.ql.session.SessionState;
 import org.apache.hadoop.hive.ql.session.SessionState.LogHelper;
@@ -142,7 +144,12 @@ public class CompileProcessor implements CommandProcessor {
   @VisibleForTesting
   void parse(SessionState ss) throws CompileProcessorException {
     if (ss != null){
-      command = new VariableSubstitution().substitute(ss.getConf(), command);
+      command = new VariableSubstitution(new HiveVariableSource() {
+        @Override
+        public Map<String, String> getHiveVariable() {
+          return SessionState.get().getHiveVariables();
+        }
+      }).substitute(ss.getConf(), command);
     }
     if (command == null || command.length() == 0) {
       throw new CompileProcessorException("Command was empty");

http://git-wip-us.apache.org/repos/asf/hive/blob/102b23b1/ql/src/java/org/apache/hadoop/hive/ql/processors/DeleteResourceProcessor.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/processors/DeleteResourceProcessor.java b/ql/src/java/org/apache/hadoop/hive/ql/processors/DeleteResourceProcessor.java
index 9052c82..736fa9c 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/processors/DeleteResourceProcessor.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/processors/DeleteResourceProcessor.java
@@ -19,11 +19,13 @@
 package org.apache.hadoop.hive.ql.processors;
 
 import java.util.Arrays;
+import java.util.Map;
 
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.hive.ql.parse.VariableSubstitution;
+import org.apache.hadoop.hive.conf.HiveVariableSource;
+import org.apache.hadoop.hive.conf.VariableSubstitution;
 import org.apache.hadoop.hive.ql.security.authorization.plugin.HiveOperationType;
 import org.apache.hadoop.hive.ql.session.SessionState;
 import org.apache.hadoop.hive.ql.session.SessionState.LogHelper;
@@ -44,7 +46,12 @@ public class DeleteResourceProcessor implements CommandProcessor {
   @Override
   public CommandProcessorResponse run(String command) {
     SessionState ss = SessionState.get();
-    command = new VariableSubstitution().substitute(ss.getConf(),command);
+    command = new VariableSubstitution(new HiveVariableSource() {
+      @Override
+      public Map<String, String> getHiveVariable() {
+        return SessionState.get().getHiveVariables();
+      }
+    }).substitute(ss.getConf(), command);
     String[] tokens = command.split("\\s+");
 
     SessionState.ResourceType t;

http://git-wip-us.apache.org/repos/asf/hive/blob/102b23b1/ql/src/java/org/apache/hadoop/hive/ql/processors/DfsProcessor.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/processors/DfsProcessor.java b/ql/src/java/org/apache/hadoop/hive/ql/processors/DfsProcessor.java
index cc0414d..c3d5f81 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/processors/DfsProcessor.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/processors/DfsProcessor.java
@@ -20,14 +20,16 @@ package org.apache.hadoop.hive.ql.processors;
 
 import java.io.PrintStream;
 import java.util.Arrays;
+import java.util.Map;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FsShell;
+import org.apache.hadoop.hive.conf.HiveVariableSource;
+import org.apache.hadoop.hive.conf.VariableSubstitution;
 import org.apache.hadoop.hive.metastore.api.FieldSchema;
 import org.apache.hadoop.hive.metastore.api.Schema;
-import org.apache.hadoop.hive.ql.parse.VariableSubstitution;
 import org.apache.hadoop.hive.ql.security.authorization.plugin.HiveOperationType;
 import org.apache.hadoop.hive.ql.session.SessionState;
 import org.apache.hadoop.hive.ql.session.SessionState.LogHelper;
@@ -65,7 +67,12 @@ public class DfsProcessor implements CommandProcessor {
 
     try {
       SessionState ss = SessionState.get();
-      command = new VariableSubstitution().substitute(ss.getConf(),command);
+      command = new VariableSubstitution(new HiveVariableSource() {
+        @Override
+        public Map<String, String> getHiveVariable() {
+          return SessionState.get().getHiveVariables();
+        }
+      }).substitute(ss.getConf(), command);
 
       String[] tokens = command.split("\\s+");
       CommandProcessorResponse authErrResp =

http://git-wip-us.apache.org/repos/asf/hive/blob/102b23b1/ql/src/java/org/apache/hadoop/hive/ql/processors/SetProcessor.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/processors/SetProcessor.java b/ql/src/java/org/apache/hadoop/hive/ql/processors/SetProcessor.java
index d271d6d..e5f5f71 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/processors/SetProcessor.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/processors/SetProcessor.java
@@ -30,10 +30,11 @@ import java.util.SortedMap;
 import java.util.TreeMap;
 
 import org.apache.hadoop.hive.conf.HiveConf;
+import org.apache.hadoop.hive.conf.HiveVariableSource;
+import org.apache.hadoop.hive.conf.VariableSubstitution;
 import org.apache.hadoop.hive.metastore.api.FieldSchema;
 import org.apache.hadoop.hive.metastore.api.Schema;
 import org.apache.hadoop.hive.ql.metadata.Hive;
-import org.apache.hadoop.hive.ql.parse.VariableSubstitution;
 import org.apache.hadoop.hive.ql.session.SessionState;
 
 /**
@@ -121,17 +122,33 @@ public class SetProcessor implements CommandProcessor {
       return 1;
     } else if (varname.startsWith(SYSTEM_PREFIX)){
       String propName = varname.substring(SYSTEM_PREFIX.length());
-      System.getProperties().setProperty(propName, new VariableSubstitution().substitute(ss.getConf(),varvalue));
+      System.getProperties()
+          .setProperty(propName, new VariableSubstitution(new HiveVariableSource() {
+            @Override
+            public Map<String, String> getHiveVariable() {
+              return SessionState.get().getHiveVariables();
+            }
+          }).substitute(ss.getConf(), varvalue));
     } else if (varname.startsWith(HIVECONF_PREFIX)){
       String propName = varname.substring(HIVECONF_PREFIX.length());
       setConf(varname, propName, varvalue, false);
     } else if (varname.startsWith(HIVEVAR_PREFIX)) {
       String propName = varname.substring(HIVEVAR_PREFIX.length());
-      ss.getHiveVariables().put(propName, new VariableSubstitution().substitute(ss.getConf(),varvalue));
+      ss.getHiveVariables().put(propName, new VariableSubstitution(new HiveVariableSource() {
+        @Override
+        public Map<String, String> getHiveVariable() {
+          return SessionState.get().getHiveVariables();
+        }
+      }).substitute(ss.getConf(), varvalue));
     } else if (varname.startsWith(METACONF_PREFIX)) {
       String propName = varname.substring(METACONF_PREFIX.length());
       Hive hive = Hive.get(ss.getConf());
-      hive.setMetaConf(propName, new VariableSubstitution().substitute(ss.getConf(), varvalue));
+      hive.setMetaConf(propName, new VariableSubstitution(new HiveVariableSource() {
+        @Override
+        public Map<String, String> getHiveVariable() {
+          return SessionState.get().getHiveVariables();
+        }
+      }).substitute(ss.getConf(), varvalue));
     } else {
       setConf(varname, varname, varvalue, true);
       if (varname.equals(HiveConf.ConfVars.HIVE_SESSION_HISTORY_ENABLED.toString())) {
@@ -145,7 +162,12 @@ public class SetProcessor implements CommandProcessor {
   private static void setConf(String varname, String key, String varvalue, boolean register)
         throws IllegalArgumentException {
     HiveConf conf = SessionState.get().getConf();
-    String value = new VariableSubstitution().substitute(conf, varvalue);
+    String value = new VariableSubstitution(new HiveVariableSource() {
+      @Override
+      public Map<String, String> getHiveVariable() {
+        return SessionState.get().getHiveVariables();
+      }
+    }).substitute(conf, varvalue);
     if (conf.getBoolVar(HiveConf.ConfVars.HIVECONFVALIDATION)) {
       HiveConf.ConfVars confVars = HiveConf.getConfVars(key);
       if (confVars != null) {

http://git-wip-us.apache.org/repos/asf/hive/blob/102b23b1/service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java
----------------------------------------------------------------------
diff --git a/service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java b/service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java
index cc9df76..f4334e4 100644
--- a/service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java
+++ b/service/src/java/org/apache/hive/service/cli/operation/SQLOperation.java
@@ -32,6 +32,8 @@ import java.util.concurrent.RejectedExecutionException;
 
 import org.apache.commons.codec.binary.Base64;
 import org.apache.hadoop.hive.conf.HiveConf;
+import org.apache.hadoop.hive.conf.HiveVariableSource;
+import org.apache.hadoop.hive.conf.VariableSubstitution;
 import org.apache.hadoop.hive.metastore.api.FieldSchema;
 import org.apache.hadoop.hive.metastore.api.Schema;
 import org.apache.hadoop.hive.ql.CommandNeedRetryException;
@@ -39,7 +41,6 @@ import org.apache.hadoop.hive.ql.Driver;
 import org.apache.hadoop.hive.ql.exec.ExplainTask;
 import org.apache.hadoop.hive.ql.exec.Task;
 import org.apache.hadoop.hive.ql.metadata.Hive;
-import org.apache.hadoop.hive.ql.parse.VariableSubstitution;
 import org.apache.hadoop.hive.ql.processors.CommandProcessorResponse;
 import org.apache.hadoop.hive.ql.session.OperationLog;
 import org.apache.hadoop.hive.ql.session.SessionState;
@@ -105,7 +106,12 @@ public class SQLOperation extends ExecuteStatementOperation {
       // For now, we disable the test attempts.
       driver.setTryCount(Integer.MAX_VALUE);
 
-      String subStatement = new VariableSubstitution().substitute(sqlOperationConf, statement);
+      String subStatement = new VariableSubstitution(new HiveVariableSource() {
+        @Override
+        public Map<String, String> getHiveVariable() {
+          return SessionState.get().getHiveVariables();
+        }
+      }).substitute(sqlOperationConf, statement);
       response = driver.compileAndRespond(subStatement);
       if (0 != response.getResponseCode()) {
         throw toSQLException("Error while compiling statement", response);


[41/43] hive git commit: HIVE-11723 : Incorrect string literal escaping (Yongzhi Chen via Szehon)

Posted by se...@apache.org.
HIVE-11723 : Incorrect string literal escaping (Yongzhi Chen via Szehon)


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

Branch: refs/heads/llap
Commit: 1cf7e25c089a1880e9c6ca3ee9f7be0e388dd609
Parents: ea05d3d
Author: Szehon Ho <sz...@cloudera.com>
Authored: Mon Sep 28 11:58:25 2015 -0700
Committer: Szehon Ho <sz...@cloudera.com>
Committed: Mon Sep 28 11:58:25 2015 -0700

----------------------------------------------------------------------
 .../hadoop/hive/ql/parse/SemanticAnalyzer.java  |  2 +-
 .../clientpositive/insertvalues_espchars.q      |  5 ++++
 .../clientpositive/insertvalues_espchars.q.out  | 30 ++++++++++++++++++++
 3 files changed, 36 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/1cf7e25c/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 c5f39d3..dda28b0 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
@@ -862,7 +862,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
         return expr.getText();
 
       case HiveParser.StringLiteral:
-        return PlanUtils.stripQuotes(expr.getText());
+        return BaseSemanticAnalyzer.unescapeSQLString(expr.getText());
 
       case HiveParser.KW_FALSE:
         // UDFToBoolean casts any non-empty string to true, so set this to false

http://git-wip-us.apache.org/repos/asf/hive/blob/1cf7e25c/ql/src/test/queries/clientpositive/insertvalues_espchars.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/insertvalues_espchars.q b/ql/src/test/queries/clientpositive/insertvalues_espchars.q
new file mode 100644
index 0000000..675786b
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/insertvalues_espchars.q
@@ -0,0 +1,5 @@
+drop table if exists escstr;
+create table escstr(val string);
+insert into escstr values('It\'s a simple test');
+select * from escstr;
+

http://git-wip-us.apache.org/repos/asf/hive/blob/1cf7e25c/ql/src/test/results/clientpositive/insertvalues_espchars.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/insertvalues_espchars.q.out b/ql/src/test/results/clientpositive/insertvalues_espchars.q.out
new file mode 100644
index 0000000..caa35d6
--- /dev/null
+++ b/ql/src/test/results/clientpositive/insertvalues_espchars.q.out
@@ -0,0 +1,30 @@
+PREHOOK: query: drop table if exists escstr
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: drop table if exists escstr
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: create table escstr(val string)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@escstr
+POSTHOOK: query: create table escstr(val string)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@escstr
+PREHOOK: query: insert into escstr values('It\'s a simple test')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@escstr
+POSTHOOK: query: insert into escstr values('It\'s a simple test')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@escstr
+POSTHOOK: Lineage: escstr.val SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ]
+PREHOOK: query: select * from escstr
+PREHOOK: type: QUERY
+PREHOOK: Input: default@escstr
+#### A masked pattern was here ####
+POSTHOOK: query: select * from escstr
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@escstr
+#### A masked pattern was here ####
+It's a simple test


[31/43] hive git commit: HIVE-11943: Set old CLI as the default Client when using hive script(Ferdinand Xu, reviewed by Xuefu Zhang)

Posted by se...@apache.org.
HIVE-11943: Set old CLI as the default Client when using hive script(Ferdinand Xu, reviewed by Xuefu Zhang)


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

Branch: refs/heads/llap
Commit: 046c5ebdbeaa8155189db13f78ddb28c63c7500c
Parents: 1857956
Author: Ferdinand Xu <ch...@intel.com>
Authored: Thu Sep 24 21:14:33 2015 -0400
Committer: Ferdinand Xu <ch...@intel.com>
Committed: Thu Sep 24 21:14:33 2015 -0400

----------------------------------------------------------------------
 bin/ext/cli.cmd | 6 +++++-
 bin/ext/cli.sh  | 6 +++++-
 2 files changed, 10 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/046c5ebd/bin/ext/cli.cmd
----------------------------------------------------------------------
diff --git a/bin/ext/cli.cmd b/bin/ext/cli.cmd
index 3a96d03..d9185c0 100644
--- a/bin/ext/cli.cmd
+++ b/bin/ext/cli.cmd
@@ -28,9 +28,13 @@ goto :EOF
 goto :EOF
 
 :update_cli
+	if [%USE_DEPRECATED_CLI%] == [] (
+		set USE_DEPRECATED_CLI=false
+	)
+
 	if /I "%USE_DEPRECATED_CLI%" == "true" (
 		call :old_cli
-	) else if (
+	) else (
 		call :new_cli
 	)
 goto :EOF

http://git-wip-us.apache.org/repos/asf/hive/blob/046c5ebd/bin/ext/cli.sh
----------------------------------------------------------------------
diff --git a/bin/ext/cli.sh b/bin/ext/cli.sh
index 893b7fc..e7897b3 100644
--- a/bin/ext/cli.sh
+++ b/bin/ext/cli.sh
@@ -16,10 +16,14 @@
 THISSERVICE=cli
 export SERVICE_LIST="${SERVICE_LIST}${THISSERVICE} "
 
+# Set old CLI as the default client
+if [ -n '$USE_DEPRECATED_CLI' ]; then
+  USE_DEPRECATED_CLI="true"
+fi
+
 updateBeelineOpts() {
   # If process is backgrounded, don't change terminal settings
   if [[ ! $(ps -o stat= -p $$) == *+ ]]; then
-    echo "background"
     export HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS -Djline.terminal=jline.UnsupportedTerminal"
   fi
 }