You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by jd...@apache.org on 2016/04/26 19:53:24 UTC
[01/50] [abbrv] hive git commit: HIVE-13480 : Add hadoop2 metrics
reporter for Codahale metrics (Sushanth Sowmyan, reviewed by Thejas Nair)
Repository: hive
Updated Branches:
refs/heads/llap 53b43cd44 -> ffed821ca
HIVE-13480 : Add hadoop2 metrics reporter for Codahale metrics (Sushanth Sowmyan, 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/0ef92b2c
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/0ef92b2c
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/0ef92b2c
Branch: refs/heads/llap
Commit: 0ef92b2c751f644c880e9e6b02cc81e1e6001504
Parents: fb230f9
Author: Sushanth Sowmyan <kh...@gmail.com>
Authored: Fri Apr 22 13:57:05 2016 -0700
Committer: Sushanth Sowmyan <kh...@gmail.com>
Committed: Fri Apr 22 13:57:05 2016 -0700
----------------------------------------------------------------------
common/pom.xml | 5 +++++
.../common/metrics/metrics2/CodahaleMetrics.java | 16 ++++++++++++++++
.../common/metrics/metrics2/MetricsReporting.java | 3 ++-
.../java/org/apache/hadoop/hive/conf/HiveConf.java | 12 +++++++++++-
pom.xml | 1 +
5 files changed, 35 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/0ef92b2c/common/pom.xml
----------------------------------------------------------------------
diff --git a/common/pom.xml b/common/pom.xml
index 1b9b4bc..67aab7c 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -188,6 +188,11 @@
<artifactId>jackson-databind</artifactId>
<version>${jackson.new.version}</version>
</dependency>
+ <dependency>
+ <groupId>com.github.joshelser</groupId>
+ <artifactId>dropwizard-metrics-hadoop-metrics2-reporter</artifactId>
+ <version>${dropwizard-metrics-hadoop-metrics2-reporter.version}</version>
+ </dependency>
</dependencies>
<profiles>
http://git-wip-us.apache.org/repos/asf/hive/blob/0ef92b2c/common/src/java/org/apache/hadoop/hive/common/metrics/metrics2/CodahaleMetrics.java
----------------------------------------------------------------------
diff --git a/common/src/java/org/apache/hadoop/hive/common/metrics/metrics2/CodahaleMetrics.java b/common/src/java/org/apache/hadoop/hive/common/metrics/metrics2/CodahaleMetrics.java
index 7dea8de..4c43367 100644
--- a/common/src/java/org/apache/hadoop/hive/common/metrics/metrics2/CodahaleMetrics.java
+++ b/common/src/java/org/apache/hadoop/hive/common/metrics/metrics2/CodahaleMetrics.java
@@ -34,6 +34,7 @@ import com.codahale.metrics.jvm.GarbageCollectorMetricSet;
import com.codahale.metrics.jvm.MemoryUsageGaugeSet;
import com.codahale.metrics.jvm.ThreadStatesGaugeSet;
import com.fasterxml.jackson.databind.ObjectMapper;
+import com.github.joshelser.dropwizard.metrics.hadoop.HadoopMetrics2Reporter;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Splitter;
import com.google.common.cache.CacheBuilder;
@@ -47,6 +48,7 @@ import org.apache.hadoop.fs.permission.FsPermission;
import org.apache.hadoop.hive.common.metrics.common.MetricsScope;
import org.apache.hadoop.hive.common.metrics.common.MetricsVariable;
import org.apache.hadoop.hive.conf.HiveConf;
+import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -372,6 +374,20 @@ public class CodahaleMetrics implements org.apache.hadoop.hive.common.metrics.co
jsonFileReporter.start();
reporters.add(jsonFileReporter);
break;
+ case HADOOP2:
+ String applicationName = conf.get(HiveConf.ConfVars.HIVE_METRICS_HADOOP2_COMPONENT_NAME.varname);
+ long reportingInterval = HiveConf.toTime(
+ conf.get(HiveConf.ConfVars.HIVE_METRICS_HADOOP2_INTERVAL.varname),
+ TimeUnit.SECONDS, TimeUnit.SECONDS);
+ final HadoopMetrics2Reporter metrics2Reporter = HadoopMetrics2Reporter.forRegistry(metricRegistry)
+ .convertRatesTo(TimeUnit.SECONDS)
+ .convertDurationsTo(TimeUnit.MILLISECONDS)
+ .build(DefaultMetricsSystem.initialize(applicationName), // The application-level name
+ applicationName, // Component name
+ applicationName, // Component description
+ "General"); // Name for each metric record
+ metrics2Reporter.start(reportingInterval, TimeUnit.SECONDS);
+ break;
}
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/0ef92b2c/common/src/java/org/apache/hadoop/hive/common/metrics/metrics2/MetricsReporting.java
----------------------------------------------------------------------
diff --git a/common/src/java/org/apache/hadoop/hive/common/metrics/metrics2/MetricsReporting.java b/common/src/java/org/apache/hadoop/hive/common/metrics/metrics2/MetricsReporting.java
index 643246f..e6d1f1b 100644
--- a/common/src/java/org/apache/hadoop/hive/common/metrics/metrics2/MetricsReporting.java
+++ b/common/src/java/org/apache/hadoop/hive/common/metrics/metrics2/MetricsReporting.java
@@ -23,5 +23,6 @@ package org.apache.hadoop.hive.common.metrics.metrics2;
public enum MetricsReporting {
JMX,
CONSOLE,
- JSON_FILE
+ JSON_FILE,
+ HADOOP2
}
http://git-wip-us.apache.org/repos/asf/hive/blob/0ef92b2c/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
----------------------------------------------------------------------
diff --git a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
index c52b9d9..926806b 100644
--- a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
+++ b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
@@ -1961,7 +1961,8 @@ public class HiveConf extends Configuration {
"org.apache.hadoop.hive.common.metrics.LegacyMetrics"),
"Hive metrics subsystem implementation class."),
HIVE_METRICS_REPORTER("hive.service.metrics.reporter", "JSON_FILE, JMX",
- "Reporter type for metric class org.apache.hadoop.hive.common.metrics.metrics2.CodahaleMetrics, comma separated list of JMX, CONSOLE, JSON_FILE"),
+ "Reporter type for metric class org.apache.hadoop.hive.common.metrics.metrics2.CodahaleMetrics, " +
+ "comma separated list of JMX, CONSOLE, JSON_FILE, HADOOP2"),
HIVE_METRICS_JSON_FILE_LOCATION("hive.service.metrics.file.location", "/tmp/report.json",
"For metric class org.apache.hadoop.hive.common.metrics.metrics2.CodahaleMetrics JSON_FILE reporter, the location of local JSON metrics file. " +
"This file will get overwritten at every interval."),
@@ -1969,6 +1970,15 @@ public class HiveConf extends Configuration {
new TimeValidator(TimeUnit.MILLISECONDS),
"For metric class org.apache.hadoop.hive.common.metrics.metrics2.CodahaleMetrics JSON_FILE reporter, " +
"the frequency of updating JSON metrics file."),
+ HIVE_METRICS_HADOOP2_INTERVAL("hive.service.metrics.hadoop2.frequency", "30s",
+ new TimeValidator(TimeUnit.SECONDS),
+ "For metric class org.apache.hadoop.hive.common.metrics.metrics2.CodahaleMetrics HADOOP2 reporter, " +
+ "the frequency of updating the HADOOP2 metrics system."),
+ HIVE_METRICS_HADOOP2_COMPONENT_NAME("hive.service.metrics.hadoop2.component",
+ "hive",
+ "Component name to provide to Hadoop2 Metrics system. Ideally 'hivemetastore' for the MetaStore " +
+ " and and 'hiveserver2' for HiveServer2."
+ ),
HIVE_PERF_LOGGER("hive.exec.perf.logger", "org.apache.hadoop.hive.ql.log.PerfLogger",
"The class responsible for logging client side performance metrics. \n" +
"Must be a subclass of org.apache.hadoop.hive.ql.log.PerfLogger"),
http://git-wip-us.apache.org/repos/asf/hive/blob/0ef92b2c/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 77cfaeb..5de35c8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -128,6 +128,7 @@
<commons-dbcp.version>1.4</commons-dbcp.version>
<derby.version>10.10.2.0</derby.version>
<dropwizard.version>3.1.0</dropwizard.version>
+ <dropwizard-metrics-hadoop-metrics2-reporter.version>0.1.0</dropwizard-metrics-hadoop-metrics2-reporter.version>
<guava.version>14.0.1</guava.version>
<groovy.version>2.4.4</groovy.version>
<hadoop.version>2.6.0</hadoop.version>
[49/50] [abbrv] hive git commit: HIVE-12159: Create vectorized
readers for the complex types (Owen O'Malley,
reviewed by Matt McCline and Prasanth)
Posted by jd...@apache.org.
HIVE-12159: Create vectorized readers for the complex types (Owen O'Malley,
reviewed by Matt McCline and Prasanth)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/0ac424f0
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/0ac424f0
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/0ac424f0
Branch: refs/heads/llap
Commit: 0ac424f0a17b341efe299da167791112e4a953e9
Parents: bf44f3e
Author: Owen O'Malley <om...@apache.org>
Authored: Tue Apr 26 08:15:00 2016 -0700
Committer: Owen O'Malley <om...@apache.org>
Committed: Tue Apr 26 08:17:24 2016 -0700
----------------------------------------------------------------------
itests/qtest/pom.xml | 2 +-
.../llap/io/decode/OrcEncodedDataConsumer.java | 46 +-
.../llap/io/encoded/OrcEncodedDataReader.java | 62 +-
.../llap/io/metadata/OrcStripeMetadata.java | 6 +-
.../TestIncrementalObjectSizeEstimator.java | 31 +-
orc/src/java/org/apache/orc/DataReader.java | 24 +-
.../java/org/apache/orc/DataReaderFactory.java | 9 -
.../org/apache/orc/MetadataReaderFactory.java | 12 -
orc/src/java/org/apache/orc/OrcUtils.java | 78 +
orc/src/java/org/apache/orc/Reader.java | 29 +-
orc/src/java/org/apache/orc/RecordReader.java | 8 +-
.../java/org/apache/orc/TypeDescription.java | 62 +-
.../org/apache/orc/impl/BitFieldReader.java | 5 +-
.../apache/orc/impl/DataReaderProperties.java | 41 +-
.../orc/impl/DefaultMetadataReaderFactory.java | 14 -
orc/src/java/org/apache/orc/impl/InStream.java | 4 +-
.../java/org/apache/orc/impl/IntegerReader.java | 26 +-
.../org/apache/orc/impl/MetadataReader.java | 33 -
.../org/apache/orc/impl/MetadataReaderImpl.java | 120 --
.../orc/impl/MetadataReaderProperties.java | 96 -
.../apache/orc/impl/RunLengthByteReader.java | 36 +-
.../apache/orc/impl/RunLengthIntegerReader.java | 31 +-
.../orc/impl/RunLengthIntegerReaderV2.java | 33 +-
.../java/org/apache/orc/impl/WriterImpl.java | 47 +-
.../orc/impl/TestDataReaderProperties.java | 12 +-
.../orc/impl/TestMetadataReaderProperties.java | 72 -
.../ql/exec/vector/VectorizedRowBatchCtx.java | 13 +-
.../ql/io/orc/DefaultDataReaderFactory.java | 14 -
.../hadoop/hive/ql/io/orc/OrcInputFormat.java | 43 +-
.../hive/ql/io/orc/OrcRawRecordMerger.java | 3 +-
.../hadoop/hive/ql/io/orc/ReaderImpl.java | 65 +-
.../hadoop/hive/ql/io/orc/RecordReaderImpl.java | 231 +--
.../hive/ql/io/orc/RecordReaderUtils.java | 127 +-
.../hadoop/hive/ql/io/orc/SchemaEvolution.java | 234 +--
.../hive/ql/io/orc/TreeReaderFactory.java | 838 +++++----
.../ql/io/orc/VectorizedOrcInputFormat.java | 32 +-
.../hadoop/hive/ql/io/orc/WriterImpl.java | 2 -
.../hive/ql/io/orc/TestRecordReaderImpl.java | 55 +-
.../hive/ql/io/orc/TestTypeDescription.java | 4 +-
.../hive/ql/io/orc/TestVectorOrcFile.java | 1647 +++++++++---------
.../hive/ql/io/orc/TestVectorizedORCReader.java | 7 +-
.../hive/ql/exec/vector/BytesColumnVector.java | 13 +-
.../ql/exec/vector/DecimalColumnVector.java | 2 +-
.../hive/ql/exec/vector/DoubleColumnVector.java | 2 +-
.../hive/ql/exec/vector/LongColumnVector.java | 2 +-
.../ql/exec/vector/MultiValuedColumnVector.java | 2 +-
.../ql/exec/vector/TimestampColumnVector.java | 2 +-
.../hive/ql/exec/vector/UnionColumnVector.java | 2 -
48 files changed, 2133 insertions(+), 2146 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/itests/qtest/pom.xml
----------------------------------------------------------------------
diff --git a/itests/qtest/pom.xml b/itests/qtest/pom.xml
index b042774..a479557 100644
--- a/itests/qtest/pom.xml
+++ b/itests/qtest/pom.xml
@@ -431,7 +431,7 @@
templatePath="${basedir}/${hive.path.to.root}/ql/src/test/templates/" template="TestCliDriver.vm"
queryDirectory="${basedir}/${hive.path.to.root}/ql/src/test/queries/clientpositive/"
queryFile="${qfile}"
- excludeQueryFile="${minillap.query.files},${minimr.query.files},${minitez.query.files},${encrypted.query.files},${spark.only.query.files},${disabled.query.files},regexp_extract.q"
+ excludeQueryFile="${minillap.query.files},${minimr.query.files},${minitez.query.files},${encrypted.query.files},${spark.only.query.files},${disabled.query.files}"
queryFileRegex="${qfile_regex}"
clusterMode="${clustermode}"
runDisabled="${run_disabled}"
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/llap-server/src/java/org/apache/hadoop/hive/llap/io/decode/OrcEncodedDataConsumer.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/io/decode/OrcEncodedDataConsumer.java b/llap-server/src/java/org/apache/hadoop/hive/llap/io/decode/OrcEncodedDataConsumer.java
index 0651557..a689f10 100644
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/io/decode/OrcEncodedDataConsumer.java
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/io/decode/OrcEncodedDataConsumer.java
@@ -18,6 +18,7 @@
package org.apache.hadoop.hive.llap.io.decode;
import java.io.IOException;
+import java.util.List;
import org.apache.hadoop.hive.common.io.encoded.EncodedColumnBatch;
import org.apache.hadoop.hive.common.io.encoded.EncodedColumnBatch.ColumnStreamData;
@@ -27,7 +28,12 @@ import org.apache.hadoop.hive.llap.io.api.impl.ColumnVectorBatch;
import org.apache.hadoop.hive.llap.io.metadata.OrcFileMetadata;
import org.apache.hadoop.hive.llap.io.metadata.OrcStripeMetadata;
import org.apache.hadoop.hive.llap.metrics.LlapDaemonIOMetrics;
+import org.apache.hadoop.hive.ql.exec.vector.BytesColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.ColumnVector;
+import org.apache.hadoop.hive.ql.exec.vector.DecimalColumnVector;
+import org.apache.hadoop.hive.ql.exec.vector.DoubleColumnVector;
+import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector;
+import org.apache.hadoop.hive.ql.exec.vector.TimestampColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch;
import org.apache.orc.CompressionCodec;
import org.apache.hadoop.hive.ql.io.orc.encoded.Consumer;
@@ -71,6 +77,35 @@ public class OrcEncodedDataConsumer
stripes[m.getStripeIx()] = m;
}
+ private static ColumnVector createColumn(OrcProto.Type type,
+ int batchSize) {
+ switch (type.getKind()) {
+ case BOOLEAN:
+ case BYTE:
+ case SHORT:
+ case INT:
+ case LONG:
+ case DATE:
+ return new LongColumnVector(batchSize);
+ case FLOAT:
+ case DOUBLE:
+ return new DoubleColumnVector(batchSize);
+ case BINARY:
+ case STRING:
+ case CHAR:
+ case VARCHAR:
+ return new BytesColumnVector(batchSize);
+ case TIMESTAMP:
+ return new TimestampColumnVector(batchSize);
+ case DECIMAL:
+ return new DecimalColumnVector(batchSize, type.getPrecision(),
+ type.getScale());
+ default:
+ throw new IllegalArgumentException("LLAP does not support " +
+ type.getKind());
+ }
+ }
+
@Override
protected void decodeBatch(OrcEncodedColumnBatch batch,
Consumer<ColumnVectorBatch> downstreamConsumer) {
@@ -112,9 +147,16 @@ public class OrcEncodedDataConsumer
ColumnVectorBatch cvb = cvbPool.take();
assert cvb.cols.length == batch.getColumnIxs().length; // Must be constant per split.
cvb.size = batchSize;
-
+ List<OrcProto.Type> types = fileMetadata.getTypes();
+ int[] columnMapping = batch.getColumnIxs();
for (int idx = 0; idx < batch.getColumnIxs().length; idx++) {
- cvb.cols[idx] = (ColumnVector)columnReaders[idx].nextVector(cvb.cols[idx], batchSize);
+ if (cvb.cols[idx] == null) {
+ // skip over the top level struct, but otherwise assume no complex
+ // types
+ cvb.cols[idx] = createColumn(types.get(columnMapping[idx]), batchSize);
+ }
+ cvb.cols[idx].ensureSize(batchSize, false);
+ columnReaders[idx].nextVector(cvb.cols[idx], null, batchSize);
}
// we are done reading a batch, send it to consumer for processing
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/llap-server/src/java/org/apache/hadoop/hive/llap/io/encoded/OrcEncodedDataReader.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/io/encoded/OrcEncodedDataReader.java b/llap-server/src/java/org/apache/hadoop/hive/llap/io/encoded/OrcEncodedDataReader.java
index 406f8f6..83011fb 100644
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/io/encoded/OrcEncodedDataReader.java
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/io/encoded/OrcEncodedDataReader.java
@@ -27,6 +27,8 @@ import java.util.List;
import org.apache.hadoop.hive.llap.counters.LlapIOCounters;
import org.apache.hadoop.hive.llap.metrics.LlapDaemonIOMetrics;
+import org.apache.orc.impl.DataReaderProperties;
+import org.apache.orc.impl.OrcIndex;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.hadoop.conf.Configuration;
@@ -58,7 +60,6 @@ import org.apache.hadoop.hive.ql.io.AcidUtils;
import org.apache.hadoop.hive.ql.io.HdfsUtils;
import org.apache.orc.CompressionKind;
import org.apache.orc.DataReader;
-import org.apache.orc.impl.MetadataReader;
import org.apache.hadoop.hive.ql.io.orc.OrcFile;
import org.apache.hadoop.hive.ql.io.orc.OrcFile.ReaderOptions;
import org.apache.orc.OrcConf;
@@ -144,8 +145,9 @@ public class OrcEncodedDataReader extends CallableWithNdc<Void>
// Read state.
private int stripeIxFrom;
private OrcFileMetadata fileMetadata;
+ private Path path;
private Reader orcReader;
- private MetadataReader metadataReader;
+ private DataReader metadataReader;
private EncodedReader stripeReader;
private Object fileKey;
private FileSystem fs;
@@ -555,13 +557,6 @@ public class OrcEncodedDataReader extends CallableWithNdc<Void>
* Closes the stripe readers (on error).
*/
private void cleanupReaders() {
- if (metadataReader != null) {
- try {
- metadataReader.close();
- } catch (IOException ex) {
- // Ignore.
- }
- }
if (stripeReader != null) {
try {
stripeReader.close();
@@ -576,7 +571,7 @@ public class OrcEncodedDataReader extends CallableWithNdc<Void>
*/
private void ensureOrcReader() throws IOException {
if (orcReader != null) return;
- Path path = split.getPath();
+ path = split.getPath();
if (fileKey instanceof Long && HiveConf.getBoolVar(conf, ConfVars.LLAP_IO_USE_FILEID_PATH)) {
path = HdfsUtils.getFileIdPath(fs, path, (long)fileKey);
}
@@ -661,7 +656,16 @@ public class OrcEncodedDataReader extends CallableWithNdc<Void>
ensureOrcReader();
if (metadataReader != null) return;
long startTime = counters.startTimeCounter();
- metadataReader = orcReader.metadata();
+ boolean useZeroCopy = (conf != null) && OrcConf.USE_ZEROCOPY.getBoolean(conf);
+ metadataReader = RecordReaderUtils.createDefaultDataReader(
+ DataReaderProperties.builder()
+ .withBufferSize(orcReader.getCompressionSize())
+ .withCompression(orcReader.getCompressionKind())
+ .withFileSystem(fs)
+ .withPath(path)
+ .withTypeCount(orcReader.getSchema().getMaximumId() + 1)
+ .withZeroCopy(useZeroCopy)
+ .build());
counters.incrTimeCounter(LlapIOCounters.HDFS_TIME_NS, startTime);
}
@@ -805,13 +809,13 @@ public class OrcEncodedDataReader extends CallableWithNdc<Void>
private class DataWrapperForOrc implements DataReader, DataCache {
private final DataReader orcDataReader;
- public DataWrapperForOrc() {
- boolean useZeroCopy = (conf != null) && OrcConf.USE_ZEROCOPY.getBoolean(conf);
- if (useZeroCopy && !getAllocator().isDirectAlloc()) {
- throw new UnsupportedOperationException("Cannot use zero-copy reader with non-direct cache "
- + "buffers; either disable zero-copy or enable direct cache allocation");
- }
- this.orcDataReader = orcReader.createDefaultDataReader(useZeroCopy);
+ private DataWrapperForOrc(DataWrapperForOrc other) {
+ orcDataReader = other.orcDataReader.clone();
+ }
+
+ public DataWrapperForOrc() throws IOException {
+ ensureMetadataReader();
+ this.orcDataReader = metadataReader.clone();
}
@Override
@@ -881,10 +885,32 @@ public class OrcEncodedDataReader extends CallableWithNdc<Void>
}
@Override
+ public DataWrapperForOrc clone() {
+ return new DataWrapperForOrc(this);
+ }
+
+ @Override
public void open() throws IOException {
long startTime = counters.startTimeCounter();
orcDataReader.open();
counters.recordHdfsTime(startTime);
}
+
+ @Override
+ public OrcIndex readRowIndex(StripeInformation stripe,
+ OrcProto.StripeFooter footer,
+ boolean[] included,
+ OrcProto.RowIndex[] indexes,
+ boolean[] sargColumns,
+ OrcProto.BloomFilterIndex[] bloomFilterIndices
+ ) throws IOException {
+ return orcDataReader.readRowIndex(stripe, footer, included, indexes,
+ sargColumns, bloomFilterIndices);
+ }
+
+ @Override
+ public OrcProto.StripeFooter readStripeFooter(StripeInformation stripe) throws IOException {
+ return orcDataReader.readStripeFooter(stripe);
+ }
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/llap-server/src/java/org/apache/hadoop/hive/llap/io/metadata/OrcStripeMetadata.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/io/metadata/OrcStripeMetadata.java b/llap-server/src/java/org/apache/hadoop/hive/llap/io/metadata/OrcStripeMetadata.java
index 82187bd..6874586 100644
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/io/metadata/OrcStripeMetadata.java
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/io/metadata/OrcStripeMetadata.java
@@ -28,9 +28,9 @@ import org.apache.hadoop.hive.llap.cache.EvictionDispatcher;
import org.apache.hadoop.hive.llap.cache.LlapCacheableBuffer;
import org.apache.hadoop.hive.ql.io.SyntheticFileId;
import org.apache.hadoop.hive.ql.io.orc.encoded.OrcBatchKey;
+import org.apache.orc.DataReader;
import org.apache.orc.OrcProto;
import org.apache.orc.StripeInformation;
-import org.apache.orc.impl.MetadataReader;
import org.apache.orc.impl.OrcIndex;
public class OrcStripeMetadata extends LlapCacheableBuffer {
@@ -54,7 +54,7 @@ public class OrcStripeMetadata extends LlapCacheableBuffer {
SIZE_ESTIMATOR = SIZE_ESTIMATORS.get(OrcStripeMetadata.class);
}
- public OrcStripeMetadata(OrcBatchKey stripeKey, MetadataReader mr, StripeInformation stripe,
+ public OrcStripeMetadata(OrcBatchKey stripeKey, DataReader mr, StripeInformation stripe,
boolean[] includes, boolean[] sargColumns) throws IOException {
this.stripeKey = stripeKey;
OrcProto.StripeFooter footer = mr.readStripeFooter(stripe);
@@ -95,7 +95,7 @@ public class OrcStripeMetadata extends LlapCacheableBuffer {
return true;
}
- public void loadMissingIndexes(MetadataReader mr, StripeInformation stripe, boolean[] includes,
+ public void loadMissingIndexes(DataReader mr, StripeInformation stripe, boolean[] includes,
boolean[] sargColumns) throws IOException {
// TODO: should we save footer to avoid a read here?
rowIndex = mr.readRowIndex(stripe, null, includes, rowIndex.getRowGroupIndex(),
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/llap-server/src/test/org/apache/hadoop/hive/llap/cache/TestIncrementalObjectSizeEstimator.java
----------------------------------------------------------------------
diff --git a/llap-server/src/test/org/apache/hadoop/hive/llap/cache/TestIncrementalObjectSizeEstimator.java b/llap-server/src/test/org/apache/hadoop/hive/llap/cache/TestIncrementalObjectSizeEstimator.java
index a078f73..183fb1b 100644
--- a/llap-server/src/test/org/apache/hadoop/hive/llap/cache/TestIncrementalObjectSizeEstimator.java
+++ b/llap-server/src/test/org/apache/hadoop/hive/llap/cache/TestIncrementalObjectSizeEstimator.java
@@ -21,18 +21,20 @@ import static org.junit.Assert.*;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.nio.ByteBuffer;
import java.util.HashMap;
import java.util.List;
import java.util.ArrayList;
import java.util.LinkedHashSet;
+import org.apache.hadoop.hive.common.io.DiskRangeList;
+import org.apache.orc.DataReader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.hadoop.hive.llap.IncrementalObjectSizeEstimator;
import org.apache.hadoop.hive.llap.IncrementalObjectSizeEstimator.ObjectEstimator;
import org.apache.hadoop.hive.llap.io.metadata.OrcFileMetadata;
import org.apache.hadoop.hive.llap.io.metadata.OrcStripeMetadata;
-import org.apache.orc.impl.MetadataReader;
import org.apache.orc.impl.OrcIndex;
import org.apache.orc.StripeInformation;
import org.apache.hadoop.hive.ql.io.orc.encoded.OrcBatchKey;
@@ -46,11 +48,16 @@ import com.google.protobuf.CodedOutputStream;
public class TestIncrementalObjectSizeEstimator {
private static final Logger LOG = LoggerFactory.getLogger(TestIncrementalObjectSizeEstimator.class);
- private static class DummyMetadataReader implements MetadataReader {
+ private static class DummyMetadataReader implements DataReader {
public boolean doStreamStep = false;
public boolean isEmpty;
@Override
+ public void open() throws IOException {
+
+ }
+
+ @Override
public OrcIndex readRowIndex(StripeInformation stripe,
OrcProto.StripeFooter footer,
boolean[] included, OrcProto.RowIndex[] indexes, boolean[] sargColumns,
@@ -118,6 +125,26 @@ public class TestIncrementalObjectSizeEstimator {
}
@Override
+ public DiskRangeList readFileData(DiskRangeList range, long baseOffset, boolean doForceDirect) throws IOException {
+ return null;
+ }
+
+ @Override
+ public boolean isTrackingDiskRanges() {
+ return false;
+ }
+
+ @Override
+ public void releaseBuffer(ByteBuffer toRelease) {
+
+ }
+
+ @Override
+ public DataReader clone() {
+ return null;
+ }
+
+ @Override
public void close() throws IOException {
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/orc/src/java/org/apache/orc/DataReader.java
----------------------------------------------------------------------
diff --git a/orc/src/java/org/apache/orc/DataReader.java b/orc/src/java/org/apache/orc/DataReader.java
index b70f26b..a5dbb76 100644
--- a/orc/src/java/org/apache/orc/DataReader.java
+++ b/orc/src/java/org/apache/orc/DataReader.java
@@ -18,18 +18,27 @@
package org.apache.orc;
-import java.io.Closeable;
import java.io.IOException;
import java.nio.ByteBuffer;
import org.apache.hadoop.hive.common.io.DiskRangeList;
+import org.apache.orc.impl.OrcIndex;
/** An abstract data reader that IO formats can use to read bytes from underlying storage. */
-public interface DataReader extends Closeable {
+public interface DataReader extends AutoCloseable {
/** Opens the DataReader, making it ready to use. */
void open() throws IOException;
+ OrcIndex readRowIndex(StripeInformation stripe,
+ OrcProto.StripeFooter footer,
+ boolean[] included, OrcProto.RowIndex[] indexes,
+ boolean[] sargColumns,
+ OrcProto.BloomFilterIndex[] bloomFilterIndices
+ ) throws IOException;
+
+ OrcProto.StripeFooter readStripeFooter(StripeInformation stripe) throws IOException;
+
/** Reads the data.
*
* Note that for the cases such as zero-copy read, caller must release the disk ranges
@@ -53,4 +62,15 @@ public interface DataReader extends Closeable {
* @param toRelease The buffer to release.
*/
void releaseBuffer(ByteBuffer toRelease);
+
+ /**
+ * Clone the entire state of the DataReader with the assumption that the
+ * clone will be closed at a different time. Thus, any file handles in the
+ * implementation need to be cloned.
+ * @return a new instance
+ */
+ DataReader clone();
+
+ @Override
+ public void close() throws IOException;
}
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/orc/src/java/org/apache/orc/DataReaderFactory.java
----------------------------------------------------------------------
diff --git a/orc/src/java/org/apache/orc/DataReaderFactory.java b/orc/src/java/org/apache/orc/DataReaderFactory.java
deleted file mode 100644
index ec3a0e9..0000000
--- a/orc/src/java/org/apache/orc/DataReaderFactory.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package org.apache.orc;
-
-import org.apache.orc.impl.DataReaderProperties;
-
-public interface DataReaderFactory {
-
- DataReader create(DataReaderProperties properties);
-
-}
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/orc/src/java/org/apache/orc/MetadataReaderFactory.java
----------------------------------------------------------------------
diff --git a/orc/src/java/org/apache/orc/MetadataReaderFactory.java b/orc/src/java/org/apache/orc/MetadataReaderFactory.java
deleted file mode 100644
index 64629da..0000000
--- a/orc/src/java/org/apache/orc/MetadataReaderFactory.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.apache.orc;
-
-import org.apache.orc.impl.MetadataReader;
-import org.apache.orc.impl.MetadataReaderProperties;
-
-import java.io.IOException;
-
-public interface MetadataReaderFactory {
-
- MetadataReader create(MetadataReaderProperties properties) throws IOException;
-
-}
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/orc/src/java/org/apache/orc/OrcUtils.java
----------------------------------------------------------------------
diff --git a/orc/src/java/org/apache/orc/OrcUtils.java b/orc/src/java/org/apache/orc/OrcUtils.java
index 2e93254..5845ba6 100644
--- a/orc/src/java/org/apache/orc/OrcUtils.java
+++ b/orc/src/java/org/apache/orc/OrcUtils.java
@@ -449,4 +449,82 @@ public class OrcUtils {
return columnId;
}
+ /**
+ * Translate the given rootColumn from the list of types to a TypeDescription.
+ * @param types all of the types
+ * @param rootColumn translate this type
+ * @return a new TypeDescription that matches the given rootColumn
+ */
+ public static
+ TypeDescription convertTypeFromProtobuf(List<OrcProto.Type> types,
+ int rootColumn) {
+ OrcProto.Type type = types.get(rootColumn);
+ switch (type.getKind()) {
+ case BOOLEAN:
+ return TypeDescription.createBoolean();
+ case BYTE:
+ return TypeDescription.createByte();
+ case SHORT:
+ return TypeDescription.createShort();
+ case INT:
+ return TypeDescription.createInt();
+ case LONG:
+ return TypeDescription.createLong();
+ case FLOAT:
+ return TypeDescription.createFloat();
+ case DOUBLE:
+ return TypeDescription.createDouble();
+ case STRING:
+ return TypeDescription.createString();
+ case CHAR:
+ case VARCHAR: {
+ TypeDescription result = type.getKind() == OrcProto.Type.Kind.CHAR ?
+ TypeDescription.createChar() : TypeDescription.createVarchar();
+ if (type.hasMaximumLength()) {
+ result.withMaxLength(type.getMaximumLength());
+ }
+ return result;
+ }
+ case BINARY:
+ return TypeDescription.createBinary();
+ case TIMESTAMP:
+ return TypeDescription.createTimestamp();
+ case DATE:
+ return TypeDescription.createDate();
+ case DECIMAL: {
+ TypeDescription result = TypeDescription.createDecimal();
+ if (type.hasScale()) {
+ result.withScale(type.getScale());
+ }
+ if (type.hasPrecision()) {
+ result.withPrecision(type.getPrecision());
+ }
+ return result;
+ }
+ case LIST:
+ return TypeDescription.createList(
+ convertTypeFromProtobuf(types, type.getSubtypes(0)));
+ case MAP:
+ return TypeDescription.createMap(
+ convertTypeFromProtobuf(types, type.getSubtypes(0)),
+ convertTypeFromProtobuf(types, type.getSubtypes(1)));
+ case STRUCT: {
+ TypeDescription result = TypeDescription.createStruct();
+ for(int f=0; f < type.getSubtypesCount(); ++f) {
+ result.addField(type.getFieldNames(f),
+ convertTypeFromProtobuf(types, type.getSubtypes(f)));
+ }
+ return result;
+ }
+ case UNION: {
+ TypeDescription result = TypeDescription.createUnion();
+ for(int f=0; f < type.getSubtypesCount(); ++f) {
+ result.addUnionChild(
+ convertTypeFromProtobuf(types, type.getSubtypes(f)));
+ }
+ return result;
+ }
+ }
+ throw new IllegalArgumentException("Unknown ORC type " + type.getKind());
+ }
}
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/orc/src/java/org/apache/orc/Reader.java
----------------------------------------------------------------------
diff --git a/orc/src/java/org/apache/orc/Reader.java b/orc/src/java/org/apache/orc/Reader.java
index be722b5..39de763 100644
--- a/orc/src/java/org/apache/orc/Reader.java
+++ b/orc/src/java/org/apache/orc/Reader.java
@@ -23,7 +23,6 @@ import java.nio.ByteBuffer;
import java.util.List;
import org.apache.hadoop.hive.ql.io.sarg.SearchArgument;
-import org.apache.orc.impl.MetadataReader;
/**
* The interface for reading ORC files.
@@ -116,9 +115,15 @@ public interface Reader {
ColumnStatistics[] getStatistics();
/**
+ * Get the type of rows in this ORC file.
+ */
+ TypeDescription getSchema();
+
+ /**
* Get the list of types contained in the file. The root type is the first
* type in the list.
* @return the list of flattened types
+ * @deprecated use getSchema instead
*/
List<OrcProto.Type> getTypes();
@@ -144,6 +149,7 @@ public interface Reader {
private Boolean useZeroCopy = null;
private Boolean skipCorruptRecords = null;
private TypeDescription schema = null;
+ private DataReader dataReader = null;
/**
* Set the list of columns to read.
@@ -197,6 +203,11 @@ public interface Reader {
return this;
}
+ public Options dataReader(DataReader value) {
+ this.dataReader = value;
+ return this;
+ }
+
/**
* Set whether to skip corrupt records.
* @param value the new skip corrupt records flag
@@ -247,6 +258,10 @@ public interface Reader {
return skipCorruptRecords;
}
+ public DataReader getDataReader() {
+ return dataReader;
+ }
+
public Options clone() {
Options result = new Options();
result.include = include;
@@ -257,6 +272,7 @@ public interface Reader {
result.columnNames = columnNames;
result.useZeroCopy = useZeroCopy;
result.skipCorruptRecords = skipCorruptRecords;
+ result.dataReader = dataReader == null ? null : dataReader.clone();
return result;
}
@@ -321,11 +337,6 @@ public interface Reader {
RecordReader rowsOptions(Options options) throws IOException;
/**
- * @return Metadata reader used to read file metadata.
- */
- MetadataReader metadata() throws IOException;
-
- /**
* @return List of integers representing version of the file, in order from major to minor.
*/
List<Integer> getVersionList();
@@ -351,12 +362,6 @@ public interface Reader {
List<OrcProto.ColumnStatistics> getOrcProtoFileStatistics();
/**
- * @param useZeroCopy Whether zero-copy read should be used.
- * @return The default data reader that ORC is using to read bytes from disk.
- */
- DataReader createDefaultDataReader(boolean useZeroCopy);
-
- /**
* @return Serialized file metadata read from disk for the purposes of caching, etc.
*/
ByteBuffer getSerializedFileFooter();
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/orc/src/java/org/apache/orc/RecordReader.java
----------------------------------------------------------------------
diff --git a/orc/src/java/org/apache/orc/RecordReader.java b/orc/src/java/org/apache/orc/RecordReader.java
index 7229dda..09ba0f0 100644
--- a/orc/src/java/org/apache/orc/RecordReader.java
+++ b/orc/src/java/org/apache/orc/RecordReader.java
@@ -30,13 +30,11 @@ public interface RecordReader {
* controlled by the callers. Caller need to look at
* VectorizedRowBatch.size of the retunred object to know the batch
* size read.
- * @param previousBatch a row batch object that can be reused by the reader
- * @return the row batch that was read. The batch will have a non-zero row
- * count if the pointer isn't at the end of the file
+ * @param batch a row batch object to read into
+ * @return were more rows available to read?
* @throws java.io.IOException
*/
- VectorizedRowBatch nextBatch(VectorizedRowBatch previousBatch
- ) throws IOException;
+ boolean nextBatch(VectorizedRowBatch batch) throws IOException;
/**
* Get the row number of the row that will be returned by the following
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/orc/src/java/org/apache/orc/TypeDescription.java
----------------------------------------------------------------------
diff --git a/orc/src/java/org/apache/orc/TypeDescription.java b/orc/src/java/org/apache/orc/TypeDescription.java
index bd900ac..b8e057e 100644
--- a/orc/src/java/org/apache/orc/TypeDescription.java
+++ b/orc/src/java/org/apache/orc/TypeDescription.java
@@ -61,7 +61,7 @@ public class TypeDescription {
LIST("array", false),
MAP("map", false),
STRUCT("struct", false),
- UNION("union", false);
+ UNION("uniontype", false);
Category(String name, boolean isPrimitive) {
this.name = name;
@@ -258,6 +258,66 @@ public class TypeDescription {
return id;
}
+ public TypeDescription clone() {
+ TypeDescription result = new TypeDescription(category);
+ result.maxLength = maxLength;
+ result.precision = precision;
+ result.scale = scale;
+ if (fieldNames != null) {
+ result.fieldNames.addAll(fieldNames);
+ }
+ if (children != null) {
+ for(TypeDescription child: children) {
+ TypeDescription clone = child.clone();
+ clone.parent = result;
+ result.children.add(clone);
+ }
+ }
+ return result;
+ }
+
+ @Override
+ public int hashCode() {
+ return getId();
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ if (other == null || other.getClass() != TypeDescription.class) {
+ return false;
+ }
+ if (other == this) {
+ return true;
+ }
+ TypeDescription castOther = (TypeDescription) other;
+ if (category != castOther.category ||
+ getId() != castOther.getId() ||
+ getMaximumId() != castOther.getMaximumId() ||
+ maxLength != castOther.maxLength ||
+ scale != castOther.scale ||
+ precision != castOther.precision) {
+ return false;
+ }
+ if (children != null) {
+ if (children.size() != castOther.children.size()) {
+ return false;
+ }
+ for (int i = 0; i < children.size(); ++i) {
+ if (!children.get(i).equals(castOther.children.get(i))) {
+ return false;
+ }
+ }
+ }
+ if (category == Category.STRUCT) {
+ for(int i=0; i < fieldNames.size(); ++i) {
+ if (!fieldNames.get(i).equals(castOther.fieldNames.get(i))) {
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+
/**
* Get the maximum id assigned to this type or its children.
* The first call will cause all of the the ids in tree to be assigned, so
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/orc/src/java/org/apache/orc/impl/BitFieldReader.java
----------------------------------------------------------------------
diff --git a/orc/src/java/org/apache/orc/impl/BitFieldReader.java b/orc/src/java/org/apache/orc/impl/BitFieldReader.java
index 8d9d3cb..dda7355 100644
--- a/orc/src/java/org/apache/orc/impl/BitFieldReader.java
+++ b/orc/src/java/org/apache/orc/impl/BitFieldReader.java
@@ -137,7 +137,7 @@ public class BitFieldReader {
long previousLen) throws IOException {
previous.isRepeating = true;
for (int i = 0; i < previousLen; i++) {
- if (!previous.isNull[i]) {
+ if (previous.noNulls || !previous.isNull[i]) {
previous.vector[i] = next();
} else {
// The default value of null for int types in vectorized
@@ -150,7 +150,8 @@ public class BitFieldReader {
// when determining the isRepeating flag.
if (previous.isRepeating
&& i > 0
- && ((previous.vector[i - 1] != previous.vector[i]) || (previous.isNull[i - 1] != previous.isNull[i]))) {
+ && ((previous.vector[0] != previous.vector[i]) ||
+ (previous.isNull[0] != previous.isNull[i]))) {
previous.isRepeating = false;
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/orc/src/java/org/apache/orc/impl/DataReaderProperties.java
----------------------------------------------------------------------
diff --git a/orc/src/java/org/apache/orc/impl/DataReaderProperties.java b/orc/src/java/org/apache/orc/impl/DataReaderProperties.java
index 49f47d6..bb73d53 100644
--- a/orc/src/java/org/apache/orc/impl/DataReaderProperties.java
+++ b/orc/src/java/org/apache/orc/impl/DataReaderProperties.java
@@ -3,7 +3,7 @@ package org.apache.orc.impl;
import com.google.common.base.Preconditions;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
-import org.apache.orc.CompressionCodec;
+import org.apache.orc.CompressionKind;
import javax.annotation.Nullable;
@@ -11,14 +11,18 @@ public final class DataReaderProperties {
private final FileSystem fileSystem;
private final Path path;
- private final CompressionCodec codec;
+ private final CompressionKind compression;
private final boolean zeroCopy;
+ private final int typeCount;
+ private final int bufferSize;
private DataReaderProperties(Builder builder) {
this.fileSystem = builder.fileSystem;
this.path = builder.path;
- this.codec = builder.codec;
+ this.compression = builder.compression;
this.zeroCopy = builder.zeroCopy;
+ this.typeCount = builder.typeCount;
+ this.bufferSize = builder.bufferSize;
}
public FileSystem getFileSystem() {
@@ -29,15 +33,22 @@ public final class DataReaderProperties {
return path;
}
- @Nullable
- public CompressionCodec getCodec() {
- return codec;
+ public CompressionKind getCompression() {
+ return compression;
}
public boolean getZeroCopy() {
return zeroCopy;
}
+ public int getTypeCount() {
+ return typeCount;
+ }
+
+ public int getBufferSize() {
+ return bufferSize;
+ }
+
public static Builder builder() {
return new Builder();
}
@@ -46,8 +57,10 @@ public final class DataReaderProperties {
private FileSystem fileSystem;
private Path path;
- private CompressionCodec codec;
+ private CompressionKind compression;
private boolean zeroCopy;
+ private int typeCount;
+ private int bufferSize;
private Builder() {
@@ -63,8 +76,8 @@ public final class DataReaderProperties {
return this;
}
- public Builder withCodec(CompressionCodec codec) {
- this.codec = codec;
+ public Builder withCompression(CompressionKind value) {
+ this.compression = value;
return this;
}
@@ -73,6 +86,16 @@ public final class DataReaderProperties {
return this;
}
+ public Builder withTypeCount(int value) {
+ this.typeCount = value;
+ return this;
+ }
+
+ public Builder withBufferSize(int value) {
+ this.bufferSize = value;
+ return this;
+ }
+
public DataReaderProperties build() {
Preconditions.checkNotNull(fileSystem);
Preconditions.checkNotNull(path);
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/orc/src/java/org/apache/orc/impl/DefaultMetadataReaderFactory.java
----------------------------------------------------------------------
diff --git a/orc/src/java/org/apache/orc/impl/DefaultMetadataReaderFactory.java b/orc/src/java/org/apache/orc/impl/DefaultMetadataReaderFactory.java
deleted file mode 100644
index fc0d141..0000000
--- a/orc/src/java/org/apache/orc/impl/DefaultMetadataReaderFactory.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package org.apache.orc.impl;
-
-import org.apache.orc.MetadataReaderFactory;
-
-import java.io.IOException;
-
-public final class DefaultMetadataReaderFactory implements MetadataReaderFactory {
-
- @Override
- public MetadataReader create(MetadataReaderProperties properties) throws IOException {
- return new MetadataReaderImpl(properties);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/orc/src/java/org/apache/orc/impl/InStream.java
----------------------------------------------------------------------
diff --git a/orc/src/java/org/apache/orc/impl/InStream.java b/orc/src/java/org/apache/orc/impl/InStream.java
index 1893afe..851f645 100644
--- a/orc/src/java/org/apache/orc/impl/InStream.java
+++ b/orc/src/java/org/apache/orc/impl/InStream.java
@@ -53,6 +53,9 @@ public abstract class InStream extends InputStream {
return length;
}
+ @Override
+ public abstract void close();
+
public static class UncompressedStream extends InStream {
private List<DiskRange> bytes;
private long length;
@@ -423,7 +426,6 @@ public abstract class InStream extends InputStream {
/**
* Create an input stream from a list of buffers.
- * @param fileName name of the file
* @param streamName the name of the stream
* @param buffers the list of ranges of bytes for the stream
* @param offsets a list of offsets (the same length as input) that must
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/orc/src/java/org/apache/orc/impl/IntegerReader.java
----------------------------------------------------------------------
diff --git a/orc/src/java/org/apache/orc/impl/IntegerReader.java b/orc/src/java/org/apache/orc/impl/IntegerReader.java
index 7dfd289..8bef0f1 100644
--- a/orc/src/java/org/apache/orc/impl/IntegerReader.java
+++ b/orc/src/java/org/apache/orc/impl/IntegerReader.java
@@ -20,7 +20,7 @@ package org.apache.orc.impl;
import java.io.IOException;
-import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector;
+import org.apache.hadoop.hive.ql.exec.vector.ColumnVector;
/**
* Interface for reading integers.
@@ -57,9 +57,25 @@ public interface IntegerReader {
/**
* Return the next available vector for values.
- * @return
+ * @param column the column being read
+ * @param data the vector to read into
+ * @param length the number of numbers to read
+ * @throws IOException
+ */
+ void nextVector(ColumnVector column,
+ long[] data,
+ int length
+ ) throws IOException;
+
+ /**
+ * Return the next available vector for values. Does not change the
+ * value of column.isRepeating.
+ * @param column the column being read
+ * @param data the vector to read into
+ * @param length the number of numbers to read
* @throws IOException
*/
- void nextVector(LongColumnVector previous, final int previousLen)
- throws IOException;
-}
+ void nextVector(ColumnVector column,
+ int[] data,
+ int length
+ ) throws IOException;}
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/orc/src/java/org/apache/orc/impl/MetadataReader.java
----------------------------------------------------------------------
diff --git a/orc/src/java/org/apache/orc/impl/MetadataReader.java b/orc/src/java/org/apache/orc/impl/MetadataReader.java
deleted file mode 100644
index 500239d..0000000
--- a/orc/src/java/org/apache/orc/impl/MetadataReader.java
+++ /dev/null
@@ -1,33 +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.orc.impl;
-
-import java.io.Closeable;
-import java.io.IOException;
-
-import org.apache.orc.OrcProto;
-import org.apache.orc.StripeInformation;
-
-public interface MetadataReader extends Closeable {
- OrcIndex readRowIndex(StripeInformation stripe,
- OrcProto.StripeFooter footer,
- boolean[] included, OrcProto.RowIndex[] indexes, boolean[] sargColumns,
- OrcProto.BloomFilterIndex[] bloomFilterIndices) throws IOException;
-
- OrcProto.StripeFooter readStripeFooter(StripeInformation stripe) throws IOException;
-}
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/orc/src/java/org/apache/orc/impl/MetadataReaderImpl.java
----------------------------------------------------------------------
diff --git a/orc/src/java/org/apache/orc/impl/MetadataReaderImpl.java b/orc/src/java/org/apache/orc/impl/MetadataReaderImpl.java
deleted file mode 100644
index c3ea74f..0000000
--- a/orc/src/java/org/apache/orc/impl/MetadataReaderImpl.java
+++ /dev/null
@@ -1,120 +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.orc.impl;
-
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.util.List;
-
-import com.google.common.base.Preconditions;
-import org.apache.hadoop.fs.FSDataInputStream;
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.hive.common.io.DiskRange;
-import org.apache.orc.CompressionCodec;
-import org.apache.orc.OrcProto;
-import org.apache.orc.StripeInformation;
-
-import com.google.common.collect.Lists;
-
-public class MetadataReaderImpl implements MetadataReader {
- private final FSDataInputStream file;
- private final CompressionCodec codec;
- private final int bufferSize;
- private final int typeCount;
-
- MetadataReaderImpl(MetadataReaderProperties properties) throws IOException {
- this.file = properties.getFileSystem().open(properties.getPath());
- this.codec = properties.getCodec();
- this.bufferSize = properties.getBufferSize();
- this.typeCount = properties.getTypeCount();
- }
-
- @Override
- public OrcIndex readRowIndex(StripeInformation stripe,
- OrcProto.StripeFooter footer, boolean[] included, OrcProto.RowIndex[] indexes,
- boolean[] sargColumns, OrcProto.BloomFilterIndex[] bloomFilterIndices) throws IOException {
- if (footer == null) {
- footer = readStripeFooter(stripe);
- }
- if (indexes == null) {
- indexes = new OrcProto.RowIndex[typeCount];
- }
- if (bloomFilterIndices == null) {
- bloomFilterIndices = new OrcProto.BloomFilterIndex[typeCount];
- }
- long offset = stripe.getOffset();
- List<OrcProto.Stream> streams = footer.getStreamsList();
- for (int i = 0; i < streams.size(); i++) {
- OrcProto.Stream stream = streams.get(i);
- OrcProto.Stream nextStream = null;
- if (i < streams.size() - 1) {
- nextStream = streams.get(i+1);
- }
- int col = stream.getColumn();
- int len = (int) stream.getLength();
- // row index stream and bloom filter are interlaced, check if the sarg column contains bloom
- // filter and combine the io to read row index and bloom filters for that column together
- if (stream.hasKind() && (stream.getKind() == OrcProto.Stream.Kind.ROW_INDEX)) {
- boolean readBloomFilter = false;
- if (sargColumns != null && sargColumns[col] &&
- nextStream.getKind() == OrcProto.Stream.Kind.BLOOM_FILTER) {
- len += nextStream.getLength();
- i += 1;
- readBloomFilter = true;
- }
- if ((included == null || included[col]) && indexes[col] == null) {
- byte[] buffer = new byte[len];
- file.readFully(offset, buffer, 0, buffer.length);
- ByteBuffer bb = ByteBuffer.wrap(buffer);
- indexes[col] = OrcProto.RowIndex.parseFrom(InStream.create("index",
- Lists.<DiskRange>newArrayList(new BufferChunk(bb, 0)), stream.getLength(),
- codec, bufferSize));
- if (readBloomFilter) {
- bb.position((int) stream.getLength());
- bloomFilterIndices[col] = OrcProto.BloomFilterIndex.parseFrom(InStream.create(
- "bloom_filter", Lists.<DiskRange>newArrayList(new BufferChunk(bb, 0)),
- nextStream.getLength(), codec, bufferSize));
- }
- }
- }
- offset += len;
- }
-
- OrcIndex index = new OrcIndex(indexes, bloomFilterIndices);
- return index;
- }
-
- @Override
- public OrcProto.StripeFooter readStripeFooter(StripeInformation stripe) throws IOException {
- long offset = stripe.getOffset() + stripe.getIndexLength() + stripe.getDataLength();
- int tailLength = (int) stripe.getFooterLength();
-
- // read the footer
- ByteBuffer tailBuf = ByteBuffer.allocate(tailLength);
- file.readFully(offset, tailBuf.array(), tailBuf.arrayOffset(), tailLength);
- return OrcProto.StripeFooter.parseFrom(InStream.createCodedInputStream("footer",
- Lists.<DiskRange>newArrayList(new BufferChunk(tailBuf, 0)),
- tailLength, codec, bufferSize));
- }
-
- @Override
- public void close() throws IOException {
- file.close();
- }
-}
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/orc/src/java/org/apache/orc/impl/MetadataReaderProperties.java
----------------------------------------------------------------------
diff --git a/orc/src/java/org/apache/orc/impl/MetadataReaderProperties.java b/orc/src/java/org/apache/orc/impl/MetadataReaderProperties.java
deleted file mode 100644
index 321931c..0000000
--- a/orc/src/java/org/apache/orc/impl/MetadataReaderProperties.java
+++ /dev/null
@@ -1,96 +0,0 @@
-package org.apache.orc.impl;
-
-import com.google.common.base.Preconditions;
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.Path;
-import org.apache.orc.CompressionCodec;
-
-import javax.annotation.Nullable;
-
-public final class MetadataReaderProperties {
-
- private final FileSystem fileSystem;
- private final Path path;
- private final CompressionCodec codec;
- private final int bufferSize;
- private final int typeCount;
-
- private MetadataReaderProperties(Builder builder) {
- this.fileSystem = builder.fileSystem;
- this.path = builder.path;
- this.codec = builder.codec;
- this.bufferSize = builder.bufferSize;
- this.typeCount = builder.typeCount;
- }
-
- public FileSystem getFileSystem() {
- return fileSystem;
- }
-
- public Path getPath() {
- return path;
- }
-
- @Nullable
- public CompressionCodec getCodec() {
- return codec;
- }
-
- public int getBufferSize() {
- return bufferSize;
- }
-
- public int getTypeCount() {
- return typeCount;
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static class Builder {
-
- private FileSystem fileSystem;
- private Path path;
- private CompressionCodec codec;
- private int bufferSize;
- private int typeCount;
-
- private Builder() {
-
- }
-
- public Builder withFileSystem(FileSystem fileSystem) {
- this.fileSystem = fileSystem;
- return this;
- }
-
- public Builder withPath(Path path) {
- this.path = path;
- return this;
- }
-
- public Builder withCodec(CompressionCodec codec) {
- this.codec = codec;
- return this;
- }
-
- public Builder withBufferSize(int bufferSize) {
- this.bufferSize = bufferSize;
- return this;
- }
-
- public Builder withTypeCount(int typeCount) {
- this.typeCount = typeCount;
- return this;
- }
-
- public MetadataReaderProperties build() {
- Preconditions.checkNotNull(fileSystem);
- Preconditions.checkNotNull(path);
-
- return new MetadataReaderProperties(this);
- }
-
- }
-}
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/orc/src/java/org/apache/orc/impl/RunLengthByteReader.java
----------------------------------------------------------------------
diff --git a/orc/src/java/org/apache/orc/impl/RunLengthByteReader.java b/orc/src/java/org/apache/orc/impl/RunLengthByteReader.java
index 380f3391..24bd051 100644
--- a/orc/src/java/org/apache/orc/impl/RunLengthByteReader.java
+++ b/orc/src/java/org/apache/orc/impl/RunLengthByteReader.java
@@ -20,7 +20,7 @@ package org.apache.orc.impl;
import java.io.EOFException;
import java.io.IOException;
-import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector;
+import org.apache.hadoop.hive.ql.exec.vector.ColumnVector;
/**
* A reader that reads a sequence of bytes. A control byte is read before
@@ -92,16 +92,16 @@ public class RunLengthByteReader {
return result;
}
- public void nextVector(LongColumnVector previous, long previousLen)
+ public void nextVector(ColumnVector previous, long[] data, long size)
throws IOException {
previous.isRepeating = true;
- for (int i = 0; i < previousLen; i++) {
+ for (int i = 0; i < size; i++) {
if (!previous.isNull[i]) {
- previous.vector[i] = next();
+ data[i] = next();
} else {
// The default value of null for int types in vectorized
// processing is 1, so set that if the value is null
- previous.vector[i] = 1;
+ data[i] = 1;
}
// The default value for nulls in Vectorization for int types is 1
@@ -109,12 +109,36 @@ public class RunLengthByteReader {
// when determining the isRepeating flag.
if (previous.isRepeating
&& i > 0
- && ((previous.vector[i - 1] != previous.vector[i]) || (previous.isNull[i - 1] != previous.isNull[i]))) {
+ && ((data[0] != data[i]) ||
+ (previous.isNull[0] != previous.isNull[i]))) {
previous.isRepeating = false;
}
}
}
+ /**
+ * Read the next size bytes into the data array, skipping over any slots
+ * where isNull is true.
+ * @param isNull if non-null, skip any rows where isNull[r] is true
+ * @param data the array to read into
+ * @param size the number of elements to read
+ * @throws IOException
+ */
+ public void nextVector(boolean[] isNull, int[] data,
+ long size) throws IOException {
+ if (isNull == null) {
+ for(int i=0; i < size; ++i) {
+ data[i] = next();
+ }
+ } else {
+ for(int i=0; i < size; ++i) {
+ if (!isNull[i]) {
+ data[i] = next();
+ }
+ }
+ }
+ }
+
public void seek(PositionProvider index) throws IOException {
input.seek(index);
int consumed = (int) index.getNext();
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/orc/src/java/org/apache/orc/impl/RunLengthIntegerReader.java
----------------------------------------------------------------------
diff --git a/orc/src/java/org/apache/orc/impl/RunLengthIntegerReader.java b/orc/src/java/org/apache/orc/impl/RunLengthIntegerReader.java
index 0c90cde..b91a263 100644
--- a/orc/src/java/org/apache/orc/impl/RunLengthIntegerReader.java
+++ b/orc/src/java/org/apache/orc/impl/RunLengthIntegerReader.java
@@ -20,7 +20,7 @@ package org.apache.orc.impl;
import java.io.EOFException;
import java.io.IOException;
-import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector;
+import org.apache.hadoop.hive.ql.exec.vector.ColumnVector;
/**
* A reader that reads a sequence of integers.
@@ -99,15 +99,17 @@ public class RunLengthIntegerReader implements IntegerReader {
}
@Override
- public void nextVector(LongColumnVector previous, final int previousLen) throws IOException {
+ public void nextVector(ColumnVector previous,
+ long[] data,
+ int previousLen) throws IOException {
previous.isRepeating = true;
for (int i = 0; i < previousLen; i++) {
if (!previous.isNull[i]) {
- previous.vector[i] = next();
+ data[i] = next();
} else {
// The default value of null for int type in vectorized
// processing is 1, so set that if the value is null
- previous.vector[i] = 1;
+ data[i] = 1;
}
// The default value for nulls in Vectorization for int types is 1
@@ -115,13 +117,32 @@ public class RunLengthIntegerReader implements IntegerReader {
// when determining the isRepeating flag.
if (previous.isRepeating
&& i > 0
- && (previous.vector[i - 1] != previous.vector[i] || previous.isNull[i - 1] != previous.isNull[i])) {
+ && (data[0] != data[i] || previous.isNull[0] != previous.isNull[i])) {
previous.isRepeating = false;
}
}
}
@Override
+ public void nextVector(ColumnVector vector,
+ int[] data,
+ int size) throws IOException {
+ if (vector.noNulls) {
+ for(int r=0; r < data.length && r < size; ++r) {
+ data[r] = (int) next();
+ }
+ } else if (!(vector.isRepeating && vector.isNull[0])) {
+ for(int r=0; r < data.length && r < size; ++r) {
+ if (!vector.isNull[r]) {
+ data[r] = (int) next();
+ } else {
+ data[r] = 1;
+ }
+ }
+ }
+ }
+
+ @Override
public void seek(PositionProvider index) throws IOException {
input.seek(index);
int consumed = (int) index.getNext();
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/orc/src/java/org/apache/orc/impl/RunLengthIntegerReaderV2.java
----------------------------------------------------------------------
diff --git a/orc/src/java/org/apache/orc/impl/RunLengthIntegerReaderV2.java b/orc/src/java/org/apache/orc/impl/RunLengthIntegerReaderV2.java
index c6d685a..610d9b5 100644
--- a/orc/src/java/org/apache/orc/impl/RunLengthIntegerReaderV2.java
+++ b/orc/src/java/org/apache/orc/impl/RunLengthIntegerReaderV2.java
@@ -21,9 +21,9 @@ import java.io.EOFException;
import java.io.IOException;
import java.util.Arrays;
+import org.apache.hadoop.hive.ql.exec.vector.ColumnVector;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector;
/**
* A reader that reads a sequence of light weight compressed integers. Refer
@@ -360,15 +360,17 @@ public class RunLengthIntegerReaderV2 implements IntegerReader {
}
@Override
- public void nextVector(LongColumnVector previous, final int previousLen) throws IOException {
+ public void nextVector(ColumnVector previous,
+ long[] data,
+ int previousLen) throws IOException {
previous.isRepeating = true;
for (int i = 0; i < previousLen; i++) {
if (!previous.isNull[i]) {
- previous.vector[i] = next();
+ data[i] = next();
} else {
// The default value of null for int type in vectorized
// processing is 1, so set that if the value is null
- previous.vector[i] = 1;
+ data[i] = 1;
}
// The default value for nulls in Vectorization for int types is 1
@@ -376,10 +378,29 @@ public class RunLengthIntegerReaderV2 implements IntegerReader {
// when determining the isRepeating flag.
if (previous.isRepeating
&& i > 0
- && (previous.vector[i - 1] != previous.vector[i] ||
- previous.isNull[i - 1] != previous.isNull[i])) {
+ && (data[0] != data[i] ||
+ previous.isNull[0] != previous.isNull[i])) {
previous.isRepeating = false;
}
}
}
+
+ @Override
+ public void nextVector(ColumnVector vector,
+ int[] data,
+ int size) throws IOException {
+ if (vector.noNulls) {
+ for(int r=0; r < data.length && r < size; ++r) {
+ data[r] = (int) next();
+ }
+ } else if (!(vector.isRepeating && vector.isNull[0])) {
+ for(int r=0; r < data.length && r < size; ++r) {
+ if (!vector.isNull[r]) {
+ data[r] = (int) next();
+ } else {
+ data[r] = 1;
+ }
+ }
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/orc/src/java/org/apache/orc/impl/WriterImpl.java
----------------------------------------------------------------------
diff --git a/orc/src/java/org/apache/orc/impl/WriterImpl.java b/orc/src/java/org/apache/orc/impl/WriterImpl.java
index f8afe06..b2966e0 100644
--- a/orc/src/java/org/apache/orc/impl/WriterImpl.java
+++ b/orc/src/java/org/apache/orc/impl/WriterImpl.java
@@ -1693,9 +1693,10 @@ public class WriterImpl implements Writer, MemoryManager.Callback {
}
}
+ public static long MILLIS_PER_DAY = 24 * 60 * 60 * 1000;
+ public static long NANOS_PER_MILLI = 1000000;
public static final int MILLIS_PER_SECOND = 1000;
static final int NANOS_PER_SECOND = 1000000000;
- static final int MILLIS_PER_NANO = 1000000;
public static final String BASE_TIMESTAMP_STRING = "2015-01-01 00:00:00";
private static class TimestampTreeWriter extends TreeWriter {
@@ -2261,32 +2262,36 @@ public class WriterImpl implements Writer, MemoryManager.Callback {
}
} else {
// write the records in runs of the same tag
- byte prevTag = 0;
- int currentRun = 0;
- boolean started = false;
+ int[] currentStart = new int[vec.fields.length];
+ int[] currentLength = new int[vec.fields.length];
for(int i=0; i < length; ++i) {
- if (!vec.isNull[i + offset]) {
+ // only need to deal with the non-nulls, since the nulls were dealt
+ // with in the super method.
+ if (vec.noNulls || !vec.isNull[i + offset]) {
byte tag = (byte) vec.tags[offset + i];
tags.write(tag);
- if (!started) {
- started = true;
- currentRun = i;
- prevTag = tag;
- } else if (tag != prevTag) {
- childrenWriters[prevTag].writeBatch(vec.fields[prevTag],
- offset + currentRun, i - currentRun);
- currentRun = i;
- prevTag = tag;
+ if (currentLength[tag] == 0) {
+ // start a new sequence
+ currentStart[tag] = i + offset;
+ currentLength[tag] = 1;
+ } else if (currentStart[tag] + currentLength[tag] == i + offset) {
+ // ok, we are extending the current run for that tag.
+ currentLength[tag] += 1;
+ } else {
+ // otherwise, we need to close off the old run and start a new one
+ childrenWriters[tag].writeBatch(vec.fields[tag],
+ currentStart[tag], currentLength[tag]);
+ currentStart[tag] = i + offset;
+ currentLength[tag] = 1;
}
- } else if (started) {
- started = false;
- childrenWriters[prevTag].writeBatch(vec.fields[prevTag],
- offset + currentRun, i - currentRun);
}
}
- if (started) {
- childrenWriters[prevTag].writeBatch(vec.fields[prevTag],
- offset + currentRun, length - currentRun);
+ // write out any left over sequences
+ for(int tag=0; tag < currentStart.length; ++tag) {
+ if (currentLength[tag] != 0) {
+ childrenWriters[tag].writeBatch(vec.fields[tag], currentStart[tag],
+ currentLength[tag]);
+ }
}
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/orc/src/test/org/apache/orc/impl/TestDataReaderProperties.java
----------------------------------------------------------------------
diff --git a/orc/src/test/org/apache/orc/impl/TestDataReaderProperties.java b/orc/src/test/org/apache/orc/impl/TestDataReaderProperties.java
index 9ec08f3..b9918f2 100644
--- a/orc/src/test/org/apache/orc/impl/TestDataReaderProperties.java
+++ b/orc/src/test/org/apache/orc/impl/TestDataReaderProperties.java
@@ -3,6 +3,7 @@ package org.apache.orc.impl;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.orc.CompressionCodec;
+import org.apache.orc.CompressionKind;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
@@ -14,7 +15,6 @@ public class TestDataReaderProperties {
private FileSystem mockedFileSystem = mock(FileSystem.class);
private Path mockedPath = mock(Path.class);
- private CompressionCodec mockedCodec = mock(CompressionCodec.class);
private boolean mockedZeroCopy = false;
@Test
@@ -22,12 +22,12 @@ public class TestDataReaderProperties {
DataReaderProperties properties = DataReaderProperties.builder()
.withFileSystem(mockedFileSystem)
.withPath(mockedPath)
- .withCodec(mockedCodec)
+ .withCompression(CompressionKind.ZLIB)
.withZeroCopy(mockedZeroCopy)
.build();
assertEquals(mockedFileSystem, properties.getFileSystem());
assertEquals(mockedPath, properties.getPath());
- assertEquals(mockedCodec, properties.getCodec());
+ assertEquals(CompressionKind.ZLIB, properties.getCompression());
assertEquals(mockedZeroCopy, properties.getZeroCopy());
}
@@ -39,7 +39,7 @@ public class TestDataReaderProperties {
.build();
assertEquals(mockedFileSystem, properties.getFileSystem());
assertEquals(mockedPath, properties.getPath());
- assertNull(properties.getCodec());
+ assertNull(properties.getCompression());
assertFalse(properties.getZeroCopy());
}
@@ -52,7 +52,7 @@ public class TestDataReaderProperties {
public void testMissingPath() {
DataReaderProperties.builder()
.withFileSystem(mockedFileSystem)
- .withCodec(mockedCodec)
+ .withCompression(CompressionKind.NONE)
.withZeroCopy(mockedZeroCopy)
.build();
}
@@ -61,7 +61,7 @@ public class TestDataReaderProperties {
public void testMissingFileSystem() {
DataReaderProperties.builder()
.withPath(mockedPath)
- .withCodec(mockedCodec)
+ .withCompression(CompressionKind.NONE)
.withZeroCopy(mockedZeroCopy)
.build();
}
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/orc/src/test/org/apache/orc/impl/TestMetadataReaderProperties.java
----------------------------------------------------------------------
diff --git a/orc/src/test/org/apache/orc/impl/TestMetadataReaderProperties.java b/orc/src/test/org/apache/orc/impl/TestMetadataReaderProperties.java
deleted file mode 100644
index 12e8eb4..0000000
--- a/orc/src/test/org/apache/orc/impl/TestMetadataReaderProperties.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package org.apache.orc.impl;
-
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.Path;
-import org.apache.orc.CompressionCodec;
-import org.junit.Test;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.mockito.Mockito.mock;
-
-public class TestMetadataReaderProperties {
-
- private FileSystem mockedFileSystem = mock(FileSystem.class);
- private Path mockedPath = mock(Path.class);
- private CompressionCodec mockedCodec = mock(CompressionCodec.class);
- private int mockedBufferSize = 0;
- private int mockedTypeCount = 0;
-
- @Test
- public void testCompleteBuild() {
- MetadataReaderProperties properties = MetadataReaderProperties.builder()
- .withFileSystem(mockedFileSystem)
- .withPath(mockedPath)
- .withCodec(mockedCodec)
- .withBufferSize(mockedBufferSize)
- .withTypeCount(mockedTypeCount)
- .build();
- assertEquals(mockedFileSystem, properties.getFileSystem());
- assertEquals(mockedPath, properties.getPath());
- assertEquals(mockedCodec, properties.getCodec());
- assertEquals(mockedBufferSize, properties.getBufferSize());
- assertEquals(mockedTypeCount, properties.getTypeCount());
- }
-
- @Test
- public void testMissingNonRequiredArgs() {
- MetadataReaderProperties properties = MetadataReaderProperties.builder()
- .withFileSystem(mockedFileSystem)
- .withPath(mockedPath)
- .build();
- assertEquals(mockedFileSystem, properties.getFileSystem());
- assertEquals(mockedPath, properties.getPath());
- assertNull(properties.getCodec());
- assertEquals(0, properties.getBufferSize());
- assertEquals(0, properties.getTypeCount());
- }
-
- @Test(expected = java.lang.NullPointerException.class)
- public void testEmptyBuild() {
- MetadataReaderProperties.builder().build();
- }
-
- @Test(expected = java.lang.NullPointerException.class)
- public void testMissingPath() {
- MetadataReaderProperties.builder()
- .withFileSystem(mockedFileSystem)
- .withCodec(mockedCodec)
- .withBufferSize(mockedBufferSize)
- .build();
- }
-
- @Test(expected = java.lang.NullPointerException.class)
- public void testMissingFileSystem() {
- MetadataReaderProperties.builder()
- .withPath(mockedPath)
- .withCodec(mockedCodec)
- .withBufferSize(mockedBufferSize)
- .build();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedRowBatchCtx.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedRowBatchCtx.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedRowBatchCtx.java
index 0724191..82a97e0 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedRowBatchCtx.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedRowBatchCtx.java
@@ -215,12 +215,9 @@ public class VectorizedRowBatchCtx {
LOG.info("createVectorizedRowBatch columnsToIncludeTruncated " + Arrays.toString(columnsToIncludeTruncated));
int totalColumnCount = rowColumnTypeInfos.length + scratchColumnTypeNames.length;
VectorizedRowBatch result = new VectorizedRowBatch(totalColumnCount);
-
- for (int i = 0; i < columnsToIncludeTruncated.length; i++) {
- if (columnsToIncludeTruncated[i]) {
- TypeInfo typeInfo = rowColumnTypeInfos[i];
- result.cols[i] = VectorizedBatchUtil.createColumnVector(typeInfo);
- }
+ for (int i = 0; i < dataColumnCount; i++) {
+ TypeInfo typeInfo = rowColumnTypeInfos[i];
+ result.cols[i] = VectorizedBatchUtil.createColumnVector(typeInfo);
}
for (int i = dataColumnCount; i < dataColumnCount + partitionColumnCount; i++) {
@@ -476,8 +473,8 @@ public class VectorizedRowBatchCtx {
bcv.isNull[0] = true;
bcv.isRepeating = true;
} else {
- bcv.fill(sVal.getBytes());
- bcv.isNull[0] = false;
+ bcv.setVal(0, sVal.getBytes());
+ bcv.isRepeating = true;
}
}
break;
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/ql/src/java/org/apache/hadoop/hive/ql/io/orc/DefaultDataReaderFactory.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/DefaultDataReaderFactory.java b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/DefaultDataReaderFactory.java
deleted file mode 100644
index de3471c..0000000
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/DefaultDataReaderFactory.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package org.apache.hadoop.hive.ql.io.orc;
-
-import org.apache.orc.DataReader;
-import org.apache.orc.DataReaderFactory;
-import org.apache.orc.impl.DataReaderProperties;
-
-public final class DefaultDataReaderFactory implements DataReaderFactory {
-
- @Override
- public DataReader create(DataReaderProperties properties) {
- return RecordReaderUtils.createDefaultDataReader(properties);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcInputFormat.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcInputFormat.java b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcInputFormat.java
index fe0be7b..fcb8ca4 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcInputFormat.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcInputFormat.java
@@ -301,7 +301,7 @@ public class OrcInputFormat implements InputFormat<NullWritable, OrcStruct>,
/**
* Do we have schema on read in the configuration variables?
*/
- TypeDescription schema = getDesiredRowTypeDescr(conf, /* isAcidRead */ false);
+ TypeDescription schema = getDesiredRowTypeDescr(conf, false, Integer.MAX_VALUE);
Reader.Options options = new Reader.Options().range(offset, length);
options.schema(schema);
@@ -1743,7 +1743,7 @@ public class OrcInputFormat implements InputFormat<NullWritable, OrcStruct>,
/**
* Do we have schema on read in the configuration variables?
*/
- TypeDescription schema = getDesiredRowTypeDescr(conf, /* isAcidRead */ true);
+ TypeDescription schema = getDesiredRowTypeDescr(conf, true, Integer.MAX_VALUE);
final Reader reader;
final int bucket;
@@ -1994,10 +1994,13 @@ public class OrcInputFormat implements InputFormat<NullWritable, OrcStruct>,
/**
* Convert a Hive type property string that contains separated type names into a list of
* TypeDescription objects.
+ * @param hiveTypeProperty the desired types from hive
+ * @param maxColumns the maximum number of desired columns
* @return the list of TypeDescription objects.
*/
- public static ArrayList<TypeDescription> typeDescriptionsFromHiveTypeProperty(
- String hiveTypeProperty) {
+ public static ArrayList<TypeDescription>
+ typeDescriptionsFromHiveTypeProperty(String hiveTypeProperty,
+ int maxColumns) {
// CONSDIER: We need a type name parser for TypeDescription.
@@ -2005,6 +2008,9 @@ public class OrcInputFormat implements InputFormat<NullWritable, OrcStruct>,
ArrayList<TypeDescription> typeDescrList =new ArrayList<TypeDescription>(typeInfoList.size());
for (TypeInfo typeInfo : typeInfoList) {
typeDescrList.add(convertTypeInfo(typeInfo));
+ if (typeDescrList.size() >= maxColumns) {
+ break;
+ }
}
return typeDescrList;
}
@@ -2091,8 +2097,18 @@ public class OrcInputFormat implements InputFormat<NullWritable, OrcStruct>,
}
}
- public static TypeDescription getDesiredRowTypeDescr(Configuration conf, boolean isAcidRead)
- throws IOException {
+ /**
+ * Generate the desired schema for reading the file.
+ * @param conf the configuration
+ * @param isAcidRead is this an acid format?
+ * @param dataColumns the desired number of data columns for vectorized read
+ * @return the desired schema or null if schema evolution isn't enabled
+ * @throws IOException
+ */
+ public static TypeDescription getDesiredRowTypeDescr(Configuration conf,
+ boolean isAcidRead,
+ int dataColumns
+ ) throws IOException {
String columnNameProperty = null;
String columnTypeProperty = null;
@@ -2115,8 +2131,10 @@ public class OrcInputFormat implements InputFormat<NullWritable, OrcStruct>,
haveSchemaEvolutionProperties = false;
} else {
schemaEvolutionTypeDescrs =
- typeDescriptionsFromHiveTypeProperty(columnTypeProperty);
- if (schemaEvolutionTypeDescrs.size() != schemaEvolutionColumnNames.size()) {
+ typeDescriptionsFromHiveTypeProperty(columnTypeProperty,
+ dataColumns);
+ if (schemaEvolutionTypeDescrs.size() !=
+ Math.min(dataColumns, schemaEvolutionColumnNames.size())) {
haveSchemaEvolutionProperties = false;
}
}
@@ -2147,8 +2165,9 @@ public class OrcInputFormat implements InputFormat<NullWritable, OrcStruct>,
return null;
}
schemaEvolutionTypeDescrs =
- typeDescriptionsFromHiveTypeProperty(columnTypeProperty);
- if (schemaEvolutionTypeDescrs.size() != schemaEvolutionColumnNames.size()) {
+ typeDescriptionsFromHiveTypeProperty(columnTypeProperty, dataColumns);
+ if (schemaEvolutionTypeDescrs.size() !=
+ Math.min(dataColumns, schemaEvolutionColumnNames.size())) {
return null;
}
@@ -2162,7 +2181,7 @@ public class OrcInputFormat implements InputFormat<NullWritable, OrcStruct>,
}
columnNum++;
}
- if (virtualColumnClipNum != -1) {
+ if (virtualColumnClipNum != -1 && virtualColumnClipNum < dataColumns) {
schemaEvolutionColumnNames =
Lists.newArrayList(schemaEvolutionColumnNames.subList(0, virtualColumnClipNum));
schemaEvolutionTypeDescrs = Lists.newArrayList(schemaEvolutionTypeDescrs.subList(0, virtualColumnClipNum));
@@ -2179,7 +2198,7 @@ public class OrcInputFormat implements InputFormat<NullWritable, OrcStruct>,
// Desired schema does not include virtual columns or partition columns.
TypeDescription result = TypeDescription.createStruct();
- for (int i = 0; i < schemaEvolutionColumnNames.size(); i++) {
+ for (int i = 0; i < schemaEvolutionTypeDescrs.size(); i++) {
result.addField(schemaEvolutionColumnNames.get(i), schemaEvolutionTypeDescrs.get(i));
}
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcRawRecordMerger.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcRawRecordMerger.java b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcRawRecordMerger.java
index 1fce282..0dd58b7 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcRawRecordMerger.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcRawRecordMerger.java
@@ -447,7 +447,8 @@ public class OrcRawRecordMerger implements AcidInputFormat.RawReader<OrcStruct>{
this.length = options.getLength();
this.validTxnList = validTxnList;
- TypeDescription typeDescr = OrcInputFormat.getDesiredRowTypeDescr(conf, /* isAcidRead */ true);
+ TypeDescription typeDescr =
+ OrcInputFormat.getDesiredRowTypeDescr(conf, true, Integer.MAX_VALUE);
objectInspector = OrcRecordUpdater.createEventSchema
(OrcStruct.createObjectInspector(0, OrcUtils.getOrcTypes(typeDescr)));
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/ql/src/java/org/apache/hadoop/hive/ql/io/orc/ReaderImpl.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/ReaderImpl.java b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/ReaderImpl.java
index 822ef14..b7437be 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/ReaderImpl.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/ReaderImpl.java
@@ -23,23 +23,20 @@ import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
+import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import org.apache.orc.DataReaderFactory;
-import org.apache.orc.MetadataReaderFactory;
+import com.google.common.collect.Lists;
+import org.apache.orc.OrcUtils;
+import org.apache.orc.TypeDescription;
import org.apache.orc.impl.BufferChunk;
import org.apache.orc.ColumnStatistics;
import org.apache.orc.impl.ColumnStatisticsImpl;
import org.apache.orc.CompressionCodec;
-import org.apache.orc.DataReader;
import org.apache.orc.FileMetaInfo;
import org.apache.orc.FileMetadata;
-import org.apache.orc.impl.DataReaderProperties;
-import org.apache.orc.impl.DefaultMetadataReaderFactory;
import org.apache.orc.impl.InStream;
-import org.apache.orc.impl.MetadataReader;
-import org.apache.orc.impl.MetadataReaderProperties;
import org.apache.orc.StripeInformation;
import org.apache.orc.StripeStatistics;
import org.slf4j.Logger;
@@ -56,8 +53,6 @@ import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
import org.apache.hadoop.io.Text;
import org.apache.orc.OrcProto;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
import com.google.protobuf.CodedInputStream;
public class ReaderImpl implements Reader {
@@ -75,13 +70,12 @@ public class ReaderImpl implements Reader {
private final List<OrcProto.StripeStatistics> stripeStats;
private final int metadataSize;
protected final List<OrcProto.Type> types;
+ private final TypeDescription schema;
private final List<OrcProto.UserMetadataItem> userMetadata;
private final List<OrcProto.ColumnStatistics> fileStats;
private final List<StripeInformation> stripes;
protected final int rowIndexStride;
private final long contentLength, numberOfRows;
- private final MetadataReaderFactory metadataReaderFactory = new DefaultMetadataReaderFactory();
- private final DataReaderFactory dataReaderFactory = new DefaultDataReaderFactory();
private final ObjectInspector inspector;
private long deserializedSize = -1;
@@ -248,6 +242,11 @@ public class ReaderImpl implements Reader {
return result;
}
+ @Override
+ public TypeDescription getSchema() {
+ return schema;
+ }
+
/**
* Ensure this is an ORC file to prevent users from trying to read text
* files or RC files as ORC files.
@@ -391,11 +390,13 @@ public class ReaderImpl implements Reader {
this.writerVersion = footerMetaData.writerVersion;
this.stripes = convertProtoStripesToStripes(rInfo.footer.getStripesList());
}
+ this.schema = OrcUtils.convertTypeFromProtobuf(this.types, 0);
}
+
/**
* Get the WriterVersion based on the ORC file postscript.
* @param writerVersion the integer writer version
- * @return
+ * @return the writer version of the file
*/
static OrcFile.WriterVersion getWriterVersion(int writerVersion) {
for(OrcFile.WriterVersion version: OrcFile.WriterVersion.values()) {
@@ -672,20 +673,7 @@ public class ReaderImpl implements Reader {
Arrays.fill(include, true);
options.include(include);
}
-
- return RecordReaderImpl.builder()
- .withMetadataReaderFactory(metadataReaderFactory)
- .withDataReaderFactory(dataReaderFactory)
- .withStripes(this.getStripes())
- .withFileSystem(fileSystem)
- .withPath(path)
- .withOptions(options)
- .withTypes(types)
- .withCodec(codec)
- .withBufferSize(bufferSize)
- .withStrideRate(rowIndexStride)
- .withConf(conf)
- .build();
+ return new RecordReaderImpl(this, options);
}
@@ -837,7 +825,7 @@ public class ReaderImpl implements Reader {
}
private int getLastIdx() {
- Set<Integer> indices = Sets.newHashSet();
+ Set<Integer> indices = new HashSet<>();
for (OrcProto.Type type : types) {
indices.addAll(type.getSubtypesList());
}
@@ -856,7 +844,7 @@ public class ReaderImpl implements Reader {
@Override
public List<StripeStatistics> getStripeStatistics() {
- List<StripeStatistics> result = Lists.newArrayList();
+ List<StripeStatistics> result = new ArrayList<>();
for (OrcProto.StripeStatistics ss : stripeStats) {
result.add(new StripeStatistics(ss.getColStatsList()));
}
@@ -868,17 +856,6 @@ public class ReaderImpl implements Reader {
}
@Override
- public MetadataReader metadata() throws IOException {
- return metadataReaderFactory.create(MetadataReaderProperties.builder()
- .withBufferSize(bufferSize)
- .withCodec(codec)
- .withFileSystem(fileSystem)
- .withPath(path)
- .withTypeCount(types.size())
- .build());
- }
-
- @Override
public List<Integer> getVersionList() {
return versionList;
}
@@ -889,16 +866,6 @@ public class ReaderImpl implements Reader {
}
@Override
- public DataReader createDefaultDataReader(boolean useZeroCopy) {
- return dataReaderFactory.create(DataReaderProperties.builder()
- .withFileSystem(fileSystem)
- .withPath(path)
- .withCodec(codec)
- .withZeroCopy(useZeroCopy)
- .build());
- }
-
- @Override
public String toString() {
StringBuilder buffer = new StringBuilder();
buffer.append("ORC Reader(");
[22/50] [abbrv] hive git commit: HIVE-13533: Remove AST dump (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/llap/tez_join_result_complex.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/tez_join_result_complex.q.out b/ql/src/test/results/clientpositive/llap/tez_join_result_complex.q.out
index 440466c..6ca9ea6 100644
--- a/ql/src/test/results/clientpositive/llap/tez_join_result_complex.q.out
+++ b/ql/src/test/results/clientpositive/llap/tez_join_result_complex.q.out
@@ -148,271 +148,6 @@ inner join
service_request_clean b
on a.contact_event_id = b.cnctevn_id
POSTHOOK: type: CREATETABLE_AS_SELECT
-ABSTRACT SYNTAX TREE:
-
-TOK_CREATETABLE
- TOK_TABNAME
- ct_events1_test
- TOK_LIKETABLE
- TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- default
- ct_events_clean
- a
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- contact_event_id
- contact_event_id
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- ce_create_dt
- ce_create_dt
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- ce_end_dt
- ce_end_dt
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- contact_type
- contact_type
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- cnctevs_cd
- cnctevs_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- contact_mode
- contact_mode
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- cntvnst_stts_cd
- cntvnst_stts_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- total_transfers
- total_transfers
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- ce_notes
- ce_notes
- TOK_WHERE
- TOK_FUNCTION
- TOK_ISNOTNULL
- .
- TOK_TABLE_OR_COL
- a
- contact_event_id
- $hdt$_0
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- default
- service_request_clean
- b
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- cnctevn_id
- cnctevn_id
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- svcrqst_id
- svcrqst_id
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- cnctmd_cd
- cnctmd_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- svcrtyp_cd
- svcrtyp_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- cmpltyp_cd
- cmpltyp_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- sum_reason_cd
- sum_reason_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- svcrqct_cds
- svcrqct_cds
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- notes
- notes
- TOK_WHERE
- TOK_FUNCTION
- TOK_ISNOTNULL
- .
- TOK_TABLE_OR_COL
- b
- cnctevn_id
- $hdt$_1
- =
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- contact_event_id
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- cnctevn_id
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- contact_event_id
- a.contact_event_id
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- ce_create_dt
- a.ce_create_dt
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- ce_end_dt
- a.ce_end_dt
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- contact_type
- a.contact_type
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- cnctevs_cd
- a.cnctevs_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- contact_mode
- a.contact_mode
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- cntvnst_stts_cd
- a.cntvnst_stts_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- total_transfers
- a.total_transfers
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- ce_notes
- a.ce_notes
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- svcrqst_id
- b.svcrqst_id
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- svcrqct_cds
- b.svcrqct_cds
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- svcrtyp_cd
- b.svcrtyp_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- cmpltyp_cd
- b.cmpltyp_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- sum_reason_cd
- src
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- cnctmd_cd
- b.cnctmd_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- notes
- b.notes
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -1389,271 +1124,6 @@ inner join
service_request_clean b
on a.contact_event_id = b.cnctevn_id
POSTHOOK: type: CREATETABLE_AS_SELECT
-ABSTRACT SYNTAX TREE:
-
-TOK_CREATETABLE
- TOK_TABNAME
- ct_events1_test
- TOK_LIKETABLE
- TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- default
- ct_events_clean
- a
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- contact_event_id
- contact_event_id
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- ce_create_dt
- ce_create_dt
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- ce_end_dt
- ce_end_dt
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- contact_type
- contact_type
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- cnctevs_cd
- cnctevs_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- contact_mode
- contact_mode
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- cntvnst_stts_cd
- cntvnst_stts_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- total_transfers
- total_transfers
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- ce_notes
- ce_notes
- TOK_WHERE
- TOK_FUNCTION
- TOK_ISNOTNULL
- .
- TOK_TABLE_OR_COL
- a
- contact_event_id
- $hdt$_0
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- default
- service_request_clean
- b
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- cnctevn_id
- cnctevn_id
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- svcrqst_id
- svcrqst_id
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- cnctmd_cd
- cnctmd_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- svcrtyp_cd
- svcrtyp_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- cmpltyp_cd
- cmpltyp_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- sum_reason_cd
- sum_reason_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- svcrqct_cds
- svcrqct_cds
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- notes
- notes
- TOK_WHERE
- TOK_FUNCTION
- TOK_ISNOTNULL
- .
- TOK_TABLE_OR_COL
- b
- cnctevn_id
- $hdt$_1
- =
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- contact_event_id
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- cnctevn_id
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- contact_event_id
- a.contact_event_id
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- ce_create_dt
- a.ce_create_dt
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- ce_end_dt
- a.ce_end_dt
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- contact_type
- a.contact_type
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- cnctevs_cd
- a.cnctevs_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- contact_mode
- a.contact_mode
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- cntvnst_stts_cd
- a.cntvnst_stts_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- total_transfers
- a.total_transfers
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- ce_notes
- a.ce_notes
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- svcrqst_id
- b.svcrqst_id
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- svcrqct_cds
- b.svcrqct_cds
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- svcrtyp_cd
- b.svcrtyp_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- cmpltyp_cd
- b.cmpltyp_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- sum_reason_cd
- src
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- cnctmd_cd
- b.cnctmd_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- notes
- b.notes
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/load_dyn_part8.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/load_dyn_part8.q.out b/ql/src/test/results/clientpositive/load_dyn_part8.q.out
index 84ccb75..757e7dd 100644
--- a/ql/src/test/results/clientpositive/load_dyn_part8.q.out
+++ b/ql/src/test/results/clientpositive/load_dyn_part8.q.out
@@ -48,69 +48,6 @@ from srcpart
insert overwrite table nzhang_part8 partition (ds, hr) select key, value, ds, hr where ds <= '2008-04-08'
insert overwrite table nzhang_part8 partition(ds='2008-12-31', hr) select key, value, hr where ds > '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- nzhang_part8
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- TOK_PARTVAL
- hr
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- hr
- TOK_WHERE
- <=
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- nzhang_part8
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2008-12-31'
- TOK_PARTVAL
- hr
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- hr
- TOK_WHERE
- >
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-0 depends on stages: Stage-2
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/louter_join_ppr.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/louter_join_ppr.q.out b/ql/src/test/results/clientpositive/louter_join_ppr.q.out
index d994b95..fd127ec 100644
--- a/ql/src/test/results/clientpositive/louter_join_ppr.q.out
+++ b/ql/src/test/results/clientpositive/louter_join_ppr.q.out
@@ -20,90 +20,6 @@ EXPLAIN EXTENDED
SELECT a.key, a.value, b.key, b.value
WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- src
- a
- TOK_TABREF
- TOK_TABNAME
- srcpart
- b
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- '2008-04-08'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- AND
- AND
- AND
- >
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 20
- >
- .
- TOK_TABLE_OR_COL
- b
- key
- 15
- <
- .
- TOK_TABLE_OR_COL
- b
- key
- 25
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -396,90 +312,6 @@ POSTHOOK: query: EXPLAIN EXTENDED
SELECT a.key, a.value, b.key, b.value
WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- srcpart
- a
- TOK_TABREF
- TOK_TABNAME
- src
- b
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '2008-04-08'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- AND
- AND
- AND
- >
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 20
- >
- .
- TOK_TABLE_OR_COL
- b
- key
- 15
- <
- .
- TOK_TABLE_OR_COL
- b
- key
- 25
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -879,90 +711,6 @@ POSTHOOK: query: EXPLAIN EXTENDED
SELECT a.key, a.value, b.key, b.value
WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 AND b.ds = '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- src
- a
- TOK_TABREF
- TOK_TABNAME
- srcpart
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- AND
- AND
- AND
- AND
- >
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 20
- >
- .
- TOK_TABLE_OR_COL
- b
- key
- 15
- <
- .
- TOK_TABLE_OR_COL
- b
- key
- 25
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1251,90 +999,6 @@ POSTHOOK: query: EXPLAIN EXTENDED
SELECT a.key, a.value, b.key, b.value
WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 AND a.ds = '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- srcpart
- a
- TOK_TABREF
- TOK_TABNAME
- src
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- AND
- AND
- AND
- AND
- >
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 20
- >
- .
- TOK_TABLE_OR_COL
- b
- key
- 15
- <
- .
- TOK_TABLE_OR_COL
- b
- key
- 25
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/macro.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/macro.q.out b/ql/src/test/results/clientpositive/macro.q.out
index 76ea250..35e03ca 100644
--- a/ql/src/test/results/clientpositive/macro.q.out
+++ b/ql/src/test/results/clientpositive/macro.q.out
@@ -41,26 +41,6 @@ PREHOOK: query: EXPLAIN EXTENDED SELECT SIGMOID(2) FROM src LIMIT 1
PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT SIGMOID(2) FROM src LIMIT 1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- SIGMOID
- 2
- TOK_LIMIT
- 1
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -131,27 +111,6 @@ PREHOOK: query: EXPLAIN EXTENDED SELECT FIXED_NUMBER() + 1 FROM src LIMIT 1
PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT FIXED_NUMBER() + 1 FROM src LIMIT 1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- +
- TOK_FUNCTION
- FIXED_NUMBER
- 1
- TOK_LIMIT
- 1
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -249,27 +208,6 @@ PREHOOK: query: EXPLAIN EXTENDED SELECT SIMPLE_ADD(1, 9) FROM src LIMIT 1
PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT SIMPLE_ADD(1, 9) FROM src LIMIT 1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- SIMPLE_ADD
- 1
- 9
- TOK_LIMIT
- 1
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/mapjoin_mapjoin.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/mapjoin_mapjoin.q.out b/ql/src/test/results/clientpositive/mapjoin_mapjoin.q.out
index a32986c..85bd14b 100644
--- a/ql/src/test/results/clientpositive/mapjoin_mapjoin.q.out
+++ b/ql/src/test/results/clientpositive/mapjoin_mapjoin.q.out
@@ -10,51 +10,6 @@ POSTHOOK: query: -- Since the inputs are small, it should be automatically conve
explain extended select srcpart.key from srcpart join src on (srcpart.value=src.value) join src1 on (srcpart.key=src1.key)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_TABREF
- TOK_TABNAME
- src
- =
- .
- TOK_TABLE_OR_COL
- srcpart
- value
- .
- TOK_TABLE_OR_COL
- src
- value
- TOK_TABREF
- TOK_TABNAME
- src1
- =
- .
- TOK_TABLE_OR_COL
- srcpart
- key
- .
- TOK_TABLE_OR_COL
- src1
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- key
-
-
STAGE DEPENDENCIES:
Stage-7 is a root stage
Stage-5 depends on stages: Stage-7
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/merge3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/merge3.q.out b/ql/src/test/results/clientpositive/merge3.q.out
index 5b581db..7f879db 100644
--- a/ql/src/test/results/clientpositive/merge3.q.out
+++ b/ql/src/test/results/clientpositive/merge3.q.out
@@ -61,38 +61,6 @@ POSTHOOK: query: explain extended
create table merge_src2 as
select key, value from merge_src
POSTHOOK: type: CREATETABLE_AS_SELECT
-ABSTRACT SYNTAX TREE:
-
-TOK_CREATETABLE
- TOK_TABNAME
- merge_src2
- TOK_LIKETABLE
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- default
- merge_src
- merge_src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- merge_src
- key
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- merge_src
- value
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
@@ -2404,38 +2372,6 @@ insert overwrite table merge_src_part2 partition(ds)
select key, value, ds from merge_src_part
where ds is not null
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- merge_src_part
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- merge_src_part2
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_WHERE
- TOK_FUNCTION
- TOK_ISNOTNULL
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
@@ -4845,52 +4781,6 @@ from (select * from merge_src_part where ds is not null distribute by ds) s
insert overwrite table merge_src_part2 partition(ds)
select key, value, ds
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- merge_src_part
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- TOK_FUNCTION
- TOK_ISNOTNULL
- TOK_TABLE_OR_COL
- ds
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- ds
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- merge_src_part2
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/metadataonly1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/metadataonly1.q.out b/ql/src/test/results/clientpositive/metadataonly1.q.out
index d6d86bb..0281407 100644
--- a/ql/src/test/results/clientpositive/metadataonly1.q.out
+++ b/ql/src/test/results/clientpositive/metadataonly1.q.out
@@ -10,25 +10,6 @@ PREHOOK: query: explain extended select max(ds) from TEST1
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select max(ds) from TEST1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- TEST1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- max
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -113,25 +94,6 @@ PREHOOK: query: explain extended select max(ds) from TEST1
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select max(ds) from TEST1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- TEST1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- max
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -255,25 +217,6 @@ PREHOOK: query: explain extended select count(distinct ds) from TEST1
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(distinct ds) from TEST1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- TEST1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONDI
- count
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -398,25 +341,6 @@ PREHOOK: query: explain extended select count(ds) from TEST1
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(ds) from TEST1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- TEST1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- count
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -550,52 +474,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select count(*) from TEST1 a2 join (select max(ds) m from TEST1) b on a2.ds=b.m
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- TEST1
- a2
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- TEST1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- max
- TOK_TABLE_OR_COL
- ds
- m
- b
- =
- .
- TOK_TABLE_OR_COL
- a2
- ds
- .
- TOK_TABLE_OR_COL
- b
- m
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -1027,31 +905,6 @@ PREHOOK: query: explain extended select ds, count(distinct hr) from TEST2 group
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select ds, count(distinct hr) from TEST2 group by ds
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- TEST2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_SELEXPR
- TOK_FUNCTIONDI
- count
- TOK_TABLE_OR_COL
- hr
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1267,31 +1120,6 @@ PREHOOK: query: explain extended select ds, count(hr) from TEST2 group by ds
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select ds, count(hr) from TEST2 group by ds
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- TEST2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_SELEXPR
- TOK_FUNCTION
- count
- TOK_TABLE_OR_COL
- hr
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1508,25 +1336,6 @@ PREHOOK: query: explain extended select max(ds) from TEST1
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select max(ds) from TEST1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- TEST1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- max
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1744,31 +1553,6 @@ PREHOOK: query: explain extended select ds, count(distinct hr) from TEST2 group
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select ds, count(distinct hr) from TEST2 group by ds
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- TEST2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_SELEXPR
- TOK_FUNCTIONDI
- count
- TOK_TABLE_OR_COL
- hr
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/offset_limit_global_optimizer.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/offset_limit_global_optimizer.q.out b/ql/src/test/results/clientpositive/offset_limit_global_optimizer.q.out
index 0cd5c82..7d8655f 100644
--- a/ql/src/test/results/clientpositive/offset_limit_global_optimizer.q.out
+++ b/ql/src/test/results/clientpositive/offset_limit_global_optimizer.q.out
@@ -4,42 +4,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED
SELECT srcpart.key, substr(srcpart.value,5), ds, hr FROM srcpart LIMIT 400,10
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- key
- TOK_SELEXPR
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- srcpart
- value
- 5
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- hr
- TOK_LIMIT
- 400
- 10
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -172,42 +136,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED
SELECT srcpart.key, substr(srcpart.value,5), ds, hr FROM srcpart LIMIT 490,10
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- key
- TOK_SELEXPR
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- srcpart
- value
- 5
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- hr
- TOK_LIMIT
- 490
- 10
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -481,42 +409,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED
SELECT srcpart.key, substr(srcpart.value,5), ds, hr FROM srcpart LIMIT 490,20
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- key
- TOK_SELEXPR
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- srcpart
- value
- 5
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- hr
- TOK_LIMIT
- 490
- 20
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -800,42 +692,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED
SELECT srcpart.key, substr(srcpart.value,5), ds, hr FROM srcpart LIMIT 490,600
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- key
- TOK_SELEXPR
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- srcpart
- value
- 5
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- hr
- TOK_LIMIT
- 490
- 600
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1699,42 +1555,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED
SELECT srcpart.key, substr(srcpart.value,5), ds, hr FROM srcpart LIMIT 400,10
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- key
- TOK_SELEXPR
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- srcpart
- value
- 5
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- hr
- TOK_LIMIT
- 400
- 10
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1867,42 +1687,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED
SELECT srcpart.key, substr(srcpart.value,5), ds, hr FROM srcpart LIMIT 490,10
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- key
- TOK_SELEXPR
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- srcpart
- value
- 5
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- hr
- TOK_LIMIT
- 490
- 10
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2176,42 +1960,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED
SELECT srcpart.key, substr(srcpart.value,5), ds, hr FROM srcpart LIMIT 490,20
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- key
- TOK_SELEXPR
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- srcpart
- value
- 5
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- hr
- TOK_LIMIT
- 490
- 20
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2495,42 +2243,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED
SELECT srcpart.key, substr(srcpart.value,5), ds, hr FROM srcpart LIMIT 490,600
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- key
- TOK_SELEXPR
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- srcpart
- value
- 5
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- hr
- TOK_LIMIT
- 490
- 600
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/optimize_nullscan.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/optimize_nullscan.q.out b/ql/src/test/results/clientpositive/optimize_nullscan.q.out
index 023b71b..4a693d6 100644
--- a/ql/src/test/results/clientpositive/optimize_nullscan.q.out
+++ b/ql/src/test/results/clientpositive/optimize_nullscan.q.out
@@ -14,25 +14,6 @@ POSTHOOK: query: -- SORT_QUERY_RESULTS
explain extended
select key from src where false
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_WHERE
- false
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -144,32 +125,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select count(key) from srcpart where 1=2 group by key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- count
- TOK_TABLE_OR_COL
- key
- TOK_WHERE
- =
- 1
- 2
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -256,63 +211,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from (select key from src where false) a left outer join (select key from srcpart limit 0) b on a.key=b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_WHERE
- false
- a
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_LIMIT
- 0
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
@@ -724,54 +622,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select count(key) from src where false union all select count(key) from srcpart
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- count
- TOK_TABLE_OR_COL
- key
- TOK_WHERE
- false
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- count
- TOK_TABLE_OR_COL
- key
- _u1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1, Stage-3
@@ -1249,54 +1099,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from (select key from src where false) a left outer join (select value from srcpart limit 0) b
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_WHERE
- false
- a
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_LIMIT
- 0
- b
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
@@ -1707,65 +1509,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from (select key from src union all select src.key from src left outer join srcpart on src.key = srcpart.key) a where false
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_TABREF
- TOK_TABNAME
- srcpart
- =
- .
- TOK_TABLE_OR_COL
- src
- key
- .
- TOK_TABLE_OR_COL
- srcpart
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- src
- key
- a
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- false
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-2 depends on stages: Stage-3
@@ -2041,40 +1784,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from src s1, src s2 where false and s1.value = s2.value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src
- s1
- TOK_TABREF
- TOK_TABNAME
- src
- s2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- false
- =
- .
- TOK_TABLE_OR_COL
- s1
- value
- .
- TOK_TABLE_OR_COL
- s2
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2222,28 +1931,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select count(1) from src where null = 1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_WHERE
- =
- TOK_NULL
- 1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/outer_join_ppr.q.java1.7.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/outer_join_ppr.q.java1.7.out b/ql/src/test/results/clientpositive/outer_join_ppr.q.java1.7.out
index c471301..1312e53 100644
--- a/ql/src/test/results/clientpositive/outer_join_ppr.q.java1.7.out
+++ b/ql/src/test/results/clientpositive/outer_join_ppr.q.java1.7.out
@@ -22,90 +22,6 @@ EXPLAIN EXTENDED
SELECT a.key, a.value, b.key, b.value
WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_FULLOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- src
- a
- TOK_TABREF
- TOK_TABNAME
- srcpart
- b
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- '2008-04-08'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- AND
- AND
- AND
- >
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 20
- >
- .
- TOK_TABLE_OR_COL
- b
- key
- 15
- <
- .
- TOK_TABLE_OR_COL
- b
- key
- 25
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -493,90 +409,6 @@ POSTHOOK: query: EXPLAIN EXTENDED
SELECT a.key, a.value, b.key, b.value
WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 AND b.ds = '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_FULLOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- src
- a
- TOK_TABREF
- TOK_TABNAME
- srcpart
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- AND
- AND
- AND
- AND
- >
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 20
- >
- .
- TOK_TABLE_OR_COL
- b
- key
- 15
- <
- .
- TOK_TABLE_OR_COL
- b
- key
- 25
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
[28/50] [abbrv] hive git commit: HIVE-12637 : make retryable
SQLExceptions in TxnHandler configurable (Wei Zheng,
reviewed by Eugene Koifman)
Posted by jd...@apache.org.
HIVE-12637 : make retryable SQLExceptions in TxnHandler configurable (Wei Zheng, reviewed by Eugene Koifman)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/4536dcd6
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/4536dcd6
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/4536dcd6
Branch: refs/heads/llap
Commit: 4536dcd686ba136dc7b462e4c605ef16ba981a9f
Parents: 6908198
Author: Wei Zheng <we...@apache.org>
Authored: Mon Apr 25 11:17:11 2016 -0700
Committer: Wei Zheng <we...@apache.org>
Committed: Mon Apr 25 11:17:11 2016 -0700
----------------------------------------------------------------------
.../org/apache/hadoop/hive/conf/HiveConf.java | 8 ++++++++
.../hadoop/hive/metastore/txn/TxnHandler.java | 18 +++++++++++++++---
.../hadoop/hive/metastore/txn/TestTxnHandler.java | 15 +++++++++++++++
3 files changed, 38 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/4536dcd6/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
----------------------------------------------------------------------
diff --git a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
index 5b5b350..8ccc262 100644
--- a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
+++ b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
@@ -214,6 +214,7 @@ public class HiveConf extends Configuration {
HiveConf.ConfVars.HIVE_TXN_TIMEOUT,
HiveConf.ConfVars.HIVE_TXN_HEARTBEAT_THREADPOOL_SIZE,
HiveConf.ConfVars.HIVE_TXN_MAX_OPEN_BATCH,
+ HiveConf.ConfVars.HIVE_TXN_RETRYABLE_SQLEX_REGEX,
HiveConf.ConfVars.HIVE_METASTORE_STATS_NDV_DENSITY_FUNCTION,
HiveConf.ConfVars.METASTORE_AGGREGATE_STATS_CACHE_ENABLED,
HiveConf.ConfVars.METASTORE_AGGREGATE_STATS_CACHE_SIZE,
@@ -1679,6 +1680,13 @@ public class HiveConf extends Configuration {
"transactions that Hive has to track at any given time, which may negatively affect\n" +
"read performance."),
+ HIVE_TXN_RETRYABLE_SQLEX_REGEX("hive.txn.retryable.sqlex.regex", "", "Comma separated list\n" +
+ "of regular expression patterns for SQL state, error code, and error message of\n" +
+ "retryable SQLExceptions, that's suitable for the metastore DB.\n" +
+ "For example: Can't serialize.*,40001$,^Deadlock,.*ORA-08176.*\n" +
+ "The string that the regex will be matched against is of the following form, where ex is a SQLException:\n" +
+ "ex.getMessage() + \" (SQLState=\" + ex.getSQLState() + \", ErrorCode=\" + ex.getErrorCode() + \")\""),
+
HIVE_COMPACTOR_INITIATOR_ON("hive.compactor.initiator.on", false,
"Whether to run the initiator and cleaner threads on this metastore instance or not.\n" +
"Set this to true on one instance of the Thrift metastore service as part of turning\n" +
http://git-wip-us.apache.org/repos/asf/hive/blob/4536dcd6/metastore/src/java/org/apache/hadoop/hive/metastore/txn/TxnHandler.java
----------------------------------------------------------------------
diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/txn/TxnHandler.java b/metastore/src/java/org/apache/hadoop/hive/metastore/txn/TxnHandler.java
index be3c6de..df6591f 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/txn/TxnHandler.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/txn/TxnHandler.java
@@ -49,6 +49,7 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.Semaphore;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.ReentrantLock;
+import java.util.regex.Pattern;
/**
* A handler to answer transaction related calls that come into the metastore
@@ -1521,7 +1522,7 @@ abstract class TxnHandler implements TxnStore, TxnStore.MutexAPI {
} else {
LOG.error("Too many repeated deadlocks in " + caller + ", giving up.");
}
- } else if (isRetryable(e)) {
+ } else if (isRetryable(conf, e)) {
//in MSSQL this means Communication Link Failure
if (retryNum++ < retryLimit) {
LOG.warn("Retryable error detected in " + caller + ". Will wait " + retryInterval +
@@ -2620,7 +2621,7 @@ abstract class TxnHandler implements TxnStore, TxnStore.MutexAPI {
/**
* Returns true if {@code ex} should be retried
*/
- private static boolean isRetryable(Exception ex) {
+ static boolean isRetryable(HiveConf conf, Exception ex) {
if(ex instanceof SQLException) {
SQLException sqlException = (SQLException)ex;
if("08S01".equalsIgnoreCase(sqlException.getSQLState())) {
@@ -2631,6 +2632,17 @@ abstract class TxnHandler implements TxnStore, TxnStore.MutexAPI {
sqlException.getMessage().contains("consistent read failure; rollback data not available")) {
return true;
}
+
+ String regex = HiveConf.getVar(conf, HiveConf.ConfVars.HIVE_TXN_RETRYABLE_SQLEX_REGEX);
+ if (regex != null && !regex.isEmpty()) {
+ String[] patterns = regex.split(",(?=\\S)");
+ String message = getMessage((SQLException)ex);
+ for (String p : patterns) {
+ if (Pattern.matches(p, message)) {
+ return true;
+ }
+ }
+ }
//see also https://issues.apache.org/jira/browse/HIVE-9938
}
return false;
@@ -2670,7 +2682,7 @@ abstract class TxnHandler implements TxnStore, TxnStore.MutexAPI {
return false;
}
private static String getMessage(SQLException ex) {
- return ex.getMessage() + "(SQLState=" + ex.getSQLState() + ",ErrorCode=" + ex.getErrorCode() + ")";
+ return ex.getMessage() + " (SQLState=" + ex.getSQLState() + ", ErrorCode=" + ex.getErrorCode() + ")";
}
/**
* Given a {@code selectStatement}, decorated it with FOR UPDATE or semantically equivalent
http://git-wip-us.apache.org/repos/asf/hive/blob/4536dcd6/metastore/src/test/org/apache/hadoop/hive/metastore/txn/TestTxnHandler.java
----------------------------------------------------------------------
diff --git a/metastore/src/test/org/apache/hadoop/hive/metastore/txn/TestTxnHandler.java b/metastore/src/test/org/apache/hadoop/hive/metastore/txn/TestTxnHandler.java
index 37eacde..28d0269 100644
--- a/metastore/src/test/org/apache/hadoop/hive/metastore/txn/TestTxnHandler.java
+++ b/metastore/src/test/org/apache/hadoop/hive/metastore/txn/TestTxnHandler.java
@@ -1346,6 +1346,21 @@ public class TestTxnHandler {
error = e;
}
}
+
+ @Test
+ public void testRetryableRegex() throws Exception {
+ SQLException sqlException = new SQLException("ORA-08177: can't serialize access for this transaction", "72000");
+ // Note that we have 3 regex'es below
+ conf.setVar(HiveConf.ConfVars.HIVE_TXN_RETRYABLE_SQLEX_REGEX, "^Deadlock detected, roll back,.*08177.*,.*08178.*");
+ boolean result = TxnHandler.isRetryable(conf, sqlException);
+ Assert.assertTrue("regex should be retryable", result);
+
+ sqlException = new SQLException("This error message, has comma in it");
+ conf.setVar(HiveConf.ConfVars.HIVE_TXN_RETRYABLE_SQLEX_REGEX, ".*comma.*");
+ result = TxnHandler.isRetryable(conf, sqlException);
+ Assert.assertTrue("regex should be retryable", result);
+ }
+
private void updateTxns(Connection conn) throws SQLException {
Statement stmt = conn.createStatement();
stmt.executeUpdate("update TXNS set txn_last_heartbeat = txn_last_heartbeat + 1");
[42/50] [abbrv] hive git commit: HIVE-13431. Improvements to
LLAPTaskReporter - event throttling. (Siddharth Seth,
reviewed by Prasanth Jayachandran)
Posted by jd...@apache.org.
HIVE-13431. Improvements to LLAPTaskReporter - event throttling. (Siddharth Seth, reviewed by Prasanth Jayachandran)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/f5665e34
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/f5665e34
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/f5665e34
Branch: refs/heads/llap
Commit: f5665e34de5a6c6496c82bc59d3b5afaa612ab50
Parents: 0cf2244
Author: Siddharth Seth <ss...@apache.org>
Authored: Mon Apr 25 23:18:45 2016 -0700
Committer: Siddharth Seth <ss...@apache.org>
Committed: Mon Apr 25 23:18:45 2016 -0700
----------------------------------------------------------------------
.../hive/llap/daemon/impl/LlapTaskReporter.java | 53 +++++++++++++++-----
.../llap/daemon/impl/TaskRunnerCallable.java | 4 +-
.../daemon/impl/TaskExecutorTestHelpers.java | 6 +--
.../TestFirstInFirstOutComparator.java | 4 +-
4 files changed, 48 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/f5665e34/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/LlapTaskReporter.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/LlapTaskReporter.java b/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/LlapTaskReporter.java
index 08c6f27..dc4482e 100644
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/LlapTaskReporter.java
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/LlapTaskReporter.java
@@ -40,8 +40,10 @@ import org.apache.tez.common.counters.TezCounters;
import org.apache.tez.dag.api.TezException;
import org.apache.tez.dag.records.TezTaskAttemptID;
import org.apache.tez.runtime.RuntimeTask;
+import org.apache.tez.runtime.api.TaskFailureType;
import org.apache.tez.runtime.api.events.TaskAttemptCompletedEvent;
import org.apache.tez.runtime.api.events.TaskAttemptFailedEvent;
+import org.apache.tez.runtime.api.events.TaskAttemptKilledEvent;
import org.apache.tez.runtime.api.events.TaskStatusUpdateEvent;
import org.apache.tez.runtime.api.impl.EventMetaData;
import org.apache.tez.runtime.api.impl.EventMetaData.EventProducerConsumerType;
@@ -192,7 +194,7 @@ public class LlapTaskReporter implements TaskReporterInterface {
@Override
public Boolean call() throws Exception {
// Heartbeat only for active tasks. Errors, etc will be reported directly.
- while (!task.isTaskDone() && !task.hadFatalError()) {
+ while (!task.isTaskDone() && !task.wasErrorReported()) {
ResponseWrapper response = heartbeat(null);
if (response.shouldDie) {
@@ -217,7 +219,7 @@ public class LlapTaskReporter implements TaskReporterInterface {
int pendingEventCount = eventsToSend.size();
if (pendingEventCount > 0) {
// This is OK because the pending events will be sent via the succeeded/failed messages.
- // TaskDone is set before taskSucceeded/taskFailed are sent out - which is what causes the
+ // TaskDone is set before taskSucceeded/taskTerminated are sent out - which is what causes the
// thread to exit
LOG.warn("Exiting TaskReporter thread with pending queue size=" + pendingEventCount);
}
@@ -243,7 +245,7 @@ public class LlapTaskReporter implements TaskReporterInterface {
List<TezEvent> events = new ArrayList<TezEvent>();
eventsToSend.drainTo(events);
- if (!task.isTaskDone() && !task.hadFatalError()) {
+ if (!task.isTaskDone() && !task.wasErrorReported()) {
boolean sendCounters = false;
/**
* Increasing the heartbeat interval can delay the delivery of events. Sending just updated
@@ -262,8 +264,9 @@ public class LlapTaskReporter implements TaskReporterInterface {
long requestId = requestCounter.incrementAndGet();
int fromEventId = task.getNextFromEventId();
int fromPreRoutedEventId = task.getNextPreRoutedEventId();
+ int maxEvents = Math.min(maxEventsToGet, task.getMaxEventsToHandle());
TezHeartbeatRequest request = new TezHeartbeatRequest(requestId, events, fromPreRoutedEventId,
- containerIdStr, task.getTaskAttemptID(), fromEventId, maxEventsToGet);
+ containerIdStr, task.getTaskAttemptID(), fromEventId, maxEvents);
if (LOG.isDebugEnabled()) {
LOG.debug("Sending heartbeat to AM, request=" + request);
}
@@ -288,7 +291,7 @@ public class LlapTaskReporter implements TaskReporterInterface {
// The same umbilical is used by multiple tasks. Problematic in the case where multiple tasks
// are running using the same umbilical.
int numEventsReceived = 0;
- if (task.isTaskDone() || task.hadFatalError()) {
+ if (task.isTaskDone() || task.wasErrorReported()) {
if (response.getEvents() != null && !response.getEvents().isEmpty()) {
LOG.warn("Current task already complete, Ignoring all event in"
+ " heartbeat response, eventCount=" + response.getEvents().size());
@@ -372,6 +375,8 @@ public class LlapTaskReporter implements TaskReporterInterface {
/**
* Sends out final events for task failure.
* @param taskAttemptID
+ * @param isKilled
+ * @param taskFailureType
* @param t
* @param diagnostics
* @param srcMeta
@@ -381,19 +386,33 @@ public class LlapTaskReporter implements TaskReporterInterface {
* @throws TezException
* indicates an exception somewhere in the AM.
*/
- private boolean taskFailed(TezTaskAttemptID taskAttemptID, Throwable t, String diagnostics,
+ private boolean taskTerminated(TezTaskAttemptID taskAttemptID, boolean isKilled,
+ TaskFailureType taskFailureType, Throwable t, String diagnostics,
EventMetaData srcMeta) throws IOException, TezException {
// Ensure only one final event is ever sent.
if (!finalEventQueued.getAndSet(true)) {
- TezEvent statusUpdateEvent = new TezEvent(getStatusUpdateEvent(true), updateEventMetadata);
+ List<TezEvent> tezEvents = new ArrayList<>();
if (diagnostics == null) {
diagnostics = ExceptionUtils.getStackTrace(t);
} else {
diagnostics = diagnostics + ":" + ExceptionUtils.getStackTrace(t);
}
- TezEvent taskAttemptFailedEvent = new TezEvent(new TaskAttemptFailedEvent(diagnostics),
- srcMeta == null ? updateEventMetadata : srcMeta);
- return !heartbeat(Lists.newArrayList(statusUpdateEvent, taskAttemptFailedEvent)).shouldDie;
+
+ if (isKilled) {
+ tezEvents.add(new TezEvent(new TaskAttemptKilledEvent(diagnostics),
+ srcMeta == null ? updateEventMetadata : srcMeta));
+ } else {
+ tezEvents.add(new TezEvent(new TaskAttemptFailedEvent(diagnostics,
+ taskFailureType),
+ srcMeta == null ? updateEventMetadata : srcMeta));
+ }
+ try {
+ tezEvents.add(new TezEvent(getStatusUpdateEvent(true), updateEventMetadata));
+ } catch (Exception e) {
+ // Counter may exceed limitation
+ LOG.warn("Error when get constructing TaskStatusUpdateEvent. Not sending it out");
+ }
+ return !heartbeat(tezEvents).shouldDie;
} else {
LOG.warn("A final task state event has already been sent. Not sending again");
return askedToDie.get();
@@ -434,9 +453,19 @@ public class LlapTaskReporter implements TaskReporterInterface {
}
@Override
- public synchronized boolean taskFailed(TezTaskAttemptID taskAttemptID, Throwable t, String diagnostics,
+ public boolean taskFailed(TezTaskAttemptID tezTaskAttemptID, TaskFailureType taskFailureType,
+ Throwable throwable, String diagnostics, EventMetaData srcMeta) throws
+ IOException, TezException {
+ return currentCallable
+ .taskTerminated(tezTaskAttemptID, false, taskFailureType, throwable, diagnostics, srcMeta);
+ }
+
+ @Override
+ public boolean taskKilled(TezTaskAttemptID tezTaskAttemptID, Throwable throwable,
+ String diagnostics,
EventMetaData srcMeta) throws IOException, TezException {
- return currentCallable.taskFailed(taskAttemptID, t, diagnostics, srcMeta);
+ return currentCallable
+ .taskTerminated(tezTaskAttemptID, true, null, throwable, diagnostics, srcMeta);
}
@Override
http://git-wip-us.apache.org/repos/asf/hive/blob/f5665e34/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/TaskRunnerCallable.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/TaskRunnerCallable.java b/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/TaskRunnerCallable.java
index a1cfbb8..2a60123 100644
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/TaskRunnerCallable.java
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/TaskRunnerCallable.java
@@ -170,7 +170,7 @@ public class TaskRunnerCallable extends CallableWithNdc<TaskRunner2Result> {
synchronized (this) {
if (!shouldRunTask) {
LOG.info("Not starting task {} since it was killed earlier", taskSpec.getTaskAttemptID());
- return new TaskRunner2Result(EndReason.KILL_REQUESTED, null, false);
+ return new TaskRunner2Result(EndReason.KILL_REQUESTED, null, null, false);
}
}
@@ -237,7 +237,7 @@ public class TaskRunnerCallable extends CallableWithNdc<TaskRunner2Result> {
}
if (taskRunner == null) {
LOG.info("Not starting task {} since it was killed earlier", taskSpec.getTaskAttemptID());
- return new TaskRunner2Result(EndReason.KILL_REQUESTED, null, false);
+ return new TaskRunner2Result(EndReason.KILL_REQUESTED, null, null, false);
}
try {
http://git-wip-us.apache.org/repos/asf/hive/blob/f5665e34/llap-server/src/test/org/apache/hadoop/hive/llap/daemon/impl/TaskExecutorTestHelpers.java
----------------------------------------------------------------------
diff --git a/llap-server/src/test/org/apache/hadoop/hive/llap/daemon/impl/TaskExecutorTestHelpers.java b/llap-server/src/test/org/apache/hadoop/hive/llap/daemon/impl/TaskExecutorTestHelpers.java
index 4d05c35..24f4442 100644
--- a/llap-server/src/test/org/apache/hadoop/hive/llap/daemon/impl/TaskExecutorTestHelpers.java
+++ b/llap-server/src/test/org/apache/hadoop/hive/llap/daemon/impl/TaskExecutorTestHelpers.java
@@ -170,14 +170,14 @@ public class TaskExecutorTestHelpers {
}
} catch (InterruptedException e) {
wasInterrupted.set(true);
- return new TaskRunner2Result(EndReason.KILL_REQUESTED, null, false);
+ return new TaskRunner2Result(EndReason.KILL_REQUESTED, null, null, false);
} finally {
lock.unlock();
}
if (wasKilled.get()) {
- return new TaskRunner2Result(EndReason.KILL_REQUESTED, null, false);
+ return new TaskRunner2Result(EndReason.KILL_REQUESTED, null, null, false);
} else {
- return new TaskRunner2Result(EndReason.SUCCESS, null, false);
+ return new TaskRunner2Result(EndReason.SUCCESS, null, null, false);
}
} finally {
lock.lock();
http://git-wip-us.apache.org/repos/asf/hive/blob/f5665e34/llap-server/src/test/org/apache/hadoop/hive/llap/daemon/impl/comparator/TestFirstInFirstOutComparator.java
----------------------------------------------------------------------
diff --git a/llap-server/src/test/org/apache/hadoop/hive/llap/daemon/impl/comparator/TestFirstInFirstOutComparator.java b/llap-server/src/test/org/apache/hadoop/hive/llap/daemon/impl/comparator/TestFirstInFirstOutComparator.java
index 73df985..08ee769 100644
--- a/llap-server/src/test/org/apache/hadoop/hive/llap/daemon/impl/comparator/TestFirstInFirstOutComparator.java
+++ b/llap-server/src/test/org/apache/hadoop/hive/llap/daemon/impl/comparator/TestFirstInFirstOutComparator.java
@@ -70,9 +70,9 @@ public class TestFirstInFirstOutComparator {
try {
Thread.sleep(workTime);
} catch (InterruptedException e) {
- return new TaskRunner2Result(EndReason.KILL_REQUESTED, null, false);
+ return new TaskRunner2Result(EndReason.KILL_REQUESTED, null, null, false);
}
- return new TaskRunner2Result(EndReason.SUCCESS, null, false);
+ return new TaskRunner2Result(EndReason.SUCCESS, null, null, false);
}
@Override
[06/50] [abbrv] hive git commit: HIVE-13494: LLAP: Some metrics from
daemon are not exposed to hadoop-metrics2 (Prasanth Jayachandran reviewed by
Siddharth Seth)
Posted by jd...@apache.org.
HIVE-13494: LLAP: Some metrics from daemon are not exposed to hadoop-metrics2 (Prasanth Jayachandran reviewed by Siddharth Seth)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/a42bc674
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/a42bc674
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/a42bc674
Branch: refs/heads/llap
Commit: a42bc67467db024e194773dd50f9cd303882fa82
Parents: 7419768
Author: Prasanth Jayachandran <pr...@apache.org>
Authored: Sun Apr 24 02:33:09 2016 -0500
Committer: Prasanth Jayachandran <pr...@apache.org>
Committed: Sun Apr 24 02:33:09 2016 -0500
----------------------------------------------------------------------
.../org/apache/hadoop/hive/conf/HiveConf.java | 7 +-
.../hive/common/util/FixedSizedObjectPool.java | 5 +
.../hive/llap/metrics/LlapMetricsSystem.java | 57 ++++++++
.../hadoop/hive/llap/metrics/MetricsUtils.java | 43 ++++++
.../hadoop/hive/llap/cache/BuddyAllocator.java | 3 +
.../hive/llap/daemon/impl/LlapDaemon.java | 5 +
.../hive/llap/io/api/impl/LlapIoImpl.java | 40 +++---
.../llap/io/decode/EncodedDataConsumer.java | 15 +-
.../llap/io/decode/OrcColumnVectorProducer.java | 12 +-
.../llap/io/decode/OrcEncodedDataConsumer.java | 6 +-
.../llap/io/encoded/OrcEncodedDataReader.java | 5 +-
.../hive/llap/metrics/LlapDaemonCacheInfo.java | 5 +-
.../llap/metrics/LlapDaemonCacheMetrics.java | 26 +++-
.../llap/metrics/LlapDaemonExecutorInfo.java | 6 +
.../llap/metrics/LlapDaemonExecutorMetrics.java | 45 +++++-
.../hive/llap/metrics/LlapDaemonIOInfo.java | 53 +++++++
.../hive/llap/metrics/LlapDaemonIOMetrics.java | 144 +++++++++++++++++++
.../hive/llap/metrics/LlapDaemonQueueInfo.java | 50 -------
.../llap/metrics/LlapDaemonQueueMetrics.java | 116 ---------------
.../hive/llap/metrics/LlapMetricsSystem.java | 57 --------
.../hadoop/hive/llap/metrics/MetricsUtils.java | 43 ------
.../ql/io/orc/encoded/EncodedReaderImpl.java | 8 +-
.../org/apache/hadoop/hive/common/Pool.java | 1 +
23 files changed, 446 insertions(+), 306 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/a42bc674/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
----------------------------------------------------------------------
diff --git a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
index 926806b..5b5b350 100644
--- a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
+++ b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
@@ -295,6 +295,7 @@ public class HiveConf extends Configuration {
llapDaemonVarsSetLocal.add(ConfVars.LLAP_LRFU_LAMBDA.varname);
llapDaemonVarsSetLocal.add(ConfVars.LLAP_CACHE_ALLOW_SYNTHETIC_FILEID.varname);
llapDaemonVarsSetLocal.add(ConfVars.LLAP_IO_USE_FILEID_PATH.varname);
+ llapDaemonVarsSetLocal.add(ConfVars.LLAP_IO_DECODING_METRICS_PERCENTILE_INTERVALS.varname);
llapDaemonVarsSetLocal.add(ConfVars.LLAP_ORC_ENABLE_TIME_COUNTERS.varname);
llapDaemonVarsSetLocal.add(ConfVars.LLAP_IO_THREADPOOL_SIZE.varname);
llapDaemonVarsSetLocal.add(ConfVars.LLAP_KERBEROS_PRINCIPAL.varname);
@@ -2622,10 +2623,10 @@ public class HiveConf extends Configuration {
"Chooses whether query fragments will run in container or in llap"),
LLAP_OBJECT_CACHE_ENABLED("hive.llap.object.cache.enabled", true,
"Cache objects (plans, hashtables, etc) in llap"),
- LLAP_QUEUE_METRICS_PERCENTILE_INTERVALS("hive.llap.queue.metrics.percentiles.intervals", "",
+ LLAP_IO_DECODING_METRICS_PERCENTILE_INTERVALS("hive.llap.io.decoding.metrics.percentiles.intervals", "30",
"Comma-delimited set of integers denoting the desired rollover intervals (in seconds)\n" +
- "for percentile latency metrics on the LLAP daemon producer-consumer queue.\n" +
- "By default, percentile latency metrics are disabled."),
+ "for percentile latency metrics on the LLAP daemon IO decoding time.\n" +
+ "hive.llap.queue.metrics.percentiles.intervals"),
LLAP_IO_THREADPOOL_SIZE("hive.llap.io.threadpool.size", 10,
"Specify the number of threads to use for low-level IO thread pool."),
LLAP_KERBEROS_PRINCIPAL(HIVE_LLAP_DAEMON_SERVICE_PRINCIPAL_NAME, "",
http://git-wip-us.apache.org/repos/asf/hive/blob/a42bc674/common/src/java/org/apache/hive/common/util/FixedSizedObjectPool.java
----------------------------------------------------------------------
diff --git a/common/src/java/org/apache/hive/common/util/FixedSizedObjectPool.java b/common/src/java/org/apache/hive/common/util/FixedSizedObjectPool.java
index 600c443..3e80613 100644
--- a/common/src/java/org/apache/hive/common/util/FixedSizedObjectPool.java
+++ b/common/src/java/org/apache/hive/common/util/FixedSizedObjectPool.java
@@ -142,6 +142,11 @@ public class FixedSizedObjectPool<T> implements Pool<T> {
tryOffer(t);
}
+ @Override
+ public int size() {
+ return pool.length;
+ }
+
@VisibleForTesting
public boolean tryOffer(T t) {
if (t == null || pool.length == 0) return false; // 0 size means no-pooling case - passthru.
http://git-wip-us.apache.org/repos/asf/hive/blob/a42bc674/llap-common/src/java/org/apache/hadoop/hive/llap/metrics/LlapMetricsSystem.java
----------------------------------------------------------------------
diff --git a/llap-common/src/java/org/apache/hadoop/hive/llap/metrics/LlapMetricsSystem.java b/llap-common/src/java/org/apache/hadoop/hive/llap/metrics/LlapMetricsSystem.java
new file mode 100644
index 0000000..710182d
--- /dev/null
+++ b/llap-common/src/java/org/apache/hadoop/hive/llap/metrics/LlapMetricsSystem.java
@@ -0,0 +1,57 @@
+/**
+ * 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.llap.metrics;
+
+import java.util.concurrent.atomic.AtomicReference;
+
+import org.apache.hadoop.metrics2.MetricsSystem;
+import org.apache.hadoop.metrics2.impl.MetricsSystemImpl;
+
+/**
+ * Metrics system for llap daemon. We do not use DefaultMetricsSystem here to safegaurd against
+ * Tez accidentally shutting it down.
+ */
+public enum LlapMetricsSystem {
+ INSTANCE;
+
+ private AtomicReference<MetricsSystem> impl =
+ new AtomicReference<MetricsSystem>(new MetricsSystemImpl());
+
+ /**
+ * Convenience method to initialize the metrics system
+ * @param prefix for the metrics system configuration
+ * @return the metrics system instance
+ */
+ public static MetricsSystem initialize(String prefix) {
+ return INSTANCE.impl.get().init(prefix);
+ }
+
+ /**
+ * @return the metrics system object
+ */
+ public static MetricsSystem instance() {
+ return INSTANCE.impl.get();
+ }
+
+ /**
+ * Shutdown the metrics system
+ */
+ public static void shutdown() {
+ INSTANCE.impl.get().shutdown();
+ }
+}
http://git-wip-us.apache.org/repos/asf/hive/blob/a42bc674/llap-common/src/java/org/apache/hadoop/hive/llap/metrics/MetricsUtils.java
----------------------------------------------------------------------
diff --git a/llap-common/src/java/org/apache/hadoop/hive/llap/metrics/MetricsUtils.java b/llap-common/src/java/org/apache/hadoop/hive/llap/metrics/MetricsUtils.java
new file mode 100644
index 0000000..c22ce4e
--- /dev/null
+++ b/llap-common/src/java/org/apache/hadoop/hive/llap/metrics/MetricsUtils.java
@@ -0,0 +1,43 @@
+/**
+ * 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.llap.metrics;
+
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.util.UUID;
+
+/**
+ * Utility methods for metrics system.
+ */
+public class MetricsUtils {
+ private static final String LOCALHOST = "localhost";
+ public static final String METRICS_PROCESS_NAME = "LlapDaemon";
+
+
+ public static String getHostName() {
+ try {
+ return InetAddress.getLocalHost().getHostName();
+ } catch (UnknownHostException e) {
+ return LOCALHOST;
+ }
+ }
+
+ public static String getUUID() {
+ return String.valueOf(UUID.randomUUID());
+ }
+}
http://git-wip-us.apache.org/repos/asf/hive/blob/a42bc674/llap-server/src/java/org/apache/hadoop/hive/llap/cache/BuddyAllocator.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/cache/BuddyAllocator.java b/llap-server/src/java/org/apache/hadoop/hive/llap/cache/BuddyAllocator.java
index 824ff33..9f7e5c9 100644
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/cache/BuddyAllocator.java
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/cache/BuddyAllocator.java
@@ -113,6 +113,9 @@ public final class BuddyAllocator implements EvictionAwareAllocator, BuddyAlloca
this.metrics = metrics;
metrics.incrAllocatedArena();
+ metrics.setArenaSize(arenaSize);
+ metrics.setMinAllocationSize(minAllocation);
+ metrics.setMaxAllocationSize(maxAllocation);
}
// TODO: would it make sense to return buffers asynchronously?
http://git-wip-us.apache.org/repos/asf/hive/blob/a42bc674/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/LlapDaemon.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/LlapDaemon.java b/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/LlapDaemon.java
index a0250cb..33b41e8 100644
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/LlapDaemon.java
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/LlapDaemon.java
@@ -194,6 +194,11 @@ public class LlapDaemon extends CompositeService implements ContainerRunner, Lla
String sessionId = MetricsUtils.getUUID();
daemonConf.set("llap.daemon.metrics.sessionid", sessionId);
this.metrics = LlapDaemonExecutorMetrics.create(displayName, sessionId, numExecutors);
+ this.metrics.setMemoryPerInstance(executorMemoryBytes);
+ this.metrics.setCacheMemoryPerInstance(ioMemoryBytes);
+ this.metrics.setJvmMaxMemory(maxJvmMemory);
+ this.metrics.setWaitQueueSize(waitQueueSize);
+ this.metrics.setRpcNumHandlers(numHandlers);
metrics.getJvmMetrics().setPauseMonitor(pauseMonitor);
this.llapDaemonInfoBean = MBeans.register("LlapDaemon", "LlapDaemonInfo", this);
LOG.info("Started LlapMetricsSystem with displayName: " + displayName +
http://git-wip-us.apache.org/repos/asf/hive/blob/a42bc674/llap-server/src/java/org/apache/hadoop/hive/llap/io/api/impl/LlapIoImpl.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/io/api/impl/LlapIoImpl.java b/llap-server/src/java/org/apache/hadoop/hive/llap/io/api/impl/LlapIoImpl.java
index 36f8dec..d43ff15 100644
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/io/api/impl/LlapIoImpl.java
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/io/api/impl/LlapIoImpl.java
@@ -19,6 +19,9 @@
package org.apache.hadoop.hive.llap.io.api.impl;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
import java.util.concurrent.Executors;
import javax.management.ObjectName;
@@ -44,13 +47,14 @@ import org.apache.hadoop.hive.llap.io.decode.ColumnVectorProducer;
import org.apache.hadoop.hive.llap.io.decode.OrcColumnVectorProducer;
import org.apache.hadoop.hive.llap.io.metadata.OrcMetadataCache;
import org.apache.hadoop.hive.llap.metrics.LlapDaemonCacheMetrics;
-import org.apache.hadoop.hive.llap.metrics.LlapDaemonQueueMetrics;
+import org.apache.hadoop.hive.llap.metrics.LlapDaemonIOMetrics;
import org.apache.hadoop.hive.llap.metrics.MetricsUtils;
import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.mapred.InputFormat;
import org.apache.hadoop.metrics2.util.MBeans;
+import com.google.common.primitives.Ints;
import com.google.common.util.concurrent.ListeningExecutorService;
import com.google.common.util.concurrent.MoreExecutors;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
@@ -66,7 +70,7 @@ public class LlapIoImpl implements LlapIo<VectorizedRowBatch> {
private final ColumnVectorProducer cvp;
private final ListeningExecutorService executor;
private LlapDaemonCacheMetrics cacheMetrics;
- private LlapDaemonQueueMetrics queueMetrics;
+ private LlapDaemonIOMetrics ioMetrics;
private ObjectName buddyAllocatorMXBean;
private Allocator allocator;
@@ -75,15 +79,25 @@ public class LlapIoImpl implements LlapIo<VectorizedRowBatch> {
boolean useLowLevelCache = LlapIoImpl.MODE_CACHE.equalsIgnoreCase(ioMode),
useAllocOnly = !useLowLevelCache && LlapIoImpl.MODE_ALLOCATOR.equalsIgnoreCase(ioMode);
LOG.info("Initializing LLAP IO in {} mode", ioMode);
-
String displayName = "LlapDaemonCacheMetrics-" + MetricsUtils.getHostName();
String sessionId = conf.get("llap.daemon.metrics.sessionid");
this.cacheMetrics = LlapDaemonCacheMetrics.create(displayName, sessionId);
- displayName = "LlapDaemonQueueMetrics-" + MetricsUtils.getHostName();
- int[] intervals = conf.getInts(String.valueOf(
- HiveConf.ConfVars.LLAP_QUEUE_METRICS_PERCENTILE_INTERVALS));
- this.queueMetrics = LlapDaemonQueueMetrics.create(displayName, sessionId, intervals);
+ displayName = "LlapDaemonIOMetrics-" + MetricsUtils.getHostName();
+ String[] strIntervals = HiveConf.getTrimmedStringsVar(conf,
+ HiveConf.ConfVars.LLAP_IO_DECODING_METRICS_PERCENTILE_INTERVALS);
+ List<Integer> intervalList = new ArrayList<>();
+ if (strIntervals != null) {
+ for (String strInterval : strIntervals) {
+ try {
+ intervalList.add(Integer.valueOf(strInterval));
+ } catch (NumberFormatException e) {
+ LOG.warn("Ignoring IO decoding metrics interval {} from {} as it is invalid", strInterval,
+ Arrays.toString(strIntervals));
+ }
+ }
+ }
+ this.ioMetrics = LlapDaemonIOMetrics.create(displayName, sessionId, Ints.toArray(intervalList));
LOG.info("Started llap daemon metrics with displayName: {} sessionId: {}", displayName,
sessionId);
@@ -123,10 +137,10 @@ public class LlapIoImpl implements LlapIo<VectorizedRowBatch> {
int numThreads = HiveConf.getIntVar(conf, HiveConf.ConfVars.LLAP_IO_THREADPOOL_SIZE);
executor = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(numThreads,
new ThreadFactoryBuilder().setNameFormat("IO-Elevator-Thread-%d").setDaemon(true).build()));
-
+ ioMetrics.setIoThreadPoolSize(numThreads);
// TODO: this should depends on input format and be in a map, or something.
this.cvp = new OrcColumnVectorProducer(
- metadataCache, orcCache, bufferManager, conf, cacheMetrics, queueMetrics);
+ metadataCache, orcCache, bufferManager, conf, cacheMetrics, ioMetrics);
LOG.info("LLAP IO initialized");
registerMXBeans();
@@ -143,14 +157,6 @@ public class LlapIoImpl implements LlapIo<VectorizedRowBatch> {
return new LlapInputFormat(sourceInputFormat, cvp, executor);
}
- public LlapDaemonCacheMetrics getCacheMetrics() {
- return cacheMetrics;
- }
-
- public LlapDaemonQueueMetrics getQueueMetrics() {
- return queueMetrics;
- }
-
@Override
public void close() {
LOG.info("Closing LlapIoImpl..");
http://git-wip-us.apache.org/repos/asf/hive/blob/a42bc674/llap-server/src/java/org/apache/hadoop/hive/llap/io/decode/EncodedDataConsumer.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/io/decode/EncodedDataConsumer.java b/llap-server/src/java/org/apache/hadoop/hive/llap/io/decode/EncodedDataConsumer.java
index 137acb0..0ba7c09 100644
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/io/decode/EncodedDataConsumer.java
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/io/decode/EncodedDataConsumer.java
@@ -23,7 +23,7 @@ import org.apache.hadoop.hive.common.Pool;
import org.apache.hadoop.hive.common.io.encoded.EncodedColumnBatch;
import org.apache.hadoop.hive.llap.ConsumerFeedback;
import org.apache.hadoop.hive.llap.io.api.impl.ColumnVectorBatch;
-import org.apache.hadoop.hive.llap.metrics.LlapDaemonQueueMetrics;
+import org.apache.hadoop.hive.llap.metrics.LlapDaemonIOMetrics;
import org.apache.hadoop.hive.ql.io.orc.encoded.Consumer;
import org.apache.hive.common.util.FixedSizedObjectPool;
@@ -33,15 +33,15 @@ public abstract class EncodedDataConsumer<BatchKey, BatchType extends EncodedCol
private ConsumerFeedback<BatchType> upstreamFeedback;
private final Consumer<ColumnVectorBatch> downstreamConsumer;
private Callable<Void> readCallable;
- private final LlapDaemonQueueMetrics queueMetrics;
+ private final LlapDaemonIOMetrics ioMetrics;
// Note that the pool is per EDC - within EDC, CVBs are expected to have the same schema.
private final static int CVB_POOL_SIZE = 128;
protected final FixedSizedObjectPool<ColumnVectorBatch> cvbPool;
public EncodedDataConsumer(Consumer<ColumnVectorBatch> consumer, final int colCount,
- LlapDaemonQueueMetrics queueMetrics) {
+ LlapDaemonIOMetrics ioMetrics) {
this.downstreamConsumer = consumer;
- this.queueMetrics = queueMetrics;
+ this.ioMetrics = ioMetrics;
cvbPool = new FixedSizedObjectPool<ColumnVectorBatch>(CVB_POOL_SIZE,
new Pool.PoolObjectHelper<ColumnVectorBatch>() {
@Override
@@ -53,6 +53,7 @@ public abstract class EncodedDataConsumer<BatchKey, BatchType extends EncodedCol
// Don't reset anything, we are reusing column vectors.
}
});
+ this.ioMetrics.setColumnVectorBatchPoolSize(cvbPool.size());
}
public void init(ConsumerFeedback<BatchType> upstreamFeedback,
@@ -61,6 +62,10 @@ public abstract class EncodedDataConsumer<BatchKey, BatchType extends EncodedCol
this.readCallable = readCallable;
}
+ public LlapDaemonIOMetrics getIOMetrics() {
+ return ioMetrics;
+ }
+
@Override
public Callable<Void> getReadCallable() {
return readCallable;
@@ -75,7 +80,7 @@ public abstract class EncodedDataConsumer<BatchKey, BatchType extends EncodedCol
long start = System.currentTimeMillis();
decodeBatch(data, downstreamConsumer);
long end = System.currentTimeMillis();
- queueMetrics.addProcessingTime(end - start);
+ ioMetrics.addDecodeBatchTime(end - start);
returnSourceData(data);
}
http://git-wip-us.apache.org/repos/asf/hive/blob/a42bc674/llap-server/src/java/org/apache/hadoop/hive/llap/io/decode/OrcColumnVectorProducer.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/io/decode/OrcColumnVectorProducer.java b/llap-server/src/java/org/apache/hadoop/hive/llap/io/decode/OrcColumnVectorProducer.java
index 024c485..7db519c 100644
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/io/decode/OrcColumnVectorProducer.java
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/io/decode/OrcColumnVectorProducer.java
@@ -31,7 +31,7 @@ import org.apache.hadoop.hive.llap.io.api.impl.LlapIoImpl;
import org.apache.hadoop.hive.llap.io.encoded.OrcEncodedDataReader;
import org.apache.hadoop.hive.llap.io.metadata.OrcMetadataCache;
import org.apache.hadoop.hive.llap.metrics.LlapDaemonCacheMetrics;
-import org.apache.hadoop.hive.llap.metrics.LlapDaemonQueueMetrics;
+import org.apache.hadoop.hive.llap.metrics.LlapDaemonIOMetrics;
import org.apache.hadoop.hive.ql.io.orc.encoded.Consumer;
import org.apache.hadoop.hive.ql.io.sarg.SearchArgument;
import org.apache.hadoop.mapred.FileSplit;
@@ -44,11 +44,11 @@ public class OrcColumnVectorProducer implements ColumnVectorProducer {
private final Configuration conf;
private boolean _skipCorrupt; // TODO: get rid of this
private LlapDaemonCacheMetrics cacheMetrics;
- private LlapDaemonQueueMetrics queueMetrics;
+ private LlapDaemonIOMetrics ioMetrics;
public OrcColumnVectorProducer(OrcMetadataCache metadataCache,
LowLevelCacheImpl lowLevelCache, BufferUsageManager bufferManager,
- Configuration conf, LlapDaemonCacheMetrics metrics, LlapDaemonQueueMetrics queueMetrics) {
+ Configuration conf, LlapDaemonCacheMetrics cacheMetrics, LlapDaemonIOMetrics ioMetrics) {
LlapIoImpl.LOG.info("Initializing ORC column vector producer");
this.metadataCache = metadataCache;
@@ -56,8 +56,8 @@ public class OrcColumnVectorProducer implements ColumnVectorProducer {
this.bufferManager = bufferManager;
this.conf = conf;
this._skipCorrupt = HiveConf.getBoolVar(conf, HiveConf.ConfVars.HIVE_ORC_SKIP_CORRUPT_DATA);
- this.cacheMetrics = metrics;
- this.queueMetrics = queueMetrics;
+ this.cacheMetrics = cacheMetrics;
+ this.ioMetrics = ioMetrics;
}
@Override
@@ -67,7 +67,7 @@ public class OrcColumnVectorProducer implements ColumnVectorProducer {
QueryFragmentCounters counters) {
cacheMetrics.incrCacheReadRequests();
OrcEncodedDataConsumer edc = new OrcEncodedDataConsumer(consumer, columnIds.size(),
- _skipCorrupt, counters, queueMetrics);
+ _skipCorrupt, counters, ioMetrics);
OrcEncodedDataReader reader = new OrcEncodedDataReader(lowLevelCache, bufferManager,
metadataCache, conf, split, columnIds, sarg, columnNames, edc, counters);
edc.init(reader, reader);
http://git-wip-us.apache.org/repos/asf/hive/blob/a42bc674/llap-server/src/java/org/apache/hadoop/hive/llap/io/decode/OrcEncodedDataConsumer.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/io/decode/OrcEncodedDataConsumer.java b/llap-server/src/java/org/apache/hadoop/hive/llap/io/decode/OrcEncodedDataConsumer.java
index 7ee263d..0651557 100644
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/io/decode/OrcEncodedDataConsumer.java
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/io/decode/OrcEncodedDataConsumer.java
@@ -26,7 +26,7 @@ import org.apache.hadoop.hive.llap.counters.QueryFragmentCounters;
import org.apache.hadoop.hive.llap.io.api.impl.ColumnVectorBatch;
import org.apache.hadoop.hive.llap.io.metadata.OrcFileMetadata;
import org.apache.hadoop.hive.llap.io.metadata.OrcStripeMetadata;
-import org.apache.hadoop.hive.llap.metrics.LlapDaemonQueueMetrics;
+import org.apache.hadoop.hive.llap.metrics.LlapDaemonIOMetrics;
import org.apache.hadoop.hive.ql.exec.vector.ColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch;
import org.apache.orc.CompressionCodec;
@@ -52,8 +52,8 @@ public class OrcEncodedDataConsumer
public OrcEncodedDataConsumer(
Consumer<ColumnVectorBatch> consumer, int colCount, boolean skipCorrupt,
- QueryFragmentCounters counters, LlapDaemonQueueMetrics queueMetrics) {
- super(consumer, colCount, queueMetrics);
+ QueryFragmentCounters counters, LlapDaemonIOMetrics ioMetrics) {
+ super(consumer, colCount, ioMetrics);
// TODO: get rid of this
this.skipCorrupt = skipCorrupt;
this.counters = counters;
http://git-wip-us.apache.org/repos/asf/hive/blob/a42bc674/llap-server/src/java/org/apache/hadoop/hive/llap/io/encoded/OrcEncodedDataReader.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/io/encoded/OrcEncodedDataReader.java b/llap-server/src/java/org/apache/hadoop/hive/llap/io/encoded/OrcEncodedDataReader.java
index fb0867d..eb953c7 100644
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/io/encoded/OrcEncodedDataReader.java
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/io/encoded/OrcEncodedDataReader.java
@@ -26,6 +26,7 @@ import java.util.Collections;
import java.util.List;
import org.apache.hadoop.hive.llap.counters.LlapIOCounters;
+import org.apache.hadoop.hive.llap.metrics.LlapDaemonIOMetrics;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.hadoop.conf.Configuration;
@@ -66,7 +67,6 @@ import org.apache.hadoop.hive.ql.io.orc.OrcSplit;
import org.apache.hadoop.hive.ql.io.orc.encoded.Reader;
import org.apache.hadoop.hive.ql.io.orc.RecordReaderImpl;
import org.apache.hadoop.hive.ql.io.orc.RecordReaderImpl.SargApplier;
-import org.apache.hadoop.hive.ql.io.orc.encoded.Consumer;
import org.apache.hadoop.hive.ql.io.orc.encoded.EncodedOrcFile;
import org.apache.hadoop.hive.ql.io.orc.encoded.EncodedReader;
import org.apache.hadoop.hive.ql.io.orc.encoded.OrcBatchKey;
@@ -180,6 +180,9 @@ public class OrcEncodedDataReader extends CallableWithNdc<Void>
} catch (IOException e) {
throw new RuntimeException(e);
}
+ LlapDaemonIOMetrics ioMetrics = consumer.getIOMetrics();
+ ioMetrics.setColumnStreamDataPoolSize(CSD_POOL.size());
+ ioMetrics.setEncodedColumnBatchPoolSize(ECB_POOL.size());
}
@Override
http://git-wip-us.apache.org/repos/asf/hive/blob/a42bc674/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonCacheInfo.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonCacheInfo.java b/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonCacheInfo.java
index 8f0e9d8..191345e 100644
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonCacheInfo.java
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonCacheInfo.java
@@ -34,7 +34,10 @@ public enum LlapDaemonCacheInfo implements MetricsInfo {
CacheHitRatio("Ratio of disk ranges cached vs requested"),
CacheReadRequests("Number of disk range requests to cache"),
CacheAllocatedArena("Number of arenas allocated"),
- CacheNumLockedBuffers("Number of locked buffers in cache");
+ CacheNumLockedBuffers("Number of locked buffers in cache"),
+ CacheArenaSize("Size of arena used by allocator"),
+ CacheMinAllocationSize("Minimum allocation size used by allocator"),
+ CacheMaxAllocationSize("Maximum allocation size used by allocator");
private final String desc;
http://git-wip-us.apache.org/repos/asf/hive/blob/a42bc674/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonCacheMetrics.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonCacheMetrics.java b/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonCacheMetrics.java
index b89c6c4..bb76da5 100644
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonCacheMetrics.java
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonCacheMetrics.java
@@ -18,11 +18,14 @@
package org.apache.hadoop.hive.llap.metrics;
import static org.apache.hadoop.hive.llap.metrics.LlapDaemonCacheInfo.CacheAllocatedArena;
+import static org.apache.hadoop.hive.llap.metrics.LlapDaemonCacheInfo.CacheArenaSize;
import static org.apache.hadoop.hive.llap.metrics.LlapDaemonCacheInfo.CacheCapacityRemaining;
import static org.apache.hadoop.hive.llap.metrics.LlapDaemonCacheInfo.CacheCapacityTotal;
import static org.apache.hadoop.hive.llap.metrics.LlapDaemonCacheInfo.CacheCapacityUsed;
import static org.apache.hadoop.hive.llap.metrics.LlapDaemonCacheInfo.CacheHitBytes;
import static org.apache.hadoop.hive.llap.metrics.LlapDaemonCacheInfo.CacheHitRatio;
+import static org.apache.hadoop.hive.llap.metrics.LlapDaemonCacheInfo.CacheMaxAllocationSize;
+import static org.apache.hadoop.hive.llap.metrics.LlapDaemonCacheInfo.CacheMinAllocationSize;
import static org.apache.hadoop.hive.llap.metrics.LlapDaemonCacheInfo.CacheNumLockedBuffers;
import static org.apache.hadoop.hive.llap.metrics.LlapDaemonCacheInfo.CacheReadRequests;
import static org.apache.hadoop.hive.llap.metrics.LlapDaemonCacheInfo.CacheRequestedBytes;
@@ -65,6 +68,12 @@ public class LlapDaemonCacheMetrics implements MetricsSource {
MutableCounterLong cacheAllocatedArena;
@Metric
MutableCounterLong cacheNumLockedBuffers;
+ @Metric
+ MutableGaugeLong arenaSize;
+ @Metric
+ MutableGaugeLong minAllocationSize;
+ @Metric
+ MutableGaugeLong maxAllocationSize;
private LlapDaemonCacheMetrics(String name, String sessionId) {
this.name = name;
@@ -106,6 +115,18 @@ public class LlapDaemonCacheMetrics implements MetricsSource {
cacheNumLockedBuffers.incr();
}
+ public void setArenaSize(long value) {
+ arenaSize.set(value);
+ }
+
+ public void setMinAllocationSize(long value) {
+ minAllocationSize.set(value);
+ }
+
+ public void setMaxAllocationSize(long value) {
+ maxAllocationSize.set(value);
+ }
+
public void decrCacheNumLockedBuffers() {
cacheNumLockedBuffers.incr(-1);
}
@@ -145,7 +166,10 @@ public class LlapDaemonCacheMetrics implements MetricsSource {
.addCounter(CacheHitBytes, cacheHitBytes.value())
.addCounter(CacheAllocatedArena, cacheAllocatedArena.value())
.addCounter(CacheNumLockedBuffers, cacheNumLockedBuffers.value())
- .addGauge(CacheHitRatio, cacheHitRatio);
+ .addGauge(CacheHitRatio, cacheHitRatio)
+ .addGauge(CacheArenaSize, arenaSize.value())
+ .addGauge(CacheMinAllocationSize, minAllocationSize.value())
+ .addGauge(CacheMaxAllocationSize, maxAllocationSize.value());
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/a42bc674/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonExecutorInfo.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonExecutorInfo.java b/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonExecutorInfo.java
index e4739dc..941d926 100644
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonExecutorInfo.java
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonExecutorInfo.java
@@ -26,6 +26,12 @@ import com.google.common.base.Objects;
*/
public enum LlapDaemonExecutorInfo implements MetricsInfo {
ExecutorMetrics("Llap daemon cache related metrics"),
+ ExecutorThreadCountPerInstance("Total number of executor threads per node"),
+ ExecutorMemoryPerInstance("Total memory for executors per node in bytes"),
+ ExecutorCacheMemoryPerInstance("Total Cache memory per node in bytes"),
+ ExecutorJvmMaxMemory("Max memory available for JVM in bytes"),
+ ExecutorWaitQueueSize("Size of wait queue per node"),
+ ExecutorRpcNumHandlers("Number of RPC handlers per node"),
ExecutorThreadCPUTime("Cpu time in nanoseconds"),
ExecutorThreadUserTime("User time in nanoseconds"),
ExecutorTotalRequestsHandled("Total number of requests handled by the container"),
http://git-wip-us.apache.org/repos/asf/hive/blob/a42bc674/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonExecutorMetrics.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonExecutorMetrics.java b/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonExecutorMetrics.java
index 7919200..894880f 100644
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonExecutorMetrics.java
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonExecutorMetrics.java
@@ -17,8 +17,13 @@
*/
package org.apache.hadoop.hive.llap.metrics;
+import static org.apache.hadoop.hive.llap.metrics.LlapDaemonExecutorInfo.ExecutorCacheMemoryPerInstance;
+import static org.apache.hadoop.hive.llap.metrics.LlapDaemonExecutorInfo.ExecutorJvmMaxMemory;
+import static org.apache.hadoop.hive.llap.metrics.LlapDaemonExecutorInfo.ExecutorMemoryPerInstance;
import static org.apache.hadoop.hive.llap.metrics.LlapDaemonExecutorInfo.ExecutorNumQueuedRequests;
+import static org.apache.hadoop.hive.llap.metrics.LlapDaemonExecutorInfo.ExecutorRpcNumHandlers;
import static org.apache.hadoop.hive.llap.metrics.LlapDaemonExecutorInfo.ExecutorThreadCPUTime;
+import static org.apache.hadoop.hive.llap.metrics.LlapDaemonExecutorInfo.ExecutorThreadCountPerInstance;
import static org.apache.hadoop.hive.llap.metrics.LlapDaemonExecutorInfo.ExecutorThreadUserTime;
import static org.apache.hadoop.hive.llap.metrics.LlapDaemonExecutorInfo.ExecutorTotalAskedToDie;
import static org.apache.hadoop.hive.llap.metrics.LlapDaemonExecutorInfo.ExecutorTotalExecutionFailure;
@@ -26,6 +31,7 @@ import static org.apache.hadoop.hive.llap.metrics.LlapDaemonExecutorInfo.Executo
import static org.apache.hadoop.hive.llap.metrics.LlapDaemonExecutorInfo.ExecutorTotalRequestsHandled;
import static org.apache.hadoop.hive.llap.metrics.LlapDaemonExecutorInfo.ExecutorTotalSuccess;
import static org.apache.hadoop.hive.llap.metrics.LlapDaemonExecutorInfo.ExecutorMetrics;
+import static org.apache.hadoop.hive.llap.metrics.LlapDaemonExecutorInfo.ExecutorWaitQueueSize;
import static org.apache.hadoop.hive.llap.metrics.LlapDaemonExecutorInfo.PreemptionTimeLost;
import static org.apache.hadoop.metrics2.impl.MsInfo.ProcessName;
import static org.apache.hadoop.metrics2.impl.MsInfo.SessionId;
@@ -46,6 +52,7 @@ import org.apache.hadoop.metrics2.annotation.Metric;
import org.apache.hadoop.metrics2.annotation.Metrics;
import org.apache.hadoop.metrics2.lib.MetricsRegistry;
import org.apache.hadoop.metrics2.lib.MutableCounterLong;
+import org.apache.hadoop.metrics2.lib.MutableGaugeInt;
import org.apache.hadoop.metrics2.lib.MutableGaugeLong;
import org.apache.hadoop.metrics2.source.JvmMetrics;
@@ -78,7 +85,16 @@ public class LlapDaemonExecutorMetrics implements MetricsSource {
MutableCounterLong executorTotalExecutionFailed;
@Metric
MutableCounterLong preemptionTimeLost;
-
+ @Metric
+ MutableGaugeLong cacheMemoryPerInstance;
+ @Metric
+ MutableGaugeLong memoryPerInstance;
+ @Metric
+ MutableGaugeLong jvmMaxMemory;
+ @Metric
+ MutableGaugeInt waitQueueSize;
+ @Metric
+ MutableGaugeInt rpcNumHandlers;
private LlapDaemonExecutorMetrics(String displayName, JvmMetrics jm, String sessionId,
int numExecutors) {
@@ -151,6 +167,25 @@ public class LlapDaemonExecutorMetrics implements MetricsSource {
executorTotalIKilled.incr();
}
+ public void setCacheMemoryPerInstance(long value) {
+ cacheMemoryPerInstance.set(value);
+ }
+
+ public void setMemoryPerInstance(long value) {
+ memoryPerInstance.set(value);
+ }
+
+ public void setJvmMaxMemory(long value) {
+ jvmMaxMemory.set(value);
+ }
+
+ public void setWaitQueueSize(int size) {
+ waitQueueSize.set(size);
+ }
+
+ public void setRpcNumHandlers(int numHandlers) {
+ rpcNumHandlers.set(numHandlers);
+ }
private void getExecutorStats(MetricsRecordBuilder rb) {
updateThreadMetrics(rb);
@@ -160,7 +195,13 @@ public class LlapDaemonExecutorMetrics implements MetricsSource {
.addCounter(ExecutorTotalSuccess, executorTotalSuccess.value())
.addCounter(ExecutorTotalExecutionFailure, executorTotalExecutionFailed.value())
.addCounter(ExecutorTotalInterrupted, executorTotalIKilled.value())
- .addCounter(PreemptionTimeLost, preemptionTimeLost.value());
+ .addCounter(PreemptionTimeLost, preemptionTimeLost.value())
+ .addGauge(ExecutorThreadCountPerInstance, numExecutors)
+ .addGauge(ExecutorMemoryPerInstance, memoryPerInstance.value())
+ .addGauge(ExecutorCacheMemoryPerInstance, cacheMemoryPerInstance.value())
+ .addGauge(ExecutorJvmMaxMemory, jvmMaxMemory.value())
+ .addGauge(ExecutorWaitQueueSize, waitQueueSize.value())
+ .addGauge(ExecutorRpcNumHandlers, rpcNumHandlers.value());
}
private void updateThreadMetrics(MetricsRecordBuilder rb) {
http://git-wip-us.apache.org/repos/asf/hive/blob/a42bc674/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonIOInfo.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonIOInfo.java b/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonIOInfo.java
new file mode 100644
index 0000000..79f004b
--- /dev/null
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonIOInfo.java
@@ -0,0 +1,53 @@
+/**
+ * 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.llap.metrics;
+
+import org.apache.hadoop.metrics2.MetricsInfo;
+
+import com.google.common.base.Objects;
+
+/**
+ * Llap daemon I/O elevator metrics
+ */
+public enum LlapDaemonIOInfo implements MetricsInfo {
+ IOMetrics("Llap daemon I/O elevator metrics"),
+ IoThreadPoolSize("Size of the thread pool used by IO elevator"),
+ EncodedColumnBatchPoolSize("Size of the object pool that stores encoded column batches"),
+ ColumnStreamDataPoolSize("Size of the object pool that stores column stream data"),
+ ColumnVectorBatchPoolSize("Size of the object pool that stores column vector batches"),
+ PercentileDecodingTime("Percentile decoding time for encoded column batch"),
+ MaxDecodingTime("Max time for decoding an encoded column batch");
+
+ private final String desc;
+
+ LlapDaemonIOInfo(String desc) {
+ this.desc = desc;
+ }
+
+ @Override
+ public String description() {
+ return desc;
+ }
+
+ @Override
+ public String toString() {
+ return Objects.toStringHelper(this)
+ .add("name", name()).add("description", desc)
+ .toString();
+ }
+}
http://git-wip-us.apache.org/repos/asf/hive/blob/a42bc674/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonIOMetrics.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonIOMetrics.java b/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonIOMetrics.java
new file mode 100644
index 0000000..f3def75
--- /dev/null
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonIOMetrics.java
@@ -0,0 +1,144 @@
+/**
+ * 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.llap.metrics;
+
+import static org.apache.hadoop.hive.llap.metrics.LlapDaemonIOInfo.ColumnStreamDataPoolSize;
+import static org.apache.hadoop.hive.llap.metrics.LlapDaemonIOInfo.ColumnVectorBatchPoolSize;
+import static org.apache.hadoop.hive.llap.metrics.LlapDaemonIOInfo.EncodedColumnBatchPoolSize;
+import static org.apache.hadoop.hive.llap.metrics.LlapDaemonIOInfo.IoThreadPoolSize;
+import static org.apache.hadoop.hive.llap.metrics.LlapDaemonIOInfo.MaxDecodingTime;
+import static org.apache.hadoop.hive.llap.metrics.LlapDaemonIOInfo.IOMetrics;
+import static org.apache.hadoop.metrics2.impl.MsInfo.ProcessName;
+import static org.apache.hadoop.metrics2.impl.MsInfo.SessionId;
+
+import org.apache.hadoop.metrics2.MetricsCollector;
+import org.apache.hadoop.metrics2.MetricsRecordBuilder;
+import org.apache.hadoop.metrics2.MetricsSource;
+import org.apache.hadoop.metrics2.MetricsSystem;
+import org.apache.hadoop.metrics2.annotation.Metric;
+import org.apache.hadoop.metrics2.annotation.Metrics;
+import org.apache.hadoop.metrics2.lib.MetricsRegistry;
+import org.apache.hadoop.metrics2.lib.MutableGaugeInt;
+import org.apache.hadoop.metrics2.lib.MutableGaugeLong;
+import org.apache.hadoop.metrics2.lib.MutableQuantiles;
+import org.apache.hadoop.metrics2.lib.MutableRate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ *
+ */
+@Metrics(about = "LlapDaemon IO Metrics", context = "io")
+public class LlapDaemonIOMetrics implements MetricsSource {
+ protected static final Logger LOG = LoggerFactory.getLogger(LlapDaemonIOMetrics.class);
+ private final String name;
+ private final String sessionId;
+ private final MetricsRegistry registry;
+ private long maxTime = Long.MIN_VALUE;
+
+ @Metric
+ MutableGaugeInt encodedColumnBatchPoolSize;
+ @Metric
+ MutableGaugeInt columnStreamDataPoolSize;
+ @Metric
+ MutableGaugeInt columnVectorBatchPool;
+ @Metric
+ MutableGaugeInt ioThreadPoolSize;
+ @Metric
+ MutableRate rateOfDecoding;
+ final MutableQuantiles[] decodingTimes;
+ @Metric
+ MutableGaugeLong maxDecodingTime;
+
+ private LlapDaemonIOMetrics(String displayName, String sessionId, int[] intervals) {
+ this.name = displayName;
+ this.sessionId = sessionId;
+ this.registry = new MetricsRegistry("LlapDaemonIORegistry");
+ this.registry.tag(ProcessName, MetricsUtils.METRICS_PROCESS_NAME).tag(SessionId, sessionId);
+
+ final int len = intervals == null ? 0 : intervals.length;
+ this.decodingTimes = new MutableQuantiles[len];
+ for (int i=0; i<len; i++) {
+ int interval = intervals[i];
+ LOG.info("Created interval " + LlapDaemonIOInfo.PercentileDecodingTime.name() + "_" + interval + "s");
+ decodingTimes[i] = registry.newQuantiles(
+ LlapDaemonIOInfo.PercentileDecodingTime.name() + "_" + interval + "s",
+ LlapDaemonIOInfo.PercentileDecodingTime.description(),
+ "ops", "latency", interval);
+ }
+ }
+
+ public static LlapDaemonIOMetrics create(String displayName, String sessionId, int[] intervals) {
+ MetricsSystem ms = LlapMetricsSystem.instance();
+ return ms.register(displayName, null, new LlapDaemonIOMetrics(displayName, sessionId, intervals));
+ }
+
+ @Override
+ public void getMetrics(MetricsCollector collector, boolean b) {
+ MetricsRecordBuilder rb = collector.addRecord(IOMetrics)
+ .setContext("io")
+ .tag(ProcessName, MetricsUtils.METRICS_PROCESS_NAME)
+ .tag(SessionId, sessionId);
+ getIoStats(rb);
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setEncodedColumnBatchPoolSize(int size) {
+ encodedColumnBatchPoolSize.set(size);
+ }
+
+ public void setColumnStreamDataPoolSize(int size) {
+ columnStreamDataPoolSize.set(size);
+ }
+
+ public void setColumnVectorBatchPoolSize(int size) {
+ columnVectorBatchPool.set(size);
+ }
+
+ public void setIoThreadPoolSize(int size) {
+ ioThreadPoolSize.set(size);
+ }
+
+ public void addDecodeBatchTime(long latency) {
+ rateOfDecoding.add(latency);
+ if (latency > maxTime) {
+ maxTime = latency;
+ maxDecodingTime.set(maxTime);
+ }
+ for (MutableQuantiles q : decodingTimes) {
+ q.add(latency);
+ }
+ }
+
+ private void getIoStats(MetricsRecordBuilder rb) {
+ rb.addGauge(EncodedColumnBatchPoolSize, encodedColumnBatchPoolSize.value())
+ .addGauge(ColumnStreamDataPoolSize, columnStreamDataPoolSize.value())
+ .addGauge(ColumnVectorBatchPoolSize, columnVectorBatchPool.value())
+ .addGauge(IoThreadPoolSize, ioThreadPoolSize.value())
+ .addGauge(MaxDecodingTime, maxDecodingTime.value());
+ rateOfDecoding.snapshot(rb, true);
+
+ for (MutableQuantiles q : decodingTimes) {
+ q.snapshot(rb, true);
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/hive/blob/a42bc674/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonQueueInfo.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonQueueInfo.java b/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonQueueInfo.java
deleted file mode 100644
index 7df7877..0000000
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonQueueInfo.java
+++ /dev/null
@@ -1,50 +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.llap.metrics;
-
-import org.apache.hadoop.metrics2.MetricsInfo;
-
-import com.google.common.base.Objects;
-
-/**
- * Llap daemon producer / consumer queue related metrics.
- */
-public enum LlapDaemonQueueInfo implements MetricsInfo {
- QueueMetrics("Llap daemon producer/consumer queue related metrics"),
- QueueSize("Size of the queue used by producer and consumer"),
- PercentileProcessingTime("Percentiles processing time for an element from queue"),
- MaxProcessingTime("Max processing time for an element from queue so far");
-
- private final String desc;
-
- LlapDaemonQueueInfo(String desc) {
- this.desc = desc;
- }
-
- @Override
- public String description() {
- return desc;
- }
-
- @Override
- public String toString() {
- return Objects.toStringHelper(this)
- .add("name", name()).add("description", desc)
- .toString();
- }
-}
http://git-wip-us.apache.org/repos/asf/hive/blob/a42bc674/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonQueueMetrics.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonQueueMetrics.java b/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonQueueMetrics.java
deleted file mode 100644
index 10a0124..0000000
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapDaemonQueueMetrics.java
+++ /dev/null
@@ -1,116 +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.llap.metrics;
-
-import static org.apache.hadoop.hive.llap.metrics.LlapDaemonQueueInfo.MaxProcessingTime;
-import static org.apache.hadoop.hive.llap.metrics.LlapDaemonQueueInfo.QueueMetrics;
-import static org.apache.hadoop.hive.llap.metrics.LlapDaemonQueueInfo.QueueSize;
-import static org.apache.hadoop.metrics2.impl.MsInfo.ProcessName;
-import static org.apache.hadoop.metrics2.impl.MsInfo.SessionId;
-
-import org.apache.hadoop.metrics2.MetricsCollector;
-import org.apache.hadoop.metrics2.MetricsRecordBuilder;
-import org.apache.hadoop.metrics2.MetricsSource;
-import org.apache.hadoop.metrics2.MetricsSystem;
-import org.apache.hadoop.metrics2.annotation.Metric;
-import org.apache.hadoop.metrics2.annotation.Metrics;
-import org.apache.hadoop.metrics2.lib.MetricsRegistry;
-import org.apache.hadoop.metrics2.lib.MutableGaugeInt;
-import org.apache.hadoop.metrics2.lib.MutableGaugeLong;
-import org.apache.hadoop.metrics2.lib.MutableQuantiles;
-import org.apache.hadoop.metrics2.lib.MutableRate;
-
-/**
- *
- */
-@Metrics(about = "LlapDaemon Queue Metrics", context = "queue")
-public class LlapDaemonQueueMetrics implements MetricsSource {
- private final String name;
- private final String sessionId;
- private final MetricsRegistry registry;
- private long maxTime = Long.MIN_VALUE;
-
- @Metric
- MutableGaugeInt queueSize;
- @Metric
- MutableRate rateOfProcessing;
- final MutableQuantiles[] processingTimes;
- @Metric
- MutableGaugeLong maxProcessingTime;
-
- private LlapDaemonQueueMetrics(String displayName, String sessionId, int[] intervals) {
- this.name = displayName;
- this.sessionId = sessionId;
- this.registry = new MetricsRegistry("LlapDaemonQueueRegistry");
- this.registry.tag(ProcessName, MetricsUtils.METRICS_PROCESS_NAME).tag(SessionId, sessionId);
-
- final int len = intervals == null ? 0 : intervals.length;
- this.processingTimes = new MutableQuantiles[len];
- for (int i=0; i<len; i++) {
- int interval = intervals[i];
- processingTimes[i] = registry.newQuantiles(
- LlapDaemonQueueInfo.PercentileProcessingTime.name() + "_" + interval + "s",
- LlapDaemonQueueInfo.PercentileProcessingTime.description(),
- "ops", "latency", interval);
- }
- }
-
- public static LlapDaemonQueueMetrics create(String displayName, String sessionId, int[] intervals) {
- MetricsSystem ms = LlapMetricsSystem.instance();
- return ms.register(displayName, null, new LlapDaemonQueueMetrics(displayName, sessionId, intervals));
- }
-
- @Override
- public void getMetrics(MetricsCollector collector, boolean b) {
- MetricsRecordBuilder rb = collector.addRecord(QueueMetrics)
- .setContext("queue")
- .tag(ProcessName, MetricsUtils.METRICS_PROCESS_NAME)
- .tag(SessionId, sessionId);
- getQueueStats(rb);
- }
-
- public String getName() {
- return name;
- }
-
- public void setQueueSize(int size) {
- queueSize.set(size);
- }
-
- public void addProcessingTime(long latency) {
- rateOfProcessing.add(latency);
- if (latency > maxTime) {
- maxTime = latency;
- maxProcessingTime.set(maxTime);
- }
- for (MutableQuantiles q : processingTimes) {
- q.add(latency);
- }
- }
-
- private void getQueueStats(MetricsRecordBuilder rb) {
- rb.addGauge(QueueSize, queueSize.value())
- .addGauge(MaxProcessingTime, maxProcessingTime.value())
- .addGauge(MaxProcessingTime, maxProcessingTime.value());
- rateOfProcessing.snapshot(rb, true);
-
- for (MutableQuantiles q : processingTimes) {
- q.snapshot(rb, true);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/hive/blob/a42bc674/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapMetricsSystem.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapMetricsSystem.java b/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapMetricsSystem.java
deleted file mode 100644
index 710182d..0000000
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/LlapMetricsSystem.java
+++ /dev/null
@@ -1,57 +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.llap.metrics;
-
-import java.util.concurrent.atomic.AtomicReference;
-
-import org.apache.hadoop.metrics2.MetricsSystem;
-import org.apache.hadoop.metrics2.impl.MetricsSystemImpl;
-
-/**
- * Metrics system for llap daemon. We do not use DefaultMetricsSystem here to safegaurd against
- * Tez accidentally shutting it down.
- */
-public enum LlapMetricsSystem {
- INSTANCE;
-
- private AtomicReference<MetricsSystem> impl =
- new AtomicReference<MetricsSystem>(new MetricsSystemImpl());
-
- /**
- * Convenience method to initialize the metrics system
- * @param prefix for the metrics system configuration
- * @return the metrics system instance
- */
- public static MetricsSystem initialize(String prefix) {
- return INSTANCE.impl.get().init(prefix);
- }
-
- /**
- * @return the metrics system object
- */
- public static MetricsSystem instance() {
- return INSTANCE.impl.get();
- }
-
- /**
- * Shutdown the metrics system
- */
- public static void shutdown() {
- INSTANCE.impl.get().shutdown();
- }
-}
http://git-wip-us.apache.org/repos/asf/hive/blob/a42bc674/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/MetricsUtils.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/MetricsUtils.java b/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/MetricsUtils.java
deleted file mode 100644
index c22ce4e..0000000
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/metrics/MetricsUtils.java
+++ /dev/null
@@ -1,43 +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.llap.metrics;
-
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-import java.util.UUID;
-
-/**
- * Utility methods for metrics system.
- */
-public class MetricsUtils {
- private static final String LOCALHOST = "localhost";
- public static final String METRICS_PROCESS_NAME = "LlapDaemon";
-
-
- public static String getHostName() {
- try {
- return InetAddress.getLocalHost().getHostName();
- } catch (UnknownHostException e) {
- return LOCALHOST;
- }
- }
-
- public static String getUUID() {
- return String.valueOf(UUID.randomUUID());
- }
-}
http://git-wip-us.apache.org/repos/asf/hive/blob/a42bc674/ql/src/java/org/apache/hadoop/hive/ql/io/orc/encoded/EncodedReaderImpl.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/encoded/EncodedReaderImpl.java b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/encoded/EncodedReaderImpl.java
index f4cfa53..8ccedb7 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/encoded/EncodedReaderImpl.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/encoded/EncodedReaderImpl.java
@@ -1317,10 +1317,16 @@ class EncodedReaderImpl implements EncodedReader {
/** Pool factory that is used if another one isn't specified - just creates the objects. */
private static class NoopPoolFactory implements PoolFactory {
@Override
- public <T> Pool<T> createPool(int size, final PoolObjectHelper<T> helper) {
+ public <T> Pool<T> createPool(final int size, final PoolObjectHelper<T> helper) {
return new Pool<T>() {
public void offer(T t) {
}
+
+ @Override
+ public int size() {
+ return size;
+ }
+
public T take() {
return helper.create();
}
http://git-wip-us.apache.org/repos/asf/hive/blob/a42bc674/storage-api/src/java/org/apache/hadoop/hive/common/Pool.java
----------------------------------------------------------------------
diff --git a/storage-api/src/java/org/apache/hadoop/hive/common/Pool.java b/storage-api/src/java/org/apache/hadoop/hive/common/Pool.java
index e41a515..272bbdd 100644
--- a/storage-api/src/java/org/apache/hadoop/hive/common/Pool.java
+++ b/storage-api/src/java/org/apache/hadoop/hive/common/Pool.java
@@ -29,4 +29,5 @@ public interface Pool<T> {
T take();
void offer(T t);
+ int size();
}
\ No newline at end of file
[30/50] [abbrv] hive git commit: HIVE-13130: HS2 changes : API calls
for retrieving primary keys and foreign keys information (Hari Subramaniyan,
reviewed by Ashutosh Chauhan)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/service-rpc/src/gen/thrift/gen-javabean/org/apache/hive/service/rpc/thrift/TGetPrimaryKeysResp.java
----------------------------------------------------------------------
diff --git a/service-rpc/src/gen/thrift/gen-javabean/org/apache/hive/service/rpc/thrift/TGetPrimaryKeysResp.java b/service-rpc/src/gen/thrift/gen-javabean/org/apache/hive/service/rpc/thrift/TGetPrimaryKeysResp.java
new file mode 100644
index 0000000..72d9507
--- /dev/null
+++ b/service-rpc/src/gen/thrift/gen-javabean/org/apache/hive/service/rpc/thrift/TGetPrimaryKeysResp.java
@@ -0,0 +1,509 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ * @generated
+ */
+package org.apache.hive.service.rpc.thrift;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
+public class TGetPrimaryKeysResp implements org.apache.thrift.TBase<TGetPrimaryKeysResp, TGetPrimaryKeysResp._Fields>, java.io.Serializable, Cloneable, Comparable<TGetPrimaryKeysResp> {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TGetPrimaryKeysResp");
+
+ private static final org.apache.thrift.protocol.TField STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("status", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+ private static final org.apache.thrift.protocol.TField OPERATION_HANDLE_FIELD_DESC = new org.apache.thrift.protocol.TField("operationHandle", org.apache.thrift.protocol.TType.STRUCT, (short)2);
+
+ private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+ static {
+ schemes.put(StandardScheme.class, new TGetPrimaryKeysRespStandardSchemeFactory());
+ schemes.put(TupleScheme.class, new TGetPrimaryKeysRespTupleSchemeFactory());
+ }
+
+ private TStatus status; // required
+ private TOperationHandle operationHandle; // optional
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ STATUS((short)1, "status"),
+ OPERATION_HANDLE((short)2, "operationHandle");
+
+ private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+ static {
+ for (_Fields field : EnumSet.allOf(_Fields.class)) {
+ byName.put(field.getFieldName(), field);
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, or null if its not found.
+ */
+ public static _Fields findByThriftId(int fieldId) {
+ switch(fieldId) {
+ case 1: // STATUS
+ return STATUS;
+ case 2: // OPERATION_HANDLE
+ return OPERATION_HANDLE;
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, throwing an exception
+ * if it is not found.
+ */
+ public static _Fields findByThriftIdOrThrow(int fieldId) {
+ _Fields fields = findByThriftId(fieldId);
+ if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+ return fields;
+ }
+
+ /**
+ * Find the _Fields constant that matches name, or null if its not found.
+ */
+ public static _Fields findByName(String name) {
+ return byName.get(name);
+ }
+
+ private final short _thriftId;
+ private final String _fieldName;
+
+ _Fields(short thriftId, String fieldName) {
+ _thriftId = thriftId;
+ _fieldName = fieldName;
+ }
+
+ public short getThriftFieldId() {
+ return _thriftId;
+ }
+
+ public String getFieldName() {
+ return _fieldName;
+ }
+ }
+
+ // isset id assignments
+ private static final _Fields optionals[] = {_Fields.OPERATION_HANDLE};
+ public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+ static {
+ Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+ tmpMap.put(_Fields.STATUS, new org.apache.thrift.meta_data.FieldMetaData("status", org.apache.thrift.TFieldRequirementType.REQUIRED,
+ new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TStatus.class)));
+ tmpMap.put(_Fields.OPERATION_HANDLE, new org.apache.thrift.meta_data.FieldMetaData("operationHandle", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+ new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TOperationHandle.class)));
+ metaDataMap = Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TGetPrimaryKeysResp.class, metaDataMap);
+ }
+
+ public TGetPrimaryKeysResp() {
+ }
+
+ public TGetPrimaryKeysResp(
+ TStatus status)
+ {
+ this();
+ this.status = status;
+ }
+
+ /**
+ * Performs a deep copy on <i>other</i>.
+ */
+ public TGetPrimaryKeysResp(TGetPrimaryKeysResp other) {
+ if (other.isSetStatus()) {
+ this.status = new TStatus(other.status);
+ }
+ if (other.isSetOperationHandle()) {
+ this.operationHandle = new TOperationHandle(other.operationHandle);
+ }
+ }
+
+ public TGetPrimaryKeysResp deepCopy() {
+ return new TGetPrimaryKeysResp(this);
+ }
+
+ @Override
+ public void clear() {
+ this.status = null;
+ this.operationHandle = null;
+ }
+
+ public TStatus getStatus() {
+ return this.status;
+ }
+
+ public void setStatus(TStatus status) {
+ this.status = status;
+ }
+
+ public void unsetStatus() {
+ this.status = null;
+ }
+
+ /** Returns true if field status is set (has been assigned a value) and false otherwise */
+ public boolean isSetStatus() {
+ return this.status != null;
+ }
+
+ public void setStatusIsSet(boolean value) {
+ if (!value) {
+ this.status = null;
+ }
+ }
+
+ public TOperationHandle getOperationHandle() {
+ return this.operationHandle;
+ }
+
+ public void setOperationHandle(TOperationHandle operationHandle) {
+ this.operationHandle = operationHandle;
+ }
+
+ public void unsetOperationHandle() {
+ this.operationHandle = null;
+ }
+
+ /** Returns true if field operationHandle is set (has been assigned a value) and false otherwise */
+ public boolean isSetOperationHandle() {
+ return this.operationHandle != null;
+ }
+
+ public void setOperationHandleIsSet(boolean value) {
+ if (!value) {
+ this.operationHandle = null;
+ }
+ }
+
+ public void setFieldValue(_Fields field, Object value) {
+ switch (field) {
+ case STATUS:
+ if (value == null) {
+ unsetStatus();
+ } else {
+ setStatus((TStatus)value);
+ }
+ break;
+
+ case OPERATION_HANDLE:
+ if (value == null) {
+ unsetOperationHandle();
+ } else {
+ setOperationHandle((TOperationHandle)value);
+ }
+ break;
+
+ }
+ }
+
+ public Object getFieldValue(_Fields field) {
+ switch (field) {
+ case STATUS:
+ return getStatus();
+
+ case OPERATION_HANDLE:
+ return getOperationHandle();
+
+ }
+ throw new IllegalStateException();
+ }
+
+ /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+ public boolean isSet(_Fields field) {
+ if (field == null) {
+ throw new IllegalArgumentException();
+ }
+
+ switch (field) {
+ case STATUS:
+ return isSetStatus();
+ case OPERATION_HANDLE:
+ return isSetOperationHandle();
+ }
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof TGetPrimaryKeysResp)
+ return this.equals((TGetPrimaryKeysResp)that);
+ return false;
+ }
+
+ public boolean equals(TGetPrimaryKeysResp that) {
+ if (that == null)
+ return false;
+
+ boolean this_present_status = true && this.isSetStatus();
+ boolean that_present_status = true && that.isSetStatus();
+ if (this_present_status || that_present_status) {
+ if (!(this_present_status && that_present_status))
+ return false;
+ if (!this.status.equals(that.status))
+ return false;
+ }
+
+ boolean this_present_operationHandle = true && this.isSetOperationHandle();
+ boolean that_present_operationHandle = true && that.isSetOperationHandle();
+ if (this_present_operationHandle || that_present_operationHandle) {
+ if (!(this_present_operationHandle && that_present_operationHandle))
+ return false;
+ if (!this.operationHandle.equals(that.operationHandle))
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ List<Object> list = new ArrayList<Object>();
+
+ boolean present_status = true && (isSetStatus());
+ list.add(present_status);
+ if (present_status)
+ list.add(status);
+
+ boolean present_operationHandle = true && (isSetOperationHandle());
+ list.add(present_operationHandle);
+ if (present_operationHandle)
+ list.add(operationHandle);
+
+ return list.hashCode();
+ }
+
+ @Override
+ public int compareTo(TGetPrimaryKeysResp other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+
+ lastComparison = Boolean.valueOf(isSetStatus()).compareTo(other.isSetStatus());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetStatus()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.status, other.status);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetOperationHandle()).compareTo(other.isSetOperationHandle());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetOperationHandle()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.operationHandle, other.operationHandle);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ return 0;
+ }
+
+ public _Fields fieldForId(int fieldId) {
+ return _Fields.findByThriftId(fieldId);
+ }
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+ schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder("TGetPrimaryKeysResp(");
+ boolean first = true;
+
+ sb.append("status:");
+ if (this.status == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.status);
+ }
+ first = false;
+ if (isSetOperationHandle()) {
+ if (!first) sb.append(", ");
+ sb.append("operationHandle:");
+ if (this.operationHandle == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.operationHandle);
+ }
+ first = false;
+ }
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ if (!isSetStatus()) {
+ throw new org.apache.thrift.protocol.TProtocolException("Required field 'status' is unset! Struct:" + toString());
+ }
+
+ // check for sub-struct validity
+ if (status != null) {
+ status.validate();
+ }
+ if (operationHandle != null) {
+ operationHandle.validate();
+ }
+ }
+
+ private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+ try {
+ write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+ try {
+ read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private static class TGetPrimaryKeysRespStandardSchemeFactory implements SchemeFactory {
+ public TGetPrimaryKeysRespStandardScheme getScheme() {
+ return new TGetPrimaryKeysRespStandardScheme();
+ }
+ }
+
+ private static class TGetPrimaryKeysRespStandardScheme extends StandardScheme<TGetPrimaryKeysResp> {
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot, TGetPrimaryKeysResp struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TField schemeField;
+ iprot.readStructBegin();
+ while (true)
+ {
+ schemeField = iprot.readFieldBegin();
+ if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (schemeField.id) {
+ case 1: // STATUS
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+ struct.status = new TStatus();
+ struct.status.read(iprot);
+ struct.setStatusIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 2: // OPERATION_HANDLE
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+ struct.operationHandle = new TOperationHandle();
+ struct.operationHandle.read(iprot);
+ struct.setOperationHandleIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+ struct.validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot, TGetPrimaryKeysResp struct) throws org.apache.thrift.TException {
+ struct.validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ if (struct.status != null) {
+ oprot.writeFieldBegin(STATUS_FIELD_DESC);
+ struct.status.write(oprot);
+ oprot.writeFieldEnd();
+ }
+ if (struct.operationHandle != null) {
+ if (struct.isSetOperationHandle()) {
+ oprot.writeFieldBegin(OPERATION_HANDLE_FIELD_DESC);
+ struct.operationHandle.write(oprot);
+ oprot.writeFieldEnd();
+ }
+ }
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ }
+
+ private static class TGetPrimaryKeysRespTupleSchemeFactory implements SchemeFactory {
+ public TGetPrimaryKeysRespTupleScheme getScheme() {
+ return new TGetPrimaryKeysRespTupleScheme();
+ }
+ }
+
+ private static class TGetPrimaryKeysRespTupleScheme extends TupleScheme<TGetPrimaryKeysResp> {
+
+ @Override
+ public void write(org.apache.thrift.protocol.TProtocol prot, TGetPrimaryKeysResp struct) throws org.apache.thrift.TException {
+ TTupleProtocol oprot = (TTupleProtocol) prot;
+ struct.status.write(oprot);
+ BitSet optionals = new BitSet();
+ if (struct.isSetOperationHandle()) {
+ optionals.set(0);
+ }
+ oprot.writeBitSet(optionals, 1);
+ if (struct.isSetOperationHandle()) {
+ struct.operationHandle.write(oprot);
+ }
+ }
+
+ @Override
+ public void read(org.apache.thrift.protocol.TProtocol prot, TGetPrimaryKeysResp struct) throws org.apache.thrift.TException {
+ TTupleProtocol iprot = (TTupleProtocol) prot;
+ struct.status = new TStatus();
+ struct.status.read(iprot);
+ struct.setStatusIsSet(true);
+ BitSet incoming = iprot.readBitSet(1);
+ if (incoming.get(0)) {
+ struct.operationHandle = new TOperationHandle();
+ struct.operationHandle.read(iprot);
+ struct.setOperationHandleIsSet(true);
+ }
+ }
+ }
+
+}
+
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/service-rpc/src/gen/thrift/gen-php/TCLIService.php
----------------------------------------------------------------------
diff --git a/service-rpc/src/gen/thrift/gen-php/TCLIService.php b/service-rpc/src/gen/thrift/gen-php/TCLIService.php
index eba62f1..d283145 100644
--- a/service-rpc/src/gen/thrift/gen-php/TCLIService.php
+++ b/service-rpc/src/gen/thrift/gen-php/TCLIService.php
@@ -72,6 +72,16 @@ interface TCLIServiceIf {
*/
public function GetFunctions(\TGetFunctionsReq $req);
/**
+ * @param \TGetPrimaryKeysReq $req
+ * @return \TGetPrimaryKeysResp
+ */
+ public function GetPrimaryKeys(\TGetPrimaryKeysReq $req);
+ /**
+ * @param \TGetCrossReferenceReq $req
+ * @return \TGetCrossReferenceResp
+ */
+ public function GetCrossReference(\TGetCrossReferenceReq $req);
+ /**
* @param \TGetOperationStatusReq $req
* @return \TGetOperationStatusResp
*/
@@ -685,6 +695,108 @@ class TCLIServiceClient implements \TCLIServiceIf {
throw new \Exception("GetFunctions failed: unknown result");
}
+ public function GetPrimaryKeys(\TGetPrimaryKeysReq $req)
+ {
+ $this->send_GetPrimaryKeys($req);
+ return $this->recv_GetPrimaryKeys();
+ }
+
+ public function send_GetPrimaryKeys(\TGetPrimaryKeysReq $req)
+ {
+ $args = new \TCLIService_GetPrimaryKeys_args();
+ $args->req = $req;
+ $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+ if ($bin_accel)
+ {
+ thrift_protocol_write_binary($this->output_, 'GetPrimaryKeys', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+ }
+ else
+ {
+ $this->output_->writeMessageBegin('GetPrimaryKeys', TMessageType::CALL, $this->seqid_);
+ $args->write($this->output_);
+ $this->output_->writeMessageEnd();
+ $this->output_->getTransport()->flush();
+ }
+ }
+
+ public function recv_GetPrimaryKeys()
+ {
+ $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
+ if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\TCLIService_GetPrimaryKeys_result', $this->input_->isStrictRead());
+ else
+ {
+ $rseqid = 0;
+ $fname = null;
+ $mtype = 0;
+
+ $this->input_->readMessageBegin($fname, $mtype, $rseqid);
+ if ($mtype == TMessageType::EXCEPTION) {
+ $x = new TApplicationException();
+ $x->read($this->input_);
+ $this->input_->readMessageEnd();
+ throw $x;
+ }
+ $result = new \TCLIService_GetPrimaryKeys_result();
+ $result->read($this->input_);
+ $this->input_->readMessageEnd();
+ }
+ if ($result->success !== null) {
+ return $result->success;
+ }
+ throw new \Exception("GetPrimaryKeys failed: unknown result");
+ }
+
+ public function GetCrossReference(\TGetCrossReferenceReq $req)
+ {
+ $this->send_GetCrossReference($req);
+ return $this->recv_GetCrossReference();
+ }
+
+ public function send_GetCrossReference(\TGetCrossReferenceReq $req)
+ {
+ $args = new \TCLIService_GetCrossReference_args();
+ $args->req = $req;
+ $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
+ if ($bin_accel)
+ {
+ thrift_protocol_write_binary($this->output_, 'GetCrossReference', TMessageType::CALL, $args, $this->seqid_, $this->output_->isStrictWrite());
+ }
+ else
+ {
+ $this->output_->writeMessageBegin('GetCrossReference', TMessageType::CALL, $this->seqid_);
+ $args->write($this->output_);
+ $this->output_->writeMessageEnd();
+ $this->output_->getTransport()->flush();
+ }
+ }
+
+ public function recv_GetCrossReference()
+ {
+ $bin_accel = ($this->input_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_read_binary');
+ if ($bin_accel) $result = thrift_protocol_read_binary($this->input_, '\TCLIService_GetCrossReference_result', $this->input_->isStrictRead());
+ else
+ {
+ $rseqid = 0;
+ $fname = null;
+ $mtype = 0;
+
+ $this->input_->readMessageBegin($fname, $mtype, $rseqid);
+ if ($mtype == TMessageType::EXCEPTION) {
+ $x = new TApplicationException();
+ $x->read($this->input_);
+ $this->input_->readMessageEnd();
+ throw $x;
+ }
+ $result = new \TCLIService_GetCrossReference_result();
+ $result->read($this->input_);
+ $this->input_->readMessageEnd();
+ }
+ if ($result->success !== null) {
+ return $result->success;
+ }
+ throw new \Exception("GetCrossReference failed: unknown result");
+ }
+
public function GetOperationStatus(\TGetOperationStatusReq $req)
{
$this->send_GetOperationStatus($req);
@@ -2857,6 +2969,326 @@ class TCLIService_GetFunctions_result {
}
+class TCLIService_GetPrimaryKeys_args {
+ static $_TSPEC;
+
+ /**
+ * @var \TGetPrimaryKeysReq
+ */
+ public $req = null;
+
+ public function __construct($vals=null) {
+ if (!isset(self::$_TSPEC)) {
+ self::$_TSPEC = array(
+ 1 => array(
+ 'var' => 'req',
+ 'type' => TType::STRUCT,
+ 'class' => '\TGetPrimaryKeysReq',
+ ),
+ );
+ }
+ if (is_array($vals)) {
+ if (isset($vals['req'])) {
+ $this->req = $vals['req'];
+ }
+ }
+ }
+
+ public function getName() {
+ return 'TCLIService_GetPrimaryKeys_args';
+ }
+
+ public function read($input)
+ {
+ $xfer = 0;
+ $fname = null;
+ $ftype = 0;
+ $fid = 0;
+ $xfer += $input->readStructBegin($fname);
+ while (true)
+ {
+ $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+ if ($ftype == TType::STOP) {
+ break;
+ }
+ switch ($fid)
+ {
+ case 1:
+ if ($ftype == TType::STRUCT) {
+ $this->req = new \TGetPrimaryKeysReq();
+ $xfer += $this->req->read($input);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ default:
+ $xfer += $input->skip($ftype);
+ break;
+ }
+ $xfer += $input->readFieldEnd();
+ }
+ $xfer += $input->readStructEnd();
+ return $xfer;
+ }
+
+ public function write($output) {
+ $xfer = 0;
+ $xfer += $output->writeStructBegin('TCLIService_GetPrimaryKeys_args');
+ if ($this->req !== null) {
+ if (!is_object($this->req)) {
+ throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+ }
+ $xfer += $output->writeFieldBegin('req', TType::STRUCT, 1);
+ $xfer += $this->req->write($output);
+ $xfer += $output->writeFieldEnd();
+ }
+ $xfer += $output->writeFieldStop();
+ $xfer += $output->writeStructEnd();
+ return $xfer;
+ }
+
+}
+
+class TCLIService_GetPrimaryKeys_result {
+ static $_TSPEC;
+
+ /**
+ * @var \TGetPrimaryKeysResp
+ */
+ public $success = null;
+
+ public function __construct($vals=null) {
+ if (!isset(self::$_TSPEC)) {
+ self::$_TSPEC = array(
+ 0 => array(
+ 'var' => 'success',
+ 'type' => TType::STRUCT,
+ 'class' => '\TGetPrimaryKeysResp',
+ ),
+ );
+ }
+ if (is_array($vals)) {
+ if (isset($vals['success'])) {
+ $this->success = $vals['success'];
+ }
+ }
+ }
+
+ public function getName() {
+ return 'TCLIService_GetPrimaryKeys_result';
+ }
+
+ public function read($input)
+ {
+ $xfer = 0;
+ $fname = null;
+ $ftype = 0;
+ $fid = 0;
+ $xfer += $input->readStructBegin($fname);
+ while (true)
+ {
+ $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+ if ($ftype == TType::STOP) {
+ break;
+ }
+ switch ($fid)
+ {
+ case 0:
+ if ($ftype == TType::STRUCT) {
+ $this->success = new \TGetPrimaryKeysResp();
+ $xfer += $this->success->read($input);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ default:
+ $xfer += $input->skip($ftype);
+ break;
+ }
+ $xfer += $input->readFieldEnd();
+ }
+ $xfer += $input->readStructEnd();
+ return $xfer;
+ }
+
+ public function write($output) {
+ $xfer = 0;
+ $xfer += $output->writeStructBegin('TCLIService_GetPrimaryKeys_result');
+ if ($this->success !== null) {
+ if (!is_object($this->success)) {
+ throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+ }
+ $xfer += $output->writeFieldBegin('success', TType::STRUCT, 0);
+ $xfer += $this->success->write($output);
+ $xfer += $output->writeFieldEnd();
+ }
+ $xfer += $output->writeFieldStop();
+ $xfer += $output->writeStructEnd();
+ return $xfer;
+ }
+
+}
+
+class TCLIService_GetCrossReference_args {
+ static $_TSPEC;
+
+ /**
+ * @var \TGetCrossReferenceReq
+ */
+ public $req = null;
+
+ public function __construct($vals=null) {
+ if (!isset(self::$_TSPEC)) {
+ self::$_TSPEC = array(
+ 1 => array(
+ 'var' => 'req',
+ 'type' => TType::STRUCT,
+ 'class' => '\TGetCrossReferenceReq',
+ ),
+ );
+ }
+ if (is_array($vals)) {
+ if (isset($vals['req'])) {
+ $this->req = $vals['req'];
+ }
+ }
+ }
+
+ public function getName() {
+ return 'TCLIService_GetCrossReference_args';
+ }
+
+ public function read($input)
+ {
+ $xfer = 0;
+ $fname = null;
+ $ftype = 0;
+ $fid = 0;
+ $xfer += $input->readStructBegin($fname);
+ while (true)
+ {
+ $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+ if ($ftype == TType::STOP) {
+ break;
+ }
+ switch ($fid)
+ {
+ case 1:
+ if ($ftype == TType::STRUCT) {
+ $this->req = new \TGetCrossReferenceReq();
+ $xfer += $this->req->read($input);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ default:
+ $xfer += $input->skip($ftype);
+ break;
+ }
+ $xfer += $input->readFieldEnd();
+ }
+ $xfer += $input->readStructEnd();
+ return $xfer;
+ }
+
+ public function write($output) {
+ $xfer = 0;
+ $xfer += $output->writeStructBegin('TCLIService_GetCrossReference_args');
+ if ($this->req !== null) {
+ if (!is_object($this->req)) {
+ throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+ }
+ $xfer += $output->writeFieldBegin('req', TType::STRUCT, 1);
+ $xfer += $this->req->write($output);
+ $xfer += $output->writeFieldEnd();
+ }
+ $xfer += $output->writeFieldStop();
+ $xfer += $output->writeStructEnd();
+ return $xfer;
+ }
+
+}
+
+class TCLIService_GetCrossReference_result {
+ static $_TSPEC;
+
+ /**
+ * @var \TGetCrossReferenceResp
+ */
+ public $success = null;
+
+ public function __construct($vals=null) {
+ if (!isset(self::$_TSPEC)) {
+ self::$_TSPEC = array(
+ 0 => array(
+ 'var' => 'success',
+ 'type' => TType::STRUCT,
+ 'class' => '\TGetCrossReferenceResp',
+ ),
+ );
+ }
+ if (is_array($vals)) {
+ if (isset($vals['success'])) {
+ $this->success = $vals['success'];
+ }
+ }
+ }
+
+ public function getName() {
+ return 'TCLIService_GetCrossReference_result';
+ }
+
+ public function read($input)
+ {
+ $xfer = 0;
+ $fname = null;
+ $ftype = 0;
+ $fid = 0;
+ $xfer += $input->readStructBegin($fname);
+ while (true)
+ {
+ $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+ if ($ftype == TType::STOP) {
+ break;
+ }
+ switch ($fid)
+ {
+ case 0:
+ if ($ftype == TType::STRUCT) {
+ $this->success = new \TGetCrossReferenceResp();
+ $xfer += $this->success->read($input);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ default:
+ $xfer += $input->skip($ftype);
+ break;
+ }
+ $xfer += $input->readFieldEnd();
+ }
+ $xfer += $input->readStructEnd();
+ return $xfer;
+ }
+
+ public function write($output) {
+ $xfer = 0;
+ $xfer += $output->writeStructBegin('TCLIService_GetCrossReference_result');
+ if ($this->success !== null) {
+ if (!is_object($this->success)) {
+ throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+ }
+ $xfer += $output->writeFieldBegin('success', TType::STRUCT, 0);
+ $xfer += $this->success->write($output);
+ $xfer += $output->writeFieldEnd();
+ }
+ $xfer += $output->writeFieldStop();
+ $xfer += $output->writeStructEnd();
+ return $xfer;
+ }
+
+}
+
class TCLIService_GetOperationStatus_args {
static $_TSPEC;
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/service-rpc/src/gen/thrift/gen-php/Types.php
----------------------------------------------------------------------
diff --git a/service-rpc/src/gen/thrift/gen-php/Types.php b/service-rpc/src/gen/thrift/gen-php/Types.php
index fc12770..7f1f99f 100644
--- a/service-rpc/src/gen/thrift/gen-php/Types.php
+++ b/service-rpc/src/gen/thrift/gen-php/Types.php
@@ -7359,6 +7359,589 @@ class TGetFunctionsResp {
}
+class TGetPrimaryKeysReq {
+ static $_TSPEC;
+
+ /**
+ * @var \TSessionHandle
+ */
+ public $sessionHandle = null;
+ /**
+ * @var string
+ */
+ public $catalogName = null;
+ /**
+ * @var string
+ */
+ public $schemaName = null;
+ /**
+ * @var string
+ */
+ public $tableName = null;
+
+ public function __construct($vals=null) {
+ if (!isset(self::$_TSPEC)) {
+ self::$_TSPEC = array(
+ 1 => array(
+ 'var' => 'sessionHandle',
+ 'type' => TType::STRUCT,
+ 'class' => '\TSessionHandle',
+ ),
+ 2 => array(
+ 'var' => 'catalogName',
+ 'type' => TType::STRING,
+ ),
+ 3 => array(
+ 'var' => 'schemaName',
+ 'type' => TType::STRING,
+ ),
+ 4 => array(
+ 'var' => 'tableName',
+ 'type' => TType::STRING,
+ ),
+ );
+ }
+ if (is_array($vals)) {
+ if (isset($vals['sessionHandle'])) {
+ $this->sessionHandle = $vals['sessionHandle'];
+ }
+ if (isset($vals['catalogName'])) {
+ $this->catalogName = $vals['catalogName'];
+ }
+ if (isset($vals['schemaName'])) {
+ $this->schemaName = $vals['schemaName'];
+ }
+ if (isset($vals['tableName'])) {
+ $this->tableName = $vals['tableName'];
+ }
+ }
+ }
+
+ public function getName() {
+ return 'TGetPrimaryKeysReq';
+ }
+
+ public function read($input)
+ {
+ $xfer = 0;
+ $fname = null;
+ $ftype = 0;
+ $fid = 0;
+ $xfer += $input->readStructBegin($fname);
+ while (true)
+ {
+ $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+ if ($ftype == TType::STOP) {
+ break;
+ }
+ switch ($fid)
+ {
+ case 1:
+ if ($ftype == TType::STRUCT) {
+ $this->sessionHandle = new \TSessionHandle();
+ $xfer += $this->sessionHandle->read($input);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 2:
+ if ($ftype == TType::STRING) {
+ $xfer += $input->readString($this->catalogName);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 3:
+ if ($ftype == TType::STRING) {
+ $xfer += $input->readString($this->schemaName);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 4:
+ if ($ftype == TType::STRING) {
+ $xfer += $input->readString($this->tableName);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ default:
+ $xfer += $input->skip($ftype);
+ break;
+ }
+ $xfer += $input->readFieldEnd();
+ }
+ $xfer += $input->readStructEnd();
+ return $xfer;
+ }
+
+ public function write($output) {
+ $xfer = 0;
+ $xfer += $output->writeStructBegin('TGetPrimaryKeysReq');
+ if ($this->sessionHandle !== null) {
+ if (!is_object($this->sessionHandle)) {
+ throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+ }
+ $xfer += $output->writeFieldBegin('sessionHandle', TType::STRUCT, 1);
+ $xfer += $this->sessionHandle->write($output);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->catalogName !== null) {
+ $xfer += $output->writeFieldBegin('catalogName', TType::STRING, 2);
+ $xfer += $output->writeString($this->catalogName);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->schemaName !== null) {
+ $xfer += $output->writeFieldBegin('schemaName', TType::STRING, 3);
+ $xfer += $output->writeString($this->schemaName);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->tableName !== null) {
+ $xfer += $output->writeFieldBegin('tableName', TType::STRING, 4);
+ $xfer += $output->writeString($this->tableName);
+ $xfer += $output->writeFieldEnd();
+ }
+ $xfer += $output->writeFieldStop();
+ $xfer += $output->writeStructEnd();
+ return $xfer;
+ }
+
+}
+
+class TGetPrimaryKeysResp {
+ static $_TSPEC;
+
+ /**
+ * @var \TStatus
+ */
+ public $status = null;
+ /**
+ * @var \TOperationHandle
+ */
+ public $operationHandle = null;
+
+ public function __construct($vals=null) {
+ if (!isset(self::$_TSPEC)) {
+ self::$_TSPEC = array(
+ 1 => array(
+ 'var' => 'status',
+ 'type' => TType::STRUCT,
+ 'class' => '\TStatus',
+ ),
+ 2 => array(
+ 'var' => 'operationHandle',
+ 'type' => TType::STRUCT,
+ 'class' => '\TOperationHandle',
+ ),
+ );
+ }
+ if (is_array($vals)) {
+ if (isset($vals['status'])) {
+ $this->status = $vals['status'];
+ }
+ if (isset($vals['operationHandle'])) {
+ $this->operationHandle = $vals['operationHandle'];
+ }
+ }
+ }
+
+ public function getName() {
+ return 'TGetPrimaryKeysResp';
+ }
+
+ public function read($input)
+ {
+ $xfer = 0;
+ $fname = null;
+ $ftype = 0;
+ $fid = 0;
+ $xfer += $input->readStructBegin($fname);
+ while (true)
+ {
+ $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+ if ($ftype == TType::STOP) {
+ break;
+ }
+ switch ($fid)
+ {
+ case 1:
+ if ($ftype == TType::STRUCT) {
+ $this->status = new \TStatus();
+ $xfer += $this->status->read($input);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 2:
+ if ($ftype == TType::STRUCT) {
+ $this->operationHandle = new \TOperationHandle();
+ $xfer += $this->operationHandle->read($input);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ default:
+ $xfer += $input->skip($ftype);
+ break;
+ }
+ $xfer += $input->readFieldEnd();
+ }
+ $xfer += $input->readStructEnd();
+ return $xfer;
+ }
+
+ public function write($output) {
+ $xfer = 0;
+ $xfer += $output->writeStructBegin('TGetPrimaryKeysResp');
+ if ($this->status !== null) {
+ if (!is_object($this->status)) {
+ throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+ }
+ $xfer += $output->writeFieldBegin('status', TType::STRUCT, 1);
+ $xfer += $this->status->write($output);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->operationHandle !== null) {
+ if (!is_object($this->operationHandle)) {
+ throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+ }
+ $xfer += $output->writeFieldBegin('operationHandle', TType::STRUCT, 2);
+ $xfer += $this->operationHandle->write($output);
+ $xfer += $output->writeFieldEnd();
+ }
+ $xfer += $output->writeFieldStop();
+ $xfer += $output->writeStructEnd();
+ return $xfer;
+ }
+
+}
+
+class TGetCrossReferenceReq {
+ static $_TSPEC;
+
+ /**
+ * @var \TSessionHandle
+ */
+ public $sessionHandle = null;
+ /**
+ * @var string
+ */
+ public $parentCatalogName = null;
+ /**
+ * @var string
+ */
+ public $parentSchemaName = null;
+ /**
+ * @var string
+ */
+ public $parentTableName = null;
+ /**
+ * @var string
+ */
+ public $foreignCatalogName = null;
+ /**
+ * @var string
+ */
+ public $foreignSchemaName = null;
+ /**
+ * @var string
+ */
+ public $foreignTableName = null;
+
+ public function __construct($vals=null) {
+ if (!isset(self::$_TSPEC)) {
+ self::$_TSPEC = array(
+ 1 => array(
+ 'var' => 'sessionHandle',
+ 'type' => TType::STRUCT,
+ 'class' => '\TSessionHandle',
+ ),
+ 2 => array(
+ 'var' => 'parentCatalogName',
+ 'type' => TType::STRING,
+ ),
+ 3 => array(
+ 'var' => 'parentSchemaName',
+ 'type' => TType::STRING,
+ ),
+ 4 => array(
+ 'var' => 'parentTableName',
+ 'type' => TType::STRING,
+ ),
+ 5 => array(
+ 'var' => 'foreignCatalogName',
+ 'type' => TType::STRING,
+ ),
+ 6 => array(
+ 'var' => 'foreignSchemaName',
+ 'type' => TType::STRING,
+ ),
+ 7 => array(
+ 'var' => 'foreignTableName',
+ 'type' => TType::STRING,
+ ),
+ );
+ }
+ if (is_array($vals)) {
+ if (isset($vals['sessionHandle'])) {
+ $this->sessionHandle = $vals['sessionHandle'];
+ }
+ if (isset($vals['parentCatalogName'])) {
+ $this->parentCatalogName = $vals['parentCatalogName'];
+ }
+ if (isset($vals['parentSchemaName'])) {
+ $this->parentSchemaName = $vals['parentSchemaName'];
+ }
+ if (isset($vals['parentTableName'])) {
+ $this->parentTableName = $vals['parentTableName'];
+ }
+ if (isset($vals['foreignCatalogName'])) {
+ $this->foreignCatalogName = $vals['foreignCatalogName'];
+ }
+ if (isset($vals['foreignSchemaName'])) {
+ $this->foreignSchemaName = $vals['foreignSchemaName'];
+ }
+ if (isset($vals['foreignTableName'])) {
+ $this->foreignTableName = $vals['foreignTableName'];
+ }
+ }
+ }
+
+ public function getName() {
+ return 'TGetCrossReferenceReq';
+ }
+
+ public function read($input)
+ {
+ $xfer = 0;
+ $fname = null;
+ $ftype = 0;
+ $fid = 0;
+ $xfer += $input->readStructBegin($fname);
+ while (true)
+ {
+ $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+ if ($ftype == TType::STOP) {
+ break;
+ }
+ switch ($fid)
+ {
+ case 1:
+ if ($ftype == TType::STRUCT) {
+ $this->sessionHandle = new \TSessionHandle();
+ $xfer += $this->sessionHandle->read($input);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 2:
+ if ($ftype == TType::STRING) {
+ $xfer += $input->readString($this->parentCatalogName);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 3:
+ if ($ftype == TType::STRING) {
+ $xfer += $input->readString($this->parentSchemaName);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 4:
+ if ($ftype == TType::STRING) {
+ $xfer += $input->readString($this->parentTableName);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 5:
+ if ($ftype == TType::STRING) {
+ $xfer += $input->readString($this->foreignCatalogName);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 6:
+ if ($ftype == TType::STRING) {
+ $xfer += $input->readString($this->foreignSchemaName);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 7:
+ if ($ftype == TType::STRING) {
+ $xfer += $input->readString($this->foreignTableName);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ default:
+ $xfer += $input->skip($ftype);
+ break;
+ }
+ $xfer += $input->readFieldEnd();
+ }
+ $xfer += $input->readStructEnd();
+ return $xfer;
+ }
+
+ public function write($output) {
+ $xfer = 0;
+ $xfer += $output->writeStructBegin('TGetCrossReferenceReq');
+ if ($this->sessionHandle !== null) {
+ if (!is_object($this->sessionHandle)) {
+ throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+ }
+ $xfer += $output->writeFieldBegin('sessionHandle', TType::STRUCT, 1);
+ $xfer += $this->sessionHandle->write($output);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->parentCatalogName !== null) {
+ $xfer += $output->writeFieldBegin('parentCatalogName', TType::STRING, 2);
+ $xfer += $output->writeString($this->parentCatalogName);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->parentSchemaName !== null) {
+ $xfer += $output->writeFieldBegin('parentSchemaName', TType::STRING, 3);
+ $xfer += $output->writeString($this->parentSchemaName);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->parentTableName !== null) {
+ $xfer += $output->writeFieldBegin('parentTableName', TType::STRING, 4);
+ $xfer += $output->writeString($this->parentTableName);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->foreignCatalogName !== null) {
+ $xfer += $output->writeFieldBegin('foreignCatalogName', TType::STRING, 5);
+ $xfer += $output->writeString($this->foreignCatalogName);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->foreignSchemaName !== null) {
+ $xfer += $output->writeFieldBegin('foreignSchemaName', TType::STRING, 6);
+ $xfer += $output->writeString($this->foreignSchemaName);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->foreignTableName !== null) {
+ $xfer += $output->writeFieldBegin('foreignTableName', TType::STRING, 7);
+ $xfer += $output->writeString($this->foreignTableName);
+ $xfer += $output->writeFieldEnd();
+ }
+ $xfer += $output->writeFieldStop();
+ $xfer += $output->writeStructEnd();
+ return $xfer;
+ }
+
+}
+
+class TGetCrossReferenceResp {
+ static $_TSPEC;
+
+ /**
+ * @var \TStatus
+ */
+ public $status = null;
+ /**
+ * @var \TOperationHandle
+ */
+ public $operationHandle = null;
+
+ public function __construct($vals=null) {
+ if (!isset(self::$_TSPEC)) {
+ self::$_TSPEC = array(
+ 1 => array(
+ 'var' => 'status',
+ 'type' => TType::STRUCT,
+ 'class' => '\TStatus',
+ ),
+ 2 => array(
+ 'var' => 'operationHandle',
+ 'type' => TType::STRUCT,
+ 'class' => '\TOperationHandle',
+ ),
+ );
+ }
+ if (is_array($vals)) {
+ if (isset($vals['status'])) {
+ $this->status = $vals['status'];
+ }
+ if (isset($vals['operationHandle'])) {
+ $this->operationHandle = $vals['operationHandle'];
+ }
+ }
+ }
+
+ public function getName() {
+ return 'TGetCrossReferenceResp';
+ }
+
+ public function read($input)
+ {
+ $xfer = 0;
+ $fname = null;
+ $ftype = 0;
+ $fid = 0;
+ $xfer += $input->readStructBegin($fname);
+ while (true)
+ {
+ $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+ if ($ftype == TType::STOP) {
+ break;
+ }
+ switch ($fid)
+ {
+ case 1:
+ if ($ftype == TType::STRUCT) {
+ $this->status = new \TStatus();
+ $xfer += $this->status->read($input);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ case 2:
+ if ($ftype == TType::STRUCT) {
+ $this->operationHandle = new \TOperationHandle();
+ $xfer += $this->operationHandle->read($input);
+ } else {
+ $xfer += $input->skip($ftype);
+ }
+ break;
+ default:
+ $xfer += $input->skip($ftype);
+ break;
+ }
+ $xfer += $input->readFieldEnd();
+ }
+ $xfer += $input->readStructEnd();
+ return $xfer;
+ }
+
+ public function write($output) {
+ $xfer = 0;
+ $xfer += $output->writeStructBegin('TGetCrossReferenceResp');
+ if ($this->status !== null) {
+ if (!is_object($this->status)) {
+ throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+ }
+ $xfer += $output->writeFieldBegin('status', TType::STRUCT, 1);
+ $xfer += $this->status->write($output);
+ $xfer += $output->writeFieldEnd();
+ }
+ if ($this->operationHandle !== null) {
+ if (!is_object($this->operationHandle)) {
+ throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+ }
+ $xfer += $output->writeFieldBegin('operationHandle', TType::STRUCT, 2);
+ $xfer += $this->operationHandle->write($output);
+ $xfer += $output->writeFieldEnd();
+ }
+ $xfer += $output->writeFieldStop();
+ $xfer += $output->writeStructEnd();
+ return $xfer;
+ }
+
+}
+
class TGetOperationStatusReq {
static $_TSPEC;
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/service-rpc/src/gen/thrift/gen-py/TCLIService/TCLIService-remote
----------------------------------------------------------------------
diff --git a/service-rpc/src/gen/thrift/gen-py/TCLIService/TCLIService-remote b/service-rpc/src/gen/thrift/gen-py/TCLIService/TCLIService-remote
index 56f5c5d..62b87a3 100755
--- a/service-rpc/src/gen/thrift/gen-py/TCLIService/TCLIService-remote
+++ b/service-rpc/src/gen/thrift/gen-py/TCLIService/TCLIService-remote
@@ -35,6 +35,8 @@ if len(sys.argv) <= 1 or sys.argv[1] == '--help':
print(' TGetTableTypesResp GetTableTypes(TGetTableTypesReq req)')
print(' TGetColumnsResp GetColumns(TGetColumnsReq req)')
print(' TGetFunctionsResp GetFunctions(TGetFunctionsReq req)')
+ print(' TGetPrimaryKeysResp GetPrimaryKeys(TGetPrimaryKeysReq req)')
+ print(' TGetCrossReferenceResp GetCrossReference(TGetCrossReferenceReq req)')
print(' TGetOperationStatusResp GetOperationStatus(TGetOperationStatusReq req)')
print(' TCancelOperationResp CancelOperation(TCancelOperationReq req)')
print(' TCloseOperationResp CloseOperation(TCloseOperationReq req)')
@@ -165,6 +167,18 @@ elif cmd == 'GetFunctions':
sys.exit(1)
pp.pprint(client.GetFunctions(eval(args[0]),))
+elif cmd == 'GetPrimaryKeys':
+ if len(args) != 1:
+ print('GetPrimaryKeys requires 1 args')
+ sys.exit(1)
+ pp.pprint(client.GetPrimaryKeys(eval(args[0]),))
+
+elif cmd == 'GetCrossReference':
+ if len(args) != 1:
+ print('GetCrossReference requires 1 args')
+ sys.exit(1)
+ pp.pprint(client.GetCrossReference(eval(args[0]),))
+
elif cmd == 'GetOperationStatus':
if len(args) != 1:
print('GetOperationStatus requires 1 args')
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/service-rpc/src/gen/thrift/gen-py/TCLIService/TCLIService.py
----------------------------------------------------------------------
diff --git a/service-rpc/src/gen/thrift/gen-py/TCLIService/TCLIService.py b/service-rpc/src/gen/thrift/gen-py/TCLIService/TCLIService.py
index ad2d71d..35f2ae4 100644
--- a/service-rpc/src/gen/thrift/gen-py/TCLIService/TCLIService.py
+++ b/service-rpc/src/gen/thrift/gen-py/TCLIService/TCLIService.py
@@ -96,6 +96,20 @@ class Iface:
"""
pass
+ def GetPrimaryKeys(self, req):
+ """
+ Parameters:
+ - req
+ """
+ pass
+
+ def GetCrossReference(self, req):
+ """
+ Parameters:
+ - req
+ """
+ pass
+
def GetOperationStatus(self, req):
"""
Parameters:
@@ -501,6 +515,68 @@ class Client(Iface):
return result.success
raise TApplicationException(TApplicationException.MISSING_RESULT, "GetFunctions failed: unknown result")
+ def GetPrimaryKeys(self, req):
+ """
+ Parameters:
+ - req
+ """
+ self.send_GetPrimaryKeys(req)
+ return self.recv_GetPrimaryKeys()
+
+ def send_GetPrimaryKeys(self, req):
+ self._oprot.writeMessageBegin('GetPrimaryKeys', TMessageType.CALL, self._seqid)
+ args = GetPrimaryKeys_args()
+ args.req = req
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_GetPrimaryKeys(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = GetPrimaryKeys_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.success is not None:
+ return result.success
+ raise TApplicationException(TApplicationException.MISSING_RESULT, "GetPrimaryKeys failed: unknown result")
+
+ def GetCrossReference(self, req):
+ """
+ Parameters:
+ - req
+ """
+ self.send_GetCrossReference(req)
+ return self.recv_GetCrossReference()
+
+ def send_GetCrossReference(self, req):
+ self._oprot.writeMessageBegin('GetCrossReference', TMessageType.CALL, self._seqid)
+ args = GetCrossReference_args()
+ args.req = req
+ args.write(self._oprot)
+ self._oprot.writeMessageEnd()
+ self._oprot.trans.flush()
+
+ def recv_GetCrossReference(self):
+ iprot = self._iprot
+ (fname, mtype, rseqid) = iprot.readMessageBegin()
+ if mtype == TMessageType.EXCEPTION:
+ x = TApplicationException()
+ x.read(iprot)
+ iprot.readMessageEnd()
+ raise x
+ result = GetCrossReference_result()
+ result.read(iprot)
+ iprot.readMessageEnd()
+ if result.success is not None:
+ return result.success
+ raise TApplicationException(TApplicationException.MISSING_RESULT, "GetCrossReference failed: unknown result")
+
def GetOperationStatus(self, req):
"""
Parameters:
@@ -765,6 +841,8 @@ class Processor(Iface, TProcessor):
self._processMap["GetTableTypes"] = Processor.process_GetTableTypes
self._processMap["GetColumns"] = Processor.process_GetColumns
self._processMap["GetFunctions"] = Processor.process_GetFunctions
+ self._processMap["GetPrimaryKeys"] = Processor.process_GetPrimaryKeys
+ self._processMap["GetCrossReference"] = Processor.process_GetCrossReference
self._processMap["GetOperationStatus"] = Processor.process_GetOperationStatus
self._processMap["CancelOperation"] = Processor.process_CancelOperation
self._processMap["CloseOperation"] = Processor.process_CloseOperation
@@ -998,6 +1076,44 @@ class Processor(Iface, TProcessor):
oprot.writeMessageEnd()
oprot.trans.flush()
+ def process_GetPrimaryKeys(self, seqid, iprot, oprot):
+ args = GetPrimaryKeys_args()
+ args.read(iprot)
+ iprot.readMessageEnd()
+ result = GetPrimaryKeys_result()
+ try:
+ result.success = self._handler.GetPrimaryKeys(args.req)
+ msg_type = TMessageType.REPLY
+ except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
+ raise
+ except Exception as ex:
+ msg_type = TMessageType.EXCEPTION
+ logging.exception(ex)
+ result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
+ oprot.writeMessageBegin("GetPrimaryKeys", msg_type, seqid)
+ result.write(oprot)
+ oprot.writeMessageEnd()
+ oprot.trans.flush()
+
+ def process_GetCrossReference(self, seqid, iprot, oprot):
+ args = GetCrossReference_args()
+ args.read(iprot)
+ iprot.readMessageEnd()
+ result = GetCrossReference_result()
+ try:
+ result.success = self._handler.GetCrossReference(args.req)
+ msg_type = TMessageType.REPLY
+ except (TTransport.TTransportException, KeyboardInterrupt, SystemExit):
+ raise
+ except Exception as ex:
+ msg_type = TMessageType.EXCEPTION
+ logging.exception(ex)
+ result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error')
+ oprot.writeMessageBegin("GetCrossReference", msg_type, seqid)
+ result.write(oprot)
+ oprot.writeMessageEnd()
+ oprot.trans.flush()
+
def process_GetOperationStatus(self, seqid, iprot, oprot):
args = GetOperationStatus_args()
args.read(iprot)
@@ -2594,6 +2710,268 @@ class GetFunctions_result:
def __ne__(self, other):
return not (self == other)
+class GetPrimaryKeys_args:
+ """
+ Attributes:
+ - req
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRUCT, 'req', (TGetPrimaryKeysReq, TGetPrimaryKeysReq.thrift_spec), None, ), # 1
+ )
+
+ def __init__(self, req=None,):
+ self.req = req
+
+ def read(self, iprot):
+ if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+ fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+ return
+ iprot.readStructBegin()
+ while True:
+ (fname, ftype, fid) = iprot.readFieldBegin()
+ if ftype == TType.STOP:
+ break
+ if fid == 1:
+ if ftype == TType.STRUCT:
+ self.req = TGetPrimaryKeysReq()
+ self.req.read(iprot)
+ else:
+ iprot.skip(ftype)
+ else:
+ iprot.skip(ftype)
+ iprot.readFieldEnd()
+ iprot.readStructEnd()
+
+ def write(self, oprot):
+ if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+ oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+ return
+ oprot.writeStructBegin('GetPrimaryKeys_args')
+ if self.req is not None:
+ oprot.writeFieldBegin('req', TType.STRUCT, 1)
+ self.req.write(oprot)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.req)
+ return value
+
+ def __repr__(self):
+ L = ['%s=%r' % (key, value)
+ for key, value in self.__dict__.iteritems()]
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+ def __eq__(self, other):
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not (self == other)
+
+class GetPrimaryKeys_result:
+ """
+ Attributes:
+ - success
+ """
+
+ thrift_spec = (
+ (0, TType.STRUCT, 'success', (TGetPrimaryKeysResp, TGetPrimaryKeysResp.thrift_spec), None, ), # 0
+ )
+
+ def __init__(self, success=None,):
+ self.success = success
+
+ def read(self, iprot):
+ if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+ fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+ return
+ iprot.readStructBegin()
+ while True:
+ (fname, ftype, fid) = iprot.readFieldBegin()
+ if ftype == TType.STOP:
+ break
+ if fid == 0:
+ if ftype == TType.STRUCT:
+ self.success = TGetPrimaryKeysResp()
+ self.success.read(iprot)
+ else:
+ iprot.skip(ftype)
+ else:
+ iprot.skip(ftype)
+ iprot.readFieldEnd()
+ iprot.readStructEnd()
+
+ def write(self, oprot):
+ if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+ oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+ return
+ oprot.writeStructBegin('GetPrimaryKeys_result')
+ if self.success is not None:
+ oprot.writeFieldBegin('success', TType.STRUCT, 0)
+ self.success.write(oprot)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.success)
+ return value
+
+ def __repr__(self):
+ L = ['%s=%r' % (key, value)
+ for key, value in self.__dict__.iteritems()]
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+ def __eq__(self, other):
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not (self == other)
+
+class GetCrossReference_args:
+ """
+ Attributes:
+ - req
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRUCT, 'req', (TGetCrossReferenceReq, TGetCrossReferenceReq.thrift_spec), None, ), # 1
+ )
+
+ def __init__(self, req=None,):
+ self.req = req
+
+ def read(self, iprot):
+ if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+ fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+ return
+ iprot.readStructBegin()
+ while True:
+ (fname, ftype, fid) = iprot.readFieldBegin()
+ if ftype == TType.STOP:
+ break
+ if fid == 1:
+ if ftype == TType.STRUCT:
+ self.req = TGetCrossReferenceReq()
+ self.req.read(iprot)
+ else:
+ iprot.skip(ftype)
+ else:
+ iprot.skip(ftype)
+ iprot.readFieldEnd()
+ iprot.readStructEnd()
+
+ def write(self, oprot):
+ if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+ oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+ return
+ oprot.writeStructBegin('GetCrossReference_args')
+ if self.req is not None:
+ oprot.writeFieldBegin('req', TType.STRUCT, 1)
+ self.req.write(oprot)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.req)
+ return value
+
+ def __repr__(self):
+ L = ['%s=%r' % (key, value)
+ for key, value in self.__dict__.iteritems()]
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+ def __eq__(self, other):
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not (self == other)
+
+class GetCrossReference_result:
+ """
+ Attributes:
+ - success
+ """
+
+ thrift_spec = (
+ (0, TType.STRUCT, 'success', (TGetCrossReferenceResp, TGetCrossReferenceResp.thrift_spec), None, ), # 0
+ )
+
+ def __init__(self, success=None,):
+ self.success = success
+
+ def read(self, iprot):
+ if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+ fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+ return
+ iprot.readStructBegin()
+ while True:
+ (fname, ftype, fid) = iprot.readFieldBegin()
+ if ftype == TType.STOP:
+ break
+ if fid == 0:
+ if ftype == TType.STRUCT:
+ self.success = TGetCrossReferenceResp()
+ self.success.read(iprot)
+ else:
+ iprot.skip(ftype)
+ else:
+ iprot.skip(ftype)
+ iprot.readFieldEnd()
+ iprot.readStructEnd()
+
+ def write(self, oprot):
+ if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+ oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+ return
+ oprot.writeStructBegin('GetCrossReference_result')
+ if self.success is not None:
+ oprot.writeFieldBegin('success', TType.STRUCT, 0)
+ self.success.write(oprot)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.success)
+ return value
+
+ def __repr__(self):
+ L = ['%s=%r' % (key, value)
+ for key, value in self.__dict__.iteritems()]
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+ def __eq__(self, other):
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not (self == other)
+
class GetOperationStatus_args:
"""
Attributes:
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/service-rpc/src/gen/thrift/gen-py/TCLIService/ttypes.py
----------------------------------------------------------------------
diff --git a/service-rpc/src/gen/thrift/gen-py/TCLIService/ttypes.py b/service-rpc/src/gen/thrift/gen-py/TCLIService/ttypes.py
index 231d001..3bb20b8 100644
--- a/service-rpc/src/gen/thrift/gen-py/TCLIService/ttypes.py
+++ b/service-rpc/src/gen/thrift/gen-py/TCLIService/ttypes.py
@@ -5585,6 +5585,423 @@ class TGetFunctionsResp:
def __ne__(self, other):
return not (self == other)
+class TGetPrimaryKeysReq:
+ """
+ Attributes:
+ - sessionHandle
+ - catalogName
+ - schemaName
+ - tableName
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRUCT, 'sessionHandle', (TSessionHandle, TSessionHandle.thrift_spec), None, ), # 1
+ (2, TType.STRING, 'catalogName', None, None, ), # 2
+ (3, TType.STRING, 'schemaName', None, None, ), # 3
+ (4, TType.STRING, 'tableName', None, None, ), # 4
+ )
+
+ def __init__(self, sessionHandle=None, catalogName=None, schemaName=None, tableName=None,):
+ self.sessionHandle = sessionHandle
+ self.catalogName = catalogName
+ self.schemaName = schemaName
+ self.tableName = tableName
+
+ def read(self, iprot):
+ if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+ fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+ return
+ iprot.readStructBegin()
+ while True:
+ (fname, ftype, fid) = iprot.readFieldBegin()
+ if ftype == TType.STOP:
+ break
+ if fid == 1:
+ if ftype == TType.STRUCT:
+ self.sessionHandle = TSessionHandle()
+ self.sessionHandle.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.catalogName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.schemaName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.tableName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ else:
+ iprot.skip(ftype)
+ iprot.readFieldEnd()
+ iprot.readStructEnd()
+
+ def write(self, oprot):
+ if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+ oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+ return
+ oprot.writeStructBegin('TGetPrimaryKeysReq')
+ if self.sessionHandle is not None:
+ oprot.writeFieldBegin('sessionHandle', TType.STRUCT, 1)
+ self.sessionHandle.write(oprot)
+ oprot.writeFieldEnd()
+ if self.catalogName is not None:
+ oprot.writeFieldBegin('catalogName', TType.STRING, 2)
+ oprot.writeString(self.catalogName)
+ oprot.writeFieldEnd()
+ if self.schemaName is not None:
+ oprot.writeFieldBegin('schemaName', TType.STRING, 3)
+ oprot.writeString(self.schemaName)
+ oprot.writeFieldEnd()
+ if self.tableName is not None:
+ oprot.writeFieldBegin('tableName', TType.STRING, 4)
+ oprot.writeString(self.tableName)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.sessionHandle is None:
+ raise TProtocol.TProtocolException(message='Required field sessionHandle is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.sessionHandle)
+ value = (value * 31) ^ hash(self.catalogName)
+ value = (value * 31) ^ hash(self.schemaName)
+ value = (value * 31) ^ hash(self.tableName)
+ return value
+
+ def __repr__(self):
+ L = ['%s=%r' % (key, value)
+ for key, value in self.__dict__.iteritems()]
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+ def __eq__(self, other):
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not (self == other)
+
+class TGetPrimaryKeysResp:
+ """
+ Attributes:
+ - status
+ - operationHandle
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRUCT, 'status', (TStatus, TStatus.thrift_spec), None, ), # 1
+ (2, TType.STRUCT, 'operationHandle', (TOperationHandle, TOperationHandle.thrift_spec), None, ), # 2
+ )
+
+ def __init__(self, status=None, operationHandle=None,):
+ self.status = status
+ self.operationHandle = operationHandle
+
+ def read(self, iprot):
+ if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+ fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+ return
+ iprot.readStructBegin()
+ while True:
+ (fname, ftype, fid) = iprot.readFieldBegin()
+ if ftype == TType.STOP:
+ break
+ if fid == 1:
+ if ftype == TType.STRUCT:
+ self.status = TStatus()
+ self.status.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRUCT:
+ self.operationHandle = TOperationHandle()
+ self.operationHandle.read(iprot)
+ else:
+ iprot.skip(ftype)
+ else:
+ iprot.skip(ftype)
+ iprot.readFieldEnd()
+ iprot.readStructEnd()
+
+ def write(self, oprot):
+ if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+ oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+ return
+ oprot.writeStructBegin('TGetPrimaryKeysResp')
+ if self.status is not None:
+ oprot.writeFieldBegin('status', TType.STRUCT, 1)
+ self.status.write(oprot)
+ oprot.writeFieldEnd()
+ if self.operationHandle is not None:
+ oprot.writeFieldBegin('operationHandle', TType.STRUCT, 2)
+ self.operationHandle.write(oprot)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.status is None:
+ raise TProtocol.TProtocolException(message='Required field status is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.status)
+ value = (value * 31) ^ hash(self.operationHandle)
+ return value
+
+ def __repr__(self):
+ L = ['%s=%r' % (key, value)
+ for key, value in self.__dict__.iteritems()]
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+ def __eq__(self, other):
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not (self == other)
+
+class TGetCrossReferenceReq:
+ """
+ Attributes:
+ - sessionHandle
+ - parentCatalogName
+ - parentSchemaName
+ - parentTableName
+ - foreignCatalogName
+ - foreignSchemaName
+ - foreignTableName
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRUCT, 'sessionHandle', (TSessionHandle, TSessionHandle.thrift_spec), None, ), # 1
+ (2, TType.STRING, 'parentCatalogName', None, None, ), # 2
+ (3, TType.STRING, 'parentSchemaName', None, None, ), # 3
+ (4, TType.STRING, 'parentTableName', None, None, ), # 4
+ (5, TType.STRING, 'foreignCatalogName', None, None, ), # 5
+ (6, TType.STRING, 'foreignSchemaName', None, None, ), # 6
+ (7, TType.STRING, 'foreignTableName', None, None, ), # 7
+ )
+
+ def __init__(self, sessionHandle=None, parentCatalogName=None, parentSchemaName=None, parentTableName=None, foreignCatalogName=None, foreignSchemaName=None, foreignTableName=None,):
+ self.sessionHandle = sessionHandle
+ self.parentCatalogName = parentCatalogName
+ self.parentSchemaName = parentSchemaName
+ self.parentTableName = parentTableName
+ self.foreignCatalogName = foreignCatalogName
+ self.foreignSchemaName = foreignSchemaName
+ self.foreignTableName = foreignTableName
+
+ def read(self, iprot):
+ if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+ fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+ return
+ iprot.readStructBegin()
+ while True:
+ (fname, ftype, fid) = iprot.readFieldBegin()
+ if ftype == TType.STOP:
+ break
+ if fid == 1:
+ if ftype == TType.STRUCT:
+ self.sessionHandle = TSessionHandle()
+ self.sessionHandle.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRING:
+ self.parentCatalogName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 3:
+ if ftype == TType.STRING:
+ self.parentSchemaName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 4:
+ if ftype == TType.STRING:
+ self.parentTableName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 5:
+ if ftype == TType.STRING:
+ self.foreignCatalogName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 6:
+ if ftype == TType.STRING:
+ self.foreignSchemaName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ elif fid == 7:
+ if ftype == TType.STRING:
+ self.foreignTableName = iprot.readString()
+ else:
+ iprot.skip(ftype)
+ else:
+ iprot.skip(ftype)
+ iprot.readFieldEnd()
+ iprot.readStructEnd()
+
+ def write(self, oprot):
+ if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+ oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+ return
+ oprot.writeStructBegin('TGetCrossReferenceReq')
+ if self.sessionHandle is not None:
+ oprot.writeFieldBegin('sessionHandle', TType.STRUCT, 1)
+ self.sessionHandle.write(oprot)
+ oprot.writeFieldEnd()
+ if self.parentCatalogName is not None:
+ oprot.writeFieldBegin('parentCatalogName', TType.STRING, 2)
+ oprot.writeString(self.parentCatalogName)
+ oprot.writeFieldEnd()
+ if self.parentSchemaName is not None:
+ oprot.writeFieldBegin('parentSchemaName', TType.STRING, 3)
+ oprot.writeString(self.parentSchemaName)
+ oprot.writeFieldEnd()
+ if self.parentTableName is not None:
+ oprot.writeFieldBegin('parentTableName', TType.STRING, 4)
+ oprot.writeString(self.parentTableName)
+ oprot.writeFieldEnd()
+ if self.foreignCatalogName is not None:
+ oprot.writeFieldBegin('foreignCatalogName', TType.STRING, 5)
+ oprot.writeString(self.foreignCatalogName)
+ oprot.writeFieldEnd()
+ if self.foreignSchemaName is not None:
+ oprot.writeFieldBegin('foreignSchemaName', TType.STRING, 6)
+ oprot.writeString(self.foreignSchemaName)
+ oprot.writeFieldEnd()
+ if self.foreignTableName is not None:
+ oprot.writeFieldBegin('foreignTableName', TType.STRING, 7)
+ oprot.writeString(self.foreignTableName)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.sessionHandle is None:
+ raise TProtocol.TProtocolException(message='Required field sessionHandle is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.sessionHandle)
+ value = (value * 31) ^ hash(self.parentCatalogName)
+ value = (value * 31) ^ hash(self.parentSchemaName)
+ value = (value * 31) ^ hash(self.parentTableName)
+ value = (value * 31) ^ hash(self.foreignCatalogName)
+ value = (value * 31) ^ hash(self.foreignSchemaName)
+ value = (value * 31) ^ hash(self.foreignTableName)
+ return value
+
+ def __repr__(self):
+ L = ['%s=%r' % (key, value)
+ for key, value in self.__dict__.iteritems()]
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+ def __eq__(self, other):
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not (self == other)
+
+class TGetCrossReferenceResp:
+ """
+ Attributes:
+ - status
+ - operationHandle
+ """
+
+ thrift_spec = (
+ None, # 0
+ (1, TType.STRUCT, 'status', (TStatus, TStatus.thrift_spec), None, ), # 1
+ (2, TType.STRUCT, 'operationHandle', (TOperationHandle, TOperationHandle.thrift_spec), None, ), # 2
+ )
+
+ def __init__(self, status=None, operationHandle=None,):
+ self.status = status
+ self.operationHandle = operationHandle
+
+ def read(self, iprot):
+ if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+ fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+ return
+ iprot.readStructBegin()
+ while True:
+ (fname, ftype, fid) = iprot.readFieldBegin()
+ if ftype == TType.STOP:
+ break
+ if fid == 1:
+ if ftype == TType.STRUCT:
+ self.status = TStatus()
+ self.status.read(iprot)
+ else:
+ iprot.skip(ftype)
+ elif fid == 2:
+ if ftype == TType.STRUCT:
+ self.operationHandle = TOperationHandle()
+ self.operationHandle.read(iprot)
+ else:
+ iprot.skip(ftype)
+ else:
+ iprot.skip(ftype)
+ iprot.readFieldEnd()
+ iprot.readStructEnd()
+
+ def write(self, oprot):
+ if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+ oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+ return
+ oprot.writeStructBegin('TGetCrossReferenceResp')
+ if self.status is not None:
+ oprot.writeFieldBegin('status', TType.STRUCT, 1)
+ self.status.write(oprot)
+ oprot.writeFieldEnd()
+ if self.operationHandle is not None:
+ oprot.writeFieldBegin('operationHandle', TType.STRUCT, 2)
+ self.operationHandle.write(oprot)
+ oprot.writeFieldEnd()
+ oprot.writeFieldStop()
+ oprot.writeStructEnd()
+
+ def validate(self):
+ if self.status is None:
+ raise TProtocol.TProtocolException(message='Required field status is unset!')
+ return
+
+
+ def __hash__(self):
+ value = 17
+ value = (value * 31) ^ hash(self.status)
+ value = (value * 31) ^ hash(self.operationHandle)
+ return value
+
+ def __repr__(self):
+ L = ['%s=%r' % (key, value)
+ for key, value in self.__dict__.iteritems()]
+ return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+ def __eq__(self, other):
+ return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+ def __ne__(self, other):
+ return not (self == other)
+
class TGetOperationStatusReq:
"""
Attributes:
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/service-rpc/src/gen/thrift/gen-rb/t_c_l_i_service.rb
----------------------------------------------------------------------
diff --git a/service-rpc/src/gen/thrift/gen-rb/t_c_l_i_service.rb b/service-rpc/src/gen/thrift/gen-rb/t_c_l_i_service.rb
index 7d7f7a7..a50fe25 100644
--- a/service-rpc/src/gen/thrift/gen-rb/t_c_l_i_service.rb
+++ b/service-rpc/src/gen/thrift/gen-rb/t_c_l_i_service.rb
@@ -176,6 +176,36 @@ module TCLIService
raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'GetFunctions failed: unknown result')
end
+ def GetPrimaryKeys(req)
+ send_GetPrimaryKeys(req)
+ return recv_GetPrimaryKeys()
+ end
+
+ def send_GetPrimaryKeys(req)
+ send_message('GetPrimaryKeys', GetPrimaryKeys_args, :req => req)
+ end
+
+ def recv_GetPrimaryKeys()
+ result = receive_message(GetPrimaryKeys_result)
+ return result.success unless result.success.nil?
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'GetPrimaryKeys failed: unknown result')
+ end
+
+ def GetCrossReference(req)
+ send_GetCrossReference(req)
+ return recv_GetCrossReference()
+ end
+
+ def send_GetCrossReference(req)
+ send_message('GetCrossReference', GetCrossReference_args, :req => req)
+ end
+
+ def recv_GetCrossReference()
+ result = receive_message(GetCrossReference_result)
+ return result.success unless result.success.nil?
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'GetCrossReference failed: unknown result')
+ end
+
def GetOperationStatus(req)
send_GetOperationStatus(req)
return recv_GetOperationStatus()
@@ -378,6 +408,20 @@ module TCLIService
write_result(result, oprot, 'GetFunctions', seqid)
end
+ def process_GetPrimaryKeys(seqid, iprot, oprot)
+ args = read_args(iprot, GetPrimaryKeys_args)
+ result = GetPrimaryKeys_result.new()
+ result.success = @handler.GetPrimaryKeys(args.req)
+ write_result(result, oprot, 'GetPrimaryKeys', seqid)
+ end
+
+ def process_GetCrossReference(seqid, iprot, oprot)
+ args = read_args(iprot, GetCrossReference_args)
+ result = GetCrossReference_result.new()
+ result.success = @handler.GetCrossReference(args.req)
+ write_result(result, oprot, 'GetCrossReference', seqid)
+ end
+
def process_GetOperationStatus(seqid, iprot, oprot)
args = read_args(iprot, GetOperationStatus_args)
result = GetOperationStatus_result.new()
@@ -790,6 +834,70 @@ module TCLIService
::Thrift::Struct.generate_accessors self
end
+ class GetPrimaryKeys_args
+ include ::Thrift::Struct, ::Thrift::Struct_Union
+ REQ = 1
+
+ FIELDS = {
+ REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::TGetPrimaryKeysReq}
+ }
+
+ def struct_fields; FIELDS; end
+
+ def validate
+ end
+
+ ::Thrift::Struct.generate_accessors self
+ end
+
+ class GetPrimaryKeys_result
+ include ::Thrift::Struct, ::Thrift::Struct_Union
+ SUCCESS = 0
+
+ FIELDS = {
+ SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::TGetPrimaryKeysResp}
+ }
+
+ def struct_fields; FIELDS; end
+
+ def validate
+ end
+
+ ::Thrift::Struct.generate_accessors self
+ end
+
+ class GetCrossReference_args
+ include ::Thrift::Struct, ::Thrift::Struct_Union
+ REQ = 1
+
+ FIELDS = {
+ REQ => {:type => ::Thrift::Types::STRUCT, :name => 'req', :class => ::TGetCrossReferenceReq}
+ }
+
+ def struct_fields; FIELDS; end
+
+ def validate
+ end
+
+ ::Thrift::Struct.generate_accessors self
+ end
+
+ class GetCrossReference_result
+ include ::Thrift::Struct, ::Thrift::Struct_Union
+ SUCCESS = 0
+
+ FIELDS = {
+ SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => ::TGetCrossReferenceResp}
+ }
+
+ def struct_fields; FIELDS; end
+
+ def validate
+ end
+
+ ::Thrift::Struct.generate_accessors self
+ end
+
class GetOperationStatus_args
include ::Thrift::Struct, ::Thrift::Struct_Union
REQ = 1
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/service-rpc/src/gen/thrift/gen-rb/t_c_l_i_service_types.rb
----------------------------------------------------------------------
diff --git a/service-rpc/src/gen/thrift/gen-rb/t_c_l_i_service_types.rb b/service-rpc/src/gen/thrift/gen-rb/t_c_l_i_service_types.rb
index 28cae72..7208bae 100644
--- a/service-rpc/src/gen/thrift/gen-rb/t_c_l_i_service_types.rb
+++ b/service-rpc/src/gen/thrift/gen-rb/t_c_l_i_service_types.rb
@@ -1451,6 +1451,96 @@ class TGetFunctionsResp
::Thrift::Struct.generate_accessors self
end
+class TGetPrimaryKeysReq
+ include ::Thrift::Struct, ::Thrift::Struct_Union
+ SESSIONHANDLE = 1
+ CATALOGNAME = 2
+ SCHEMANAME = 3
+ TABLENAME = 4
+
+ FIELDS = {
+ SESSIONHANDLE => {:type => ::Thrift::Types::STRUCT, :name => 'sessionHandle', :class => ::TSessionHandle},
+ CATALOGNAME => {:type => ::Thrift::Types::STRING, :name => 'catalogName', :optional => true},
+ SCHEMANAME => {:type => ::Thrift::Types::STRING, :name => 'schemaName', :optional => true},
+ TABLENAME => {:type => ::Thrift::Types::STRING, :name => 'tableName', :optional => true}
+ }
+
+ def struct_fields; FIELDS; end
+
+ def validate
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field sessionHandle is unset!') unless @sessionHandle
+ end
+
+ ::Thrift::Struct.generate_accessors self
+end
+
+class TGetPrimaryKeysResp
+ include ::Thrift::Struct, ::Thrift::Struct_Union
+ STATUS = 1
+ OPERATIONHANDLE = 2
+
+ FIELDS = {
+ STATUS => {:type => ::Thrift::Types::STRUCT, :name => 'status', :class => ::TStatus},
+ OPERATIONHANDLE => {:type => ::Thrift::Types::STRUCT, :name => 'operationHandle', :class => ::TOperationHandle, :optional => true}
+ }
+
+ def struct_fields; FIELDS; end
+
+ def validate
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field status is unset!') unless @status
+ end
+
+ ::Thrift::Struct.generate_accessors self
+end
+
+class TGetCrossReferenceReq
+ include ::Thrift::Struct, ::Thrift::Struct_Union
+ SESSIONHANDLE = 1
+ PARENTCATALOGNAME = 2
+ PARENTSCHEMANAME = 3
+ PARENTTABLENAME = 4
+ FOREIGNCATALOGNAME = 5
+ FOREIGNSCHEMANAME = 6
+ FOREIGNTABLENAME = 7
+
+ FIELDS = {
+ SESSIONHANDLE => {:type => ::Thrift::Types::STRUCT, :name => 'sessionHandle', :class => ::TSessionHandle},
+ PARENTCATALOGNAME => {:type => ::Thrift::Types::STRING, :name => 'parentCatalogName', :optional => true},
+ PARENTSCHEMANAME => {:type => ::Thrift::Types::STRING, :name => 'parentSchemaName', :optional => true},
+ PARENTTABLENAME => {:type => ::Thrift::Types::STRING, :name => 'parentTableName', :optional => true},
+ FOREIGNCATALOGNAME => {:type => ::Thrift::Types::STRING, :name => 'foreignCatalogName', :optional => true},
+ FOREIGNSCHEMANAME => {:type => ::Thrift::Types::STRING, :name => 'foreignSchemaName', :optional => true},
+ FOREIGNTABLENAME => {:type => ::Thrift::Types::STRING, :name => 'foreignTableName', :optional => true}
+ }
+
+ def struct_fields; FIELDS; end
+
+ def validate
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field sessionHandle is unset!') unless @sessionHandle
+ end
+
+ ::Thrift::Struct.generate_accessors self
+end
+
+class TGetCrossReferenceResp
+ include ::Thrift::Struct, ::Thrift::Struct_Union
+ STATUS = 1
+ OPERATIONHANDLE = 2
+
+ FIELDS = {
+ STATUS => {:type => ::Thrift::Types::STRUCT, :name => 'status', :class => ::TStatus},
+ OPERATIONHANDLE => {:type => ::Thrift::Types::STRUCT, :name => 'operationHandle', :class => ::TOperationHandle, :optional => true}
+ }
+
+ def struct_fields; FIELDS; end
+
+ def validate
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field status is unset!') unless @status
+ end
+
+ ::Thrift::Struct.generate_accessors self
+end
+
class TGetOperationStatusReq
include ::Thrift::Struct, ::Thrift::Struct_Union
OPERATIONHANDLE = 1
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/service/src/java/org/apache/hive/service/cli/CLIService.java
----------------------------------------------------------------------
diff --git a/service/src/java/org/apache/hive/service/cli/CLIService.java b/service/src/java/org/apache/hive/service/cli/CLIService.java
index ab30ae2..4a83e38 100644
--- a/service/src/java/org/apache/hive/service/cli/CLIService.java
+++ b/service/src/java/org/apache/hive/service/cli/CLIService.java
@@ -365,6 +365,36 @@ public class CLIService extends CompositeService implements ICLIService {
}
/* (non-Javadoc)
+ * @see org.apache.hive.service.cli.ICLIService#getPrimaryKeys(org.apache.hive.service.cli.SessionHandle)
+ */
+ @Override
+ public OperationHandle getPrimaryKeys(SessionHandle sessionHandle,
+ String catalog, String schema, String table)
+ throws HiveSQLException {
+ OperationHandle opHandle = sessionManager.getSession(sessionHandle)
+ .getPrimaryKeys(catalog, schema, table);
+ LOG.debug(sessionHandle + ": getPrimaryKeys()");
+ return opHandle;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.hive.service.cli.ICLIService#getCrossReference(org.apache.hive.service.cli.SessionHandle)
+ */
+ @Override
+ public OperationHandle getCrossReference(SessionHandle sessionHandle,
+ String primaryCatalog,
+ String primarySchema, String primaryTable, String foreignCatalog,
+ String foreignSchema, String foreignTable)
+ throws HiveSQLException {
+ OperationHandle opHandle = sessionManager.getSession(sessionHandle)
+ .getCrossReference(primaryCatalog, primarySchema, primaryTable,
+ foreignCatalog,
+ foreignSchema, foreignTable);
+ LOG.debug(sessionHandle + ": getCrossReference()");
+ return opHandle;
+ }
+
+ /* (non-Javadoc)
* @see org.apache.hive.service.cli.ICLIService#getOperationStatus(org.apache.hive.service.cli.OperationHandle)
*/
@Override
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/service/src/java/org/apache/hive/service/cli/EmbeddedCLIServiceClient.java
----------------------------------------------------------------------
diff --git a/service/src/java/org/apache/hive/service/cli/EmbeddedCLIServiceClient.java b/service/src/java/org/apache/hive/service/cli/EmbeddedCLIServiceClient.java
index 9cad5be..79e0024 100644
--- a/service/src/java/org/apache/hive/service/cli/EmbeddedCLIServiceClient.java
+++ b/service/src/java/org/apache/hive/service/cli/EmbeddedCLIServiceClient.java
@@ -205,4 +205,19 @@ public class EmbeddedCLIServiceClient extends CLIServiceClient {
String tokenStr) throws HiveSQLException {
cliService.renewDelegationToken(sessionHandle, authFactory, tokenStr);
}
+
+ @Override
+ public OperationHandle getPrimaryKeys(SessionHandle sessionHandle,
+ String catalog, String schema, String table) throws HiveSQLException {
+ return cliService.getPrimaryKeys(sessionHandle, catalog, schema, table);
+ }
+
+ @Override
+ public OperationHandle getCrossReference(SessionHandle sessionHandle,
+ String primaryCatalog, String primarySchema, String primaryTable,
+ String foreignCatalog, String foreignSchema, String foreignTable)
+ throws HiveSQLException {
+ return cliService.getCrossReference(sessionHandle, primaryCatalog, primarySchema,
+ primaryTable, foreignCatalog, foreignSchema, foreignTable);
+ }
}
[09/50] [abbrv] hive git commit: HIVE-13559: Pass exception to
failure hooks (Jimmy Xiang, reviewed by Chaoyu Tang)
Posted by jd...@apache.org.
HIVE-13559: Pass exception to failure hooks (Jimmy Xiang, reviewed by Chaoyu Tang)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/37db169a
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/37db169a
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/37db169a
Branch: refs/heads/llap
Commit: 37db169a844ad1217abcde67b1350d7064d2c005
Parents: 413645d
Author: Jimmy Xiang <jx...@apache.org>
Authored: Wed Apr 20 11:43:22 2016 -0700
Committer: Jimmy Xiang <jx...@apache.org>
Committed: Mon Apr 25 07:33:54 2016 -0700
----------------------------------------------------------------------
ql/src/java/org/apache/hadoop/hive/ql/Driver.java | 9 +++++----
.../java/org/apache/hadoop/hive/ql/hooks/HookContext.java | 9 +++++++++
2 files changed, 14 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/37db169a/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 48fb060..9aefff8 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
@@ -1641,7 +1641,7 @@ public class Driver implements CommandProcessor {
} else {
setErrorMsgAndDetail(exitVal, result.getTaskError(), tsk);
- invokeFailureHooks(perfLogger, hookContext);
+ invokeFailureHooks(perfLogger, hookContext, result.getTaskError());
SQLState = "08S01";
console.printError(errorMessage);
driverCxt.shutdown();
@@ -1677,7 +1677,7 @@ public class Driver implements CommandProcessor {
if (driverCxt.isShutdown()) {
SQLState = "HY008";
errorMessage = "FAILED: Operation cancelled";
- invokeFailureHooks(perfLogger, hookContext);
+ invokeFailureHooks(perfLogger, hookContext, null);
console.printError(errorMessage);
return 1000;
}
@@ -1734,7 +1734,7 @@ public class Driver implements CommandProcessor {
errorMessage = "FAILED: Hive Internal Error: " + Utilities.getNameMessage(e);
if (hookContext != null) {
try {
- invokeFailureHooks(perfLogger, hookContext);
+ invokeFailureHooks(perfLogger, hookContext, e);
} catch (Exception t) {
LOG.warn("Failed to invoke failure hook", t);
}
@@ -1813,9 +1813,10 @@ public class Driver implements CommandProcessor {
}
}
- private void invokeFailureHooks(PerfLogger perfLogger, HookContext hookContext) throws Exception {
+ private void invokeFailureHooks(PerfLogger perfLogger, HookContext hookContext, Throwable exception) throws Exception {
hookContext.setHookType(HookContext.HookType.ON_FAILURE_HOOK);
hookContext.setErrorMessage(errorMessage);
+ hookContext.setException(exception);
// Get all the failure execution hooks and execute them.
for (Hook ofh : getHooks(HiveConf.ConfVars.ONFAILUREHOOKS)) {
perfLogger.PerfLogBegin(CLASS_NAME, PerfLogger.FAILURE_HOOK + ofh.getClass().getName());
http://git-wip-us.apache.org/repos/asf/hive/blob/37db169a/ql/src/java/org/apache/hadoop/hive/ql/hooks/HookContext.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/hooks/HookContext.java b/ql/src/java/org/apache/hadoop/hive/ql/hooks/HookContext.java
index 6fd1f66..8e1672f 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/hooks/HookContext.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/hooks/HookContext.java
@@ -52,6 +52,7 @@ public class HookContext {
private UserGroupInformation ugi;
private HookType hookType;
private String errorMessage;
+ private Throwable exception;
final private Map<String, ContentSummary> inputPathToContentSummary;
private final String ipAddress;
private final String userName;
@@ -172,6 +173,14 @@ public class HookContext {
return errorMessage;
}
+ public void setException(Throwable exception) {
+ this.exception = exception;
+ }
+
+ public Throwable getException() {
+ return exception;
+ }
+
public String getOperationName() {
return queryPlan.getOperationName();
}
[07/50] [abbrv] hive git commit: HIVE-13570: Some queries with Union
all fail when CBO is off (Yongzhi Chen, reviewed by Chaoyu Tang)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/413645d1/ql/src/test/results/clientpositive/union_offcbo.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/union_offcbo.q.out b/ql/src/test/results/clientpositive/union_offcbo.q.out
new file mode 100644
index 0000000..7eff464
--- /dev/null
+++ b/ql/src/test/results/clientpositive/union_offcbo.q.out
@@ -0,0 +1,1779 @@
+PREHOOK: query: DROP TABLE IF EXISTS ttest1
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: DROP TABLE IF EXISTS ttest1
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: DROP TABLE IF EXISTS ttest2
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: DROP TABLE IF EXISTS ttest2
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: CREATE TABLE ttest1 (
+ `id1` bigint COMMENT 'from deserializer',
+ `ts1` string COMMENT 'from deserializer',
+ `dt1` string COMMENT 'from deserializer',
+ `dt2` string COMMENT 'from deserializer',
+ `ac1` string COMMENT 'from deserializer',
+ `kd1` string COMMENT 'from deserializer',
+ `sts` string COMMENT 'from deserializer',
+ `at1` bigint COMMENT 'from deserializer')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@ttest1
+POSTHOOK: query: CREATE TABLE ttest1 (
+ `id1` bigint COMMENT 'from deserializer',
+ `ts1` string COMMENT 'from deserializer',
+ `dt1` string COMMENT 'from deserializer',
+ `dt2` string COMMENT 'from deserializer',
+ `ac1` string COMMENT 'from deserializer',
+ `kd1` string COMMENT 'from deserializer',
+ `sts` string COMMENT 'from deserializer',
+ `at1` bigint COMMENT 'from deserializer')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@ttest1
+PREHOOK: query: CREATE TABLE ttest2 (
+ `id1` bigint,
+ `ts1` string,
+ `dt1` string,
+ `dt2` string,
+ `ac1` string,
+ `kd1` string,
+ `sts` string,
+ `at1` bigint,
+ `khash` string,
+ `rhash` string)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@ttest2
+POSTHOOK: query: CREATE TABLE ttest2 (
+ `id1` bigint,
+ `ts1` string,
+ `dt1` string,
+ `dt2` string,
+ `ac1` string,
+ `kd1` string,
+ `sts` string,
+ `at1` bigint,
+ `khash` string,
+ `rhash` string)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@ttest2
+PREHOOK: query: explain SELECT
+ A2.id1, A2.sts,A2.at1,
+ CASE WHEN FLAG = 'A_INS' THEN date_add('2015-11-20', 1) ELSE '2015-11-20' END dt1
+ ,A2.dt2
+ ,A2.khash
+ ,A2.rhash
+ ,A2.FLAG
+ FROM (
+ SELECT
+ A2.id1, A2.sts,A2.at1
+ ,A2.dt1
+ ,A2.dt2
+ ,A2.khash
+ ,A2.rhash
+ ,CASE
+ WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.dt1 >= '2016-02-05'
+ THEN 'DEL'
+
+ WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.dt1 <= '2016-02-05'
+ THEN 'RET'
+
+ WHEN
+ (
+ A2.khash = A1.khash
+ AND A2.rhash <> A1.rhash
+ )
+ THEN 'A_INS'
+
+ ELSE 'NA'
+ END FLAG
+ FROM (
+ SELECT *
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(id1)) khash
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) rhash
+ FROM ttest1
+ WHERE ts1 = '2015-11-20'
+ ) A1
+ FULL OUTER JOIN (
+ SELECT *
+ FROM ttest2
+ WHERE '2015-11-20' BETWEEN dt1 AND dt2
+ ) A2
+ ON A1.khash = A2.khash
+ WHERE NOT (
+ NVL(A1.khash, - 1) = NVL(A2.khash, - 1)
+ AND NVL(A1.rhash, - 1) = NVL(A2.rhash, - 1)
+ )
+ AND A2.khash IS NOT NULL
+
+ UNION ALL
+
+ SELECT A1.id1, A1.sts,A1.at1
+ ,A1.dt1
+ , '2099-12-31' dt2
+ ,A1.khash
+ ,A1.rhash
+ ,CASE WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.ts1 <= A1.ts1
+ THEN 'DEL'
+
+ WHEN ( A2.khash IS NULL AND A1.khash IS NOT NULL )
+ OR ( A2.khash = A1.khash AND A2.rhash <> A1.rhash ) THEN 'INS' ELSE 'NA' END FLAG
+ FROM (
+ SELECT *
+ ,reflect('org.apache.commons.codec.digest.DigestUtils', 'sha256Hex',concat(id1)) khash
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) rhash
+ FROM ttest1
+ WHERE ts1 = '2015-11-20'
+ ) A1
+ FULL OUTER JOIN (
+ SELECT *
+ FROM ttest2
+ WHERE '2015-11-20' BETWEEN dt1
+ AND dt2
+ ) A2 ON A1.khash = A2.khash
+ WHERE NOT (
+ NVL(A1.khash, - 1) = NVL(A2.khash, - 1)
+ AND NVL(A1.rhash, - 1) = NVL(A2.rhash, - 1)
+ )
+ AND A1.khash IS NOT NULL
+ ) A2
+ where a2.flag <> 'RET'
+PREHOOK: type: QUERY
+POSTHOOK: query: explain SELECT
+ A2.id1, A2.sts,A2.at1,
+ CASE WHEN FLAG = 'A_INS' THEN date_add('2015-11-20', 1) ELSE '2015-11-20' END dt1
+ ,A2.dt2
+ ,A2.khash
+ ,A2.rhash
+ ,A2.FLAG
+ FROM (
+ SELECT
+ A2.id1, A2.sts,A2.at1
+ ,A2.dt1
+ ,A2.dt2
+ ,A2.khash
+ ,A2.rhash
+ ,CASE
+ WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.dt1 >= '2016-02-05'
+ THEN 'DEL'
+
+ WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.dt1 <= '2016-02-05'
+ THEN 'RET'
+
+ WHEN
+ (
+ A2.khash = A1.khash
+ AND A2.rhash <> A1.rhash
+ )
+ THEN 'A_INS'
+
+ ELSE 'NA'
+ END FLAG
+ FROM (
+ SELECT *
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(id1)) khash
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) rhash
+ FROM ttest1
+ WHERE ts1 = '2015-11-20'
+ ) A1
+ FULL OUTER JOIN (
+ SELECT *
+ FROM ttest2
+ WHERE '2015-11-20' BETWEEN dt1 AND dt2
+ ) A2
+ ON A1.khash = A2.khash
+ WHERE NOT (
+ NVL(A1.khash, - 1) = NVL(A2.khash, - 1)
+ AND NVL(A1.rhash, - 1) = NVL(A2.rhash, - 1)
+ )
+ AND A2.khash IS NOT NULL
+
+ UNION ALL
+
+ SELECT A1.id1, A1.sts,A1.at1
+ ,A1.dt1
+ , '2099-12-31' dt2
+ ,A1.khash
+ ,A1.rhash
+ ,CASE WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.ts1 <= A1.ts1
+ THEN 'DEL'
+
+ WHEN ( A2.khash IS NULL AND A1.khash IS NOT NULL )
+ OR ( A2.khash = A1.khash AND A2.rhash <> A1.rhash ) THEN 'INS' ELSE 'NA' END FLAG
+ FROM (
+ SELECT *
+ ,reflect('org.apache.commons.codec.digest.DigestUtils', 'sha256Hex',concat(id1)) khash
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) rhash
+ FROM ttest1
+ WHERE ts1 = '2015-11-20'
+ ) A1
+ FULL OUTER JOIN (
+ SELECT *
+ FROM ttest2
+ WHERE '2015-11-20' BETWEEN dt1
+ AND dt2
+ ) A2 ON A1.khash = A2.khash
+ WHERE NOT (
+ NVL(A1.khash, - 1) = NVL(A2.khash, - 1)
+ AND NVL(A1.rhash, - 1) = NVL(A2.rhash, - 1)
+ )
+ AND A1.khash IS NOT NULL
+ ) A2
+ where a2.flag <> 'RET'
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1, Stage-4
+ Stage-4 is a root stage
+ Stage-0 depends on stages: Stage-2
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: ttest1
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: (ts1 = '2015-11-20') (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(id1)) (type: string), reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) (type: string)
+ outputColumnNames: _col8, _col9
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col8 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col8 (type: string)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ value expressions: _col9 (type: string)
+ TableScan
+ alias: ttest2
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: '2015-11-20' BETWEEN dt1 AND dt2 (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: id1 (type: bigint), dt1 (type: string), dt2 (type: string), sts (type: string), at1 (type: bigint), khash (type: string), rhash (type: string)
+ outputColumnNames: _col0, _col2, _col3, _col6, _col7, _col8, _col9
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col8 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col8 (type: string)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ value expressions: _col0 (type: bigint), _col2 (type: string), _col3 (type: string), _col6 (type: string), _col7 (type: bigint), _col9 (type: string)
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Outer Join 0 to 1
+ keys:
+ 0 _col8 (type: string)
+ 1 _col8 (type: string)
+ outputColumnNames: _col8, _col9, _col10, _col12, _col13, _col16, _col17, _col18, _col19
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: (((NVL(_col8,-1) <> NVL(_col18,-1)) or (NVL(_col9,-1) <> NVL(_col19,-1))) and _col18 is not null) (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: _col10 (type: bigint), _col16 (type: string), _col17 (type: bigint), _col13 (type: string), _col18 (type: string), _col19 (type: string), CASE WHEN ((_col18 is not null and _col8 is null and (_col12 >= '2016-02-05'))) THEN ('DEL') WHEN ((_col18 is not null and _col8 is null and (_col12 <= '2016-02-05'))) THEN ('RET') WHEN (((_col18 = _col8) and (_col19 <> _col9))) THEN ('A_INS') ELSE ('NA') END (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col4, _col5, _col6, _col7
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: (_col7 <> 'RET') (type: boolean)
+ Statistics: Num rows: 1 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
+ Union
+ Statistics: Num rows: 2 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: _col0 (type: bigint), _col1 (type: string), _col2 (type: bigint), CASE WHEN ((_col7 = 'A_INS')) THEN ('2015-11-21') ELSE ('2015-11-20') END (type: string), _col4 (type: string), _col5 (type: string), _col6 (type: string), _col7 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7
+ Statistics: Num rows: 2 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 2 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+ TableScan
+ Union
+ Statistics: Num rows: 2 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: _col0 (type: bigint), _col1 (type: string), _col2 (type: bigint), CASE WHEN ((_col7 = 'A_INS')) THEN ('2015-11-21') ELSE ('2015-11-20') END (type: string), _col4 (type: string), _col5 (type: string), _col6 (type: string), _col7 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7
+ Statistics: Num rows: 2 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 2 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-4
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: ttest1
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: (ts1 = '2015-11-20') (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: id1 (type: bigint), '2015-11-20' (type: string), sts (type: string), at1 (type: bigint), reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(id1)) (type: string), reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) (type: string)
+ outputColumnNames: _col0, _col1, _col6, _col7, _col8, _col9
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col8 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col8 (type: string)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ value expressions: _col0 (type: bigint), _col1 (type: string), _col6 (type: string), _col7 (type: bigint), _col9 (type: string)
+ TableScan
+ alias: ttest2
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: '2015-11-20' BETWEEN dt1 AND dt2 (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: ts1 (type: string), khash (type: string), rhash (type: string)
+ outputColumnNames: _col1, _col8, _col9
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col8 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col8 (type: string)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ value expressions: _col1 (type: string), _col9 (type: string)
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Outer Join 0 to 1
+ keys:
+ 0 _col8 (type: string)
+ 1 _col8 (type: string)
+ outputColumnNames: _col0, _col1, _col6, _col7, _col8, _col9, _col11, _col18, _col19
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: (((NVL(_col8,-1) <> NVL(_col18,-1)) or (NVL(_col9,-1) <> NVL(_col19,-1))) and _col8 is not null) (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: _col0 (type: bigint), _col6 (type: string), _col7 (type: bigint), '2099-12-31' (type: string), _col8 (type: string), _col9 (type: string), CASE WHEN ((_col18 is not null and _col8 is null and (_col11 <= _col1))) THEN ('DEL') WHEN (((_col18 is null and _col8 is not null) or ((_col18 = _col8) and (_col19 <> _col9)))) THEN ('INS') ELSE ('NA') END (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col4, _col5, _col6, _col7
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: (_col7 <> 'RET') (type: boolean)
+ Statistics: Num rows: 1 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-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: explain SELECT
+ A2.id1, A2.sts,A2.at1,
+ CASE WHEN FLAG = 'A_INS' THEN date_add('2015-11-20', 1) ELSE '2015-11-20' END dt1
+ ,A2.dt2
+ ,A2.khash
+ ,A2.rhash
+ ,A2.FLAG
+ FROM (
+ SELECT
+ A2.id1, A2.sts,A2.at1
+ ,A2.dt1
+ ,A2.dt2
+ ,A2.khash
+ ,A2.rhash
+ ,CASE
+ WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.dt1 >= '2016-02-05'
+ THEN 'DEL'
+
+ WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.dt1 <= '2016-02-05'
+ THEN 'RET'
+
+ WHEN
+ (
+ A2.khash = A1.khash
+ AND A2.rhash <> A1.rhash
+ )
+ THEN 'A_INS'
+
+ ELSE 'NA'
+ END FLAG
+ FROM (
+ SELECT *
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(id1)) khash
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) rhash
+ FROM ttest1
+ WHERE ts1 = '2015-11-20'
+ ) A1
+ FULL OUTER JOIN (
+ SELECT *
+ FROM ttest2
+ WHERE '2015-11-20' BETWEEN dt1 AND dt2
+ ) A2
+ ON A1.khash = A2.khash
+ WHERE NOT (
+ NVL(A1.khash, - 1) = NVL(A2.khash, - 1)
+ AND NVL(A1.rhash, - 1) = NVL(A2.rhash, - 1)
+ )
+ AND A2.khash IS NOT NULL
+
+ UNION ALL
+
+ SELECT A1.id1, A1.sts,A1.at1
+ ,A1.dt1
+ , '2099-12-31' dt2
+ ,A1.khash
+ ,A1.rhash
+ ,CASE WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.ts1 <= A1.ts1
+ THEN 'DEL'
+
+ WHEN ( A2.khash IS NULL AND A1.khash IS NOT NULL )
+ OR ( A2.khash = A1.khash AND A2.rhash <> A1.rhash ) THEN 'INS' ELSE 'NA' END FLAG
+ FROM (
+ SELECT *
+ ,reflect('org.apache.commons.codec.digest.DigestUtils', 'sha256Hex',concat(id1)) khash
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) rhash
+ FROM ttest1
+ WHERE ts1 = '2015-11-20'
+ ) A1
+ FULL OUTER JOIN (
+ SELECT *
+ FROM ttest2
+ WHERE '2015-11-20' BETWEEN dt1
+ AND dt2
+ ) A2 ON A1.khash = A2.khash
+ WHERE NOT (
+ NVL(A1.khash, - 1) = NVL(A2.khash, - 1)
+ AND NVL(A1.rhash, - 1) = NVL(A2.rhash, - 1)
+ )
+ AND A1.khash IS NOT NULL
+ ) A2
+ where a2.flag <> 'RET'
+PREHOOK: type: QUERY
+POSTHOOK: query: explain SELECT
+ A2.id1, A2.sts,A2.at1,
+ CASE WHEN FLAG = 'A_INS' THEN date_add('2015-11-20', 1) ELSE '2015-11-20' END dt1
+ ,A2.dt2
+ ,A2.khash
+ ,A2.rhash
+ ,A2.FLAG
+ FROM (
+ SELECT
+ A2.id1, A2.sts,A2.at1
+ ,A2.dt1
+ ,A2.dt2
+ ,A2.khash
+ ,A2.rhash
+ ,CASE
+ WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.dt1 >= '2016-02-05'
+ THEN 'DEL'
+
+ WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.dt1 <= '2016-02-05'
+ THEN 'RET'
+
+ WHEN
+ (
+ A2.khash = A1.khash
+ AND A2.rhash <> A1.rhash
+ )
+ THEN 'A_INS'
+
+ ELSE 'NA'
+ END FLAG
+ FROM (
+ SELECT *
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(id1)) khash
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) rhash
+ FROM ttest1
+ WHERE ts1 = '2015-11-20'
+ ) A1
+ FULL OUTER JOIN (
+ SELECT *
+ FROM ttest2
+ WHERE '2015-11-20' BETWEEN dt1 AND dt2
+ ) A2
+ ON A1.khash = A2.khash
+ WHERE NOT (
+ NVL(A1.khash, - 1) = NVL(A2.khash, - 1)
+ AND NVL(A1.rhash, - 1) = NVL(A2.rhash, - 1)
+ )
+ AND A2.khash IS NOT NULL
+
+ UNION ALL
+
+ SELECT A1.id1, A1.sts,A1.at1
+ ,A1.dt1
+ , '2099-12-31' dt2
+ ,A1.khash
+ ,A1.rhash
+ ,CASE WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.ts1 <= A1.ts1
+ THEN 'DEL'
+
+ WHEN ( A2.khash IS NULL AND A1.khash IS NOT NULL )
+ OR ( A2.khash = A1.khash AND A2.rhash <> A1.rhash ) THEN 'INS' ELSE 'NA' END FLAG
+ FROM (
+ SELECT *
+ ,reflect('org.apache.commons.codec.digest.DigestUtils', 'sha256Hex',concat(id1)) khash
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) rhash
+ FROM ttest1
+ WHERE ts1 = '2015-11-20'
+ ) A1
+ FULL OUTER JOIN (
+ SELECT *
+ FROM ttest2
+ WHERE '2015-11-20' BETWEEN dt1
+ AND dt2
+ ) A2 ON A1.khash = A2.khash
+ WHERE NOT (
+ NVL(A1.khash, - 1) = NVL(A2.khash, - 1)
+ AND NVL(A1.rhash, - 1) = NVL(A2.rhash, - 1)
+ )
+ AND A1.khash IS NOT NULL
+ ) A2
+ where a2.flag <> 'RET'
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1, Stage-4
+ Stage-4 is a root stage
+ Stage-0 depends on stages: Stage-2
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: ttest1
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: ((ts1 = '2015-11-20') and reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(id1)) is not null) (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(id1)) (type: string), reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: string)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ value expressions: _col1 (type: string)
+ TableScan
+ alias: ttest2
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: ('2015-11-20' BETWEEN dt1 AND dt2 and khash is not null) (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: id1 (type: bigint), dt1 (type: string), dt2 (type: string), sts (type: string), at1 (type: bigint), khash (type: string), rhash (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col5 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col5 (type: string)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ value expressions: _col0 (type: bigint), _col1 (type: string), _col2 (type: string), _col3 (type: string), _col4 (type: bigint), _col6 (type: string)
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Right Outer Join0 to 1
+ keys:
+ 0 _col0 (type: string)
+ 1 _col5 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: ((CASE WHEN ((_col7 is not null and _col0 is null and (_col3 >= '2016-02-05'))) THEN ('DEL') WHEN ((_col7 is not null and _col0 is null and (_col3 <= '2016-02-05'))) THEN ('RET') WHEN (((_col7 = _col0) and (_col8 <> _col1))) THEN ('A_INS') ELSE ('NA') END <> 'RET') and ((NVL(_col0,-1) <> NVL(_col7,-1)) or (NVL(_col1,-1) <> NVL(_col8,-1)))) (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: _col2 (type: bigint), _col5 (type: string), _col6 (type: bigint), _col4 (type: string), _col7 (type: string), _col8 (type: string), CASE WHEN ((_col7 is not null and _col0 is null and (_col3 >= '2016-02-05'))) THEN ('DEL') WHEN ((_col7 is not null and _col0 is null and (_col3 <= '2016-02-05'))) THEN ('RET') WHEN (((_col7 = _col0) and (_col8 <> _col1))) THEN ('A_INS') ELSE ('NA') END (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
+ Statistics: Num rows: 1 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
+ Union
+ Statistics: Num rows: 2 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: _col0 (type: bigint), _col1 (type: string), _col2 (type: bigint), CASE WHEN ((_col6 = 'A_INS')) THEN ('2015-11-21') ELSE ('2015-11-20') END (type: string), _col3 (type: string), _col4 (type: string), _col5 (type: string), _col6 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7
+ Statistics: Num rows: 2 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 2 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+ TableScan
+ Union
+ Statistics: Num rows: 2 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: _col0 (type: bigint), _col1 (type: string), _col2 (type: bigint), CASE WHEN ((_col6 = 'A_INS')) THEN ('2015-11-21') ELSE ('2015-11-20') END (type: string), _col3 (type: string), _col4 (type: string), _col5 (type: string), _col6 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7
+ Statistics: Num rows: 2 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 2 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-4
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: ttest1
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: ((ts1 = '2015-11-20') and reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(id1)) is not null) (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: id1 (type: bigint), '2015-11-20' (type: string), sts (type: string), at1 (type: bigint), reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(id1)) (type: string), reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col4 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col4 (type: string)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ value expressions: _col0 (type: bigint), _col1 (type: string), _col2 (type: string), _col3 (type: bigint), _col5 (type: string)
+ TableScan
+ alias: ttest2
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: '2015-11-20' BETWEEN dt1 AND dt2 (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: ts1 (type: string), khash (type: string), rhash (type: string)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col1 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col1 (type: string)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ value expressions: _col0 (type: string), _col2 (type: string)
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Left Outer Join0 to 1
+ keys:
+ 0 _col4 (type: string)
+ 1 _col1 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: ((CASE WHEN ((_col7 is not null and _col4 is null and (_col6 <= _col1))) THEN ('DEL') WHEN (((_col7 is null and _col4 is not null) or ((_col7 = _col4) and (_col8 <> _col5)))) THEN ('INS') ELSE ('NA') END <> 'RET') and ((NVL(_col4,-1) <> NVL(_col7,-1)) or (NVL(_col5,-1) <> NVL(_col8,-1)))) (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: _col0 (type: bigint), _col2 (type: string), _col3 (type: bigint), '2099-12-31' (type: string), _col4 (type: string), _col5 (type: string), CASE WHEN ((_col7 is not null and _col4 is null and (_col6 <= _col1))) THEN ('DEL') WHEN (((_col7 is null and _col4 is not null) or ((_col7 = _col4) and (_col8 <> _col5)))) THEN ('INS') ELSE ('NA') END (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
+ Statistics: Num rows: 1 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-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: explain SELECT
+ A2.id1, A2.sts,A2.at1,
+ CASE WHEN FLAG = 'A_INS' THEN date_add('2015-11-20', 1) ELSE '2015-11-20' END dt1
+ ,A2.dt2
+ ,A2.khash
+ ,A2.rhash
+ ,A2.FLAG
+ FROM (
+ SELECT
+ A2.id1, A2.sts,A2.at1
+ ,A2.dt1
+ ,A2.dt2
+ ,A2.khash
+ ,A2.rhash
+ ,CASE
+ WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.dt1 >= '2016-02-05'
+ THEN 'DEL'
+
+ WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.dt1 <= '2016-02-05'
+ THEN 'RET'
+
+ WHEN
+ (
+ A2.khash = A1.khash
+ AND A2.rhash <> A1.rhash
+ )
+ THEN 'A_INS'
+
+ ELSE 'NA'
+ END FLAG
+ FROM (
+ SELECT *
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(id1)) khash
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) rhash
+ FROM ttest1
+ WHERE ts1 = '2015-11-20'
+ ) A1
+ FULL OUTER JOIN (
+ SELECT *
+ FROM ttest2
+ WHERE '2015-11-20' BETWEEN dt1 AND dt2
+ ) A2
+ ON A1.khash = A2.khash
+ WHERE NOT (
+ NVL(A1.khash, - 1) = NVL(A2.khash, - 1)
+ AND NVL(A1.rhash, - 1) = NVL(A2.rhash, - 1)
+ )
+ AND A2.khash IS NOT NULL
+
+ UNION ALL
+
+ SELECT A1.id1, A1.sts,A1.at1
+ ,A1.dt1
+ , '2099-12-31' dt2
+ ,A1.khash
+ ,A1.rhash
+ ,CASE WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.ts1 <= A1.ts1
+ THEN 'DEL'
+
+ WHEN ( A2.khash IS NULL AND A1.khash IS NOT NULL )
+ OR ( A2.khash = A1.khash AND A2.rhash <> A1.rhash ) THEN 'INS' ELSE 'NA' END FLAG
+ FROM (
+ SELECT *
+ ,reflect('org.apache.commons.codec.digest.DigestUtils', 'sha256Hex',concat(id1)) khash
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) rhash
+ FROM ttest1
+ WHERE ts1 = '2015-11-20'
+ ) A1
+ FULL OUTER JOIN (
+ SELECT *
+ FROM ttest2
+ WHERE '2015-11-20' BETWEEN dt1
+ AND dt2
+ ) A2 ON A1.khash = A2.khash
+ WHERE NOT (
+ NVL(A1.khash, - 1) = NVL(A2.khash, - 1)
+ AND NVL(A1.rhash, - 1) = NVL(A2.rhash, - 1)
+ )
+ AND A1.khash IS NOT NULL
+ ) A2
+ where a2.flag <> 'RET'
+PREHOOK: type: QUERY
+POSTHOOK: query: explain SELECT
+ A2.id1, A2.sts,A2.at1,
+ CASE WHEN FLAG = 'A_INS' THEN date_add('2015-11-20', 1) ELSE '2015-11-20' END dt1
+ ,A2.dt2
+ ,A2.khash
+ ,A2.rhash
+ ,A2.FLAG
+ FROM (
+ SELECT
+ A2.id1, A2.sts,A2.at1
+ ,A2.dt1
+ ,A2.dt2
+ ,A2.khash
+ ,A2.rhash
+ ,CASE
+ WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.dt1 >= '2016-02-05'
+ THEN 'DEL'
+
+ WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.dt1 <= '2016-02-05'
+ THEN 'RET'
+
+ WHEN
+ (
+ A2.khash = A1.khash
+ AND A2.rhash <> A1.rhash
+ )
+ THEN 'A_INS'
+
+ ELSE 'NA'
+ END FLAG
+ FROM (
+ SELECT *
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(id1)) khash
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) rhash
+ FROM ttest1
+ WHERE ts1 = '2015-11-20'
+ ) A1
+ FULL OUTER JOIN (
+ SELECT *
+ FROM ttest2
+ WHERE '2015-11-20' BETWEEN dt1 AND dt2
+ ) A2
+ ON A1.khash = A2.khash
+ WHERE NOT (
+ NVL(A1.khash, - 1) = NVL(A2.khash, - 1)
+ AND NVL(A1.rhash, - 1) = NVL(A2.rhash, - 1)
+ )
+ AND A2.khash IS NOT NULL
+
+ UNION ALL
+
+ SELECT A1.id1, A1.sts,A1.at1
+ ,A1.dt1
+ , '2099-12-31' dt2
+ ,A1.khash
+ ,A1.rhash
+ ,CASE WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.ts1 <= A1.ts1
+ THEN 'DEL'
+
+ WHEN ( A2.khash IS NULL AND A1.khash IS NOT NULL )
+ OR ( A2.khash = A1.khash AND A2.rhash <> A1.rhash ) THEN 'INS' ELSE 'NA' END FLAG
+ FROM (
+ SELECT *
+ ,reflect('org.apache.commons.codec.digest.DigestUtils', 'sha256Hex',concat(id1)) khash
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) rhash
+ FROM ttest1
+ WHERE ts1 = '2015-11-20'
+ ) A1
+ FULL OUTER JOIN (
+ SELECT *
+ FROM ttest2
+ WHERE '2015-11-20' BETWEEN dt1
+ AND dt2
+ ) A2 ON A1.khash = A2.khash
+ WHERE NOT (
+ NVL(A1.khash, - 1) = NVL(A2.khash, - 1)
+ AND NVL(A1.rhash, - 1) = NVL(A2.rhash, - 1)
+ )
+ AND A1.khash IS NOT NULL
+ ) A2
+ where a2.flag <> 'RET'
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1, Stage-4
+ Stage-4 is a root stage
+ Stage-0 depends on stages: Stage-2
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: ttest1
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: (ts1 = '2015-11-20') (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(id1)) (type: string), reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) (type: string)
+ outputColumnNames: _col8, _col9
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col8 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col8 (type: string)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ value expressions: _col9 (type: string)
+ TableScan
+ alias: ttest2
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: '2015-11-20' BETWEEN dt1 AND dt2 (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: id1 (type: bigint), dt1 (type: string), dt2 (type: string), sts (type: string), at1 (type: bigint), khash (type: string), rhash (type: string)
+ outputColumnNames: _col0, _col2, _col3, _col6, _col7, _col8, _col9
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col8 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col8 (type: string)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ value expressions: _col0 (type: bigint), _col2 (type: string), _col3 (type: string), _col6 (type: string), _col7 (type: bigint), _col9 (type: string)
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Outer Join 0 to 1
+ keys:
+ 0 _col8 (type: string)
+ 1 _col8 (type: string)
+ outputColumnNames: _col8, _col9, _col10, _col12, _col13, _col16, _col17, _col18, _col19
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: (((NVL(_col8,-1) <> NVL(_col18,-1)) or (NVL(_col9,-1) <> NVL(_col19,-1))) and _col18 is not null) (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: _col10 (type: bigint), _col16 (type: string), _col17 (type: bigint), _col13 (type: string), _col18 (type: string), _col19 (type: string), CASE WHEN ((_col18 is not null and _col8 is null and (_col12 >= '2016-02-05'))) THEN ('DEL') WHEN ((_col18 is not null and _col8 is null and (_col12 <= '2016-02-05'))) THEN ('RET') WHEN (((_col18 = _col8) and (_col19 <> _col9))) THEN ('A_INS') ELSE ('NA') END (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col4, _col5, _col6, _col7
+ Statistics: Num rows: 1 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
+ Union
+ Statistics: Num rows: 2 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: (_col7 <> 'RET') (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: _col0 (type: bigint), _col1 (type: string), _col2 (type: bigint), CASE WHEN ((_col7 = 'A_INS')) THEN ('2015-11-21') ELSE ('2015-11-20') END (type: string), _col4 (type: string), _col5 (type: string), _col6 (type: string), _col7 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7
+ 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.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+ TableScan
+ Union
+ Statistics: Num rows: 2 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: (_col7 <> 'RET') (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: _col0 (type: bigint), _col1 (type: string), _col2 (type: bigint), CASE WHEN ((_col7 = 'A_INS')) THEN ('2015-11-21') ELSE ('2015-11-20') END (type: string), _col4 (type: string), _col5 (type: string), _col6 (type: string), _col7 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7
+ 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.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-4
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: ttest1
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: (ts1 = '2015-11-20') (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: id1 (type: bigint), '2015-11-20' (type: string), sts (type: string), at1 (type: bigint), reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(id1)) (type: string), reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) (type: string)
+ outputColumnNames: _col0, _col1, _col6, _col7, _col8, _col9
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col8 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col8 (type: string)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ value expressions: _col0 (type: bigint), _col1 (type: string), _col6 (type: string), _col7 (type: bigint), _col9 (type: string)
+ TableScan
+ alias: ttest2
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: '2015-11-20' BETWEEN dt1 AND dt2 (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: ts1 (type: string), khash (type: string), rhash (type: string)
+ outputColumnNames: _col1, _col8, _col9
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col8 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col8 (type: string)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ value expressions: _col1 (type: string), _col9 (type: string)
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Outer Join 0 to 1
+ keys:
+ 0 _col8 (type: string)
+ 1 _col8 (type: string)
+ outputColumnNames: _col0, _col1, _col6, _col7, _col8, _col9, _col11, _col18, _col19
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: (((NVL(_col8,-1) <> NVL(_col18,-1)) or (NVL(_col9,-1) <> NVL(_col19,-1))) and _col8 is not null) (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: _col0 (type: bigint), _col6 (type: string), _col7 (type: bigint), '2099-12-31' (type: string), _col8 (type: string), _col9 (type: string), CASE WHEN ((_col18 is not null and _col8 is null and (_col11 <= _col1))) THEN ('DEL') WHEN (((_col18 is null and _col8 is not null) or ((_col18 = _col8) and (_col19 <> _col9)))) THEN ('INS') ELSE ('NA') END (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col4, _col5, _col6, _col7
+ Statistics: Num rows: 1 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-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: explain SELECT
+ A2.id1, A2.sts,A2.at1,
+ CASE WHEN FLAG = 'A_INS' THEN date_add('2015-11-20', 1) ELSE '2015-11-20' END dt1
+ ,A2.dt2
+ ,A2.khash
+ ,A2.rhash
+ ,A2.FLAG
+ FROM (
+ SELECT
+ A2.id1, A2.sts,A2.at1
+ ,A2.dt1
+ ,A2.dt2
+ ,A2.khash
+ ,A2.rhash
+ ,CASE
+ WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.dt1 >= '2016-02-05'
+ THEN 'DEL'
+
+ WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.dt1 <= '2016-02-05'
+ THEN 'RET'
+
+ WHEN
+ (
+ A2.khash = A1.khash
+ AND A2.rhash <> A1.rhash
+ )
+ THEN 'A_INS'
+
+ ELSE 'NA'
+ END FLAG
+ FROM (
+ SELECT *
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(id1)) khash
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) rhash
+ FROM ttest1
+ WHERE ts1 = '2015-11-20'
+ ) A1
+ FULL OUTER JOIN (
+ SELECT *
+ FROM ttest2
+ WHERE '2015-11-20' BETWEEN dt1 AND dt2
+ ) A2
+ ON A1.khash = A2.khash
+ WHERE NOT (
+ NVL(A1.khash, - 1) = NVL(A2.khash, - 1)
+ AND NVL(A1.rhash, - 1) = NVL(A2.rhash, - 1)
+ )
+ AND A2.khash IS NOT NULL
+
+ UNION ALL
+
+ SELECT A1.id1, A1.sts,A1.at1
+ ,A1.dt1
+ , '2099-12-31' dt2
+ ,A1.khash
+ ,A1.rhash
+ ,CASE WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.ts1 <= A1.ts1
+ THEN 'DEL'
+
+ WHEN ( A2.khash IS NULL AND A1.khash IS NOT NULL )
+ OR ( A2.khash = A1.khash AND A2.rhash <> A1.rhash ) THEN 'INS' ELSE 'NA' END FLAG
+ FROM (
+ SELECT *
+ ,reflect('org.apache.commons.codec.digest.DigestUtils', 'sha256Hex',concat(id1)) khash
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) rhash
+ FROM ttest1
+ WHERE ts1 = '2015-11-20'
+ ) A1
+ FULL OUTER JOIN (
+ SELECT *
+ FROM ttest2
+ WHERE '2015-11-20' BETWEEN dt1
+ AND dt2
+ ) A2 ON A1.khash = A2.khash
+ WHERE NOT (
+ NVL(A1.khash, - 1) = NVL(A2.khash, - 1)
+ AND NVL(A1.rhash, - 1) = NVL(A2.rhash, - 1)
+ )
+ AND A1.khash IS NOT NULL
+ ) A2
+ where a2.flag <> 'RET'
+PREHOOK: type: QUERY
+POSTHOOK: query: explain SELECT
+ A2.id1, A2.sts,A2.at1,
+ CASE WHEN FLAG = 'A_INS' THEN date_add('2015-11-20', 1) ELSE '2015-11-20' END dt1
+ ,A2.dt2
+ ,A2.khash
+ ,A2.rhash
+ ,A2.FLAG
+ FROM (
+ SELECT
+ A2.id1, A2.sts,A2.at1
+ ,A2.dt1
+ ,A2.dt2
+ ,A2.khash
+ ,A2.rhash
+ ,CASE
+ WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.dt1 >= '2016-02-05'
+ THEN 'DEL'
+
+ WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.dt1 <= '2016-02-05'
+ THEN 'RET'
+
+ WHEN
+ (
+ A2.khash = A1.khash
+ AND A2.rhash <> A1.rhash
+ )
+ THEN 'A_INS'
+
+ ELSE 'NA'
+ END FLAG
+ FROM (
+ SELECT *
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(id1)) khash
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) rhash
+ FROM ttest1
+ WHERE ts1 = '2015-11-20'
+ ) A1
+ FULL OUTER JOIN (
+ SELECT *
+ FROM ttest2
+ WHERE '2015-11-20' BETWEEN dt1 AND dt2
+ ) A2
+ ON A1.khash = A2.khash
+ WHERE NOT (
+ NVL(A1.khash, - 1) = NVL(A2.khash, - 1)
+ AND NVL(A1.rhash, - 1) = NVL(A2.rhash, - 1)
+ )
+ AND A2.khash IS NOT NULL
+
+ UNION ALL
+
+ SELECT A1.id1, A1.sts,A1.at1
+ ,A1.dt1
+ , '2099-12-31' dt2
+ ,A1.khash
+ ,A1.rhash
+ ,CASE WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.ts1 <= A1.ts1
+ THEN 'DEL'
+
+ WHEN ( A2.khash IS NULL AND A1.khash IS NOT NULL )
+ OR ( A2.khash = A1.khash AND A2.rhash <> A1.rhash ) THEN 'INS' ELSE 'NA' END FLAG
+ FROM (
+ SELECT *
+ ,reflect('org.apache.commons.codec.digest.DigestUtils', 'sha256Hex',concat(id1)) khash
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) rhash
+ FROM ttest1
+ WHERE ts1 = '2015-11-20'
+ ) A1
+ FULL OUTER JOIN (
+ SELECT *
+ FROM ttest2
+ WHERE '2015-11-20' BETWEEN dt1
+ AND dt2
+ ) A2 ON A1.khash = A2.khash
+ WHERE NOT (
+ NVL(A1.khash, - 1) = NVL(A2.khash, - 1)
+ AND NVL(A1.rhash, - 1) = NVL(A2.rhash, - 1)
+ )
+ AND A1.khash IS NOT NULL
+ ) A2
+ where a2.flag <> 'RET'
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1, Stage-4
+ Stage-4 is a root stage
+ Stage-0 depends on stages: Stage-2
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: ttest1
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: (ts1 = '2015-11-20') (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(id1)) (type: string), reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) (type: string)
+ outputColumnNames: _col8, _col9
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col8 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col8 (type: string)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ value expressions: _col9 (type: string)
+ TableScan
+ alias: ttest2
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: '2015-11-20' BETWEEN dt1 AND dt2 (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: id1 (type: bigint), dt1 (type: string), dt2 (type: string), sts (type: string), at1 (type: bigint), khash (type: string), rhash (type: string)
+ outputColumnNames: _col0, _col2, _col3, _col6, _col7, _col8, _col9
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col8 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col8 (type: string)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ value expressions: _col0 (type: bigint), _col2 (type: string), _col3 (type: string), _col6 (type: string), _col7 (type: bigint), _col9 (type: string)
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Outer Join 0 to 1
+ keys:
+ 0 _col8 (type: string)
+ 1 _col8 (type: string)
+ outputColumnNames: _col8, _col9, _col10, _col12, _col13, _col16, _col17, _col18, _col19
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: (((NVL(_col8,-1) <> NVL(_col18,-1)) or (NVL(_col9,-1) <> NVL(_col19,-1))) and _col18 is not null) (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: _col10 (type: bigint), _col16 (type: string), _col17 (type: bigint), _col13 (type: string), _col18 (type: string), _col19 (type: string), CASE WHEN ((_col18 is not null and _col8 is null and (_col12 >= '2016-02-05'))) THEN ('DEL') WHEN ((_col18 is not null and _col8 is null and (_col12 <= '2016-02-05'))) THEN ('RET') WHEN (((_col18 = _col8) and (_col19 <> _col9))) THEN ('A_INS') ELSE ('NA') END (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col4, _col5, _col6, _col7
+ Statistics: Num rows: 1 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
+ Union
+ Statistics: Num rows: 2 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: (_col7 <> 'RET') (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: _col0 (type: bigint), _col1 (type: string), _col2 (type: bigint), CASE WHEN ((_col7 = 'A_INS')) THEN ('2015-11-21') ELSE ('2015-11-20') END (type: string), _col4 (type: string), _col5 (type: string), _col6 (type: string), _col7 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7
+ 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.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+ TableScan
+ Union
+ Statistics: Num rows: 2 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: (_col7 <> 'RET') (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: _col0 (type: bigint), _col1 (type: string), _col2 (type: bigint), CASE WHEN ((_col7 = 'A_INS')) THEN ('2015-11-21') ELSE ('2015-11-20') END (type: string), _col4 (type: string), _col5 (type: string), _col6 (type: string), _col7 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7
+ 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.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-4
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: ttest1
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: (ts1 = '2015-11-20') (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: id1 (type: bigint), '2015-11-20' (type: string), sts (type: string), at1 (type: bigint), reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(id1)) (type: string), reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) (type: string)
+ outputColumnNames: _col0, _col1, _col6, _col7, _col8, _col9
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col8 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col8 (type: string)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ value expressions: _col0 (type: bigint), _col1 (type: string), _col6 (type: string), _col7 (type: bigint), _col9 (type: string)
+ TableScan
+ alias: ttest2
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: '2015-11-20' BETWEEN dt1 AND dt2 (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: ts1 (type: string), khash (type: string), rhash (type: string)
+ outputColumnNames: _col1, _col8, _col9
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col8 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col8 (type: string)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ value expressions: _col1 (type: string), _col9 (type: string)
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Outer Join 0 to 1
+ keys:
+ 0 _col8 (type: string)
+ 1 _col8 (type: string)
+ outputColumnNames: _col0, _col1, _col6, _col7, _col8, _col9, _col11, _col18, _col19
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: (((NVL(_col8,-1) <> NVL(_col18,-1)) or (NVL(_col9,-1) <> NVL(_col19,-1))) and _col8 is not null) (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: _col0 (type: bigint), _col6 (type: string), _col7 (type: bigint), '2099-12-31' (type: string), _col8 (type: string), _col9 (type: string), CASE WHEN ((_col18 is not null and _col8 is null and (_col11 <= _col1))) THEN ('DEL') WHEN (((_col18 is null and _col8 is not null) or ((_col18 = _col8) and (_col19 <> _col9)))) THEN ('INS') ELSE ('NA') END (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col4, _col5, _col6, _col7
+ Statistics: Num rows: 1 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-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: explain SELECT
+ A2.id1, A2.sts,A2.at1,
+ CASE WHEN FLAG = 'A_INS' THEN date_add('2015-11-20', 1) ELSE '2015-11-20' END dt1
+ ,A2.dt2
+ ,A2.khash
+ ,A2.rhash
+ ,A2.FLAG
+ FROM (
+ SELECT
+ A2.id1, A2.sts,A2.at1
+ ,A2.dt1
+ ,A2.dt2
+ ,A2.khash
+ ,A2.rhash
+ ,CASE
+ WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.dt1 >= '2016-02-05'
+ THEN 'DEL'
+
+ WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.dt1 <= '2016-02-05'
+ THEN 'RET'
+
+ WHEN
+ (
+ A2.khash = A1.khash
+ AND A2.rhash <> A1.rhash
+ )
+ THEN 'A_INS'
+
+ ELSE 'NA'
+ END FLAG
+ FROM (
+ SELECT *
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(id1)) khash
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) rhash
+ FROM ttest1
+ WHERE ts1 = '2015-11-20'
+ ) A1
+ FULL OUTER JOIN (
+ SELECT *
+ FROM ttest2
+ WHERE '2015-11-20' BETWEEN dt1 AND dt2
+ ) A2
+ ON A1.khash = A2.khash
+ WHERE NOT (
+ NVL(A1.khash, - 1) = NVL(A2.khash, - 1)
+ AND NVL(A1.rhash, - 1) = NVL(A2.rhash, - 1)
+ )
+ AND A2.khash IS NOT NULL
+
+ UNION ALL
+
+ SELECT A1.id1, A1.sts,A1.at1
+ ,A1.dt1
+ , '2099-12-31' dt2
+ ,A1.khash
+ ,A1.rhash
+ ,CASE WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.ts1 <= A1.ts1
+ THEN 'DEL'
+
+ WHEN ( A2.khash IS NULL AND A1.khash IS NOT NULL )
+ OR ( A2.khash = A1.khash AND A2.rhash <> A1.rhash ) THEN 'INS' ELSE 'NA' END FLAG
+ FROM (
+ SELECT *
+ ,reflect('org.apache.commons.codec.digest.DigestUtils', 'sha256Hex',concat(id1)) khash
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) rhash
+ FROM ttest1
+ WHERE ts1 = '2015-11-20'
+ ) A1
+ FULL OUTER JOIN (
+ SELECT *
+ FROM ttest2
+ WHERE '2015-11-20' BETWEEN dt1
+ AND dt2
+ ) A2 ON A1.khash = A2.khash
+ WHERE NOT (
+ NVL(A1.khash, - 1) = NVL(A2.khash, - 1)
+ AND NVL(A1.rhash, - 1) = NVL(A2.rhash, - 1)
+ )
+ AND A1.khash IS NOT NULL
+ ) A2
+ where a2.flag <> 'RET'
+PREHOOK: type: QUERY
+POSTHOOK: query: explain SELECT
+ A2.id1, A2.sts,A2.at1,
+ CASE WHEN FLAG = 'A_INS' THEN date_add('2015-11-20', 1) ELSE '2015-11-20' END dt1
+ ,A2.dt2
+ ,A2.khash
+ ,A2.rhash
+ ,A2.FLAG
+ FROM (
+ SELECT
+ A2.id1, A2.sts,A2.at1
+ ,A2.dt1
+ ,A2.dt2
+ ,A2.khash
+ ,A2.rhash
+ ,CASE
+ WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.dt1 >= '2016-02-05'
+ THEN 'DEL'
+
+ WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.dt1 <= '2016-02-05'
+ THEN 'RET'
+
+ WHEN
+ (
+ A2.khash = A1.khash
+ AND A2.rhash <> A1.rhash
+ )
+ THEN 'A_INS'
+
+ ELSE 'NA'
+ END FLAG
+ FROM (
+ SELECT *
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(id1)) khash
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) rhash
+ FROM ttest1
+ WHERE ts1 = '2015-11-20'
+ ) A1
+ FULL OUTER JOIN (
+ SELECT *
+ FROM ttest2
+ WHERE '2015-11-20' BETWEEN dt1 AND dt2
+ ) A2
+ ON A1.khash = A2.khash
+ WHERE NOT (
+ NVL(A1.khash, - 1) = NVL(A2.khash, - 1)
+ AND NVL(A1.rhash, - 1) = NVL(A2.rhash, - 1)
+ )
+ AND A2.khash IS NOT NULL
+
+ UNION ALL
+
+ SELECT A1.id1, A1.sts,A1.at1
+ ,A1.dt1
+ , '2099-12-31' dt2
+ ,A1.khash
+ ,A1.rhash
+ ,CASE WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.ts1 <= A1.ts1
+ THEN 'DEL'
+
+ WHEN ( A2.khash IS NULL AND A1.khash IS NOT NULL )
+ OR ( A2.khash = A1.khash AND A2.rhash <> A1.rhash ) THEN 'INS' ELSE 'NA' END FLAG
+ FROM (
+ SELECT *
+ ,reflect('org.apache.commons.codec.digest.DigestUtils', 'sha256Hex',concat(id1)) khash
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) rhash
+ FROM ttest1
+ WHERE ts1 = '2015-11-20'
+ ) A1
+ FULL OUTER JOIN (
+ SELECT *
+ FROM ttest2
+ WHERE '2015-11-20' BETWEEN dt1
+ AND dt2
+ ) A2 ON A1.khash = A2.khash
+ WHERE NOT (
+ NVL(A1.khash, - 1) = NVL(A2.khash, - 1)
+ AND NVL(A1.rhash, - 1) = NVL(A2.rhash, - 1)
+ )
+ AND A1.khash IS NOT NULL
+ ) A2
+ where a2.flag <> 'RET'
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-2 depends on stages: Stage-1, Stage-4
+ Stage-4 is a root stage
+ Stage-0 depends on stages: Stage-2
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: ttest1
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: ((ts1 = '2015-11-20') and reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(id1)) is not null) (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(id1)) (type: string), reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) (type: string)
+ outputColumnNames: _col0, _col1
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col0 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col0 (type: string)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ value expressions: _col1 (type: string)
+ TableScan
+ alias: ttest2
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: ('2015-11-20' BETWEEN dt1 AND dt2 and khash is not null) (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: id1 (type: bigint), dt1 (type: string), dt2 (type: string), sts (type: string), at1 (type: bigint), khash (type: string), rhash (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col5 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col5 (type: string)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ value expressions: _col0 (type: bigint), _col1 (type: string), _col2 (type: string), _col3 (type: string), _col4 (type: bigint), _col6 (type: string)
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Right Outer Join0 to 1
+ keys:
+ 0 _col0 (type: string)
+ 1 _col5 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: ((CASE WHEN ((_col7 is not null and _col0 is null and (_col3 >= '2016-02-05'))) THEN ('DEL') WHEN ((_col7 is not null and _col0 is null and (_col3 <= '2016-02-05'))) THEN ('RET') WHEN (((_col7 = _col0) and (_col8 <> _col1))) THEN ('A_INS') ELSE ('NA') END <> 'RET') and ((NVL(_col0,-1) <> NVL(_col7,-1)) or (NVL(_col1,-1) <> NVL(_col8,-1)))) (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: _col2 (type: bigint), _col5 (type: string), _col6 (type: bigint), _col4 (type: string), _col7 (type: string), _col8 (type: string), CASE WHEN ((_col7 is not null and _col0 is null and (_col3 >= '2016-02-05'))) THEN ('DEL') WHEN ((_col7 is not null and _col0 is null and (_col3 <= '2016-02-05'))) THEN ('RET') WHEN (((_col7 = _col0) and (_col8 <> _col1))) THEN ('A_INS') ELSE ('NA') END (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
+ Statistics: Num rows: 1 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
+ Union
+ Statistics: Num rows: 2 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: _col0 (type: bigint), _col1 (type: string), _col2 (type: bigint), CASE WHEN ((_col6 = 'A_INS')) THEN ('2015-11-21') ELSE ('2015-11-20') END (type: string), _col3 (type: string), _col4 (type: string), _col5 (type: string), _col6 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7
+ Statistics: Num rows: 2 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 2 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+ TableScan
+ Union
+ Statistics: Num rows: 2 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: _col0 (type: bigint), _col1 (type: string), _col2 (type: bigint), CASE WHEN ((_col6 = 'A_INS')) THEN ('2015-11-21') ELSE ('2015-11-20') END (type: string), _col3 (type: string), _col4 (type: string), _col5 (type: string), _col6 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7
+ Statistics: Num rows: 2 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 2 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-4
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: ttest1
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: ((ts1 = '2015-11-20') and reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(id1)) is not null) (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: id1 (type: bigint), '2015-11-20' (type: string), sts (type: string), at1 (type: bigint), reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(id1)) (type: string), reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col4 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col4 (type: string)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ value expressions: _col0 (type: bigint), _col1 (type: string), _col2 (type: string), _col3 (type: bigint), _col5 (type: string)
+ TableScan
+ alias: ttest2
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: '2015-11-20' BETWEEN dt1 AND dt2 (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: ts1 (type: string), khash (type: string), rhash (type: string)
+ outputColumnNames: _col0, _col1, _col2
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Reduce Output Operator
+ key expressions: _col1 (type: string)
+ sort order: +
+ Map-reduce partition columns: _col1 (type: string)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ value expressions: _col0 (type: string), _col2 (type: string)
+ Reduce Operator Tree:
+ Join Operator
+ condition map:
+ Left Outer Join0 to 1
+ keys:
+ 0 _col4 (type: string)
+ 1 _col1 (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Filter Operator
+ predicate: ((CASE WHEN ((_col7 is not null and _col4 is null and (_col6 <= _col1))) THEN ('DEL') WHEN (((_col7 is null and _col4 is not null) or ((_col7 = _col4) and (_col8 <> _col5)))) THEN ('INS') ELSE ('NA') END <> 'RET') and ((NVL(_col4,-1) <> NVL(_col7,-1)) or (NVL(_col5,-1) <> NVL(_col8,-1)))) (type: boolean)
+ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE
+ Select Operator
+ expressions: _col0 (type: bigint), _col2 (type: string), _col3 (type: bigint), '2099-12-31' (type: string), _col4 (type: string), _col5 (type: string), CASE WHEN ((_col7 is not null and _col4 is null and (_col6 <= _col1))) THEN ('DEL') WHEN (((_col7 is null and _col4 is not null) or ((_col7 = _col4) and (_col8 <> _col5)))) THEN ('INS') ELSE ('NA') END (type: string)
+ outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
+ Statistics: Num rows: 1 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-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: DROP TABLE ttest1
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@ttest1
+PREHOOK: Output: default@ttest1
+POSTHOOK: query: DROP TABLE ttest1
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@ttest1
+POSTHOOK: Output: default@ttest1
+PREHOOK: query: DROP TABLE ttest2
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@ttest2
+PREHOOK: Output: default@ttest2
+POSTHOOK: query: DROP TABLE ttest2
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@ttest2
+POSTHOOK: Output: default@ttest2
[23/50] [abbrv] hive git commit: HIVE-13533: Remove AST dump (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/join9.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/join9.q.out b/ql/src/test/results/clientpositive/join9.q.out
index e904b31..f41d153 100644
--- a/ql/src/test/results/clientpositive/join9.q.out
+++ b/ql/src/test/results/clientpositive/join9.q.out
@@ -18,60 +18,6 @@ POSTHOOK: query: EXPLAIN EXTENDED
FROM srcpart src1 JOIN src src2 ON (src1.key = src2.key)
INSERT OVERWRITE TABLE dest1 SELECT src1.key, src2.value where src1.ds = '2008-04-08' and src1.hr = '12'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcpart
- src1
- TOK_TABREF
- TOK_TABNAME
- src
- src2
- =
- .
- TOK_TABLE_OR_COL
- src1
- key
- .
- TOK_TABLE_OR_COL
- src2
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest1
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- src1
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- src2
- value
- TOK_WHERE
- and
- =
- .
- TOK_TABLE_OR_COL
- src1
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- src1
- hr
- '12'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/join_filters_overlap.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/join_filters_overlap.q.out b/ql/src/test/results/clientpositive/join_filters_overlap.q.out
index dede6b7..ac00fd5 100644
--- a/ql/src/test/results/clientpositive/join_filters_overlap.q.out
+++ b/ql/src/test/results/clientpositive/join_filters_overlap.q.out
@@ -22,78 +22,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- overlap on a
explain extended select * from a left outer join a b on (a.key=b.key AND a.value=50 AND b.value=50) left outer join a c on (a.key=c.key AND a.value=60 AND c.value=60)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_LEFTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- a
- TOK_TABREF
- TOK_TABNAME
- a
- b
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- value
- 50
- =
- .
- TOK_TABLE_OR_COL
- b
- value
- 50
- TOK_TABREF
- TOK_TABNAME
- a
- c
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- c
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- value
- 60
- =
- .
- TOK_TABLE_OR_COL
- c
- value
- 60
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -285,78 +213,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- overlap on b
explain extended select * from a right outer join a b on (a.key=b.key AND a.value=50 AND b.value=50) left outer join a c on (b.key=c.key AND b.value=60 AND c.value=60)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_RIGHTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- a
- TOK_TABREF
- TOK_TABNAME
- a
- b
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- value
- 50
- =
- .
- TOK_TABLE_OR_COL
- b
- value
- 50
- TOK_TABREF
- TOK_TABNAME
- a
- c
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- b
- key
- .
- TOK_TABLE_OR_COL
- c
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- value
- 60
- =
- .
- TOK_TABLE_OR_COL
- c
- value
- 60
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -548,92 +404,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- overlap on b with two filters for each
explain extended select * from a right outer join a b on (a.key=b.key AND a.value=50 AND b.value=50 AND b.value>10) left outer join a c on (b.key=c.key AND b.value=60 AND b.value>20 AND c.value=60)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_RIGHTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- a
- TOK_TABREF
- TOK_TABNAME
- a
- b
- AND
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- value
- 50
- =
- .
- TOK_TABLE_OR_COL
- b
- value
- 50
- >
- .
- TOK_TABLE_OR_COL
- b
- value
- 10
- TOK_TABREF
- TOK_TABNAME
- a
- c
- AND
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- b
- key
- .
- TOK_TABLE_OR_COL
- c
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- value
- 60
- >
- .
- TOK_TABLE_OR_COL
- b
- value
- 20
- =
- .
- TOK_TABLE_OR_COL
- c
- value
- 60
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -825,106 +595,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- overlap on a, b
explain extended select * from a full outer join a b on (a.key=b.key AND a.value=50 AND b.value=50) left outer join a c on (b.key=c.key AND b.value=60 AND c.value=60) left outer join a d on (a.key=d.key AND a.value=40 AND d.value=40)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_LEFTOUTERJOIN
- TOK_FULLOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- a
- TOK_TABREF
- TOK_TABNAME
- a
- b
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- value
- 50
- =
- .
- TOK_TABLE_OR_COL
- b
- value
- 50
- TOK_TABREF
- TOK_TABNAME
- a
- c
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- b
- key
- .
- TOK_TABLE_OR_COL
- c
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- value
- 60
- =
- .
- TOK_TABLE_OR_COL
- c
- value
- 60
- TOK_TABREF
- TOK_TABNAME
- a
- d
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- d
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- value
- 40
- =
- .
- TOK_TABLE_OR_COL
- d
- value
- 40
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1128,106 +798,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- triple overlap on a
explain extended select * from a left outer join a b on (a.key=b.key AND a.value=50 AND b.value=50) left outer join a c on (a.key=c.key AND a.value=60 AND c.value=60) left outer join a d on (a.key=d.key AND a.value=40 AND d.value=40)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_LEFTOUTERJOIN
- TOK_LEFTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- a
- TOK_TABREF
- TOK_TABNAME
- a
- b
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- value
- 50
- =
- .
- TOK_TABLE_OR_COL
- b
- value
- 50
- TOK_TABREF
- TOK_TABNAME
- a
- c
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- c
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- value
- 60
- =
- .
- TOK_TABLE_OR_COL
- c
- value
- 60
- TOK_TABREF
- TOK_TABNAME
- a
- d
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- d
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- value
- 40
- =
- .
- TOK_TABLE_OR_COL
- d
- value
- 40
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/join_map_ppr.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/join_map_ppr.q.out b/ql/src/test/results/clientpositive/join_map_ppr.q.out
index 444fd7f..e720e65 100644
--- a/ql/src/test/results/clientpositive/join_map_ppr.q.out
+++ b/ql/src/test/results/clientpositive/join_map_ppr.q.out
@@ -24,85 +24,6 @@ FROM src1 x JOIN src y ON (x.key = y.key)
JOIN srcpart z ON (x.key = z.key)
WHERE z.ds='2008-04-08' and z.hr=11
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src1
- x
- TOK_TABREF
- TOK_TABNAME
- src
- y
- =
- .
- TOK_TABLE_OR_COL
- x
- key
- .
- TOK_TABLE_OR_COL
- y
- key
- TOK_TABREF
- TOK_TABNAME
- srcpart
- z
- =
- .
- TOK_TABLE_OR_COL
- x
- key
- .
- TOK_TABLE_OR_COL
- z
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest_j1
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- x
- y
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- z
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- y
- value
- TOK_WHERE
- and
- =
- .
- TOK_TABLE_OR_COL
- z
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- z
- hr
- 11
-
-
STAGE DEPENDENCIES:
Stage-10 is a root stage
Stage-1 depends on stages: Stage-10
@@ -631,85 +552,6 @@ FROM src1_copy x JOIN src_copy y ON (x.key = y.key)
JOIN srcpart z ON (x.key = z.key)
WHERE z.ds='2008-04-08' and z.hr=11
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src1_copy
- x
- TOK_TABREF
- TOK_TABNAME
- src_copy
- y
- =
- .
- TOK_TABLE_OR_COL
- x
- key
- .
- TOK_TABLE_OR_COL
- y
- key
- TOK_TABREF
- TOK_TABNAME
- srcpart
- z
- =
- .
- TOK_TABLE_OR_COL
- x
- key
- .
- TOK_TABLE_OR_COL
- z
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest_j1
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- x
- y
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- z
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- y
- value
- TOK_WHERE
- and
- =
- .
- TOK_TABLE_OR_COL
- z
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- z
- hr
- 11
-
-
STAGE DEPENDENCIES:
Stage-10 is a root stage
Stage-1 depends on stages: Stage-10
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/list_bucket_dml_1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_1.q.out b/ql/src/test/results/clientpositive/list_bucket_dml_1.q.out
index 0cd07ef..2b7ebb2 100644
--- a/ql/src/test/results/clientpositive/list_bucket_dml_1.q.out
+++ b/ql/src/test/results/clientpositive/list_bucket_dml_1.q.out
@@ -30,41 +30,6 @@ POSTHOOK: query: -- list bucketing DML
explain extended
insert overwrite table list_bucketing_dynamic_part partition (ds='2008-04-08', hr) select key, value, hr from srcpart where ds='2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- list_bucketing_dynamic_part
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2008-04-08'
- TOK_PARTVAL
- hr
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- hr
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -393,41 +358,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select key, value from list_bucketing_dynamic_part where ds='2008-04-08' and hr='11' and key = "484"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- list_bucketing_dynamic_part
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- and
- and
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
- =
- TOK_TABLE_OR_COL
- hr
- '11'
- =
- TOK_TABLE_OR_COL
- key
- "484"
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/list_bucket_dml_10.q.java1.7.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_10.q.java1.7.out b/ql/src/test/results/clientpositive/list_bucket_dml_10.q.java1.7.out
index 8eb4673..8447e86 100644
--- a/ql/src/test/results/clientpositive/list_bucket_dml_10.q.java1.7.out
+++ b/ql/src/test/results/clientpositive/list_bucket_dml_10.q.java1.7.out
@@ -54,34 +54,6 @@ explain extended
insert overwrite table list_bucketing_static_part partition (ds = '2008-04-08', hr = '11')
select key, value from src
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- list_bucketing_static_part
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2008-04-08'
- TOK_PARTVAL
- hr
- '11'
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/list_bucket_dml_11.q.java1.7.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_11.q.java1.7.out b/ql/src/test/results/clientpositive/list_bucket_dml_11.q.java1.7.out
index f304083..b58d17c 100644
--- a/ql/src/test/results/clientpositive/list_bucket_dml_11.q.java1.7.out
+++ b/ql/src/test/results/clientpositive/list_bucket_dml_11.q.java1.7.out
@@ -40,34 +40,6 @@ explain extended
insert overwrite table list_bucketing_static_part partition (ds = '2008-04-08', hr = '11')
select key, value from src
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- list_bucketing_static_part
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2008-04-08'
- TOK_PARTVAL
- hr
- '11'
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -267,41 +239,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select key, value from list_bucketing_static_part where ds='2008-04-08' and hr='11' and value = "val_466"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- list_bucketing_static_part
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- and
- and
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
- =
- TOK_TABLE_OR_COL
- hr
- '11'
- =
- TOK_TABLE_OR_COL
- value
- "val_466"
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/list_bucket_dml_12.q.java1.7.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_12.q.java1.7.out b/ql/src/test/results/clientpositive/list_bucket_dml_12.q.java1.7.out
index 7d8070a..0be7f4e 100644
--- a/ql/src/test/results/clientpositive/list_bucket_dml_12.q.java1.7.out
+++ b/ql/src/test/results/clientpositive/list_bucket_dml_12.q.java1.7.out
@@ -38,40 +38,6 @@ explain extended
insert overwrite table list_bucketing_mul_col partition (ds = '2008-04-08', hr = '11')
select 1, key, 1, value, 1 from src
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- list_bucketing_mul_col
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2008-04-08'
- TOK_PARTVAL
- hr
- '11'
- TOK_SELECT
- TOK_SELEXPR
- 1
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- 1
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- 1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -279,42 +245,6 @@ POSTHOOK: query: explain extended
select * from list_bucketing_mul_col
where ds='2008-04-08' and hr='11' and col2 = "466" and col4 = "val_466"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- list_bucketing_mul_col
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- and
- and
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
- =
- TOK_TABLE_OR_COL
- hr
- '11'
- =
- TOK_TABLE_OR_COL
- col2
- "466"
- =
- TOK_TABLE_OR_COL
- col4
- "val_466"
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -405,42 +335,6 @@ POSTHOOK: query: explain extended
select * from list_bucketing_mul_col
where ds='2008-04-08' and hr='11' and col2 = "382" and col4 = "val_382"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- list_bucketing_mul_col
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- and
- and
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
- =
- TOK_TABLE_OR_COL
- hr
- '11'
- =
- TOK_TABLE_OR_COL
- col2
- "382"
- =
- TOK_TABLE_OR_COL
- col4
- "val_382"
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/list_bucket_dml_13.q.java1.7.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_13.q.java1.7.out b/ql/src/test/results/clientpositive/list_bucket_dml_13.q.java1.7.out
index 81b1431..bfce335 100644
--- a/ql/src/test/results/clientpositive/list_bucket_dml_13.q.java1.7.out
+++ b/ql/src/test/results/clientpositive/list_bucket_dml_13.q.java1.7.out
@@ -38,40 +38,6 @@ explain extended
insert overwrite table list_bucketing_mul_col partition (ds = '2008-04-08', hr = '2013-01-23+18:00:99')
select 1, key, 1, value, 1 from src
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- list_bucketing_mul_col
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2008-04-08'
- TOK_PARTVAL
- hr
- '2013-01-23+18:00:99'
- TOK_SELECT
- TOK_SELEXPR
- 1
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- 1
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- 1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -279,42 +245,6 @@ POSTHOOK: query: explain extended
select * from list_bucketing_mul_col
where ds='2008-04-08' and hr='2013-01-23+18:00:99' and col2 = "466" and col4 = "val_466"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- list_bucketing_mul_col
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- and
- and
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
- =
- TOK_TABLE_OR_COL
- hr
- '2013-01-23+18:00:99'
- =
- TOK_TABLE_OR_COL
- col2
- "466"
- =
- TOK_TABLE_OR_COL
- col4
- "val_466"
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/list_bucket_dml_14.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_14.q.out b/ql/src/test/results/clientpositive/list_bucket_dml_14.q.out
index 790801f..c063dc1 100644
--- a/ql/src/test/results/clientpositive/list_bucket_dml_14.q.out
+++ b/ql/src/test/results/clientpositive/list_bucket_dml_14.q.out
@@ -28,23 +28,6 @@ POSTHOOK: query: -- list bucketing DML
explain extended
insert overwrite table list_bucketing select * from src
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- list_bucketing
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -249,31 +232,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select key, value from list_bucketing where key = "484"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- list_bucketing
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- key
- "484"
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/list_bucket_dml_2.q.java1.7.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_2.q.java1.7.out b/ql/src/test/results/clientpositive/list_bucket_dml_2.q.java1.7.out
index bfc1e43..dcfbec0 100644
--- a/ql/src/test/results/clientpositive/list_bucket_dml_2.q.java1.7.out
+++ b/ql/src/test/results/clientpositive/list_bucket_dml_2.q.java1.7.out
@@ -56,39 +56,6 @@ explain extended
insert overwrite table list_bucketing_static_part partition (ds = '2008-04-08', hr = '11')
select key, value from srcpart where ds = '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- list_bucketing_static_part
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2008-04-08'
- TOK_PARTVAL
- hr
- '11'
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -365,42 +332,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from list_bucketing_static_part where ds = '2008-04-08' and hr = '11' and key = '484' and value = 'val_484'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- list_bucketing_static_part
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- and
- and
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
- =
- TOK_TABLE_OR_COL
- hr
- '11'
- =
- TOK_TABLE_OR_COL
- key
- '484'
- =
- TOK_TABLE_OR_COL
- value
- 'val_484'
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/list_bucket_dml_3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_3.q.out b/ql/src/test/results/clientpositive/list_bucket_dml_3.q.out
index ea24f86..548815a 100644
--- a/ql/src/test/results/clientpositive/list_bucket_dml_3.q.out
+++ b/ql/src/test/results/clientpositive/list_bucket_dml_3.q.out
@@ -24,39 +24,6 @@ POSTHOOK: query: -- list bucketing DML
explain extended
insert overwrite table list_bucketing_static_part partition (ds='2008-04-08', hr='11') select key, value from srcpart where ds='2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- list_bucketing_static_part
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2008-04-08'
- TOK_PARTVAL
- hr
- '11'
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -335,41 +302,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select key, value from list_bucketing_static_part where ds='2008-04-08' and hr='11' and key = "484"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- list_bucketing_static_part
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- and
- and
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
- =
- TOK_TABLE_OR_COL
- hr
- '11'
- =
- TOK_TABLE_OR_COL
- key
- "484"
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/list_bucket_dml_4.q.java1.7.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_4.q.java1.7.out b/ql/src/test/results/clientpositive/list_bucket_dml_4.q.java1.7.out
index 6b8b89f..c15c6a2 100644
--- a/ql/src/test/results/clientpositive/list_bucket_dml_4.q.java1.7.out
+++ b/ql/src/test/results/clientpositive/list_bucket_dml_4.q.java1.7.out
@@ -64,39 +64,6 @@ explain extended
insert overwrite table list_bucketing_static_part partition (ds = '2008-04-08', hr = '11')
select key, value from srcpart where ds = '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- list_bucketing_static_part
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2008-04-08'
- TOK_PARTVAL
- hr
- '11'
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -353,39 +320,6 @@ explain extended
insert overwrite table list_bucketing_static_part partition (ds = '2008-04-08', hr = '11')
select key, value from srcpart where ds = '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- list_bucketing_static_part
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2008-04-08'
- TOK_PARTVAL
- hr
- '11'
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
@@ -774,42 +708,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from list_bucketing_static_part where ds = '2008-04-08' and hr = '11' and key = '484' and value = 'val_484'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- list_bucketing_static_part
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- and
- and
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
- =
- TOK_TABLE_OR_COL
- hr
- '11'
- =
- TOK_TABLE_OR_COL
- key
- '484'
- =
- TOK_TABLE_OR_COL
- value
- 'val_484'
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/list_bucket_dml_5.q.java1.7.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_5.q.java1.7.out b/ql/src/test/results/clientpositive/list_bucket_dml_5.q.java1.7.out
index 1019474..a0947b2 100644
--- a/ql/src/test/results/clientpositive/list_bucket_dml_5.q.java1.7.out
+++ b/ql/src/test/results/clientpositive/list_bucket_dml_5.q.java1.7.out
@@ -34,41 +34,6 @@ POSTHOOK: query: -- list bucketing DML
explain extended
insert overwrite table list_bucketing_dynamic_part partition (ds='2008-04-08', hr) select key, value, hr from srcpart where ds='2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- list_bucketing_dynamic_part
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2008-04-08'
- TOK_PARTVAL
- hr
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- hr
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -402,47 +367,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select key, value, ds, hr from list_bucketing_dynamic_part where ds='2008-04-08' and key = "103" and value ="val_103"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- list_bucketing_dynamic_part
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- hr
- TOK_WHERE
- and
- and
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
- =
- TOK_TABLE_OR_COL
- key
- "103"
- =
- TOK_TABLE_OR_COL
- value
- "val_103"
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/list_bucket_dml_6.q.java1.7.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_6.q.java1.7.out b/ql/src/test/results/clientpositive/list_bucket_dml_6.q.java1.7.out
index 668e918..c022618 100644
--- a/ql/src/test/results/clientpositive/list_bucket_dml_6.q.java1.7.out
+++ b/ql/src/test/results/clientpositive/list_bucket_dml_6.q.java1.7.out
@@ -110,49 +110,6 @@ explain extended
insert overwrite table list_bucketing_dynamic_part partition (ds = '2008-04-08', hr)
select key, value, if(key % 100 == 0, 'a1', 'b1') from srcpart where ds = '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- list_bucketing_dynamic_part
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2008-04-08'
- TOK_PARTVAL
- hr
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_FUNCTION
- if
- ==
- %
- TOK_TABLE_OR_COL
- key
- 100
- 0
- 'a1'
- 'b1'
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -456,49 +413,6 @@ explain extended
insert overwrite table list_bucketing_dynamic_part partition (ds = '2008-04-08', hr)
select key, value, if(key % 100 == 0, 'a1', 'b1') from srcpart where ds = '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- list_bucketing_dynamic_part
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2008-04-08'
- TOK_PARTVAL
- hr
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_FUNCTION
- if
- ==
- %
- TOK_TABLE_OR_COL
- key
- 100
- 0
- 'a1'
- 'b1'
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
@@ -942,32 +856,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from list_bucketing_dynamic_part where key = '484' and value = 'val_484'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- list_bucketing_dynamic_part
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- key
- '484'
- =
- TOK_TABLE_OR_COL
- value
- 'val_484'
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/list_bucket_dml_7.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_7.q.out b/ql/src/test/results/clientpositive/list_bucket_dml_7.q.out
index 3aa9003..b8757de 100644
--- a/ql/src/test/results/clientpositive/list_bucket_dml_7.q.out
+++ b/ql/src/test/results/clientpositive/list_bucket_dml_7.q.out
@@ -56,49 +56,6 @@ explain extended
insert overwrite table list_bucketing_dynamic_part partition (ds = '2008-04-08', hr)
select key, value, if(key % 100 == 0, 'a1', 'b1') from srcpart where ds = '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- list_bucketing_dynamic_part
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2008-04-08'
- TOK_PARTVAL
- hr
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_FUNCTION
- if
- ==
- %
- TOK_TABLE_OR_COL
- key
- 100
- 0
- 'a1'
- 'b1'
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -402,49 +359,6 @@ explain extended
insert overwrite table list_bucketing_dynamic_part partition (ds = '2008-04-08', hr)
select key, value, if(key % 100 == 0, 'a1', 'b1') from srcpart where ds = '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- list_bucketing_dynamic_part
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2008-04-08'
- TOK_PARTVAL
- hr
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_FUNCTION
- if
- ==
- %
- TOK_TABLE_OR_COL
- key
- 100
- 0
- 'a1'
- 'b1'
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
@@ -888,32 +802,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from list_bucketing_dynamic_part where key = '484' and value = 'val_484'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- list_bucketing_dynamic_part
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- key
- '484'
- =
- TOK_TABLE_OR_COL
- value
- 'val_484'
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/list_bucket_dml_8.q.java1.7.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_8.q.java1.7.out b/ql/src/test/results/clientpositive/list_bucket_dml_8.q.java1.7.out
index 672e5ac..d40a693 100644
--- a/ql/src/test/results/clientpositive/list_bucket_dml_8.q.java1.7.out
+++ b/ql/src/test/results/clientpositive/list_bucket_dml_8.q.java1.7.out
@@ -112,49 +112,6 @@ explain extended
insert overwrite table list_bucketing_dynamic_part partition (ds = '2008-04-08', hr)
select key, value, if(key % 100 == 0, 'a1', 'b1') from srcpart where ds = '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- list_bucketing_dynamic_part
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2008-04-08'
- TOK_PARTVAL
- hr
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_FUNCTION
- if
- ==
- %
- TOK_TABLE_OR_COL
- key
- 100
- 0
- 'a1'
- 'b1'
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -532,32 +489,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from list_bucketing_dynamic_part where key = '484' and value = 'val_484'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- list_bucketing_dynamic_part
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- key
- '484'
- =
- TOK_TABLE_OR_COL
- value
- 'val_484'
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/list_bucket_dml_9.q.java1.7.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/list_bucket_dml_9.q.java1.7.out b/ql/src/test/results/clientpositive/list_bucket_dml_9.q.java1.7.out
index 7179f61..752ea4e 100644
--- a/ql/src/test/results/clientpositive/list_bucket_dml_9.q.java1.7.out
+++ b/ql/src/test/results/clientpositive/list_bucket_dml_9.q.java1.7.out
@@ -64,39 +64,6 @@ explain extended
insert overwrite table list_bucketing_static_part partition (ds = '2008-04-08', hr = '11')
select key, value from srcpart where ds = '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- list_bucketing_static_part
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2008-04-08'
- TOK_PARTVAL
- hr
- '11'
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -353,39 +320,6 @@ explain extended
insert overwrite table list_bucketing_static_part partition (ds = '2008-04-08', hr = '11')
select key, value from srcpart where ds = '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- list_bucketing_static_part
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2008-04-08'
- TOK_PARTVAL
- hr
- '11'
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
@@ -774,42 +708,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from list_bucketing_static_part where ds = '2008-04-08' and hr = '11' and key = '484' and value = 'val_484'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- list_bucketing_static_part
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- and
- and
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
- =
- TOK_TABLE_OR_COL
- hr
- '11'
- =
- TOK_TABLE_OR_COL
- key
- '484'
- =
- TOK_TABLE_OR_COL
- value
- 'val_484'
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/list_bucket_query_multiskew_1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/list_bucket_query_multiskew_1.q.out b/ql/src/test/results/clientpositive/list_bucket_query_multiskew_1.q.out
index 1d8ec8b..492866a 100644
--- a/ql/src/test/results/clientpositive/list_bucket_query_multiskew_1.q.out
+++ b/ql/src/test/results/clientpositive/list_bucket_query_multiskew_1.q.out
@@ -116,43 +116,6 @@ POSTHOOK: query: -- pruner only pick up skewed-value directory
-- explain plan shows which directory selected: Truncated Path -> Alias
explain extended SELECT key FROM fact_daily WHERE ( ds='1' and hr='4') and (key='484' and value= 'val_484')
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- fact_daily
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_WHERE
- and
- and
- =
- TOK_TABLE_OR_COL
- ds
- '1'
- =
- TOK_TABLE_OR_COL
- hr
- '4'
- and
- =
- TOK_TABLE_OR_COL
- key
- '484'
- =
- TOK_TABLE_OR_COL
- value
- 'val_484'
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -241,46 +204,6 @@ POSTHOOK: query: -- pruner only pick up skewed-value directory
-- explain plan shows which directory selected: Truncated Path -> Alias
explain extended SELECT key,value FROM fact_daily WHERE ( ds='1' and hr='4') and (key='238' and value= 'val_238')
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- fact_daily
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- and
- and
- =
- TOK_TABLE_OR_COL
- ds
- '1'
- =
- TOK_TABLE_OR_COL
- hr
- '4'
- and
- =
- TOK_TABLE_OR_COL
- key
- '238'
- =
- TOK_TABLE_OR_COL
- value
- 'val_238'
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -370,38 +293,6 @@ POSTHOOK: query: -- pruner only pick up default directory
-- explain plan shows which directory selected: Truncated Path -> Alias
explain extended SELECT key FROM fact_daily WHERE ( ds='1' and hr='4') and (value = "3")
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- fact_daily
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_WHERE
- and
- and
- =
- TOK_TABLE_OR_COL
- ds
- '1'
- =
- TOK_TABLE_OR_COL
- hr
- '4'
- =
- TOK_TABLE_OR_COL
- value
- "3"
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -489,41 +380,6 @@ POSTHOOK: query: -- pruner only pick up default directory
-- explain plan shows which directory selected: Truncated Path -> Alias
explain extended SELECT key,value FROM fact_daily WHERE ( ds='1' and hr='4') and key = '495'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- fact_daily
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- and
- and
- =
- TOK_TABLE_OR_COL
- ds
- '1'
- =
- TOK_TABLE_OR_COL
- hr
- '4'
- =
- TOK_TABLE_OR_COL
- key
- '495'
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/list_bucket_query_multiskew_2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/list_bucket_query_multiskew_2.q.out b/ql/src/test/results/clientpositive/list_bucket_query_multiskew_2.q.out
index 83576f1..cfb613a 100644
--- a/ql/src/test/results/clientpositive/list_bucket_query_multiskew_2.q.out
+++ b/ql/src/test/results/clientpositive/list_bucket_query_multiskew_2.q.out
@@ -116,41 +116,6 @@ POSTHOOK: query: -- pruner only pick up default directory
-- explain plan shows which directory selected: Truncated Path -> Alias
explain extended SELECT key, value FROM fact_daily WHERE ds='1' and hr='4' and value= 'val_484'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- fact_daily
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- and
- and
- =
- TOK_TABLE_OR_COL
- ds
- '1'
- =
- TOK_TABLE_OR_COL
- hr
- '4'
- =
- TOK_TABLE_OR_COL
- value
- 'val_484'
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -239,38 +204,6 @@ POSTHOOK: query: -- pruner only pick up default directory
-- explain plan shows which directory selected: Truncated Path -> Alias
explain extended SELECT key FROM fact_daily WHERE ds='1' and hr='4' and key= '406'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- fact_daily
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_WHERE
- and
- and
- =
- TOK_TABLE_OR_COL
- ds
- '1'
- =
- TOK_TABLE_OR_COL
- hr
- '4'
- =
- TOK_TABLE_OR_COL
- key
- '406'
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -362,56 +295,6 @@ POSTHOOK: query: -- pruner only pick up skewed-value directory
-- explain plan shows which directory selected: Truncated Path -> Alias
explain extended SELECT key, value FROM fact_daily WHERE ds='1' and hr='4' and ( (key='484' and value ='val_484') or (key='238' and value= 'val_238'))
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- fact_daily
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- and
- and
- =
- TOK_TABLE_OR_COL
- ds
- '1'
- =
- TOK_TABLE_OR_COL
- hr
- '4'
- or
- and
- =
- TOK_TABLE_OR_COL
- key
- '484'
- =
- TOK_TABLE_OR_COL
- value
- 'val_484'
- and
- =
- TOK_TABLE_OR_COL
- key
- '238'
- =
- TOK_TABLE_OR_COL
- value
- 'val_238'
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/list_bucket_query_multiskew_3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/list_bucket_query_multiskew_3.q.out b/ql/src/test/results/clientpositive/list_bucket_query_multiskew_3.q.out
index 2e77245..6a5f8f5 100644
--- a/ql/src/test/results/clientpositive/list_bucket_query_multiskew_3.q.out
+++ b/ql/src/test/results/clientpositive/list_bucket_query_multiskew_3.q.out
@@ -234,37 +234,6 @@ POSTHOOK: query: -- query non-skewed partition
explain extended
select * from fact_daily where ds = '1' and hr='1' and key='145'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- fact_daily
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- and
- =
- TOK_TABLE_OR_COL
- ds
- '1'
- =
- TOK_TABLE_OR_COL
- hr
- '1'
- =
- TOK_TABLE_OR_COL
- key
- '145'
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -349,33 +318,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select count(*) from fact_daily where ds = '1' and hr='1'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- fact_daily
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- ds
- '1'
- =
- TOK_TABLE_OR_COL
- hr
- '1'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -508,42 +450,6 @@ POSTHOOK: query: -- query skewed partition
explain extended
SELECT * FROM fact_daily WHERE ds='1' and hr='2' and (key='484' and value='val_484')
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- fact_daily
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- and
- =
- TOK_TABLE_OR_COL
- ds
- '1'
- =
- TOK_TABLE_OR_COL
- hr
- '2'
- and
- =
- TOK_TABLE_OR_COL
- key
- '484'
- =
- TOK_TABLE_OR_COL
- value
- 'val_484'
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -630,42 +536,6 @@ POSTHOOK: query: -- query another skewed partition
explain extended
SELECT * FROM fact_daily WHERE ds='1' and hr='3' and (key='327' and value='val_327')
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- fact_daily
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- and
- =
- TOK_TABLE_OR_COL
- ds
- '1'
- =
- TOK_TABLE_OR_COL
- hr
- '3'
- and
- =
- TOK_TABLE_OR_COL
- key
- '327'
- =
- TOK_TABLE_OR_COL
- value
- 'val_327'
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/list_bucket_query_oneskew_1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/list_bucket_query_oneskew_1.q.out b/ql/src/test/results/clientpositive/list_bucket_query_oneskew_1.q.out
index 1895ab0..6a9b4a1 100644
--- a/ql/src/test/results/clientpositive/list_bucket_query_oneskew_1.q.out
+++ b/ql/src/test/results/clientpositive/list_bucket_query_oneskew_1.q.out
@@ -176,33 +176,6 @@ POSTHOOK: query: -- pruner only pick up skewed-value directory
-- explain plan shows which directory selected: Truncated Path -> Alias
explain extended SELECT x FROM fact_daily WHERE ds='1' and x=484
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- fact_daily
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- x
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- ds
- '1'
- =
- TOK_TABLE_OR_COL
- x
- 484
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -288,33 +261,6 @@ POSTHOOK: query: -- pruner only pick up default directory since x equal to non-s
-- explain plan shows which directory selected: Truncated Path -> Alias
explain extended SELECT x FROM fact_daily WHERE ds='1' and x=495
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- fact_daily
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- x
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- ds
- '1'
- =
- TOK_TABLE_OR_COL
- x
- 495
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -396,33 +342,6 @@ PREHOOK: query: explain extended SELECT x FROM fact_daily WHERE ds='1' and x=1
PREHOOK: type: QUERY
POSTHOOK: query: explain extended SELECT x FROM fact_daily WHERE ds='1' and x=1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- fact_daily
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- x
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- ds
- '1'
- =
- TOK_TABLE_OR_COL
- x
- 1
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/list_bucket_query_oneskew_2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/list_bucket_query_oneskew_2.q.out b/ql/src/test/results/clientpositive/list_bucket_query_oneskew_2.q.out
index 135f5e1..8517a52 100644
--- a/ql/src/test/results/clientpositive/list_bucket_query_oneskew_2.q.out
+++ b/ql/src/test/results/clientpositive/list_bucket_query_oneskew_2.q.out
@@ -181,45 +181,6 @@ POSTHOOK: query: -- The first subquery
-- explain plan shows which directory selected: Truncated Path -> Alias
explain extended select x from (select x from fact_daily where ds = '1') subq where x = 484
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- fact_daily
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- x
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- ds
- '1'
- subq
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- x
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- x
- 484
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -305,53 +266,6 @@ POSTHOOK: query: -- The second subquery
-- explain plan shows which directory selected: Truncated Path -> Alias
explain extended select x1, y1 from(select x as x1, y as y1 from fact_daily where ds ='1') subq where x1 = 484
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- fact_daily
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- x
- x1
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- y
- y1
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- ds
- '1'
- subq
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- x1
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- y1
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- x1
- 484
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -437,40 +351,6 @@ POSTHOOK: query: -- The third subquery
-- explain plan shows which directory selected: Truncated Path -> Alias
explain extended select y, count(1) from fact_daily where ds ='1' and x = 484 group by y
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- fact_daily
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- y
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- ds
- '1'
- =
- TOK_TABLE_OR_COL
- x
- 484
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- y
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -612,56 +492,6 @@ POSTHOOK: query: -- The fourth subquery
-- explain plan shows which directory selected: Truncated Path -> Alias
explain extended select x, c from (select x, count(1) as c from fact_daily where ds = '1' group by x) subq where x = 484
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- fact_daily
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- x
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- c
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- ds
- '1'
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- x
- subq
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- x
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- c
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- x
- 484
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/list_bucket_query_oneskew_3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/list_bucket_query_oneskew_3.q.out b/ql/src/test/results/clientpositive/list_bucket_query_oneskew_3.q.out
index 3a40305..0c6fb63 100644
--- a/ql/src/test/results/clientpositive/list_bucket_query_oneskew_3.q.out
+++ b/ql/src/test/results/clientpositive/list_bucket_query_oneskew_3.q.out
@@ -203,34 +203,6 @@ POSTHOOK: query: -- pruner pick up right directory
-- explain plan shows which directory selected: Truncated Path -> Alias
explain extended SELECT x FROM fact_daily WHERE ds='1' and not (x = 86)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- fact_daily
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- x
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- ds
- '1'
- not
- =
- TOK_TABLE_OR_COL
- x
- 86
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/llap/llap_nullscan.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/llap_nullscan.q.out b/ql/src/test/results/clientpositive/llap/llap_nullscan.q.out
index e17d721..c755268 100644
--- a/ql/src/test/results/clientpositive/llap/llap_nullscan.q.out
+++ b/ql/src/test/results/clientpositive/llap/llap_nullscan.q.out
@@ -30,26 +30,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from src_orc where 1=2
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src_orc
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- =
- 1
- 2
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
[25/50] [abbrv] hive git commit: HIVE-13533: Remove AST dump (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucketmapjoin_negative3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucketmapjoin_negative3.q.out b/ql/src/test/results/clientpositive/bucketmapjoin_negative3.q.out
index c95681a..3078854 100644
--- a/ql/src/test/results/clientpositive/bucketmapjoin_negative3.q.out
+++ b/ql/src/test/results/clientpositive/bucketmapjoin_negative3.q.out
@@ -148,52 +148,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- should be allowed
explain extended select /* + MAPJOIN(R) */ * from test1 L join test1 R on L.key=R.key AND L.value=R.value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test1
- L
- TOK_TABREF
- TOK_TABNAME
- test1
- R
- AND
- =
- .
- TOK_TABLE_OR_COL
- L
- key
- .
- TOK_TABLE_OR_COL
- R
- key
- =
- .
- TOK_TABLE_OR_COL
- L
- value
- .
- TOK_TABLE_OR_COL
- R
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- R
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -336,52 +290,6 @@ PREHOOK: query: explain extended select /* + MAPJOIN(R) */ * from test2 L join t
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /* + MAPJOIN(R) */ * from test2 L join test2 R on L.key=R.key AND L.value=R.value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test2
- L
- TOK_TABREF
- TOK_TABNAME
- test2
- R
- AND
- =
- .
- TOK_TABLE_OR_COL
- L
- key
- .
- TOK_TABLE_OR_COL
- R
- key
- =
- .
- TOK_TABLE_OR_COL
- L
- value
- .
- TOK_TABLE_OR_COL
- R
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- R
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -526,47 +434,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- should not apply bucket mapjoin
explain extended select /* + MAPJOIN(R) */ * from test1 L join test1 R on L.key+L.key=R.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test1
- L
- TOK_TABREF
- TOK_TABNAME
- test1
- R
- =
- +
- .
- TOK_TABLE_OR_COL
- L
- key
- .
- TOK_TABLE_OR_COL
- L
- key
- .
- TOK_TABLE_OR_COL
- R
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- R
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -701,52 +568,6 @@ PREHOOK: query: explain extended select /* + MAPJOIN(R) */ * from test1 L join t
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /* + MAPJOIN(R) */ * from test1 L join test2 R on L.key=R.key AND L.value=R.value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test1
- L
- TOK_TABREF
- TOK_TABNAME
- test2
- R
- AND
- =
- .
- TOK_TABLE_OR_COL
- L
- key
- .
- TOK_TABLE_OR_COL
- R
- key
- =
- .
- TOK_TABLE_OR_COL
- L
- value
- .
- TOK_TABLE_OR_COL
- R
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- R
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -881,52 +702,6 @@ PREHOOK: query: explain extended select /* + MAPJOIN(R) */ * from test1 L join t
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /* + MAPJOIN(R) */ * from test1 L join test3 R on L.key=R.key AND L.value=R.value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test1
- L
- TOK_TABREF
- TOK_TABNAME
- test3
- R
- AND
- =
- .
- TOK_TABLE_OR_COL
- L
- key
- .
- TOK_TABLE_OR_COL
- R
- key
- =
- .
- TOK_TABLE_OR_COL
- L
- value
- .
- TOK_TABLE_OR_COL
- R
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- R
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -1061,52 +836,6 @@ PREHOOK: query: explain extended select /* + MAPJOIN(R) */ * from test1 L join t
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /* + MAPJOIN(R) */ * from test1 L join test4 R on L.key=R.key AND L.value=R.value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test1
- L
- TOK_TABREF
- TOK_TABNAME
- test4
- R
- AND
- =
- .
- TOK_TABLE_OR_COL
- L
- key
- .
- TOK_TABLE_OR_COL
- R
- key
- =
- .
- TOK_TABLE_OR_COL
- L
- value
- .
- TOK_TABLE_OR_COL
- R
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- R
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -1241,52 +970,6 @@ PREHOOK: query: explain extended select /* + MAPJOIN(R) */ * from test2 L join t
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /* + MAPJOIN(R) */ * from test2 L join test3 R on L.key=R.key AND L.value=R.value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test2
- L
- TOK_TABREF
- TOK_TABNAME
- test3
- R
- AND
- =
- .
- TOK_TABLE_OR_COL
- L
- key
- .
- TOK_TABLE_OR_COL
- R
- key
- =
- .
- TOK_TABLE_OR_COL
- L
- value
- .
- TOK_TABLE_OR_COL
- R
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- R
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -1421,52 +1104,6 @@ PREHOOK: query: explain extended select /* + MAPJOIN(R) */ * from test2 L join t
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /* + MAPJOIN(R) */ * from test2 L join test4 R on L.key=R.key AND L.value=R.value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test2
- L
- TOK_TABREF
- TOK_TABNAME
- test4
- R
- AND
- =
- .
- TOK_TABLE_OR_COL
- L
- key
- .
- TOK_TABLE_OR_COL
- R
- key
- =
- .
- TOK_TABLE_OR_COL
- L
- value
- .
- TOK_TABLE_OR_COL
- R
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- R
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -1601,52 +1238,6 @@ PREHOOK: query: explain extended select /* + MAPJOIN(R) */ * from test3 L join t
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /* + MAPJOIN(R) */ * from test3 L join test4 R on L.key=R.key AND L.value=R.value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test3
- L
- TOK_TABREF
- TOK_TABNAME
- test4
- R
- AND
- =
- .
- TOK_TABLE_OR_COL
- L
- key
- .
- TOK_TABLE_OR_COL
- R
- key
- =
- .
- TOK_TABLE_OR_COL
- L
- value
- .
- TOK_TABLE_OR_COL
- R
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- R
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/cbo_rp_outer_join_ppr.q.java1.7.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/cbo_rp_outer_join_ppr.q.java1.7.out b/ql/src/test/results/clientpositive/cbo_rp_outer_join_ppr.q.java1.7.out
index f680a02..5c40dc4 100644
--- a/ql/src/test/results/clientpositive/cbo_rp_outer_join_ppr.q.java1.7.out
+++ b/ql/src/test/results/clientpositive/cbo_rp_outer_join_ppr.q.java1.7.out
@@ -22,90 +22,6 @@ EXPLAIN EXTENDED
SELECT a.key, a.value, b.key, b.value
WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_FULLOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- src
- a
- TOK_TABREF
- TOK_TABNAME
- srcpart
- b
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- '2008-04-08'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- AND
- AND
- AND
- >
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 20
- >
- .
- TOK_TABLE_OR_COL
- b
- key
- 15
- <
- .
- TOK_TABLE_OR_COL
- b
- key
- 25
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -497,90 +413,6 @@ POSTHOOK: query: EXPLAIN EXTENDED
SELECT a.key, a.value, b.key, b.value
WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 AND b.ds = '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_FULLOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- src
- a
- TOK_TABREF
- TOK_TABNAME
- srcpart
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- AND
- AND
- AND
- AND
- >
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 20
- >
- .
- TOK_TABLE_OR_COL
- b
- key
- 15
- <
- .
- TOK_TABLE_OR_COL
- b
- key
- 25
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/columnstats_partlvl.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/columnstats_partlvl.q.out b/ql/src/test/results/clientpositive/columnstats_partlvl.q.out
index bfdc3b6..4edf39a 100644
--- a/ql/src/test/results/clientpositive/columnstats_partlvl.q.out
+++ b/ql/src/test/results/clientpositive/columnstats_partlvl.q.out
@@ -88,21 +88,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
analyze table Employee_Part partition (employeeSalary=2000.0) compute statistics for columns employeeID
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_ANALYZE
- TOK_TAB
- TOK_TABNAME
- Employee_Part
- TOK_PARTSPEC
- TOK_PARTVAL
- employeeSalary
- 2000.0
- columns
- TOK_TABCOLNAME
- employeeID
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
Stage-1 depends on stages: Stage-0
@@ -287,21 +272,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
analyze table Employee_Part partition (employeeSalary=4000.0) compute statistics for columns employeeID
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_ANALYZE
- TOK_TAB
- TOK_TABNAME
- Employee_Part
- TOK_PARTSPEC
- TOK_PARTVAL
- employeeSalary
- 4000.0
- columns
- TOK_TABCOLNAME
- employeeID
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
Stage-1 depends on stages: Stage-0
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/columnstats_tbllvl.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/columnstats_tbllvl.q.out b/ql/src/test/results/clientpositive/columnstats_tbllvl.q.out
index 96cf8fd..669807d 100644
--- a/ql/src/test/results/clientpositive/columnstats_tbllvl.q.out
+++ b/ql/src/test/results/clientpositive/columnstats_tbllvl.q.out
@@ -89,19 +89,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
analyze table UserVisits_web_text_none compute statistics for columns sourceIP, avgTimeOnSite, adRevenue
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_ANALYZE
- TOK_TAB
- TOK_TABNAME
- UserVisits_web_text_none
- columns
- TOK_TABCOLNAME
- sourceIP
- avgTimeOnSite
- adRevenue
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
Stage-1 depends on stages: Stage-0
@@ -490,20 +477,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
analyze table dummydb.UserVisits_in_dummy_db compute statistics for columns sourceIP, avgTimeOnSite, adRevenue
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_ANALYZE
- TOK_TAB
- TOK_TABNAME
- dummydb
- UserVisits_in_dummy_db
- columns
- TOK_TABCOLNAME
- sourceIP
- avgTimeOnSite
- adRevenue
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
Stage-1 depends on stages: Stage-0
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/combine2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/combine2.q.out b/ql/src/test/results/clientpositive/combine2.q.out
index 8c59816..fb9ef84 100644
--- a/ql/src/test/results/clientpositive/combine2.q.out
+++ b/ql/src/test/results/clientpositive/combine2.q.out
@@ -152,29 +152,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select count(1) from combine2 where value is not null
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- combine2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_WHERE
- TOK_FUNCTION
- TOK_ISNOTNULL
- TOK_TABLE_OR_COL
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/constantPropagateForSubQuery.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/constantPropagateForSubQuery.q.out b/ql/src/test/results/clientpositive/constantPropagateForSubQuery.q.out
index dc2f869..c7a39f5 100644
--- a/ql/src/test/results/clientpositive/constantPropagateForSubQuery.q.out
+++ b/ql/src/test/results/clientpositive/constantPropagateForSubQuery.q.out
@@ -9,68 +9,6 @@ POSTHOOK: query: -- SORT_QUERY_RESULTS
explain extended
select * from (select a.key as ak, a.value as av, b.key as bk, b.value as bv from src a join src1 b where a.key = '429' ) c
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src
- a
- TOK_TABREF
- TOK_TABNAME
- src1
- b
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- ak
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- av
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- key
- bk
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- bv
- TOK_WHERE
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- '429'
- c
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/ctas.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/ctas.q.out b/ql/src/test/results/clientpositive/ctas.q.out
index c9676de..8d6c117 100644
--- a/ql/src/test/results/clientpositive/ctas.q.out
+++ b/ql/src/test/results/clientpositive/ctas.q.out
@@ -694,49 +694,6 @@ PREHOOK: query: explain extended create table nzhang_ctas5 row format delimited
PREHOOK: type: CREATETABLE_AS_SELECT
POSTHOOK: query: explain extended create table nzhang_ctas5 row format delimited fields terminated by ',' lines terminated by '\012' stored as textfile as select key, value from src sort by key, value limit 10
POSTHOOK: type: CREATETABLE_AS_SELECT
-ABSTRACT SYNTAX TREE:
-
-TOK_CREATETABLE
- TOK_TABNAME
- nzhang_ctas5
- TOK_LIKETABLE
- TOK_TABLEROWFORMAT
- TOK_SERDEPROPS
- TOK_TABLEROWFORMATFIELD
- ','
- TOK_TABLEROWFORMATLINES
- '\012'
- TOK_FILEFORMAT_GENERIC
- textfile
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
- TOK_LIMIT
- 10
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/disable_merge_for_bucketing.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/disable_merge_for_bucketing.q.out b/ql/src/test/results/clientpositive/disable_merge_for_bucketing.q.out
index 366bd7a..c4dbf17 100644
--- a/ql/src/test/results/clientpositive/disable_merge_for_bucketing.q.out
+++ b/ql/src/test/results/clientpositive/disable_merge_for_bucketing.q.out
@@ -14,23 +14,6 @@ POSTHOOK: query: explain extended
insert overwrite table bucket2_1
select * from src
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucket2_1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/display_colstats_tbllvl.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/display_colstats_tbllvl.q.out b/ql/src/test/results/clientpositive/display_colstats_tbllvl.q.out
index b79095c..1028c26 100644
--- a/ql/src/test/results/clientpositive/display_colstats_tbllvl.q.out
+++ b/ql/src/test/results/clientpositive/display_colstats_tbllvl.q.out
@@ -105,19 +105,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
analyze table UserVisits_web_text_none compute statistics for columns sourceIP, avgTimeOnSite, adRevenue
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_ANALYZE
- TOK_TAB
- TOK_TABNAME
- UserVisits_web_text_none
- columns
- TOK_TABCOLNAME
- sourceIP
- avgTimeOnSite
- adRevenue
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
Stage-1 depends on stages: Stage-0
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/drop_multi_partitions.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/drop_multi_partitions.q.out b/ql/src/test/results/clientpositive/drop_multi_partitions.q.out
index f723635..5a0f84a 100644
--- a/ql/src/test/results/clientpositive/drop_multi_partitions.q.out
+++ b/ql/src/test/results/clientpositive/drop_multi_partitions.q.out
@@ -46,20 +46,6 @@ PREHOOK: query: explain extended alter table dmp.mp drop partition (b='1')
PREHOOK: type: ALTERTABLE_DROPPARTS
POSTHOOK: query: explain extended alter table dmp.mp drop partition (b='1')
POSTHOOK: type: ALTERTABLE_DROPPARTS
-ABSTRACT SYNTAX TREE:
-
-TOK_ALTERTABLE
- TOK_TABNAME
- dmp
- mp
- TOK_ALTERTABLE_DROPPARTS
- TOK_PARTSPEC
- TOK_PARTVAL
- b
- =
- '1'
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/dynamic_partition_skip_default.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/dynamic_partition_skip_default.q.out b/ql/src/test/results/clientpositive/dynamic_partition_skip_default.q.out
index e0168b3..fcd1b93 100644
--- a/ql/src/test/results/clientpositive/dynamic_partition_skip_default.q.out
+++ b/ql/src/test/results/clientpositive/dynamic_partition_skip_default.q.out
@@ -46,33 +46,6 @@ PREHOOK: query: explain extended select intcol from dynamic_part_table where par
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select intcol from dynamic_part_table where partcol1='1' and partcol2='1'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- dynamic_part_table
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- intcol
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- partcol1
- '1'
- =
- TOK_TABLE_OR_COL
- partcol2
- '1'
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -140,33 +113,6 @@ PREHOOK: query: explain extended select intcol from dynamic_part_table where par
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select intcol from dynamic_part_table where partcol1='1' and partcol2='1'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- dynamic_part_table
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- intcol
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- partcol1
- '1'
- =
- TOK_TABLE_OR_COL
- partcol2
- '1'
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -234,43 +180,6 @@ PREHOOK: query: explain extended select intcol from dynamic_part_table where (pa
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select intcol from dynamic_part_table where (partcol1='1' and partcol2='1')or (partcol1='1' and partcol2='__HIVE_DEFAULT_PARTITION__')
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- dynamic_part_table
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- intcol
- TOK_WHERE
- or
- and
- =
- TOK_TABLE_OR_COL
- partcol1
- '1'
- =
- TOK_TABLE_OR_COL
- partcol2
- '1'
- and
- =
- TOK_TABLE_OR_COL
- partcol1
- '1'
- =
- TOK_TABLE_OR_COL
- partcol2
- '__HIVE_DEFAULT_PARTITION__'
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/encrypted/encryption_join_unencrypted_tbl.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/encrypted/encryption_join_unencrypted_tbl.q.out b/ql/src/test/results/clientpositive/encrypted/encryption_join_unencrypted_tbl.q.out
index ecf9861..02ffbfb 100644
--- a/ql/src/test/results/clientpositive/encrypted/encryption_join_unencrypted_tbl.q.out
+++ b/ql/src/test/results/clientpositive/encrypted/encryption_join_unencrypted_tbl.q.out
@@ -540,38 +540,6 @@ PREHOOK: query: EXPLAIN EXTENDED SELECT * FROM src t1 JOIN encrypted_table t2 WH
PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT * FROM src t1 JOIN encrypted_table t2 WHERE t1.key = t2.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src
- t1
- TOK_TABREF
- TOK_TABNAME
- encrypted_table
- t2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- =
- .
- TOK_TABLE_OR_COL
- t1
- key
- .
- TOK_TABLE_OR_COL
- t2
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/encrypted/encryption_join_with_different_encryption_keys.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/encrypted/encryption_join_with_different_encryption_keys.q.out b/ql/src/test/results/clientpositive/encrypted/encryption_join_with_different_encryption_keys.q.out
index d46aaea..7a91538 100644
--- a/ql/src/test/results/clientpositive/encrypted/encryption_join_with_different_encryption_keys.q.out
+++ b/ql/src/test/results/clientpositive/encrypted/encryption_join_with_different_encryption_keys.q.out
@@ -60,38 +60,6 @@ PREHOOK: query: EXPLAIN EXTENDED SELECT * FROM table_key_1 t1 JOIN table_key_2 t
PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT * FROM table_key_1 t1 JOIN table_key_2 t2 WHERE (t1.key = t2.key)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- table_key_1
- t1
- TOK_TABREF
- TOK_TABNAME
- table_key_2
- t2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- =
- .
- TOK_TABLE_OR_COL
- t1
- key
- .
- TOK_TABLE_OR_COL
- t2
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/explain_logical.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/explain_logical.q.out b/ql/src/test/results/clientpositive/explain_logical.q.out
index dc78480..5b8a422 100644
--- a/ql/src/test/results/clientpositive/explain_logical.q.out
+++ b/ql/src/test/results/clientpositive/explain_logical.q.out
@@ -70,35 +70,6 @@ POSTHOOK: query: -- Simple select queries, union queries and join queries
EXPLAIN LOGICAL
SELECT key, count(1) FROM srcpart WHERE ds IS NOT NULL GROUP BY key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_WHERE
- TOK_FUNCTION
- TOK_ISNOTNULL
- TOK_TABLE_OR_COL
- ds
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
-
-
LOGICAL PLAN:
$hdt$_0:srcpart
TableScan (TS_0)
@@ -140,45 +111,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN LOGICAL
SELECT key, count(1) FROM (SELECT key, value FROM src) subq1 GROUP BY key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- subq1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
-
-
LOGICAL PLAN:
$hdt$_0:src
TableScan (TS_0)
@@ -224,59 +156,6 @@ POSTHOOK: query: EXPLAIN LOGICAL
SELECT key, value FROM src UNION ALL SELECT key, value FROM srcpart WHERE ds IS NOT NULL
) S1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- TOK_FUNCTION
- TOK_ISNOTNULL
- TOK_TABLE_OR_COL
- ds
- S1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
LOGICAL PLAN:
null-subquery1:$hdt$_0-subquery1:src
TableScan (TS_0)
@@ -312,50 +191,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN LOGICAL
SELECT S1.key, S2.value FROM src S1 JOIN srcpart S2 ON S1.key = S2.key WHERE ds IS NOT NULL
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src
- S1
- TOK_TABREF
- TOK_TABNAME
- srcpart
- S2
- =
- .
- TOK_TABLE_OR_COL
- S1
- key
- .
- TOK_TABLE_OR_COL
- S2
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- S1
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- S2
- value
- TOK_WHERE
- TOK_FUNCTION
- TOK_ISNOTNULL
- TOK_TABLE_OR_COL
- ds
-
-
LOGICAL PLAN:
$hdt$_0:s1
TableScan (TS_0)
@@ -424,22 +259,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- With views
EXPLAIN LOGICAL SELECT * FROM V1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- V1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
LOGICAL PLAN:
src
TableScan (TS_0)
@@ -455,22 +274,6 @@ PREHOOK: query: EXPLAIN LOGICAL SELECT * FROM V2
PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN LOGICAL SELECT * FROM V2
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- V2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
LOGICAL PLAN:
srcpart
TableScan (TS_0)
@@ -486,22 +289,6 @@ PREHOOK: query: EXPLAIN LOGICAL SELECT * FROM V3
PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN LOGICAL SELECT * FROM V3
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- V3
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
LOGICAL PLAN:
$hdt$_0:srcpart
TableScan (TS_0)
@@ -568,22 +355,6 @@ PREHOOK: query: EXPLAIN LOGICAL SELECT * FROM V4
PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN LOGICAL SELECT * FROM V4
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- V4
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
LOGICAL PLAN:
$hdt$_0:srcpart
TableScan (TS_0)
@@ -695,22 +466,6 @@ PREHOOK: query: EXPLAIN LOGICAL SELECT * FROM V5
PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN LOGICAL SELECT * FROM V5
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- V5
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
LOGICAL PLAN:
srcpart
TableScan (TS_0)
@@ -729,77 +484,6 @@ PREHOOK: query: EXPLAIN LOGICAL SELECT s1.key, s1.cnt, s2.value FROM (SELECT key
PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN LOGICAL SELECT s1.key, s1.cnt, s2.value FROM (SELECT key, count(value) as cnt FROM src GROUP BY key) s1 JOIN src s2 ON (s1.key = s2.key) ORDER BY s1.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- TOK_TABLE_OR_COL
- value
- cnt
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- s1
- TOK_TABREF
- TOK_TABNAME
- src
- s2
- =
- .
- TOK_TABLE_OR_COL
- s1
- key
- .
- TOK_TABLE_OR_COL
- s2
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- s1
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- s1
- cnt
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- s2
- value
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- s1
- key
-
-
LOGICAL PLAN:
$hdt$_0:src
TableScan (TS_0)
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/extrapolate_part_stats_full.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/extrapolate_part_stats_full.q.out b/ql/src/test/results/clientpositive/extrapolate_part_stats_full.q.out
index a30c356..fa2c77e 100644
--- a/ql/src/test/results/clientpositive/extrapolate_part_stats_full.q.out
+++ b/ql/src/test/results/clientpositive/extrapolate_part_stats_full.q.out
@@ -90,23 +90,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- basicStatState: COMPLETE colStatState: PARTIAL
explain extended select state from loc_orc_1d
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- loc_orc_1d
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- state
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -220,26 +203,6 @@ POSTHOOK: query: -- column statistics for __HIVE_DEFAULT_PARTITION__ is not supp
-- basicStatState: COMPLETE colStatState: PARTIAL
explain extended select state,locid from loc_orc_1d
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- loc_orc_1d
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- state
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- locid
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -422,23 +385,6 @@ PREHOOK: query: explain extended select state from loc_orc_2d
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select state from loc_orc_2d
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- loc_orc_2d
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- state
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -638,26 +584,6 @@ PREHOOK: query: explain extended select state,locid from loc_orc_2d
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select state,locid from loc_orc_2d
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- loc_orc_2d
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- state
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- locid
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/extrapolate_part_stats_partial.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/extrapolate_part_stats_partial.q.out b/ql/src/test/results/clientpositive/extrapolate_part_stats_partial.q.out
index 4e589b8..68652e9 100644
--- a/ql/src/test/results/clientpositive/extrapolate_part_stats_partial.q.out
+++ b/ql/src/test/results/clientpositive/extrapolate_part_stats_partial.q.out
@@ -107,23 +107,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- basicStatState: COMPLETE colStatState: PARTIAL
explain extended select state from loc_orc_1d
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- loc_orc_1d
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- state
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -323,26 +306,6 @@ POSTHOOK: query: -- column statistics for __HIVE_DEFAULT_PARTITION__ is not supp
-- basicStatState: COMPLETE colStatState: PARTIAL
explain extended select state,locid from loc_orc_1d
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- loc_orc_1d
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- state
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- locid
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -558,23 +521,6 @@ PREHOOK: query: explain extended select state from loc_orc_1d
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select state from loc_orc_1d
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- loc_orc_1d
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- state
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -770,26 +716,6 @@ PREHOOK: query: explain extended select state,locid from loc_orc_1d
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select state,locid from loc_orc_1d
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- loc_orc_1d
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- state
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- locid
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -1059,23 +985,6 @@ PREHOOK: query: explain extended select state from loc_orc_2d
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select state from loc_orc_2d
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- loc_orc_2d
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- state
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -1583,26 +1492,6 @@ PREHOOK: query: explain extended select state,locid from loc_orc_2d
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select state,locid from loc_orc_2d
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- loc_orc_2d
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- state
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- locid
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/extrapolate_part_stats_partial_ndv.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/extrapolate_part_stats_partial_ndv.q.out b/ql/src/test/results/clientpositive/extrapolate_part_stats_partial_ndv.q.out
index 3185f70..e82136f 100644
--- a/ql/src/test/results/clientpositive/extrapolate_part_stats_partial_ndv.q.out
+++ b/ql/src/test/results/clientpositive/extrapolate_part_stats_partial_ndv.q.out
@@ -175,32 +175,6 @@ PREHOOK: query: explain extended select state,locid,cnt,zip from loc_orc_1d
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select state,locid,cnt,zip from loc_orc_1d
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- loc_orc_1d
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- state
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- locid
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- cnt
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- zip
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -488,32 +462,6 @@ PREHOOK: query: explain extended select state,locid,cnt,zip from loc_orc_1d
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select state,locid,cnt,zip from loc_orc_1d
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- loc_orc_1d
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- state
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- locid
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- cnt
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- zip
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -854,32 +802,6 @@ PREHOOK: query: explain extended select state,locid,cnt,zip from loc_orc_2d
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select state,locid,cnt,zip from loc_orc_2d
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- loc_orc_2d
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- state
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- locid
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- cnt
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- zip
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/filter_join_breaktask.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/filter_join_breaktask.q.out b/ql/src/test/results/clientpositive/filter_join_breaktask.q.out
index 018fd5d..6c21260 100644
--- a/ql/src/test/results/clientpositive/filter_join_breaktask.q.out
+++ b/ql/src/test/results/clientpositive/filter_join_breaktask.q.out
@@ -32,108 +32,6 @@ SELECT f.key, g.value
FROM filter_join_breaktask f JOIN filter_join_breaktask m ON( f.key = m.key AND f.ds='2008-04-08' AND m.ds='2008-04-08' AND f.key is not null)
JOIN filter_join_breaktask g ON(g.value = m.value AND g.ds='2008-04-08' AND m.ds='2008-04-08' AND m.value is not null AND m.value !='')
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- filter_join_breaktask
- f
- TOK_TABREF
- TOK_TABNAME
- filter_join_breaktask
- m
- AND
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- f
- key
- .
- TOK_TABLE_OR_COL
- m
- key
- =
- .
- TOK_TABLE_OR_COL
- f
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- m
- ds
- '2008-04-08'
- TOK_FUNCTION
- TOK_ISNOTNULL
- .
- TOK_TABLE_OR_COL
- f
- key
- TOK_TABREF
- TOK_TABNAME
- filter_join_breaktask
- g
- AND
- AND
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- g
- value
- .
- TOK_TABLE_OR_COL
- m
- value
- =
- .
- TOK_TABLE_OR_COL
- g
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- m
- ds
- '2008-04-08'
- TOK_FUNCTION
- TOK_ISNOTNULL
- .
- TOK_TABLE_OR_COL
- m
- value
- !=
- .
- TOK_TABLE_OR_COL
- m
- value
- ''
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- f
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- g
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/fouter_join_ppr.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/fouter_join_ppr.q.out b/ql/src/test/results/clientpositive/fouter_join_ppr.q.out
index e5ae828..45dbc36 100644
--- a/ql/src/test/results/clientpositive/fouter_join_ppr.q.out
+++ b/ql/src/test/results/clientpositive/fouter_join_ppr.q.out
@@ -20,90 +20,6 @@ EXPLAIN EXTENDED
SELECT a.key, a.value, b.key, b.value
WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_FULLOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- src
- a
- TOK_TABREF
- TOK_TABNAME
- srcpart
- b
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- '2008-04-08'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- AND
- AND
- AND
- >
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 20
- >
- .
- TOK_TABLE_OR_COL
- b
- key
- 15
- <
- .
- TOK_TABLE_OR_COL
- b
- key
- 25
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -491,90 +407,6 @@ POSTHOOK: query: EXPLAIN EXTENDED
SELECT a.key, a.value, b.key, b.value
WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_FULLOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- srcpart
- a
- TOK_TABREF
- TOK_TABNAME
- src
- b
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '2008-04-08'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- AND
- AND
- AND
- >
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 20
- >
- .
- TOK_TABLE_OR_COL
- b
- key
- 15
- <
- .
- TOK_TABLE_OR_COL
- b
- key
- 25
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -966,90 +798,6 @@ POSTHOOK: query: EXPLAIN EXTENDED
SELECT a.key, a.value, b.key, b.value
WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 AND b.ds = '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_FULLOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- src
- a
- TOK_TABREF
- TOK_TABNAME
- srcpart
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- AND
- AND
- AND
- AND
- >
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 20
- >
- .
- TOK_TABLE_OR_COL
- b
- key
- 15
- <
- .
- TOK_TABLE_OR_COL
- b
- key
- 25
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1342,90 +1090,6 @@ POSTHOOK: query: EXPLAIN EXTENDED
SELECT a.key, a.value, b.key, b.value
WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 AND a.ds = '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_FULLOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- srcpart
- a
- TOK_TABREF
- TOK_TABNAME
- src
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- AND
- AND
- AND
- AND
- >
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 20
- >
- .
- TOK_TABLE_OR_COL
- b
- key
- 15
- <
- .
- TOK_TABLE_OR_COL
- b
- key
- 25
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/groupby_map_ppr.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby_map_ppr.q.out b/ql/src/test/results/clientpositive/groupby_map_ppr.q.out
index 556995c..3d07b0d 100644
--- a/ql/src/test/results/clientpositive/groupby_map_ppr.q.out
+++ b/ql/src/test/results/clientpositive/groupby_map_ppr.q.out
@@ -24,77 +24,6 @@ SELECT substr(src.key,1,1), count(DISTINCT substr(src.value,5)), concat(substr(s
WHERE src.ds = '2008-04-08'
GROUP BY substr(src.key,1,1)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest1
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- key
- 1
- 1
- TOK_SELEXPR
- TOK_FUNCTIONDI
- count
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- value
- 5
- TOK_SELEXPR
- TOK_FUNCTION
- concat
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- key
- 1
- 1
- TOK_FUNCTION
- sum
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- value
- 5
- TOK_WHERE
- =
- .
- TOK_TABLE_OR_COL
- src
- ds
- '2008-04-08'
- TOK_GROUPBY
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- key
- 1
- 1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/groupby_map_ppr_multi_distinct.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby_map_ppr_multi_distinct.q.out b/ql/src/test/results/clientpositive/groupby_map_ppr_multi_distinct.q.out
index 393e6fa..6689225 100644
--- a/ql/src/test/results/clientpositive/groupby_map_ppr_multi_distinct.q.out
+++ b/ql/src/test/results/clientpositive/groupby_map_ppr_multi_distinct.q.out
@@ -24,94 +24,6 @@ SELECT substr(src.key,1,1), count(DISTINCT substr(src.value,5)), concat(substr(s
WHERE src.ds = '2008-04-08'
GROUP BY substr(src.key,1,1)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest1
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- key
- 1
- 1
- TOK_SELEXPR
- TOK_FUNCTIONDI
- count
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- value
- 5
- TOK_SELEXPR
- TOK_FUNCTION
- concat
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- key
- 1
- 1
- TOK_FUNCTION
- sum
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- value
- 5
- TOK_SELEXPR
- TOK_FUNCTIONDI
- sum
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- value
- 5
- TOK_SELEXPR
- TOK_FUNCTIONDI
- count
- .
- TOK_TABLE_OR_COL
- src
- value
- TOK_WHERE
- =
- .
- TOK_TABLE_OR_COL
- src
- ds
- '2008-04-08'
- TOK_GROUPBY
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- key
- 1
- 1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/groupby_ppr.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby_ppr.q.out b/ql/src/test/results/clientpositive/groupby_ppr.q.out
index 2e160b3..62fffbe 100644
--- a/ql/src/test/results/clientpositive/groupby_ppr.q.out
+++ b/ql/src/test/results/clientpositive/groupby_ppr.q.out
@@ -24,77 +24,6 @@ SELECT substr(src.key,1,1), count(DISTINCT substr(src.value,5)), concat(substr(s
WHERE src.ds = '2008-04-08'
GROUP BY substr(src.key,1,1)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest1
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- key
- 1
- 1
- TOK_SELEXPR
- TOK_FUNCTIONDI
- count
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- value
- 5
- TOK_SELEXPR
- TOK_FUNCTION
- concat
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- key
- 1
- 1
- TOK_FUNCTION
- sum
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- value
- 5
- TOK_WHERE
- =
- .
- TOK_TABLE_OR_COL
- src
- ds
- '2008-04-08'
- TOK_GROUPBY
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- key
- 1
- 1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/groupby_ppr_multi_distinct.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby_ppr_multi_distinct.q.out b/ql/src/test/results/clientpositive/groupby_ppr_multi_distinct.q.out
index 93fbc0e..2408056 100644
--- a/ql/src/test/results/clientpositive/groupby_ppr_multi_distinct.q.out
+++ b/ql/src/test/results/clientpositive/groupby_ppr_multi_distinct.q.out
@@ -24,94 +24,6 @@ SELECT substr(src.key,1,1), count(DISTINCT substr(src.value,5)), concat(substr(s
WHERE src.ds = '2008-04-08'
GROUP BY substr(src.key,1,1)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest1
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- key
- 1
- 1
- TOK_SELEXPR
- TOK_FUNCTIONDI
- count
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- value
- 5
- TOK_SELEXPR
- TOK_FUNCTION
- concat
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- key
- 1
- 1
- TOK_FUNCTION
- sum
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- value
- 5
- TOK_SELEXPR
- TOK_FUNCTIONDI
- sum
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- value
- 5
- TOK_SELEXPR
- TOK_FUNCTIONDI
- count
- .
- TOK_TABLE_OR_COL
- src
- value
- TOK_WHERE
- =
- .
- TOK_TABLE_OR_COL
- src
- ds
- '2008-04-08'
- TOK_GROUPBY
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- key
- 1
- 1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
[47/50] [abbrv] hive git commit: HIVE-12159: Create vectorized
readers for the complex types (Owen O'Malley,
reviewed by Matt McCline and Prasanth)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestRecordReaderImpl.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestRecordReaderImpl.java b/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestRecordReaderImpl.java
index cc7182f..fe87794 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestRecordReaderImpl.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestRecordReaderImpl.java
@@ -28,11 +28,11 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Timestamp;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
import org.apache.hadoop.conf.Configuration;
@@ -44,6 +44,7 @@ import org.apache.hadoop.fs.PositionedReadable;
import org.apache.hadoop.fs.Seekable;
import org.apache.hadoop.hive.common.io.DiskRangeList;
import org.apache.hadoop.hive.common.type.HiveDecimal;
+import org.apache.hive.common.util.HiveTestUtils;
import org.apache.orc.BloomFilterIO;
import org.apache.hadoop.hive.ql.io.orc.RecordReaderImpl.Location;
import org.apache.hadoop.hive.ql.io.sarg.PredicateLeaf;
@@ -53,17 +54,12 @@ import org.apache.hadoop.hive.serde2.io.DateWritable;
import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable;
import org.apache.hadoop.io.DataOutputBuffer;
import org.apache.orc.ColumnStatistics;
-import org.apache.orc.CompressionCodec;
import org.apache.orc.DataReader;
-import org.apache.orc.DataReaderFactory;
-import org.apache.orc.MetadataReaderFactory;
import org.apache.orc.StripeInformation;
+import org.apache.orc.TypeDescription;
import org.apache.orc.impl.ColumnStatisticsImpl;
import org.apache.orc.OrcProto;
-import org.apache.orc.impl.DataReaderProperties;
-import org.apache.orc.impl.MetadataReader;
-import org.apache.orc.impl.MetadataReaderProperties;
import org.junit.Test;
import org.mockito.MockSettings;
import org.mockito.Mockito;
@@ -1642,51 +1638,42 @@ public class TestRecordReaderImpl {
@Test
public void testClose() throws Exception {
DataReader mockedDataReader = mock(DataReader.class);
- MetadataReader mockedMetadataReader = mock(MetadataReader.class);
-
- closeMockedRecordReader(mockedDataReader, mockedMetadataReader);
+ closeMockedRecordReader(mockedDataReader);
verify(mockedDataReader, atLeastOnce()).close();
- verify(mockedMetadataReader, atLeastOnce()).close();
}
@Test
public void testCloseWithException() throws Exception {
DataReader mockedDataReader = mock(DataReader.class);
- MetadataReader mockedMetadataReader = mock(MetadataReader.class);
doThrow(IOException.class).when(mockedDataReader).close();
try {
- closeMockedRecordReader(mockedDataReader, mockedMetadataReader);
+ closeMockedRecordReader(mockedDataReader);
fail("Exception should have been thrown when Record Reader was closed");
} catch (IOException expected) {
}
- verify(mockedMetadataReader, atLeastOnce()).close();
verify(mockedDataReader, atLeastOnce()).close();
}
- private void closeMockedRecordReader(DataReader mockedDataReader,
- MetadataReader mockedMetadataReader) throws IOException {
- DataReaderFactory mockedDataReaderFactory = mock(DataReaderFactory.class);
- MetadataReaderFactory mockedMetadataReaderFactory = mock(MetadataReaderFactory.class);
- when(mockedDataReaderFactory.create(any(DataReaderProperties.class))).thenReturn(mockedDataReader);
- when(mockedMetadataReaderFactory.create(any(MetadataReaderProperties.class))).thenReturn(mockedMetadataReader);
-
- RecordReader recordReader = RecordReaderImpl.builder()
- .withBufferSize(0)
- .withCodec(mock(CompressionCodec.class))
- .withConf(mock(Configuration.class))
- .withFileSystem(mock(FileSystem.class))
- .withOptions(mock(Reader.Options.class))
- .withPath(mock(Path.class))
- .withStrideRate(0)
- .withStripes(Collections.singletonList(mock(StripeInformation.class)))
- .withTypes(Collections.singletonList(OrcProto.Type.getDefaultInstance()))
- .withDataReaderFactory(mockedDataReaderFactory)
- .withMetadataReaderFactory(mockedMetadataReaderFactory)
- .build();
+ Path workDir = new Path(System.getProperty("test.tmp.dir",
+ "target" + File.separator + "test" + File.separator + "tmp"));
+
+ private void closeMockedRecordReader(DataReader mockedDataReader) throws IOException {
+ Configuration conf = new Configuration();
+ FileSystem fs = FileSystem.getLocal(conf).getRaw();
+ fs.delete(workDir, true);
+ fs.mkdirs(workDir);
+ Path path = new Path(workDir, "empty.orc");
+ Writer writer = OrcFile.createWriter(path, OrcFile.writerOptions(conf)
+ .setSchema(TypeDescription.createLong()));
+ writer.close();
+ Reader reader = OrcFile.createReader(path, OrcFile.readerOptions(conf));
+
+ RecordReader recordReader = reader.rowsOptions(new Reader.Options()
+ .dataReader(mockedDataReader));
recordReader.close();
}
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestTypeDescription.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestTypeDescription.java b/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestTypeDescription.java
index 2a82092..96af65a 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestTypeDescription.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestTypeDescription.java
@@ -51,11 +51,11 @@ public class TestTypeDescription {
.addField("f4", TypeDescription.createDouble())
.addField("f5", TypeDescription.createBoolean()))
.addField("f6", TypeDescription.createChar().withMaxLength(100));
- assertEquals("struct<f1:union<tinyint,decimal(20,10)>,f2:struct<f3:date,f4:double,f5:boolean>,f6:char(100)>",
+ assertEquals("struct<f1:uniontype<tinyint,decimal(20,10)>,f2:struct<f3:date,f4:double,f5:boolean>,f6:char(100)>",
struct.toString());
assertEquals(
"{\"category\": \"struct\", \"id\": 0, \"max\": 8, \"fields\": [\n" +
- " \"f1\": {\"category\": \"union\", \"id\": 1, \"max\": 3, \"children\": [\n" +
+ " \"f1\": {\"category\": \"uniontype\", \"id\": 1, \"max\": 3, \"children\": [\n" +
" {\"category\": \"tinyint\", \"id\": 2, \"max\": 2},\n" +
" {\"category\": \"decimal\", \"id\": 3, \"max\": 3, \"precision\": 20, \"scale\": 10}]},\n" +
" \"f2\": {\"category\": \"struct\", \"id\": 4, \"max\": 7, \"fields\": [\n" +
[15/50] [abbrv] hive git commit: HIVE-13533: Remove AST dump (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/union24.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/union24.q.out b/ql/src/test/results/clientpositive/spark/union24.q.out
index 3bdc503..5032630 100644
--- a/ql/src/test/results/clientpositive/spark/union24.q.out
+++ b/ql/src/test/results/clientpositive/spark/union24.q.out
@@ -72,121 +72,6 @@ select s.key, s.count from (
select key, count(1) as count from src5 where key < 10 group by key
)s
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_UNIONALL
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src3
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src4
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src5
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- s
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- s
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -641,117 +526,6 @@ select s.key, s.count from (
select a.key as key, b.count as count from src4 a join src5 b on a.key=b.key where a.key < 10
)s
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src3
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src4
- a
- TOK_TABREF
- TOK_TABNAME
- src5
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- count
- count
- TOK_WHERE
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- s
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- s
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1179,121 +953,6 @@ select s.key, s.count from (
select a.key as key, count(1) as count from src4 a join src5 b on a.key=b.key where a.key < 10 group by a.key
)s
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src3
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src4
- a
- TOK_TABREF
- TOK_TABNAME
- src5
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- count
- TOK_WHERE
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- TOK_GROUPBY
- .
- TOK_TABLE_OR_COL
- a
- key
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- s
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- s
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/union_ppr.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/union_ppr.q.out b/ql/src/test/results/clientpositive/spark/union_ppr.q.out
index 1d2120a..8f7b1f2 100644
--- a/ql/src/test/results/clientpositive/spark/union_ppr.q.out
+++ b/ql/src/test/results/clientpositive/spark/union_ppr.q.out
@@ -20,98 +20,6 @@ SELECT * FROM (
WHERE A.ds = '2008-04-08'
SORT BY A.key, A.value, A.ds, A.hr
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- SRCPART
- X
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- X
- TOK_WHERE
- <
- .
- TOK_TABLE_OR_COL
- X
- key
- 100
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- SRCPART
- Y
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- Y
- TOK_WHERE
- <
- .
- TOK_TABLE_OR_COL
- Y
- key
- 100
- A
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- =
- .
- TOK_TABLE_OR_COL
- A
- ds
- '2008-04-08'
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- A
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- A
- value
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- A
- ds
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- A
- hr
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/vectorized_ptf.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/vectorized_ptf.q.out b/ql/src/test/results/clientpositive/spark/vectorized_ptf.q.out
index f0a4444..7b56585 100644
--- a/ql/src/test/results/clientpositive/spark/vectorized_ptf.q.out
+++ b/ql/src/test/results/clientpositive/spark/vectorized_ptf.q.out
@@ -142,88 +142,6 @@ from noop(on part_orc
order by p_name
)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_retailprice
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -471,94 +389,6 @@ from noop (on (select p1.* from part_orc p1 join part_orc p2 on p1.p_partkey = p
distribute by j.p_mfgr
sort by j.p_name)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- part_orc
- p1
- TOK_TABREF
- TOK_TABNAME
- part_orc
- p2
- =
- .
- TOK_TABLE_OR_COL
- p1
- p_partkey
- .
- TOK_TABLE_OR_COL
- p2
- p_partkey
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- p1
- j
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- .
- TOK_TABLE_OR_COL
- j
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- j
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- -
- TOK_TABLE_OR_COL
- p_size
- TOK_FUNCTION
- lag
- TOK_TABLE_OR_COL
- p_size
- 1
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- deltaSz
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -880,40 +710,6 @@ from noop(on part_orc
partition by p_mfgr
order by p_name)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1108,89 +904,6 @@ from noop(on part_orc
order by p_name
) abc
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- abc
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_retailprice
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1444,93 +1157,6 @@ from noop(on part_orc
order by p_name
)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- -
- TOK_TABLE_OR_COL
- p_size
- TOK_FUNCTION
- lag
- TOK_TABLE_OR_COL
- p_size
- 1
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- deltaSz
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1787,100 +1413,6 @@ from noop(on part_orc
)
group by p_mfgr, p_name, p_size
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- -
- TOK_TABLE_OR_COL
- p_size
- TOK_FUNCTION
- lag
- TOK_TABLE_OR_COL
- p_size
- 1
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- deltaSz
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_TABLE_OR_COL
- p_size
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2139,50 +1671,6 @@ partition by p_mfgr
order by p_name
) abc join part_orc p1 on abc.p_partkey = p1.p_partkey
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_PTBLFUNCTION
- noop
- abc
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_TABREF
- TOK_TABNAME
- part_orc
- p1
- =
- .
- TOK_TABLE_OR_COL
- abc
- p_partkey
- .
- TOK_TABLE_OR_COL
- p1
- p_partkey
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- abc
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2464,50 +1952,6 @@ partition by p_mfgr
order by p_name
) abc on abc.p_partkey = p1.p_partkey
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- part_orc
- p1
- TOK_PTBLFUNCTION
- noop
- abc
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- =
- .
- TOK_TABLE_OR_COL
- abc
- p_partkey
- .
- TOK_TABLE_OR_COL
- p1
- p_partkey
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- abc
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2793,62 +2237,6 @@ from noopwithmap(on part_orc
partition by p_mfgr
order by p_name, p_size desc)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noopwithmap
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_TABSORTCOLNAMEDESC
- TOK_NULLS_LAST
- TOK_TABLE_OR_COL
- p_size
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_TABSORTCOLNAMEDESC
- TOK_NULLS_LAST
- TOK_TABLE_OR_COL
- p_size
- r
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -3095,88 +2483,6 @@ from noopwithmap(on part_orc
partition by p_mfgr
order by p_name)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noopwithmap
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_retailprice
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -3442,88 +2748,6 @@ from noop(on part_orc
partition by p_mfgr
order by p_name)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_retailprice
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -3775,96 +2999,6 @@ partition by p_mfgr
order by p_mfgr, p_name
)))
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noopwithmap
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_retailprice
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -4186,107 +3320,6 @@ order by p_name)
window w1 as (partition by p_mfgr order by p_name rows between 2 preceding and 2 following)
) sub1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_FUNCTION
- count
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- cd
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_retailprice
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_retailprice
- TOK_WINDOWSPEC
- w1
- s1
- window
- TOK_WINDOWDEF
- w1
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- 2
- following
- 2
- sub1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- sub1
- cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- sub1
- s1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -4542,182 +3575,6 @@ partition by p_mfgr
order by p_name
) abc join part_orc p1 on abc.p_partkey = p1.p_partkey
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_PTBLFUNCTION
- noop
- abc
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_TABREF
- TOK_TABNAME
- part_orc
- p1
- =
- .
- TOK_TABLE_OR_COL
- abc
- p_partkey
- .
- TOK_TABLE_OR_COL
- p1
- p_partkey
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- abc
- p_mfgr
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- abc
- p_name
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- .
- TOK_TABLE_OR_COL
- abc
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- abc
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- .
- TOK_TABLE_OR_COL
- abc
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- abc
- p_name
- dr
- TOK_SELEXPR
- TOK_FUNCTION
- count
- .
- TOK_TABLE_OR_COL
- abc
- p_name
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- .
- TOK_TABLE_OR_COL
- abc
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- abc
- p_name
- cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- abc
- p_retailprice
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- .
- TOK_TABLE_OR_COL
- abc
- p_retailprice
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- .
- TOK_TABLE_OR_COL
- abc
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- abc
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s1
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- abc
- p_size
- TOK_SELEXPR
- -
- .
- TOK_TABLE_OR_COL
- abc
- p_size
- TOK_FUNCTION
- lag
- .
- TOK_TABLE_OR_COL
- abc
- p_size
- 1
- .
- TOK_TABLE_OR_COL
- abc
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- .
- TOK_TABLE_OR_COL
- abc
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- abc
- p_name
- deltaSz
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -5075,40 +3932,6 @@ from noop(on part_orc
partition by p_mfgr
order by p_name)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECTDI
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -5337,65 +4160,6 @@ partition by p_mfgr
order by p_mfgr)
window w1 as ( partition by p_mfgr order by p_brand rows between 2 preceding and current row)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- mfgr_price_view
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_brand
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- s
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- s
- TOK_WINDOWSPEC
- w1
- s1
- window
- TOK_WINDOWDEF
- w1
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_brand
- TOK_WINDOWRANGE
- preceding
- 2
- current
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -5689,212 +4453,6 @@ cume_dist() over (distribute by p_mfgr sort by p_mfgr, p_name) as cud,
first_value(p_size, true) over w1 as fv1
window w1 as (distribute by p_mfgr sort by p_mfgr, p_name rows between 2 preceding and 2 following)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- part_4
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_retailprice
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- part_5
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- round
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWVALUES
- preceding
- 5
- current
- 1
- s2
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_FUNCTION
- cume_dist
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- cud
- TOK_SELEXPR
- TOK_FUNCTION
- first_value
- TOK_TABLE_OR_COL
- p_size
- true
- TOK_WINDOWSPEC
- w1
- fv1
- window
- TOK_WINDOWDEF
- w1
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- 2
- following
- 2
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-0 depends on stages: Stage-2
@@ -6432,115 +4990,6 @@ from noop(on
partition by p_mfgr,p_name
order by p_mfgr,p_name)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noopwithmap
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -6891,118 +5340,6 @@ from noop(on
partition by p_mfgr
order by p_mfgr )
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -7349,105 +5686,6 @@ from noop(on
partition by p_mfgr
order by p_mfgr))
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- s1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -7770,115 +6008,6 @@ from noopwithmap(on
partition by p_mfgr,p_name
order by p_mfgr,p_name)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noopwithmap
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -8244,151 +6373,6 @@ from noop(on
order by p_mfgr
))
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noopwithmap
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s1
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s2
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -8724,118 +6708,6 @@ from noopwithmap(on
order by p_mfgr, p_name)
))
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noopwithmap
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWVALUES
- preceding
- unbounded
- current
- s1
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWVALUES
- preceding
- unbounded
- current
- s2
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/stats0.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/stats0.q.out b/ql/src/test/results/clientpositive/stats0.q.out
index 99326fc..90a9a70 100644
--- a/ql/src/test/results/clientpositive/stats0.q.out
+++ b/ql/src/test/results/clientpositive/stats0.q.out
@@ -14,23 +14,6 @@ POSTHOOK: query: explain extended
insert overwrite table stats_non_partitioned
select * from src
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- stats_non_partitioned
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1329,23 +1312,6 @@ POSTHOOK: query: explain extended
insert overwrite table stats_non_partitioned
select * from src
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- stats_non_partitioned
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/stats11.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/stats11.q.out b/ql/src/test/results/clientpositive/stats11.q.out
index 7598dc0..8ca5b27 100644
--- a/ql/src/test/results/clientpositive/stats11.q.out
+++ b/ql/src/test/results/clientpositive/stats11.q.out
@@ -294,63 +294,6 @@ select /*+mapjoin(b)*/ a.key, a.value, b.value
from srcbucket_mapjoin a join srcbucket_mapjoin_part b
on a.key=b.key where b.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
-
-
STAGE DEPENDENCIES:
Stage-9 is a root stage
Stage-1 depends on stages: Stage-9
@@ -826,63 +769,6 @@ select /*+mapjoin(a)*/ a.key, a.value, b.value
from srcbucket_mapjoin a join srcbucket_mapjoin_part b
on a.key=b.key where b.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
-
-
STAGE DEPENDENCIES:
Stage-9 is a root stage
Stage-1 depends on stages: Stage-9
[13/50] [abbrv] hive git commit: HIVE-13533: Remove AST dump (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/tez/tez_join_result_complex.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/tez_join_result_complex.q.out b/ql/src/test/results/clientpositive/tez/tez_join_result_complex.q.out
index 180bcc6..3e3b08c 100644
--- a/ql/src/test/results/clientpositive/tez/tez_join_result_complex.q.out
+++ b/ql/src/test/results/clientpositive/tez/tez_join_result_complex.q.out
@@ -148,271 +148,6 @@ inner join
service_request_clean b
on a.contact_event_id = b.cnctevn_id
POSTHOOK: type: CREATETABLE_AS_SELECT
-ABSTRACT SYNTAX TREE:
-
-TOK_CREATETABLE
- TOK_TABNAME
- ct_events1_test
- TOK_LIKETABLE
- TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- default
- ct_events_clean
- a
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- contact_event_id
- contact_event_id
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- ce_create_dt
- ce_create_dt
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- ce_end_dt
- ce_end_dt
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- contact_type
- contact_type
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- cnctevs_cd
- cnctevs_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- contact_mode
- contact_mode
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- cntvnst_stts_cd
- cntvnst_stts_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- total_transfers
- total_transfers
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- ce_notes
- ce_notes
- TOK_WHERE
- TOK_FUNCTION
- TOK_ISNOTNULL
- .
- TOK_TABLE_OR_COL
- a
- contact_event_id
- $hdt$_0
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- default
- service_request_clean
- b
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- cnctevn_id
- cnctevn_id
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- svcrqst_id
- svcrqst_id
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- cnctmd_cd
- cnctmd_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- svcrtyp_cd
- svcrtyp_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- cmpltyp_cd
- cmpltyp_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- sum_reason_cd
- sum_reason_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- svcrqct_cds
- svcrqct_cds
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- notes
- notes
- TOK_WHERE
- TOK_FUNCTION
- TOK_ISNOTNULL
- .
- TOK_TABLE_OR_COL
- b
- cnctevn_id
- $hdt$_1
- =
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- contact_event_id
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- cnctevn_id
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- contact_event_id
- a.contact_event_id
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- ce_create_dt
- a.ce_create_dt
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- ce_end_dt
- a.ce_end_dt
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- contact_type
- a.contact_type
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- cnctevs_cd
- a.cnctevs_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- contact_mode
- a.contact_mode
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- cntvnst_stts_cd
- a.cntvnst_stts_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- total_transfers
- a.total_transfers
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- ce_notes
- a.ce_notes
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- svcrqst_id
- b.svcrqst_id
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- svcrqct_cds
- b.svcrqct_cds
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- svcrtyp_cd
- b.svcrtyp_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- cmpltyp_cd
- b.cmpltyp_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- sum_reason_cd
- src
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- cnctmd_cd
- b.cnctmd_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- notes
- b.notes
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -1385,271 +1120,6 @@ inner join
service_request_clean b
on a.contact_event_id = b.cnctevn_id
POSTHOOK: type: CREATETABLE_AS_SELECT
-ABSTRACT SYNTAX TREE:
-
-TOK_CREATETABLE
- TOK_TABNAME
- ct_events1_test
- TOK_LIKETABLE
- TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- default
- ct_events_clean
- a
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- contact_event_id
- contact_event_id
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- ce_create_dt
- ce_create_dt
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- ce_end_dt
- ce_end_dt
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- contact_type
- contact_type
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- cnctevs_cd
- cnctevs_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- contact_mode
- contact_mode
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- cntvnst_stts_cd
- cntvnst_stts_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- total_transfers
- total_transfers
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- ce_notes
- ce_notes
- TOK_WHERE
- TOK_FUNCTION
- TOK_ISNOTNULL
- .
- TOK_TABLE_OR_COL
- a
- contact_event_id
- $hdt$_0
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- default
- service_request_clean
- b
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- cnctevn_id
- cnctevn_id
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- svcrqst_id
- svcrqst_id
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- cnctmd_cd
- cnctmd_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- svcrtyp_cd
- svcrtyp_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- cmpltyp_cd
- cmpltyp_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- sum_reason_cd
- sum_reason_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- svcrqct_cds
- svcrqct_cds
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- notes
- notes
- TOK_WHERE
- TOK_FUNCTION
- TOK_ISNOTNULL
- .
- TOK_TABLE_OR_COL
- b
- cnctevn_id
- $hdt$_1
- =
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- contact_event_id
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- cnctevn_id
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- contact_event_id
- a.contact_event_id
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- ce_create_dt
- a.ce_create_dt
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- ce_end_dt
- a.ce_end_dt
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- contact_type
- a.contact_type
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- cnctevs_cd
- a.cnctevs_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- contact_mode
- a.contact_mode
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- cntvnst_stts_cd
- a.cntvnst_stts_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- total_transfers
- a.total_transfers
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_0
- ce_notes
- a.ce_notes
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- svcrqst_id
- b.svcrqst_id
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- svcrqct_cds
- b.svcrqct_cds
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- svcrtyp_cd
- b.svcrtyp_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- cmpltyp_cd
- b.cmpltyp_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- sum_reason_cd
- src
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- cnctmd_cd
- b.cnctmd_cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- $hdt$_1
- notes
- b.notes
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/tez/transform_ppr1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/transform_ppr1.q.out b/ql/src/test/results/clientpositive/tez/transform_ppr1.q.out
index 92d1f4c..5d7374f 100644
--- a/ql/src/test/results/clientpositive/tez/transform_ppr1.q.out
+++ b/ql/src/test/results/clientpositive/tez/transform_ppr1.q.out
@@ -20,81 +20,6 @@ FROM (
) tmap
SELECT tmap.tkey, tmap.tvalue WHERE tmap.tkey < 100 AND tmap.ds = '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TRANSFORM
- TOK_EXPLIST
- .
- TOK_TABLE_OR_COL
- src
- ds
- .
- TOK_TABLE_OR_COL
- src
- key
- .
- TOK_TABLE_OR_COL
- src
- value
- TOK_SERDE
- TOK_RECORDWRITER
- 'cat'
- TOK_SERDE
- TOK_RECORDREADER
- TOK_ALIASLIST
- ds
- tkey
- tvalue
- TOK_CLUSTERBY
- TOK_TABLE_OR_COL
- tkey
- tmap
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- tmap
- tkey
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- tmap
- tvalue
- TOK_WHERE
- AND
- <
- .
- TOK_TABLE_OR_COL
- tmap
- tkey
- 100
- =
- .
- TOK_TABLE_OR_COL
- tmap
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/tez/transform_ppr2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/transform_ppr2.q.out b/ql/src/test/results/clientpositive/tez/transform_ppr2.q.out
index c131bbe..4d74124 100644
--- a/ql/src/test/results/clientpositive/tez/transform_ppr2.q.out
+++ b/ql/src/test/results/clientpositive/tez/transform_ppr2.q.out
@@ -22,81 +22,6 @@ FROM (
) tmap
SELECT tmap.tkey, tmap.tvalue WHERE tmap.tkey < 100
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TRANSFORM
- TOK_EXPLIST
- .
- TOK_TABLE_OR_COL
- src
- ds
- .
- TOK_TABLE_OR_COL
- src
- key
- .
- TOK_TABLE_OR_COL
- src
- value
- TOK_SERDE
- TOK_RECORDWRITER
- 'cat'
- TOK_SERDE
- TOK_RECORDREADER
- TOK_ALIASLIST
- ds
- tkey
- tvalue
- TOK_WHERE
- =
- .
- TOK_TABLE_OR_COL
- src
- ds
- '2008-04-08'
- TOK_CLUSTERBY
- TOK_TABLE_OR_COL
- tkey
- tmap
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- tmap
- tkey
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- tmap
- tvalue
- TOK_WHERE
- <
- .
- TOK_TABLE_OR_COL
- tmap
- tkey
- 100
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/tez/unionDistinct_1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/unionDistinct_1.q.out b/ql/src/test/results/clientpositive/tez/unionDistinct_1.q.out
index bef2365..ee33086 100644
--- a/ql/src/test/results/clientpositive/tez/unionDistinct_1.q.out
+++ b/ql/src/test/results/clientpositive/tez/unionDistinct_1.q.out
@@ -6456,157 +6456,6 @@ where a.k1 > 20
)
subq
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- dst_union22_delta
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- k1
- k1
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- k2
- k2
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- k3
- k3
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- k4
- k4
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- ds
- '1'
- <=
- TOK_TABLE_OR_COL
- k0
- 50
- TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- dst_union22
- a
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- dst_union22_delta
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- ds
- '1'
- >
- TOK_TABLE_OR_COL
- k0
- 50
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- k1
- .
- TOK_TABLE_OR_COL
- b
- k1
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '1'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- k1
- k1
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- k2
- k2
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- k3
- k3
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- k4
- k4
- TOK_WHERE
- >
- .
- TOK_TABLE_OR_COL
- a
- k1
- 20
- _u1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECTDI
- TOK_SELEXPR
- TOK_ALLCOLREF
- subq
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dst_union22
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2'
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -7838,154 +7687,6 @@ select s.key, s.count from (
select key, count(1) as count from src5 where key < 10 group by key
)s
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src3
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- _u1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECTDI
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src4
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- _u2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECTDI
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src5
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- _u3
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECTDI
- TOK_SELEXPR
- TOK_ALLCOLREF
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- s
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- s
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -8473,139 +8174,6 @@ select s.key, s.count from (
select a.key as key, b.count as count from src4 a join src5 b on a.key=b.key where a.key < 10
)s
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src3
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- _u1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECTDI
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src4
- a
- TOK_TABREF
- TOK_TABNAME
- src5
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- count
- count
- TOK_WHERE
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- _u2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECTDI
- TOK_SELEXPR
- TOK_ALLCOLREF
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- s
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- s
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -9051,143 +8619,6 @@ select s.key, s.count from (
select a.key as key, count(1) as count from src4 a join src5 b on a.key=b.key where a.key < 10 group by a.key
)s
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src3
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- _u1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECTDI
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src4
- a
- TOK_TABREF
- TOK_TABNAME
- src5
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- count
- TOK_WHERE
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- TOK_GROUPBY
- .
- TOK_TABLE_OR_COL
- a
- key
- _u2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECTDI
- TOK_SELEXPR
- TOK_ALLCOLREF
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- s
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- s
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
[50/50] [abbrv] hive git commit: Merge remote-tracking branch
'origin/master' into llap
Posted by jd...@apache.org.
Merge remote-tracking branch 'origin/master' into llap
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/ffed821c
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/ffed821c
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/ffed821c
Branch: refs/heads/llap
Commit: ffed821cab87cab7d0c7caa8c475c13817251e99
Parents: 53b43cd 0ac424f
Author: Jason Dere <jd...@hortonworks.com>
Authored: Tue Apr 26 10:47:05 2016 -0700
Committer: Jason Dere <jd...@hortonworks.com>
Committed: Tue Apr 26 10:47:05 2016 -0700
----------------------------------------------------------------------
LICENSE | 23 +
.../java/org/apache/hive/beeline/Commands.java | 2 +-
.../org/apache/hadoop/hive/cli/CliDriver.java | 5 -
common/pom.xml | 5 +
.../metrics/metrics2/CodahaleMetrics.java | 16 +
.../metrics/metrics2/MetricsReporting.java | 3 +-
.../org/apache/hadoop/hive/conf/HiveConf.java | 42 +-
.../apache/hadoop/hive/ql/log/PerfLogger.java | 1 +
.../hive/common/util/FixedSizedObjectPool.java | 5 +
.../java/org/apache/hive/http/HttpServer.java | 16 +-
.../hive/hbase/HiveHBaseTableInputFormat.java | 33 +-
.../mapreduce/TestHCatMultiOutputFormat.java | 7 +-
.../org/apache/hive/jdbc/TestJdbcDriver2.java | 5 +-
.../apache/hive/jdbc/TestJdbcWithMiniHS2.java | 108 +-
itests/qtest/pom.xml | 2 +-
.../org/apache/hadoop/hive/ql/QTestUtil.java | 9 +-
.../org/apache/hive/jdbc/HiveBaseResultSet.java | 2 +-
.../apache/hive/jdbc/HiveDatabaseMetaData.java | 49 +-
.../apache/hive/jdbc/HiveResultSetMetaData.java | 2 +-
.../org/apache/hive/jdbc/HiveStatement.java | 16 +-
.../java/org/apache/hive/jdbc/JdbcColumn.java | 2 +-
.../llap/registry/impl/LlapRegistryService.java | 6 +-
.../hive/llap/metrics/LlapMetricsSystem.java | 57 +
.../hadoop/hive/llap/metrics/MetricsUtils.java | 43 +
.../hadoop/hive/llap/cache/BuddyAllocator.java | 3 +
.../hive/llap/cache/EvictionDispatcher.java | 5 +
.../hive/llap/cli/LlapStatusServiceDriver.java | 14 +-
.../hive/llap/daemon/impl/LlapDaemon.java | 5 +
.../hive/llap/daemon/impl/LlapTaskReporter.java | 53 +-
.../llap/daemon/impl/TaskRunnerCallable.java | 4 +-
.../hive/llap/io/api/impl/LlapIoImpl.java | 44 +-
.../llap/io/decode/EncodedDataConsumer.java | 15 +-
.../llap/io/decode/OrcColumnVectorProducer.java | 12 +-
.../llap/io/decode/OrcEncodedDataConsumer.java | 52 +-
.../llap/io/encoded/OrcEncodedDataReader.java | 83 +-
.../llap/io/metadata/OrcFileEstimateErrors.java | 121 +
.../hive/llap/io/metadata/OrcMetadataCache.java | 58 +-
.../llap/io/metadata/OrcStripeMetadata.java | 6 +-
.../hive/llap/metrics/LlapDaemonCacheInfo.java | 5 +-
.../llap/metrics/LlapDaemonCacheMetrics.java | 26 +-
.../llap/metrics/LlapDaemonExecutorInfo.java | 6 +
.../llap/metrics/LlapDaemonExecutorMetrics.java | 45 +-
.../hive/llap/metrics/LlapDaemonIOInfo.java | 53 +
.../hive/llap/metrics/LlapDaemonIOMetrics.java | 144 ++
.../hive/llap/metrics/LlapDaemonQueueInfo.java | 50 -
.../llap/metrics/LlapDaemonQueueMetrics.java | 116 -
.../hive/llap/metrics/LlapMetricsSystem.java | 57 -
.../hadoop/hive/llap/metrics/MetricsUtils.java | 43 -
.../TestIncrementalObjectSizeEstimator.java | 31 +-
.../hive/llap/cache/TestOrcMetadataCache.java | 2 +-
.../daemon/impl/TaskExecutorTestHelpers.java | 6 +-
.../TestFirstInFirstOutComparator.java | 4 +-
.../llap/tezplugins/LlapTaskCommunicator.java | 14 +-
.../tezplugins/TestLlapTaskCommunicator.java | 7 +-
.../upgrade/derby/hive-schema-2.1.0.derby.sql | 2 +-
.../hadoop/hive/metastore/ObjectStore.java | 41 +-
.../hadoop/hive/metastore/txn/TxnHandler.java | 18 +-
.../hive/metastore/txn/TestTxnHandler.java | 15 +
orc/src/java/org/apache/orc/DataReader.java | 24 +-
.../java/org/apache/orc/DataReaderFactory.java | 9 -
.../org/apache/orc/MetadataReaderFactory.java | 12 -
orc/src/java/org/apache/orc/OrcUtils.java | 78 +
orc/src/java/org/apache/orc/Reader.java | 29 +-
orc/src/java/org/apache/orc/RecordReader.java | 8 +-
.../java/org/apache/orc/TypeDescription.java | 62 +-
.../org/apache/orc/impl/BitFieldReader.java | 5 +-
.../apache/orc/impl/DataReaderProperties.java | 41 +-
.../orc/impl/DefaultMetadataReaderFactory.java | 14 -
orc/src/java/org/apache/orc/impl/InStream.java | 4 +-
.../java/org/apache/orc/impl/IntegerReader.java | 26 +-
.../org/apache/orc/impl/MetadataReader.java | 33 -
.../org/apache/orc/impl/MetadataReaderImpl.java | 120 -
.../orc/impl/MetadataReaderProperties.java | 96 -
.../apache/orc/impl/RunLengthByteReader.java | 36 +-
.../apache/orc/impl/RunLengthIntegerReader.java | 31 +-
.../orc/impl/RunLengthIntegerReaderV2.java | 33 +-
.../java/org/apache/orc/impl/WriterImpl.java | 47 +-
.../orc/impl/TestDataReaderProperties.java | 12 +-
.../orc/impl/TestMetadataReaderProperties.java | 72 -
pom.xml | 3 +-
ql/pom.xml | 6 +
.../java/org/apache/hadoop/hive/ql/Driver.java | 123 +-
.../org/apache/hadoop/hive/ql/ErrorMsg.java | 3 +-
.../org/apache/hadoop/hive/ql/QueryState.java | 114 +
.../hadoop/hive/ql/exec/ColumnStatsTask.java | 5 +-
.../hive/ql/exec/ColumnStatsUpdateTask.java | 6 +-
.../org/apache/hadoop/hive/ql/exec/DDLTask.java | 20 +-
.../hive/ql/exec/DefaultFetchFormatter.java | 77 -
.../apache/hadoop/hive/ql/exec/ExplainTask.java | 37 +-
.../hadoop/hive/ql/exec/FetchFormatter.java | 71 -
.../apache/hadoop/hive/ql/exec/FetchTask.java | 8 +-
.../hadoop/hive/ql/exec/FileSinkOperator.java | 27 +-
.../hadoop/hive/ql/exec/FunctionTask.java | 6 +-
.../hadoop/hive/ql/exec/GroupByOperator.java | 1 +
.../hadoop/hive/ql/exec/ListSinkOperator.java | 11 +-
.../hadoop/hive/ql/exec/ReduceSinkOperator.java | 15 +-
.../hadoop/hive/ql/exec/StatsNoJobTask.java | 5 +-
.../org/apache/hadoop/hive/ql/exec/Task.java | 6 +-
.../hadoop/hive/ql/exec/mr/ExecDriver.java | 11 +-
.../hive/ql/exec/mr/HadoopJobExecHelper.java | 21 +-
.../hadoop/hive/ql/exec/mr/MapredLocalTask.java | 7 +-
.../hadoop/hive/ql/exec/spark/SparkTask.java | 7 +-
.../hadoop/hive/ql/exec/tez/TezJobMonitor.java | 83 +-
.../ql/exec/vector/VectorizedRowBatchCtx.java | 13 +-
.../hadoop/hive/ql/history/HiveHistoryImpl.java | 6 +-
.../apache/hadoop/hive/ql/hooks/ATSHook.java | 10 +-
.../hadoop/hive/ql/hooks/HookContext.java | 20 +-
.../hive/ql/hooks/PostExecutePrinter.java | 12 +-
.../hadoop/hive/ql/hooks/PreExecutePrinter.java | 14 +-
.../hive/ql/index/TableBasedIndexHandler.java | 2 -
.../hadoop/hive/ql/io/merge/MergeFileTask.java | 7 +-
.../ql/io/orc/DefaultDataReaderFactory.java | 14 -
.../hadoop/hive/ql/io/orc/OrcInputFormat.java | 43 +-
.../hive/ql/io/orc/OrcRawRecordMerger.java | 3 +-
.../hadoop/hive/ql/io/orc/ReaderImpl.java | 65 +-
.../hadoop/hive/ql/io/orc/RecordReaderImpl.java | 231 +-
.../hive/ql/io/orc/RecordReaderUtils.java | 127 +-
.../hadoop/hive/ql/io/orc/SchemaEvolution.java | 234 +-
.../hive/ql/io/orc/TreeReaderFactory.java | 838 ++++---
.../ql/io/orc/VectorizedOrcInputFormat.java | 32 +-
.../hadoop/hive/ql/io/orc/WriterImpl.java | 2 -
.../ql/io/orc/encoded/EncodedReaderImpl.java | 106 +-
.../ql/io/rcfile/stats/PartialScanTask.java | 12 +-
.../io/rcfile/truncate/ColumnTruncateTask.java | 7 +-
.../apache/hadoop/hive/ql/metadata/Hive.java | 24 +-
.../hive/ql/optimizer/ColumnPrunerProcCtx.java | 2 +-
.../hive/ql/optimizer/GenMRTableScan1.java | 2 +-
.../index/RewriteParseContextGenerator.java | 7 +-
.../RewriteQueryUsingAggregateIndexCtx.java | 2 +-
.../hive/ql/optimizer/physical/LlapDecider.java | 18 +-
.../hive/ql/parse/BaseSemanticAnalyzer.java | 223 +-
.../hadoop/hive/ql/parse/CalcitePlanner.java | 15 +-
.../ql/parse/ColumnStatsSemanticAnalyzer.java | 7 +-
.../hive/ql/parse/DDLSemanticAnalyzer.java | 13 +-
.../parse/ExplainSQRewriteSemanticAnalyzer.java | 8 +-
.../hive/ql/parse/ExplainSemanticAnalyzer.java | 10 +-
.../hive/ql/parse/ExportSemanticAnalyzer.java | 5 +-
.../hive/ql/parse/FunctionSemanticAnalyzer.java | 5 +-
.../org/apache/hadoop/hive/ql/parse/HiveLexer.g | 9 +
.../apache/hadoop/hive/ql/parse/HiveParser.g | 92 +-
.../hadoop/hive/ql/parse/IdentifiersParser.g | 11 +-
.../hive/ql/parse/ImportSemanticAnalyzer.java | 7 +-
.../hive/ql/parse/LoadSemanticAnalyzer.java | 5 +-
.../hive/ql/parse/MacroSemanticAnalyzer.java | 12 +-
.../hadoop/hive/ql/parse/ParseContext.java | 14 +-
.../hive/ql/parse/ProcessAnalyzeTable.java | 2 +-
.../org/apache/hadoop/hive/ql/parse/QB.java | 5 +
.../hadoop/hive/ql/parse/SemanticAnalyzer.java | 71 +-
.../hive/ql/parse/SemanticAnalyzerFactory.java | 57 +-
.../hadoop/hive/ql/parse/TaskCompiler.java | 71 +-
.../hadoop/hive/ql/parse/TezCompiler.java | 24 +-
.../ql/parse/UpdateDeleteSemanticAnalyzer.java | 5 +-
.../parse/spark/SparkProcessAnalyzeTable.java | 2 +-
.../hadoop/hive/ql/plan/CreateTableDesc.java | 43 +-
.../apache/hadoop/hive/ql/plan/ExplainWork.java | 16 -
.../apache/hadoop/hive/ql/plan/FetchWork.java | 10 +
.../hadoop/hive/ql/plan/FileSinkDesc.java | 9 +
.../apache/hadoop/hive/ql/plan/PlanUtils.java | 10 +-
.../hadoop/hive/ql/session/SessionState.java | 106 +-
.../hadoop/hive/ql/exec/TestExecDriver.java | 7 +-
.../hive/ql/io/orc/TestRecordReaderImpl.java | 55 +-
.../hive/ql/io/orc/TestTypeDescription.java | 4 +-
.../hive/ql/io/orc/TestVectorOrcFile.java | 1647 +++++++-------
.../hive/ql/io/orc/TestVectorizedORCReader.java | 7 +-
.../hive/ql/parse/TestHiveDecimalParse.java | 2 +-
.../ql/parse/TestMacroSemanticAnalyzer.java | 7 +-
.../hadoop/hive/ql/parse/TestQBCompact.java | 8 +-
.../ql/parse/TestQBJoinTreeApplyPredicate.java | 7 +-
.../hadoop/hive/ql/parse/TestQBSubQuery.java | 7 +-
.../ql/parse/TestSemanticAnalyzerFactory.java | 9 +-
.../parse/TestUpdateDeleteSemanticAnalyzer.java | 53 +-
.../authorization/AuthorizationTestUtil.java | 14 +-
.../parse/authorization/PrivilegesTestBase.java | 5 +-
.../TestHiveAuthorizationTaskFactory.java | 12 +-
.../parse/authorization/TestPrivilegesV1.java | 9 +-
.../parse/authorization/TestPrivilegesV2.java | 8 +-
.../create_with_constraints_duplicate_name.q | 2 +
.../create_with_constraints_enable.q | 1 +
.../create_with_constraints_validate.q | 1 +
.../clientpositive/create_with_constraints.q | 12 +
ql/src/test/queries/clientpositive/cte_6.q | 10 +
.../test/queries/clientpositive/union_offcbo.q | 483 ++++
...create_with_constraints_duplicate_name.q.out | 13 +
.../create_with_constraints_enable.q.out | 1 +
.../create_with_constraints_validate.q.out | 1 +
.../alter_partition_coltype.q.out | 168 --
.../results/clientpositive/ambiguitycheck.q.out | 30 -
.../analyze_table_null_partition.q.out | 16 -
.../auto_join_reordering_values.q.out | 83 -
.../clientpositive/auto_sortmerge_join_1.q.out | 96 -
.../clientpositive/auto_sortmerge_join_11.q.out | 153 --
.../clientpositive/auto_sortmerge_join_12.q.out | 60 -
.../clientpositive/auto_sortmerge_join_2.q.out | 64 -
.../clientpositive/auto_sortmerge_join_3.q.out | 96 -
.../clientpositive/auto_sortmerge_join_4.q.out | 96 -
.../clientpositive/auto_sortmerge_join_5.q.out | 96 -
.../clientpositive/auto_sortmerge_join_7.q.out | 96 -
.../clientpositive/auto_sortmerge_join_8.q.out | 96 -
.../clientpositive/binary_output_format.q.out | 36 -
.../test/results/clientpositive/bucket1.q.out | 17 -
.../test/results/clientpositive/bucket2.q.out | 17 -
.../test/results/clientpositive/bucket3.q.out | 21 -
.../test/results/clientpositive/bucket4.q.out | 17 -
.../test/results/clientpositive/bucket5.q.out | 36 -
.../results/clientpositive/bucket_many.q.out | 17 -
.../clientpositive/bucket_map_join_1.q.out | 47 -
.../clientpositive/bucket_map_join_2.q.out | 47 -
.../clientpositive/bucket_map_join_spark1.q.out | 104 -
.../clientpositive/bucket_map_join_spark2.q.out | 104 -
.../clientpositive/bucket_map_join_spark3.q.out | 104 -
.../clientpositive/bucket_map_join_spark4.q.out | 134 --
.../clientpositive/bucketcontext_1.q.out | 74 -
.../clientpositive/bucketcontext_2.q.out | 74 -
.../clientpositive/bucketcontext_3.q.out | 74 -
.../clientpositive/bucketcontext_4.q.out | 74 -
.../clientpositive/bucketcontext_5.q.out | 74 -
.../clientpositive/bucketcontext_6.q.out | 74 -
.../clientpositive/bucketcontext_7.q.out | 74 -
.../clientpositive/bucketcontext_8.q.out | 74 -
.../results/clientpositive/bucketmapjoin1.q.out | 226 --
.../clientpositive/bucketmapjoin10.q.out | 51 -
.../clientpositive/bucketmapjoin11.q.out | 112 -
.../clientpositive/bucketmapjoin12.q.out | 102 -
.../clientpositive/bucketmapjoin13.q.out | 155 --
.../results/clientpositive/bucketmapjoin2.q.out | 164 --
.../results/clientpositive/bucketmapjoin3.q.out | 128 --
.../results/clientpositive/bucketmapjoin4.q.out | 100 -
.../results/clientpositive/bucketmapjoin5.q.out | 100 -
.../results/clientpositive/bucketmapjoin7.q.out | 73 -
.../results/clientpositive/bucketmapjoin8.q.out | 102 -
.../results/clientpositive/bucketmapjoin9.q.out | 102 -
.../clientpositive/bucketmapjoin_negative.q.out | 57 -
.../bucketmapjoin_negative2.q.out | 50 -
.../bucketmapjoin_negative3.q.out | 409 ----
.../cbo_rp_outer_join_ppr.q.java1.7.out | 168 --
.../clientpositive/columnstats_partlvl.q.out | 30 -
.../clientpositive/columnstats_tbllvl.q.out | 27 -
.../test/results/clientpositive/combine2.q.out | 23 -
.../constantPropagateForSubQuery.q.out | 62 -
.../create_with_constraints.q.out | 68 +
ql/src/test/results/clientpositive/ctas.q.out | 43 -
ql/src/test/results/clientpositive/cte_6.q.out | 86 +
.../disable_merge_for_bucketing.q.out | 17 -
.../display_colstats_tbllvl.q.out | 13 -
.../clientpositive/drop_multi_partitions.q.out | 14 -
.../dynamic_partition_skip_default.q.out | 91 -
.../encryption_join_unencrypted_tbl.q.out | 32 -
...on_join_with_different_encryption_keys.q.out | 32 -
.../clientpositive/explain_logical.q.out | 316 ---
.../extrapolate_part_stats_full.q.out | 74 -
.../extrapolate_part_stats_partial.q.out | 111 -
.../extrapolate_part_stats_partial_ndv.q.out | 78 -
.../clientpositive/filter_join_breaktask.q.out | 102 -
.../clientpositive/fouter_join_ppr.q.out | 336 ---
.../clientpositive/groupby_map_ppr.q.out | 71 -
.../groupby_map_ppr_multi_distinct.q.out | 88 -
.../results/clientpositive/groupby_ppr.q.out | 71 -
.../groupby_ppr_multi_distinct.q.out | 88 -
.../clientpositive/groupby_sort_1_23.q.out | 782 -------
.../results/clientpositive/groupby_sort_6.q.out | 90 -
.../clientpositive/groupby_sort_skew_1_23.q.out | 782 -------
.../test/results/clientpositive/input23.q.out | 52 -
.../test/results/clientpositive/input42.q.out | 83 -
.../results/clientpositive/input_part1.q.out | 56 -
.../results/clientpositive/input_part2.q.out | 103 -
.../results/clientpositive/input_part7.q.out | 99 -
.../results/clientpositive/input_part9.q.out | 29 -
ql/src/test/results/clientpositive/join17.q.out | 38 -
ql/src/test/results/clientpositive/join26.q.out | 79 -
ql/src/test/results/clientpositive/join32.q.out | 73 -
.../clientpositive/join32_lessSize.q.out | 330 ---
ql/src/test/results/clientpositive/join33.q.out | 73 -
ql/src/test/results/clientpositive/join34.q.out | 104 -
ql/src/test/results/clientpositive/join35.q.out | 112 -
ql/src/test/results/clientpositive/join9.q.out | 54 -
.../clientpositive/join_filters_overlap.q.out | 430 ----
.../results/clientpositive/join_map_ppr.q.out | 158 --
.../clientpositive/list_bucket_dml_1.q.out | 70 -
.../list_bucket_dml_10.q.java1.7.out | 28 -
.../list_bucket_dml_11.q.java1.7.out | 63 -
.../list_bucket_dml_12.q.java1.7.out | 106 -
.../list_bucket_dml_13.q.java1.7.out | 70 -
.../clientpositive/list_bucket_dml_14.q.out | 42 -
.../list_bucket_dml_2.q.java1.7.out | 69 -
.../clientpositive/list_bucket_dml_3.q.out | 68 -
.../list_bucket_dml_4.q.java1.7.out | 102 -
.../list_bucket_dml_5.q.java1.7.out | 76 -
.../list_bucket_dml_6.q.java1.7.out | 112 -
.../clientpositive/list_bucket_dml_7.q.out | 112 -
.../list_bucket_dml_8.q.java1.7.out | 69 -
.../list_bucket_dml_9.q.java1.7.out | 102 -
.../list_bucket_query_multiskew_1.q.out | 144 --
.../list_bucket_query_multiskew_2.q.out | 117 -
.../list_bucket_query_multiskew_3.q.out | 130 --
.../list_bucket_query_oneskew_1.q.out | 81 -
.../list_bucket_query_oneskew_2.q.out | 170 --
.../list_bucket_query_oneskew_3.q.out | 28 -
.../clientpositive/llap/llap_nullscan.q.out | 20 -
.../llap/tez_join_result_complex.q.out | 530 -----
.../results/clientpositive/load_dyn_part8.q.out | 63 -
.../clientpositive/louter_join_ppr.q.out | 336 ---
ql/src/test/results/clientpositive/macro.q.out | 62 -
.../clientpositive/mapjoin_mapjoin.q.out | 45 -
ql/src/test/results/clientpositive/merge3.q.out | 110 -
.../results/clientpositive/metadataonly1.q.out | 216 --
.../offset_limit_global_optimizer.q.out | 288 ---
.../clientpositive/optimize_nullscan.q.out | 313 ---
.../clientpositive/outer_join_ppr.q.java1.7.out | 168 --
ql/src/test/results/clientpositive/pcr.q.out | 920 --------
ql/src/test/results/clientpositive/pcs.q.out | 517 -----
.../results/clientpositive/pointlookup2.q.out | 298 ---
.../results/clientpositive/pointlookup3.q.out | 309 ---
.../results/clientpositive/pointlookup4.q.out | 146 --
.../clientpositive/ppd_join_filter.q.out | 380 ----
.../results/clientpositive/ppd_union_view.q.out | 42 -
ql/src/test/results/clientpositive/ppd_vc.q.out | 92 -
.../clientpositive/ppr_allchildsarenull.q.out | 88 -
.../test/results/clientpositive/push_or.q.out | 42 -
.../clientpositive/rand_partitionpruner1.q.out | 22 -
.../clientpositive/rand_partitionpruner2.q.out | 33 -
.../clientpositive/rand_partitionpruner3.q.out | 94 -
.../clientpositive/reduce_deduplicate.q.out | 147 --
.../clientpositive/router_join_ppr.q.out | 336 ---
.../test/results/clientpositive/sample1.q.out | 39 -
.../test/results/clientpositive/sample10.q.out | 39 -
.../test/results/clientpositive/sample2.q.out | 23 -
.../test/results/clientpositive/sample4.q.out | 25 -
.../test/results/clientpositive/sample5.q.out | 25 -
.../test/results/clientpositive/sample6.q.out | 256 ---
.../test/results/clientpositive/sample7.q.out | 32 -
.../test/results/clientpositive/sample8.q.out | 68 -
.../test/results/clientpositive/sample9.q.out | 37 -
.../clientpositive/serde_user_properties.q.out | 160 --
.../results/clientpositive/smb_mapjoin9.q.out | 154 --
.../results/clientpositive/smb_mapjoin_11.q.out | 101 -
.../results/clientpositive/smb_mapjoin_12.q.out | 132 --
.../results/clientpositive/smb_mapjoin_13.q.out | 90 -
.../results/clientpositive/smb_mapjoin_15.q.out | 210 --
.../clientpositive/sort_merge_join_desc_5.q.out | 51 -
.../clientpositive/sort_merge_join_desc_6.q.out | 51 -
.../clientpositive/sort_merge_join_desc_7.q.out | 51 -
.../spark/auto_join_reordering_values.q.out | 83 -
.../spark/auto_sortmerge_join_1.q.out | 96 -
.../spark/auto_sortmerge_join_12.q.out | 60 -
.../spark/auto_sortmerge_join_3.q.out | 96 -
.../spark/auto_sortmerge_join_4.q.out | 96 -
.../spark/auto_sortmerge_join_5.q.out | 96 -
.../spark/auto_sortmerge_join_7.q.out | 96 -
.../spark/auto_sortmerge_join_8.q.out | 96 -
.../results/clientpositive/spark/bucket2.q.out | 17 -
.../results/clientpositive/spark/bucket3.q.out | 21 -
.../results/clientpositive/spark/bucket4.q.out | 17 -
.../results/clientpositive/spark/bucket5.q.out | 36 -
.../spark/bucket_map_join_1.q.out | 47 -
.../spark/bucket_map_join_2.q.out | 47 -
.../spark/bucket_map_join_spark1.q.out | 104 -
.../spark/bucket_map_join_spark2.q.out | 104 -
.../spark/bucket_map_join_spark3.q.out | 104 -
.../spark/bucket_map_join_spark4.q.out | 134 --
.../clientpositive/spark/bucketmapjoin1.q.out | 226 --
.../clientpositive/spark/bucketmapjoin10.q.out | 51 -
.../clientpositive/spark/bucketmapjoin11.q.out | 112 -
.../clientpositive/spark/bucketmapjoin12.q.out | 102 -
.../clientpositive/spark/bucketmapjoin13.q.out | 155 --
.../clientpositive/spark/bucketmapjoin2.q.out | 164 --
.../clientpositive/spark/bucketmapjoin3.q.out | 128 --
.../clientpositive/spark/bucketmapjoin4.q.out | 100 -
.../clientpositive/spark/bucketmapjoin5.q.out | 100 -
.../clientpositive/spark/bucketmapjoin7.q.out | 73 -
.../clientpositive/spark/bucketmapjoin8.q.out | 102 -
.../clientpositive/spark/bucketmapjoin9.q.out | 102 -
.../spark/bucketmapjoin_negative.q.out | 57 -
.../spark/bucketmapjoin_negative2.q.out | 50 -
.../spark/bucketmapjoin_negative3.q.out | 409 ----
.../results/clientpositive/spark/ctas.q.out | 43 -
.../spark/disable_merge_for_bucketing.q.out | 17 -
.../spark/filter_join_breaktask.q.out | 102 -
.../clientpositive/spark/groupby_map_ppr.q.out | 71 -
.../spark/groupby_map_ppr_multi_distinct.q.out | 88 -
.../clientpositive/spark/groupby_ppr.q.out | 71 -
.../spark/groupby_ppr_multi_distinct.q.out | 88 -
.../spark/groupby_sort_1_23.q.out | 782 -------
.../spark/groupby_sort_skew_1_23.q.out | 782 -------
.../clientpositive/spark/input_part2.q.out | 103 -
.../results/clientpositive/spark/join17.q.out | 38 -
.../results/clientpositive/spark/join26.q.out | 79 -
.../results/clientpositive/spark/join32.q.out | 73 -
.../clientpositive/spark/join32_lessSize.q.out | 330 ---
.../results/clientpositive/spark/join33.q.out | 73 -
.../results/clientpositive/spark/join34.q.out | 104 -
.../results/clientpositive/spark/join35.q.out | 112 -
.../results/clientpositive/spark/join9.q.out | 54 -
.../spark/join_filters_overlap.q.out | 430 ----
.../clientpositive/spark/join_map_ppr.q.out | 158 --
.../spark/list_bucket_dml_10.q.java1.7.out | 28 -
.../spark/list_bucket_dml_2.q.java1.7.out | 69 -
.../clientpositive/spark/load_dyn_part8.q.out | 63 -
.../clientpositive/spark/louter_join_ppr.q.out | 336 ---
.../clientpositive/spark/mapjoin_mapjoin.q.out | 45 -
.../spark/optimize_nullscan.q.out | 313 ---
.../spark/outer_join_ppr.q.java1.7.out | 168 --
.../test/results/clientpositive/spark/pcr.q.out | 920 --------
.../clientpositive/spark/ppd_join_filter.q.out | 380 ----
.../spark/reduce_deduplicate.q.out | 147 --
.../clientpositive/spark/router_join_ppr.q.out | 336 ---
.../results/clientpositive/spark/sample1.q.out | 39 -
.../results/clientpositive/spark/sample10.q.out | 39 -
.../results/clientpositive/spark/sample2.q.out | 23 -
.../results/clientpositive/spark/sample4.q.out | 25 -
.../results/clientpositive/spark/sample5.q.out | 25 -
.../results/clientpositive/spark/sample6.q.out | 256 ---
.../results/clientpositive/spark/sample7.q.out | 32 -
.../results/clientpositive/spark/sample8.q.out | 68 -
.../results/clientpositive/spark/sample9.q.out | 37 -
.../clientpositive/spark/smb_mapjoin_11.q.out | 101 -
.../clientpositive/spark/smb_mapjoin_12.q.out | 132 --
.../clientpositive/spark/smb_mapjoin_13.q.out | 90 -
.../clientpositive/spark/smb_mapjoin_15.q.out | 210 --
.../results/clientpositive/spark/stats0.q.out | 34 -
.../results/clientpositive/spark/stats12.q.out | 14 -
.../results/clientpositive/spark/stats13.q.out | 15 -
.../results/clientpositive/spark/stats3.q.out | 11 -
.../clientpositive/spark/transform_ppr1.q.out | 75 -
.../clientpositive/spark/transform_ppr2.q.out | 75 -
.../results/clientpositive/spark/union22.q.out | 140 --
.../results/clientpositive/spark/union24.q.out | 341 ---
.../clientpositive/spark/union_ppr.q.out | 92 -
.../clientpositive/spark/vectorized_ptf.q.out | 2128 ------------------
ql/src/test/results/clientpositive/stats0.q.out | 34 -
.../test/results/clientpositive/stats11.q.out | 114 -
.../test/results/clientpositive/stats12.q.out | 14 -
.../test/results/clientpositive/stats13.q.out | 15 -
ql/src/test/results/clientpositive/stats3.q.out | 11 -
.../temp_table_display_colstats_tbllvl.q.out | 13 -
.../tez/auto_sortmerge_join_1.q.out | 96 -
.../tez/auto_sortmerge_join_11.q.out | 153 --
.../tez/auto_sortmerge_join_12.q.out | 60 -
.../tez/auto_sortmerge_join_2.q.out | 64 -
.../tez/auto_sortmerge_join_3.q.out | 96 -
.../tez/auto_sortmerge_join_4.q.out | 96 -
.../tez/auto_sortmerge_join_5.q.out | 96 -
.../tez/auto_sortmerge_join_7.q.out | 96 -
.../tez/auto_sortmerge_join_8.q.out | 96 -
.../results/clientpositive/tez/bucket2.q.out | 17 -
.../results/clientpositive/tez/bucket3.q.out | 21 -
.../results/clientpositive/tez/bucket4.q.out | 17 -
.../clientpositive/tez/bucketpruning1.q.out | 803 -------
.../test/results/clientpositive/tez/ctas.q.out | 43 -
.../tez/disable_merge_for_bucketing.q.out | 17 -
.../tez/filter_join_breaktask.q.out | 102 -
.../clientpositive/tez/llap_nullscan.q.out | 20 -
.../clientpositive/tez/mapjoin_mapjoin.q.out | 45 -
.../clientpositive/tez/metadataonly1.q.out | 216 --
.../clientpositive/tez/optimize_nullscan.q.out | 313 ---
.../results/clientpositive/tez/sample1.q.out | 39 -
.../tez/tez_join_result_complex.q.out | 530 -----
.../clientpositive/tez/transform_ppr1.q.out | 75 -
.../clientpositive/tez/transform_ppr2.q.out | 75 -
.../clientpositive/tez/unionDistinct_1.q.out | 569 -----
.../clientpositive/tez/vectorized_ptf.q.out | 2128 ------------------
.../results/clientpositive/transform_ppr1.q.out | 75 -
.../results/clientpositive/transform_ppr2.q.out | 75 -
.../truncate_column_list_bucket.q.out | 52 -
.../results/clientpositive/udf_explode.q.out | 167 --
.../clientpositive/udf_java_method.q.out | 63 -
.../results/clientpositive/udf_reflect.q.out | 71 -
.../results/clientpositive/udf_reflect2.q.out | 229 --
.../results/clientpositive/udtf_explode.q.out | 134 --
.../test/results/clientpositive/union22.q.out | 140 --
.../test/results/clientpositive/union24.q.out | 341 ---
.../clientpositive/unionDistinct_1.q.out | 569 -----
.../results/clientpositive/union_offcbo.q.out | 1779 +++++++++++++++
.../test/results/clientpositive/union_ppr.q.out | 92 -
.../results/clientpositive/vectorized_ptf.q.out | 2128 ------------------
serde/pom.xml | 5 +
.../hive/serde2/DefaultFetchFormatter.java | 73 +
.../hadoop/hive/serde2/FetchFormatter.java | 37 +
.../hadoop/hive/serde2/NoOpFetchFormatter.java | 48 +
.../apache/hadoop/hive/serde2/SerDeUtils.java | 3 +-
.../hadoop/hive/serde2/thrift/ColumnBuffer.java | 439 ++++
.../hive/serde2/thrift/ThriftFormatter.java | 40 +
.../serde2/thrift/ThriftJDBCBinarySerDe.java | 178 ++
.../apache/hadoop/hive/serde2/thrift/Type.java | 438 ++++
.../hadoop/hive/serde2/typeinfo/TypeInfo.java | 14 +-
service-rpc/if/TCLIService.thrift | 52 +
.../src/gen/thrift/gen-cpp/TCLIService.cpp | 812 ++++++-
.../src/gen/thrift/gen-cpp/TCLIService.h | 252 +++
.../gen-cpp/TCLIService_server.skeleton.cpp | 10 +
.../gen/thrift/gen-cpp/TCLIService_types.cpp | 1016 +++++++--
.../src/gen/thrift/gen-cpp/TCLIService_types.h | 296 ++-
.../hive/service/rpc/thrift/TCLIService.java | 1716 ++++++++++++++
.../rpc/thrift/TGetCrossReferenceReq.java | 1034 +++++++++
.../rpc/thrift/TGetCrossReferenceResp.java | 509 +++++
.../service/rpc/thrift/TGetPrimaryKeysReq.java | 716 ++++++
.../service/rpc/thrift/TGetPrimaryKeysResp.java | 509 +++++
.../apache/hive/service/rpc/thrift/TRowSet.java | 222 +-
.../src/gen/thrift/gen-php/TCLIService.php | 432 ++++
service-rpc/src/gen/thrift/gen-php/Types.php | 629 ++++++
.../gen-py/TCLIService/TCLIService-remote | 14 +
.../thrift/gen-py/TCLIService/TCLIService.py | 378 ++++
.../src/gen/thrift/gen-py/TCLIService/ttypes.py | 445 +++-
.../src/gen/thrift/gen-rb/t_c_l_i_service.rb | 108 +
.../gen/thrift/gen-rb/t_c_l_i_service_types.rb | 96 +-
service/pom.xml | 6 +
.../java/org/apache/hive/http/LlapServlet.java | 115 +
.../org/apache/hive/service/cli/CLIService.java | 30 +
.../org/apache/hive/service/cli/Column.java | 434 ----
.../apache/hive/service/cli/ColumnBasedSet.java | 84 +-
.../hive/service/cli/ColumnDescriptor.java | 12 +-
.../apache/hive/service/cli/ColumnValue.java | 1 +
.../service/cli/EmbeddedCLIServiceClient.java | 15 +
.../apache/hive/service/cli/ICLIService.java | 8 +
.../apache/hive/service/cli/RowSetFactory.java | 17 +-
.../apache/hive/service/cli/TableSchema.java | 4 +-
.../java/org/apache/hive/service/cli/Type.java | 348 ---
.../apache/hive/service/cli/TypeDescriptor.java | 1 +
.../cli/operation/GetCatalogsOperation.java | 2 +-
.../cli/operation/GetColumnsOperation.java | 4 +-
.../operation/GetCrossReferenceOperation.java | 169 ++
.../cli/operation/GetFunctionsOperation.java | 8 +-
.../cli/operation/GetPrimaryKeysOperation.java | 126 ++
.../cli/operation/GetSchemasOperation.java | 5 +-
.../cli/operation/GetTableTypesOperation.java | 9 +-
.../cli/operation/GetTablesOperation.java | 2 +-
.../cli/operation/GetTypeInfoOperation.java | 4 +-
.../cli/operation/HiveCommandOperation.java | 4 +-
.../hive/service/cli/operation/Operation.java | 19 +-
.../service/cli/operation/OperationManager.java | 31 +-
.../service/cli/operation/SQLOperation.java | 65 +-
.../cli/operation/SQLOperationDisplay.java | 2 +-
.../hive/service/cli/session/HiveSession.java | 28 +
.../service/cli/session/HiveSessionImpl.java | 91 +-
.../thrift/RetryingThriftCLIServiceClient.java | 16 +
.../service/cli/thrift/ThriftCLIService.java | 41 +-
.../cli/thrift/ThriftCLIServiceClient.java | 47 +
.../apache/hive/service/server/HiveServer2.java | 2 +
.../hive-webapps/hiveserver2/hiveserver2.jsp | 1 +
.../hive-webapps/hiveserver2/llap.html | 47 +
.../hive-webapps/static/css/json.human.css | 110 +
.../hive-webapps/static/js/json.human.js | 452 ++++
.../resources/hive-webapps/static/js/llap.js | 37 +
.../auth/TestLdapAtnProviderWithMiniDS.java | 474 +++-
.../apache/hive/service/cli/CLIServiceTest.java | 2 +-
.../org/apache/hive/service/cli/TestColumn.java | 14 +-
.../org/apache/hadoop/hive/common/Pool.java | 1 +
.../hive/ql/exec/vector/BytesColumnVector.java | 13 +-
.../ql/exec/vector/DecimalColumnVector.java | 2 +-
.../hive/ql/exec/vector/DoubleColumnVector.java | 2 +-
.../hive/ql/exec/vector/LongColumnVector.java | 2 +-
.../ql/exec/vector/MultiValuedColumnVector.java | 2 +-
.../ql/exec/vector/TimestampColumnVector.java | 2 +-
.../hive/ql/exec/vector/UnionColumnVector.java | 2 -
552 files changed, 19027 insertions(+), 47143 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/ffed821c/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/ffed821c/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/ffed821c/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/LlapDaemon.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/ffed821c/llap-server/src/java/org/apache/hadoop/hive/llap/daemon/impl/TaskRunnerCallable.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/ffed821c/llap-tez/src/java/org/apache/hadoop/hive/llap/tezplugins/LlapTaskCommunicator.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/ffed821c/pom.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/ffed821c/ql/pom.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/ffed821c/ql/src/java/org/apache/hadoop/hive/ql/plan/PlanUtils.java
----------------------------------------------------------------------
[18/50] [abbrv] hive git commit: HIVE-13533: Remove AST dump (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/ctas.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/ctas.q.out b/ql/src/test/results/clientpositive/spark/ctas.q.out
index 086ad73..5396ada 100644
--- a/ql/src/test/results/clientpositive/spark/ctas.q.out
+++ b/ql/src/test/results/clientpositive/spark/ctas.q.out
@@ -678,49 +678,6 @@ PREHOOK: query: explain extended create table nzhang_ctas5 row format delimited
PREHOOK: type: CREATETABLE_AS_SELECT
POSTHOOK: query: explain extended create table nzhang_ctas5 row format delimited fields terminated by ',' lines terminated by '\012' stored as textfile as select key, value from src sort by key, value limit 10
POSTHOOK: type: CREATETABLE_AS_SELECT
-ABSTRACT SYNTAX TREE:
-
-TOK_CREATETABLE
- TOK_TABNAME
- nzhang_ctas5
- TOK_LIKETABLE
- TOK_TABLEROWFORMAT
- TOK_SERDEPROPS
- TOK_TABLEROWFORMATFIELD
- ','
- TOK_TABLEROWFORMATLINES
- '\012'
- TOK_FILEFORMAT_GENERIC
- textfile
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
- TOK_LIMIT
- 10
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/disable_merge_for_bucketing.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/disable_merge_for_bucketing.q.out b/ql/src/test/results/clientpositive/spark/disable_merge_for_bucketing.q.out
index fc2ff7b..e21b1b1 100644
--- a/ql/src/test/results/clientpositive/spark/disable_merge_for_bucketing.q.out
+++ b/ql/src/test/results/clientpositive/spark/disable_merge_for_bucketing.q.out
@@ -14,23 +14,6 @@ POSTHOOK: query: explain extended
insert overwrite table bucket2_1
select * from src
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucket2_1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/filter_join_breaktask.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/filter_join_breaktask.q.out b/ql/src/test/results/clientpositive/spark/filter_join_breaktask.q.out
index c5f16ed..0bfdf5b 100644
--- a/ql/src/test/results/clientpositive/spark/filter_join_breaktask.q.out
+++ b/ql/src/test/results/clientpositive/spark/filter_join_breaktask.q.out
@@ -32,108 +32,6 @@ SELECT f.key, g.value
FROM filter_join_breaktask f JOIN filter_join_breaktask m ON( f.key = m.key AND f.ds='2008-04-08' AND m.ds='2008-04-08' AND f.key is not null)
JOIN filter_join_breaktask g ON(g.value = m.value AND g.ds='2008-04-08' AND m.ds='2008-04-08' AND m.value is not null AND m.value !='')
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- filter_join_breaktask
- f
- TOK_TABREF
- TOK_TABNAME
- filter_join_breaktask
- m
- AND
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- f
- key
- .
- TOK_TABLE_OR_COL
- m
- key
- =
- .
- TOK_TABLE_OR_COL
- f
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- m
- ds
- '2008-04-08'
- TOK_FUNCTION
- TOK_ISNOTNULL
- .
- TOK_TABLE_OR_COL
- f
- key
- TOK_TABREF
- TOK_TABNAME
- filter_join_breaktask
- g
- AND
- AND
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- g
- value
- .
- TOK_TABLE_OR_COL
- m
- value
- =
- .
- TOK_TABLE_OR_COL
- g
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- m
- ds
- '2008-04-08'
- TOK_FUNCTION
- TOK_ISNOTNULL
- .
- TOK_TABLE_OR_COL
- m
- value
- !=
- .
- TOK_TABLE_OR_COL
- m
- value
- ''
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- f
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- g
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/groupby_map_ppr.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/groupby_map_ppr.q.out b/ql/src/test/results/clientpositive/spark/groupby_map_ppr.q.out
index b5eae57..7660305 100644
--- a/ql/src/test/results/clientpositive/spark/groupby_map_ppr.q.out
+++ b/ql/src/test/results/clientpositive/spark/groupby_map_ppr.q.out
@@ -24,77 +24,6 @@ SELECT substr(src.key,1,1), count(DISTINCT substr(src.value,5)), concat(substr(s
WHERE src.ds = '2008-04-08'
GROUP BY substr(src.key,1,1)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest1
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- key
- 1
- 1
- TOK_SELEXPR
- TOK_FUNCTIONDI
- count
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- value
- 5
- TOK_SELEXPR
- TOK_FUNCTION
- concat
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- key
- 1
- 1
- TOK_FUNCTION
- sum
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- value
- 5
- TOK_WHERE
- =
- .
- TOK_TABLE_OR_COL
- src
- ds
- '2008-04-08'
- TOK_GROUPBY
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- key
- 1
- 1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/groupby_map_ppr_multi_distinct.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/groupby_map_ppr_multi_distinct.q.out b/ql/src/test/results/clientpositive/spark/groupby_map_ppr_multi_distinct.q.out
index ada2f91..0608adc 100644
--- a/ql/src/test/results/clientpositive/spark/groupby_map_ppr_multi_distinct.q.out
+++ b/ql/src/test/results/clientpositive/spark/groupby_map_ppr_multi_distinct.q.out
@@ -24,94 +24,6 @@ SELECT substr(src.key,1,1), count(DISTINCT substr(src.value,5)), concat(substr(s
WHERE src.ds = '2008-04-08'
GROUP BY substr(src.key,1,1)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest1
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- key
- 1
- 1
- TOK_SELEXPR
- TOK_FUNCTIONDI
- count
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- value
- 5
- TOK_SELEXPR
- TOK_FUNCTION
- concat
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- key
- 1
- 1
- TOK_FUNCTION
- sum
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- value
- 5
- TOK_SELEXPR
- TOK_FUNCTIONDI
- sum
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- value
- 5
- TOK_SELEXPR
- TOK_FUNCTIONDI
- count
- .
- TOK_TABLE_OR_COL
- src
- value
- TOK_WHERE
- =
- .
- TOK_TABLE_OR_COL
- src
- ds
- '2008-04-08'
- TOK_GROUPBY
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- key
- 1
- 1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/groupby_ppr.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/groupby_ppr.q.out b/ql/src/test/results/clientpositive/spark/groupby_ppr.q.out
index 97a9a6d..6abeb5d 100644
--- a/ql/src/test/results/clientpositive/spark/groupby_ppr.q.out
+++ b/ql/src/test/results/clientpositive/spark/groupby_ppr.q.out
@@ -24,77 +24,6 @@ SELECT substr(src.key,1,1), count(DISTINCT substr(src.value,5)), concat(substr(s
WHERE src.ds = '2008-04-08'
GROUP BY substr(src.key,1,1)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest1
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- key
- 1
- 1
- TOK_SELEXPR
- TOK_FUNCTIONDI
- count
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- value
- 5
- TOK_SELEXPR
- TOK_FUNCTION
- concat
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- key
- 1
- 1
- TOK_FUNCTION
- sum
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- value
- 5
- TOK_WHERE
- =
- .
- TOK_TABLE_OR_COL
- src
- ds
- '2008-04-08'
- TOK_GROUPBY
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- key
- 1
- 1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/groupby_ppr_multi_distinct.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/groupby_ppr_multi_distinct.q.out b/ql/src/test/results/clientpositive/spark/groupby_ppr_multi_distinct.q.out
index a8724f5..66d6cb6 100644
--- a/ql/src/test/results/clientpositive/spark/groupby_ppr_multi_distinct.q.out
+++ b/ql/src/test/results/clientpositive/spark/groupby_ppr_multi_distinct.q.out
@@ -24,94 +24,6 @@ SELECT substr(src.key,1,1), count(DISTINCT substr(src.value,5)), concat(substr(s
WHERE src.ds = '2008-04-08'
GROUP BY substr(src.key,1,1)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest1
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- key
- 1
- 1
- TOK_SELEXPR
- TOK_FUNCTIONDI
- count
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- value
- 5
- TOK_SELEXPR
- TOK_FUNCTION
- concat
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- key
- 1
- 1
- TOK_FUNCTION
- sum
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- value
- 5
- TOK_SELEXPR
- TOK_FUNCTIONDI
- sum
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- value
- 5
- TOK_SELEXPR
- TOK_FUNCTIONDI
- count
- .
- TOK_TABLE_OR_COL
- src
- value
- TOK_WHERE
- =
- .
- TOK_TABLE_OR_COL
- src
- ds
- '2008-04-08'
- TOK_GROUPBY
- TOK_FUNCTION
- substr
- .
- TOK_TABLE_OR_COL
- src
- key
- 1
- 1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/groupby_sort_1_23.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/groupby_sort_1_23.q.out b/ql/src/test/results/clientpositive/spark/groupby_sort_1_23.q.out
index 4e7e72e..1b4822e 100644
--- a/ql/src/test/results/clientpositive/spark/groupby_sort_1_23.q.out
+++ b/ql/src/test/results/clientpositive/spark/groupby_sort_1_23.q.out
@@ -54,31 +54,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl1
SELECT key, count(1) FROM T1 GROUP BY key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -258,36 +233,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl2
SELECT key, val, count(1) FROM T1 GROUP BY key, val
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl2
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- val
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -481,46 +426,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl1
SELECT key, count(1) FROM (SELECT key, val FROM T1) subq1 GROUP BY key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- subq1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -702,48 +607,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl1
SELECT k, count(1) FROM (SELECT key as k, val as v FROM T1) subq1 GROUP BY k
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- k
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- v
- subq1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- k
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- k
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -935,34 +798,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl3
SELECT 1, key, count(1) FROM T1 GROUP BY 1, key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl3
- TOK_SELECT
- TOK_SELEXPR
- 1
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- 1
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1143,39 +978,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl4
SELECT key, 1, val, count(1) FROM T1 GROUP BY key, 1, val
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl4
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- 1
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- 1
- TOK_TABLE_OR_COL
- val
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1370,40 +1172,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl3
SELECT key, key + 1, count(1) FROM T1 GROUP BY key, key + 1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl3
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- +
- TOK_TABLE_OR_COL
- key
- 1
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- +
- TOK_TABLE_OR_COL
- key
- 1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1616,58 +1384,6 @@ SELECT key + key, sum(cnt) from
(SELECT key, count(1) as cnt FROM T1 GROUP BY key) subq1
group by key + key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- cnt
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- subq1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- +
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- cnt
- TOK_GROUPBY
- +
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1891,63 +1607,6 @@ SELECT key, count(1) FROM T1 GROUP BY key
SELECT key, count(1) FROM T1 GROUP BY key
) subq1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- subq1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2254,70 +1913,6 @@ SELECT key, count(1) FROM T1 GROUP BY key
SELECT key + key as key, count(1) FROM T1 GROUP BY key + key
) subq1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- +
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- key
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- +
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- key
- subq1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2648,89 +2243,6 @@ JOIN
(SELECT key, count(1) as cnt FROM T1 GROUP BY key) subq2
ON subq1.key = subq2.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- cnt
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- subq1
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- cnt
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- subq2
- =
- .
- TOK_TABLE_OR_COL
- subq1
- key
- .
- TOK_TABLE_OR_COL
- subq2
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- subq1
- key
- TOK_SELEXPR
- +
- .
- TOK_TABLE_OR_COL
- subq1
- cnt
- .
- TOK_TABLE_OR_COL
- subq2
- cnt
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -3034,78 +2546,6 @@ JOIN
(SELECT key, val, count(1) FROM T1 GROUP BY key, val) subq2
ON subq1.key = subq2.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- subq1
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- val
- subq2
- =
- .
- TOK_TABLE_OR_COL
- subq1
- key
- .
- TOK_TABLE_OR_COL
- subq2
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -3372,31 +2812,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl1
SELECT key, count(1) FROM T2 GROUP BY key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T2
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -3601,39 +3016,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl4
SELECT key, 1, val, count(1) FROM T2 GROUP BY key, 1, val
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T2
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl4
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- 1
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- 1
- TOK_TABLE_OR_COL
- val
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -3828,42 +3210,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl5
SELECT key, 1, val, 2, count(1) FROM T2 GROUP BY key, 1, val, 2
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T2
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl5
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- 1
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- 2
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- 1
- TOK_TABLE_OR_COL
- val
- 2
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -4045,59 +3391,6 @@ SELECT key, constant, val, count(1) from
(SELECT key, 1 as constant, val from T2)subq
group by key, constant, val
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- 1
- constant
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- subq
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl4
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- constant
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- constant
- TOK_TABLE_OR_COL
- val
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -4296,81 +3589,6 @@ SELECT key, constant as constant2, val, 2 as constant3 from
)subq2
group by key, constant3, val
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- 1
- constant
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- subq
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- constant
- constant2
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- 2
- constant3
- subq2
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl4
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- constant3
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- constant3
- TOK_TABLE_OR_COL
- val
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/groupby_sort_skew_1_23.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/groupby_sort_skew_1_23.q.out b/ql/src/test/results/clientpositive/spark/groupby_sort_skew_1_23.q.out
index b8f1bbd..0956771 100644
--- a/ql/src/test/results/clientpositive/spark/groupby_sort_skew_1_23.q.out
+++ b/ql/src/test/results/clientpositive/spark/groupby_sort_skew_1_23.q.out
@@ -54,31 +54,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl1
SELECT key, count(1) FROM T1 GROUP BY key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -258,36 +233,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl2
SELECT key, val, count(1) FROM T1 GROUP BY key, val
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl2
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- val
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -500,46 +445,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl1
SELECT key, count(1) FROM (SELECT key, val FROM T1) subq1 GROUP BY key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- subq1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -721,48 +626,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl1
SELECT k, count(1) FROM (SELECT key as k, val as v FROM T1) subq1 GROUP BY k
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- k
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- v
- subq1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- k
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- k
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -954,34 +817,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl3
SELECT 1, key, count(1) FROM T1 GROUP BY 1, key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl3
- TOK_SELECT
- TOK_SELEXPR
- 1
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- 1
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1162,39 +997,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl4
SELECT key, 1, val, count(1) FROM T1 GROUP BY key, 1, val
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl4
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- 1
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- 1
- TOK_TABLE_OR_COL
- val
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1408,40 +1210,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl3
SELECT key, key + 1, count(1) FROM T1 GROUP BY key, key + 1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl3
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- +
- TOK_TABLE_OR_COL
- key
- 1
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- +
- TOK_TABLE_OR_COL
- key
- 1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1673,58 +1441,6 @@ SELECT key + key, sum(cnt) from
(SELECT key, count(1) as cnt FROM T1 GROUP BY key) subq1
group by key + key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- cnt
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- subq1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- +
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- cnt
- TOK_GROUPBY
- +
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1967,63 +1683,6 @@ SELECT key, count(1) FROM T1 GROUP BY key
SELECT key, count(1) FROM T1 GROUP BY key
) subq1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- subq1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2330,70 +1989,6 @@ SELECT key, count(1) FROM T1 GROUP BY key
SELECT key + key as key, count(1) FROM T1 GROUP BY key + key
) subq1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- +
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- key
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- +
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- key
- subq1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2743,89 +2338,6 @@ JOIN
(SELECT key, count(1) as cnt FROM T1 GROUP BY key) subq2
ON subq1.key = subq2.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- cnt
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- subq1
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- cnt
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- subq2
- =
- .
- TOK_TABLE_OR_COL
- subq1
- key
- .
- TOK_TABLE_OR_COL
- subq2
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- subq1
- key
- TOK_SELEXPR
- +
- .
- TOK_TABLE_OR_COL
- subq1
- cnt
- .
- TOK_TABLE_OR_COL
- subq2
- cnt
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -3129,78 +2641,6 @@ JOIN
(SELECT key, val, count(1) FROM T1 GROUP BY key, val) subq2
ON subq1.key = subq2.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- subq1
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- val
- subq2
- =
- .
- TOK_TABLE_OR_COL
- subq1
- key
- .
- TOK_TABLE_OR_COL
- subq2
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -3486,31 +2926,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl1
SELECT key, count(1) FROM T2 GROUP BY key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T2
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -3734,39 +3149,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl4
SELECT key, 1, val, count(1) FROM T2 GROUP BY key, 1, val
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T2
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl4
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- 1
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- 1
- TOK_TABLE_OR_COL
- val
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -3961,42 +3343,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl5
SELECT key, 1, val, 2, count(1) FROM T2 GROUP BY key, 1, val, 2
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T2
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl5
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- 1
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- 2
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- 1
- TOK_TABLE_OR_COL
- val
- 2
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -4178,59 +3524,6 @@ SELECT key, constant, val, count(1) from
(SELECT key, 1 as constant, val from T2)subq
group by key, constant, val
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- 1
- constant
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- subq
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl4
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- constant
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- constant
- TOK_TABLE_OR_COL
- val
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -4429,81 +3722,6 @@ SELECT key, constant as constant2, val, 2 as constant3 from
)subq2
group by key, constant3, val
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- 1
- constant
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- subq
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- constant
- constant2
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- 2
- constant3
- subq2
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl4
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- constant3
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- constant3
- TOK_TABLE_OR_COL
- val
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/input_part2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/input_part2.q.out b/ql/src/test/results/clientpositive/spark/input_part2.q.out
index 6129b1c..73a3679 100644
--- a/ql/src/test/results/clientpositive/spark/input_part2.q.out
+++ b/ql/src/test/results/clientpositive/spark/input_part2.q.out
@@ -28,109 +28,6 @@ FROM srcpart
INSERT OVERWRITE TABLE dest1 SELECT srcpart.key, srcpart.value, srcpart.hr, srcpart.ds WHERE srcpart.key < 100 and srcpart.ds = '2008-04-08' and srcpart.hr = '12'
INSERT OVERWRITE TABLE dest2 SELECT srcpart.key, srcpart.value, srcpart.hr, srcpart.ds WHERE srcpart.key < 100 and srcpart.ds = '2008-04-09' and srcpart.hr = '12'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest1
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- hr
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- ds
- TOK_WHERE
- and
- and
- <
- .
- TOK_TABLE_OR_COL
- srcpart
- key
- 100
- =
- .
- TOK_TABLE_OR_COL
- srcpart
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- srcpart
- hr
- '12'
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest2
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- hr
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- ds
- TOK_WHERE
- and
- and
- <
- .
- TOK_TABLE_OR_COL
- srcpart
- key
- 100
- =
- .
- TOK_TABLE_OR_COL
- srcpart
- ds
- '2008-04-09'
- =
- .
- TOK_TABLE_OR_COL
- srcpart
- hr
- '12'
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-0 depends on stages: Stage-2
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/join17.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/join17.q.out b/ql/src/test/results/clientpositive/spark/join17.q.out
index 026bf1a..0d92441 100644
--- a/ql/src/test/results/clientpositive/spark/join17.q.out
+++ b/ql/src/test/results/clientpositive/spark/join17.q.out
@@ -18,44 +18,6 @@ POSTHOOK: query: EXPLAIN EXTENDED
FROM src src1 JOIN src src2 ON (src1.key = src2.key)
INSERT OVERWRITE TABLE dest1 SELECT src1.*, src2.*
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src
- src1
- TOK_TABREF
- TOK_TABNAME
- src
- src2
- =
- .
- TOK_TABLE_OR_COL
- src1
- key
- .
- TOK_TABLE_OR_COL
- src2
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- src1
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- src2
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/join26.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/join26.q.out b/ql/src/test/results/clientpositive/spark/join26.q.out
index b0449f6..c700b87 100644
--- a/ql/src/test/results/clientpositive/spark/join26.q.out
+++ b/ql/src/test/results/clientpositive/spark/join26.q.out
@@ -22,85 +22,6 @@ SELECT /*+ MAPJOIN(x,y) */ x.key, z.value, y.value
FROM src1 x JOIN src y ON (x.key = y.key)
JOIN srcpart z ON (x.key = z.key and z.ds='2008-04-08' and z.hr=11)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src1
- x
- TOK_TABREF
- TOK_TABNAME
- src
- y
- =
- .
- TOK_TABLE_OR_COL
- x
- key
- .
- TOK_TABLE_OR_COL
- y
- key
- TOK_TABREF
- TOK_TABNAME
- srcpart
- z
- and
- and
- =
- .
- TOK_TABLE_OR_COL
- x
- key
- .
- TOK_TABLE_OR_COL
- z
- key
- =
- .
- TOK_TABLE_OR_COL
- z
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- z
- hr
- 11
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest_j1
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- x
- y
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- z
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- y
- value
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/join32.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/join32.q.out b/ql/src/test/results/clientpositive/spark/join32.q.out
index 3771217..fc3dcc2 100644
--- a/ql/src/test/results/clientpositive/spark/join32.q.out
+++ b/ql/src/test/results/clientpositive/spark/join32.q.out
@@ -26,79 +26,6 @@ SELECT x.key, z.value, y.value
FROM src1 x JOIN src y ON (x.key = y.key)
JOIN srcpart z ON (x.value = z.value and z.ds='2008-04-08' and z.hr=11)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src1
- x
- TOK_TABREF
- TOK_TABNAME
- src
- y
- =
- .
- TOK_TABLE_OR_COL
- x
- key
- .
- TOK_TABLE_OR_COL
- y
- key
- TOK_TABREF
- TOK_TABNAME
- srcpart
- z
- and
- and
- =
- .
- TOK_TABLE_OR_COL
- x
- value
- .
- TOK_TABLE_OR_COL
- z
- value
- =
- .
- TOK_TABLE_OR_COL
- z
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- z
- hr
- 11
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest_j1
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- z
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- y
- value
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/join32_lessSize.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/join32_lessSize.q.out b/ql/src/test/results/clientpositive/spark/join32_lessSize.q.out
index c4ac2dd..4d5110f 100644
--- a/ql/src/test/results/clientpositive/spark/join32_lessSize.q.out
+++ b/ql/src/test/results/clientpositive/spark/join32_lessSize.q.out
@@ -34,79 +34,6 @@ SELECT x.key, z.value, y.value
FROM src1 x JOIN src y ON (x.key = y.key)
JOIN srcpart z ON (x.value = z.value and z.ds='2008-04-08' and z.hr=11)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src1
- x
- TOK_TABREF
- TOK_TABNAME
- src
- y
- =
- .
- TOK_TABLE_OR_COL
- x
- key
- .
- TOK_TABLE_OR_COL
- y
- key
- TOK_TABREF
- TOK_TABNAME
- srcpart
- z
- and
- and
- =
- .
- TOK_TABLE_OR_COL
- x
- value
- .
- TOK_TABLE_OR_COL
- z
- value
- =
- .
- TOK_TABLE_OR_COL
- z
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- z
- hr
- 11
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest_j1
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- z
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- y
- value
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -539,79 +466,6 @@ FROM src w JOIN src1 x ON (x.value = w.value)
JOIN src y ON (x.key = y.key)
JOIN src1 z ON (x.key = z.key)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src
- w
- TOK_TABREF
- TOK_TABNAME
- src1
- x
- =
- .
- TOK_TABLE_OR_COL
- x
- value
- .
- TOK_TABLE_OR_COL
- w
- value
- TOK_TABREF
- TOK_TABNAME
- src
- y
- =
- .
- TOK_TABLE_OR_COL
- x
- key
- .
- TOK_TABLE_OR_COL
- y
- key
- TOK_TABREF
- TOK_TABNAME
- src1
- z
- =
- .
- TOK_TABLE_OR_COL
- x
- key
- .
- TOK_TABLE_OR_COL
- z
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest_j1
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- z
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- y
- value
-
-
STAGE DEPENDENCIES:
Stage-4 is a root stage
Stage-3 depends on stages: Stage-4
@@ -1135,98 +989,6 @@ SELECT res.key, z.value, res.value
FROM (select x.key, x.value from src1 x JOIN src y ON (x.key = y.key)) res
JOIN srcpart z ON (res.value = z.value and z.ds='2008-04-08' and z.hr=11)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src1
- x
- TOK_TABREF
- TOK_TABNAME
- src
- y
- =
- .
- TOK_TABLE_OR_COL
- x
- key
- .
- TOK_TABLE_OR_COL
- y
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- value
- res
- TOK_TABREF
- TOK_TABNAME
- srcpart
- z
- and
- and
- =
- .
- TOK_TABLE_OR_COL
- res
- value
- .
- TOK_TABLE_OR_COL
- z
- value
- =
- .
- TOK_TABLE_OR_COL
- z
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- z
- hr
- 11
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest_j2
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- res
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- z
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- res
- value
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -1661,98 +1423,6 @@ SELECT res.key, z.value, res.value
FROM (select x.key, x.value from src1 x LEFT OUTER JOIN src y ON (x.key = y.key)) res
JOIN srcpart z ON (res.value = z.value and z.ds='2008-04-08' and z.hr=11)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- src1
- x
- TOK_TABREF
- TOK_TABNAME
- src
- y
- =
- .
- TOK_TABLE_OR_COL
- x
- key
- .
- TOK_TABLE_OR_COL
- y
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- value
- res
- TOK_TABREF
- TOK_TABNAME
- srcpart
- z
- and
- and
- =
- .
- TOK_TABLE_OR_COL
- res
- value
- .
- TOK_TABLE_OR_COL
- z
- value
- =
- .
- TOK_TABLE_OR_COL
- z
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- z
- hr
- 11
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest_j2
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- res
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- z
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- res
- value
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/join33.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/join33.q.out b/ql/src/test/results/clientpositive/spark/join33.q.out
index 3771217..fc3dcc2 100644
--- a/ql/src/test/results/clientpositive/spark/join33.q.out
+++ b/ql/src/test/results/clientpositive/spark/join33.q.out
@@ -26,79 +26,6 @@ SELECT x.key, z.value, y.value
FROM src1 x JOIN src y ON (x.key = y.key)
JOIN srcpart z ON (x.value = z.value and z.ds='2008-04-08' and z.hr=11)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src1
- x
- TOK_TABREF
- TOK_TABNAME
- src
- y
- =
- .
- TOK_TABLE_OR_COL
- x
- key
- .
- TOK_TABLE_OR_COL
- y
- key
- TOK_TABREF
- TOK_TABNAME
- srcpart
- z
- and
- and
- =
- .
- TOK_TABLE_OR_COL
- x
- value
- .
- TOK_TABLE_OR_COL
- z
- value
- =
- .
- TOK_TABLE_OR_COL
- z
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- z
- hr
- 11
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest_j1
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- z
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- y
- value
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/join34.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/join34.q.out b/ql/src/test/results/clientpositive/spark/join34.q.out
index bb55191..8d0b649 100644
--- a/ql/src/test/results/clientpositive/spark/join34.q.out
+++ b/ql/src/test/results/clientpositive/spark/join34.q.out
@@ -34,110 +34,6 @@ FROM
) subq1
JOIN src1 x ON (x.key = subq1.key)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- x
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- key
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- value
- value
- TOK_WHERE
- <
- .
- TOK_TABLE_OR_COL
- x
- key
- 20
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- x1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x1
- key
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x1
- value
- value
- TOK_WHERE
- >
- .
- TOK_TABLE_OR_COL
- x1
- key
- 100
- subq1
- TOK_TABREF
- TOK_TABNAME
- src1
- x
- =
- .
- TOK_TABLE_OR_COL
- x
- key
- .
- TOK_TABLE_OR_COL
- subq1
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest_j1
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- subq1
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
[45/50] [abbrv] hive git commit: HIVE-12159: Create vectorized
readers for the complex types (Owen O'Malley,
reviewed by Matt McCline and Prasanth)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestVectorizedORCReader.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestVectorizedORCReader.java b/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestVectorizedORCReader.java
index adb52f0..a52b3ef 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestVectorizedORCReader.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestVectorizedORCReader.java
@@ -151,12 +151,11 @@ public class TestVectorizedORCReader {
OrcFile.readerOptions(conf));
RecordReaderImpl vrr = (RecordReaderImpl) vreader.rows();
RecordReaderImpl rr = (RecordReaderImpl) reader.rows();
- VectorizedRowBatch batch = null;
+ VectorizedRowBatch batch = reader.getSchema().createRowBatch();
OrcStruct row = null;
// Check Vectorized ORC reader against ORC row reader
- while (vrr.hasNext()) {
- batch = vrr.nextBatch(batch);
+ while (vrr.nextBatch(batch)) {
for (int i = 0; i < batch.size; i++) {
row = (OrcStruct) rr.next(row);
for (int j = 0; j < batch.cols.length; j++) {
@@ -239,6 +238,6 @@ public class TestVectorizedORCReader {
Assert.assertEquals(false, batch.cols[8].noNulls);
Assert.assertEquals(false, batch.cols[9].noNulls);
}
- Assert.assertEquals(false, rr.hasNext());
+ Assert.assertEquals(false, rr.nextBatch(batch));
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/BytesColumnVector.java
----------------------------------------------------------------------
diff --git a/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/BytesColumnVector.java b/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/BytesColumnVector.java
index 99744cd..a6d932c 100644
--- a/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/BytesColumnVector.java
+++ b/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/BytesColumnVector.java
@@ -338,6 +338,17 @@ public class BytesColumnVector extends ColumnVector {
initBuffer(0);
}
+ public String toString(int row) {
+ if (isRepeating) {
+ row = 0;
+ }
+ if (noNulls || !isNull[row]) {
+ return new String(vector[row], start[row], length[row]);
+ } else {
+ return null;
+ }
+ }
+
@Override
public void stringifyValue(StringBuilder buffer, int row) {
if (isRepeating) {
@@ -354,8 +365,8 @@ public class BytesColumnVector extends ColumnVector {
@Override
public void ensureSize(int size, boolean preserveData) {
+ super.ensureSize(size, preserveData);
if (size > vector.length) {
- super.ensureSize(size, preserveData);
int[] oldStart = start;
start = new int[size];
int[] oldLength = length;
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/DecimalColumnVector.java
----------------------------------------------------------------------
diff --git a/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/DecimalColumnVector.java b/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/DecimalColumnVector.java
index 1523ff6..0c52210 100644
--- a/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/DecimalColumnVector.java
+++ b/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/DecimalColumnVector.java
@@ -140,8 +140,8 @@ public class DecimalColumnVector extends ColumnVector {
@Override
public void ensureSize(int size, boolean preserveData) {
+ super.ensureSize(size, preserveData);
if (size > vector.length) {
- super.ensureSize(size, preserveData);
HiveDecimalWritable[] oldArray = vector;
vector = new HiveDecimalWritable[size];
if (preserveData) {
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/DoubleColumnVector.java
----------------------------------------------------------------------
diff --git a/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/DoubleColumnVector.java b/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/DoubleColumnVector.java
index 41dc3e1..bd421f4 100644
--- a/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/DoubleColumnVector.java
+++ b/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/DoubleColumnVector.java
@@ -162,8 +162,8 @@ public class DoubleColumnVector extends ColumnVector {
@Override
public void ensureSize(int size, boolean preserveData) {
+ super.ensureSize(size, preserveData);
if (size > vector.length) {
- super.ensureSize(size, preserveData);
double[] oldArray = vector;
vector = new double[size];
if (preserveData) {
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/LongColumnVector.java
----------------------------------------------------------------------
diff --git a/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/LongColumnVector.java b/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/LongColumnVector.java
index 0afe5db..80d4731 100644
--- a/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/LongColumnVector.java
+++ b/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/LongColumnVector.java
@@ -208,8 +208,8 @@ public class LongColumnVector extends ColumnVector {
@Override
public void ensureSize(int size, boolean preserveData) {
+ super.ensureSize(size, preserveData);
if (size > vector.length) {
- super.ensureSize(size, preserveData);
long[] oldArray = vector;
vector = new long[size];
if (preserveData) {
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/MultiValuedColumnVector.java
----------------------------------------------------------------------
diff --git a/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/MultiValuedColumnVector.java b/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/MultiValuedColumnVector.java
index d8451f0..1aeff83 100644
--- a/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/MultiValuedColumnVector.java
+++ b/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/MultiValuedColumnVector.java
@@ -111,8 +111,8 @@ public abstract class MultiValuedColumnVector extends ColumnVector {
@Override
public void ensureSize(int size, boolean preserveData) {
+ super.ensureSize(size, preserveData);
if (size > offsets.length) {
- super.ensureSize(size, preserveData);
long[] oldOffsets = offsets;
offsets = new long[size];
long oldLengths[] = lengths;
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/TimestampColumnVector.java
----------------------------------------------------------------------
diff --git a/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/TimestampColumnVector.java b/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/TimestampColumnVector.java
index c0dd5ed..d971339 100644
--- a/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/TimestampColumnVector.java
+++ b/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/TimestampColumnVector.java
@@ -392,4 +392,4 @@ public class TimestampColumnVector extends ColumnVector {
buffer.append("null");
}
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/UnionColumnVector.java
----------------------------------------------------------------------
diff --git a/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/UnionColumnVector.java b/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/UnionColumnVector.java
index 298d588..0c61243 100644
--- a/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/UnionColumnVector.java
+++ b/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/UnionColumnVector.java
@@ -18,8 +18,6 @@
package org.apache.hadoop.hive.ql.exec.vector;
-import java.util.Arrays;
-
/**
* The representation of a vectorized column of struct objects.
*
[31/50] [abbrv] hive git commit: HIVE-13130: HS2 changes : API calls
for retrieving primary keys and foreign keys information (Hari Subramaniyan,
reviewed by Ashutosh Chauhan)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/service-rpc/src/gen/thrift/gen-javabean/org/apache/hive/service/rpc/thrift/TGetCrossReferenceReq.java
----------------------------------------------------------------------
diff --git a/service-rpc/src/gen/thrift/gen-javabean/org/apache/hive/service/rpc/thrift/TGetCrossReferenceReq.java b/service-rpc/src/gen/thrift/gen-javabean/org/apache/hive/service/rpc/thrift/TGetCrossReferenceReq.java
new file mode 100644
index 0000000..9729570
--- /dev/null
+++ b/service-rpc/src/gen/thrift/gen-javabean/org/apache/hive/service/rpc/thrift/TGetCrossReferenceReq.java
@@ -0,0 +1,1034 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ * @generated
+ */
+package org.apache.hive.service.rpc.thrift;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
+public class TGetCrossReferenceReq implements org.apache.thrift.TBase<TGetCrossReferenceReq, TGetCrossReferenceReq._Fields>, java.io.Serializable, Cloneable, Comparable<TGetCrossReferenceReq> {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TGetCrossReferenceReq");
+
+ private static final org.apache.thrift.protocol.TField SESSION_HANDLE_FIELD_DESC = new org.apache.thrift.protocol.TField("sessionHandle", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+ private static final org.apache.thrift.protocol.TField PARENT_CATALOG_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("parentCatalogName", org.apache.thrift.protocol.TType.STRING, (short)2);
+ private static final org.apache.thrift.protocol.TField PARENT_SCHEMA_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("parentSchemaName", org.apache.thrift.protocol.TType.STRING, (short)3);
+ private static final org.apache.thrift.protocol.TField PARENT_TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("parentTableName", org.apache.thrift.protocol.TType.STRING, (short)4);
+ private static final org.apache.thrift.protocol.TField FOREIGN_CATALOG_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("foreignCatalogName", org.apache.thrift.protocol.TType.STRING, (short)5);
+ private static final org.apache.thrift.protocol.TField FOREIGN_SCHEMA_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("foreignSchemaName", org.apache.thrift.protocol.TType.STRING, (short)6);
+ private static final org.apache.thrift.protocol.TField FOREIGN_TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("foreignTableName", org.apache.thrift.protocol.TType.STRING, (short)7);
+
+ private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+ static {
+ schemes.put(StandardScheme.class, new TGetCrossReferenceReqStandardSchemeFactory());
+ schemes.put(TupleScheme.class, new TGetCrossReferenceReqTupleSchemeFactory());
+ }
+
+ private TSessionHandle sessionHandle; // required
+ private String parentCatalogName; // optional
+ private String parentSchemaName; // optional
+ private String parentTableName; // optional
+ private String foreignCatalogName; // optional
+ private String foreignSchemaName; // optional
+ private String foreignTableName; // optional
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ SESSION_HANDLE((short)1, "sessionHandle"),
+ PARENT_CATALOG_NAME((short)2, "parentCatalogName"),
+ PARENT_SCHEMA_NAME((short)3, "parentSchemaName"),
+ PARENT_TABLE_NAME((short)4, "parentTableName"),
+ FOREIGN_CATALOG_NAME((short)5, "foreignCatalogName"),
+ FOREIGN_SCHEMA_NAME((short)6, "foreignSchemaName"),
+ FOREIGN_TABLE_NAME((short)7, "foreignTableName");
+
+ private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+ static {
+ for (_Fields field : EnumSet.allOf(_Fields.class)) {
+ byName.put(field.getFieldName(), field);
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, or null if its not found.
+ */
+ public static _Fields findByThriftId(int fieldId) {
+ switch(fieldId) {
+ case 1: // SESSION_HANDLE
+ return SESSION_HANDLE;
+ case 2: // PARENT_CATALOG_NAME
+ return PARENT_CATALOG_NAME;
+ case 3: // PARENT_SCHEMA_NAME
+ return PARENT_SCHEMA_NAME;
+ case 4: // PARENT_TABLE_NAME
+ return PARENT_TABLE_NAME;
+ case 5: // FOREIGN_CATALOG_NAME
+ return FOREIGN_CATALOG_NAME;
+ case 6: // FOREIGN_SCHEMA_NAME
+ return FOREIGN_SCHEMA_NAME;
+ case 7: // FOREIGN_TABLE_NAME
+ return FOREIGN_TABLE_NAME;
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, throwing an exception
+ * if it is not found.
+ */
+ public static _Fields findByThriftIdOrThrow(int fieldId) {
+ _Fields fields = findByThriftId(fieldId);
+ if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+ return fields;
+ }
+
+ /**
+ * Find the _Fields constant that matches name, or null if its not found.
+ */
+ public static _Fields findByName(String name) {
+ return byName.get(name);
+ }
+
+ private final short _thriftId;
+ private final String _fieldName;
+
+ _Fields(short thriftId, String fieldName) {
+ _thriftId = thriftId;
+ _fieldName = fieldName;
+ }
+
+ public short getThriftFieldId() {
+ return _thriftId;
+ }
+
+ public String getFieldName() {
+ return _fieldName;
+ }
+ }
+
+ // isset id assignments
+ private static final _Fields optionals[] = {_Fields.PARENT_CATALOG_NAME,_Fields.PARENT_SCHEMA_NAME,_Fields.PARENT_TABLE_NAME,_Fields.FOREIGN_CATALOG_NAME,_Fields.FOREIGN_SCHEMA_NAME,_Fields.FOREIGN_TABLE_NAME};
+ public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+ static {
+ Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+ tmpMap.put(_Fields.SESSION_HANDLE, new org.apache.thrift.meta_data.FieldMetaData("sessionHandle", org.apache.thrift.TFieldRequirementType.REQUIRED,
+ new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TSessionHandle.class)));
+ tmpMap.put(_Fields.PARENT_CATALOG_NAME, new org.apache.thrift.meta_data.FieldMetaData("parentCatalogName", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING , "TIdentifier")));
+ tmpMap.put(_Fields.PARENT_SCHEMA_NAME, new org.apache.thrift.meta_data.FieldMetaData("parentSchemaName", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING , "TIdentifier")));
+ tmpMap.put(_Fields.PARENT_TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("parentTableName", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING , "TIdentifier")));
+ tmpMap.put(_Fields.FOREIGN_CATALOG_NAME, new org.apache.thrift.meta_data.FieldMetaData("foreignCatalogName", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING , "TIdentifier")));
+ tmpMap.put(_Fields.FOREIGN_SCHEMA_NAME, new org.apache.thrift.meta_data.FieldMetaData("foreignSchemaName", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING , "TIdentifier")));
+ tmpMap.put(_Fields.FOREIGN_TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("foreignTableName", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING , "TIdentifier")));
+ metaDataMap = Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TGetCrossReferenceReq.class, metaDataMap);
+ }
+
+ public TGetCrossReferenceReq() {
+ }
+
+ public TGetCrossReferenceReq(
+ TSessionHandle sessionHandle)
+ {
+ this();
+ this.sessionHandle = sessionHandle;
+ }
+
+ /**
+ * Performs a deep copy on <i>other</i>.
+ */
+ public TGetCrossReferenceReq(TGetCrossReferenceReq other) {
+ if (other.isSetSessionHandle()) {
+ this.sessionHandle = new TSessionHandle(other.sessionHandle);
+ }
+ if (other.isSetParentCatalogName()) {
+ this.parentCatalogName = other.parentCatalogName;
+ }
+ if (other.isSetParentSchemaName()) {
+ this.parentSchemaName = other.parentSchemaName;
+ }
+ if (other.isSetParentTableName()) {
+ this.parentTableName = other.parentTableName;
+ }
+ if (other.isSetForeignCatalogName()) {
+ this.foreignCatalogName = other.foreignCatalogName;
+ }
+ if (other.isSetForeignSchemaName()) {
+ this.foreignSchemaName = other.foreignSchemaName;
+ }
+ if (other.isSetForeignTableName()) {
+ this.foreignTableName = other.foreignTableName;
+ }
+ }
+
+ public TGetCrossReferenceReq deepCopy() {
+ return new TGetCrossReferenceReq(this);
+ }
+
+ @Override
+ public void clear() {
+ this.sessionHandle = null;
+ this.parentCatalogName = null;
+ this.parentSchemaName = null;
+ this.parentTableName = null;
+ this.foreignCatalogName = null;
+ this.foreignSchemaName = null;
+ this.foreignTableName = null;
+ }
+
+ public TSessionHandle getSessionHandle() {
+ return this.sessionHandle;
+ }
+
+ public void setSessionHandle(TSessionHandle sessionHandle) {
+ this.sessionHandle = sessionHandle;
+ }
+
+ public void unsetSessionHandle() {
+ this.sessionHandle = null;
+ }
+
+ /** Returns true if field sessionHandle is set (has been assigned a value) and false otherwise */
+ public boolean isSetSessionHandle() {
+ return this.sessionHandle != null;
+ }
+
+ public void setSessionHandleIsSet(boolean value) {
+ if (!value) {
+ this.sessionHandle = null;
+ }
+ }
+
+ public String getParentCatalogName() {
+ return this.parentCatalogName;
+ }
+
+ public void setParentCatalogName(String parentCatalogName) {
+ this.parentCatalogName = parentCatalogName;
+ }
+
+ public void unsetParentCatalogName() {
+ this.parentCatalogName = null;
+ }
+
+ /** Returns true if field parentCatalogName is set (has been assigned a value) and false otherwise */
+ public boolean isSetParentCatalogName() {
+ return this.parentCatalogName != null;
+ }
+
+ public void setParentCatalogNameIsSet(boolean value) {
+ if (!value) {
+ this.parentCatalogName = null;
+ }
+ }
+
+ public String getParentSchemaName() {
+ return this.parentSchemaName;
+ }
+
+ public void setParentSchemaName(String parentSchemaName) {
+ this.parentSchemaName = parentSchemaName;
+ }
+
+ public void unsetParentSchemaName() {
+ this.parentSchemaName = null;
+ }
+
+ /** Returns true if field parentSchemaName is set (has been assigned a value) and false otherwise */
+ public boolean isSetParentSchemaName() {
+ return this.parentSchemaName != null;
+ }
+
+ public void setParentSchemaNameIsSet(boolean value) {
+ if (!value) {
+ this.parentSchemaName = null;
+ }
+ }
+
+ public String getParentTableName() {
+ return this.parentTableName;
+ }
+
+ public void setParentTableName(String parentTableName) {
+ this.parentTableName = parentTableName;
+ }
+
+ public void unsetParentTableName() {
+ this.parentTableName = null;
+ }
+
+ /** Returns true if field parentTableName is set (has been assigned a value) and false otherwise */
+ public boolean isSetParentTableName() {
+ return this.parentTableName != null;
+ }
+
+ public void setParentTableNameIsSet(boolean value) {
+ if (!value) {
+ this.parentTableName = null;
+ }
+ }
+
+ public String getForeignCatalogName() {
+ return this.foreignCatalogName;
+ }
+
+ public void setForeignCatalogName(String foreignCatalogName) {
+ this.foreignCatalogName = foreignCatalogName;
+ }
+
+ public void unsetForeignCatalogName() {
+ this.foreignCatalogName = null;
+ }
+
+ /** Returns true if field foreignCatalogName is set (has been assigned a value) and false otherwise */
+ public boolean isSetForeignCatalogName() {
+ return this.foreignCatalogName != null;
+ }
+
+ public void setForeignCatalogNameIsSet(boolean value) {
+ if (!value) {
+ this.foreignCatalogName = null;
+ }
+ }
+
+ public String getForeignSchemaName() {
+ return this.foreignSchemaName;
+ }
+
+ public void setForeignSchemaName(String foreignSchemaName) {
+ this.foreignSchemaName = foreignSchemaName;
+ }
+
+ public void unsetForeignSchemaName() {
+ this.foreignSchemaName = null;
+ }
+
+ /** Returns true if field foreignSchemaName is set (has been assigned a value) and false otherwise */
+ public boolean isSetForeignSchemaName() {
+ return this.foreignSchemaName != null;
+ }
+
+ public void setForeignSchemaNameIsSet(boolean value) {
+ if (!value) {
+ this.foreignSchemaName = null;
+ }
+ }
+
+ public String getForeignTableName() {
+ return this.foreignTableName;
+ }
+
+ public void setForeignTableName(String foreignTableName) {
+ this.foreignTableName = foreignTableName;
+ }
+
+ public void unsetForeignTableName() {
+ this.foreignTableName = null;
+ }
+
+ /** Returns true if field foreignTableName is set (has been assigned a value) and false otherwise */
+ public boolean isSetForeignTableName() {
+ return this.foreignTableName != null;
+ }
+
+ public void setForeignTableNameIsSet(boolean value) {
+ if (!value) {
+ this.foreignTableName = null;
+ }
+ }
+
+ public void setFieldValue(_Fields field, Object value) {
+ switch (field) {
+ case SESSION_HANDLE:
+ if (value == null) {
+ unsetSessionHandle();
+ } else {
+ setSessionHandle((TSessionHandle)value);
+ }
+ break;
+
+ case PARENT_CATALOG_NAME:
+ if (value == null) {
+ unsetParentCatalogName();
+ } else {
+ setParentCatalogName((String)value);
+ }
+ break;
+
+ case PARENT_SCHEMA_NAME:
+ if (value == null) {
+ unsetParentSchemaName();
+ } else {
+ setParentSchemaName((String)value);
+ }
+ break;
+
+ case PARENT_TABLE_NAME:
+ if (value == null) {
+ unsetParentTableName();
+ } else {
+ setParentTableName((String)value);
+ }
+ break;
+
+ case FOREIGN_CATALOG_NAME:
+ if (value == null) {
+ unsetForeignCatalogName();
+ } else {
+ setForeignCatalogName((String)value);
+ }
+ break;
+
+ case FOREIGN_SCHEMA_NAME:
+ if (value == null) {
+ unsetForeignSchemaName();
+ } else {
+ setForeignSchemaName((String)value);
+ }
+ break;
+
+ case FOREIGN_TABLE_NAME:
+ if (value == null) {
+ unsetForeignTableName();
+ } else {
+ setForeignTableName((String)value);
+ }
+ break;
+
+ }
+ }
+
+ public Object getFieldValue(_Fields field) {
+ switch (field) {
+ case SESSION_HANDLE:
+ return getSessionHandle();
+
+ case PARENT_CATALOG_NAME:
+ return getParentCatalogName();
+
+ case PARENT_SCHEMA_NAME:
+ return getParentSchemaName();
+
+ case PARENT_TABLE_NAME:
+ return getParentTableName();
+
+ case FOREIGN_CATALOG_NAME:
+ return getForeignCatalogName();
+
+ case FOREIGN_SCHEMA_NAME:
+ return getForeignSchemaName();
+
+ case FOREIGN_TABLE_NAME:
+ return getForeignTableName();
+
+ }
+ throw new IllegalStateException();
+ }
+
+ /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+ public boolean isSet(_Fields field) {
+ if (field == null) {
+ throw new IllegalArgumentException();
+ }
+
+ switch (field) {
+ case SESSION_HANDLE:
+ return isSetSessionHandle();
+ case PARENT_CATALOG_NAME:
+ return isSetParentCatalogName();
+ case PARENT_SCHEMA_NAME:
+ return isSetParentSchemaName();
+ case PARENT_TABLE_NAME:
+ return isSetParentTableName();
+ case FOREIGN_CATALOG_NAME:
+ return isSetForeignCatalogName();
+ case FOREIGN_SCHEMA_NAME:
+ return isSetForeignSchemaName();
+ case FOREIGN_TABLE_NAME:
+ return isSetForeignTableName();
+ }
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof TGetCrossReferenceReq)
+ return this.equals((TGetCrossReferenceReq)that);
+ return false;
+ }
+
+ public boolean equals(TGetCrossReferenceReq that) {
+ if (that == null)
+ return false;
+
+ boolean this_present_sessionHandle = true && this.isSetSessionHandle();
+ boolean that_present_sessionHandle = true && that.isSetSessionHandle();
+ if (this_present_sessionHandle || that_present_sessionHandle) {
+ if (!(this_present_sessionHandle && that_present_sessionHandle))
+ return false;
+ if (!this.sessionHandle.equals(that.sessionHandle))
+ return false;
+ }
+
+ boolean this_present_parentCatalogName = true && this.isSetParentCatalogName();
+ boolean that_present_parentCatalogName = true && that.isSetParentCatalogName();
+ if (this_present_parentCatalogName || that_present_parentCatalogName) {
+ if (!(this_present_parentCatalogName && that_present_parentCatalogName))
+ return false;
+ if (!this.parentCatalogName.equals(that.parentCatalogName))
+ return false;
+ }
+
+ boolean this_present_parentSchemaName = true && this.isSetParentSchemaName();
+ boolean that_present_parentSchemaName = true && that.isSetParentSchemaName();
+ if (this_present_parentSchemaName || that_present_parentSchemaName) {
+ if (!(this_present_parentSchemaName && that_present_parentSchemaName))
+ return false;
+ if (!this.parentSchemaName.equals(that.parentSchemaName))
+ return false;
+ }
+
+ boolean this_present_parentTableName = true && this.isSetParentTableName();
+ boolean that_present_parentTableName = true && that.isSetParentTableName();
+ if (this_present_parentTableName || that_present_parentTableName) {
+ if (!(this_present_parentTableName && that_present_parentTableName))
+ return false;
+ if (!this.parentTableName.equals(that.parentTableName))
+ return false;
+ }
+
+ boolean this_present_foreignCatalogName = true && this.isSetForeignCatalogName();
+ boolean that_present_foreignCatalogName = true && that.isSetForeignCatalogName();
+ if (this_present_foreignCatalogName || that_present_foreignCatalogName) {
+ if (!(this_present_foreignCatalogName && that_present_foreignCatalogName))
+ return false;
+ if (!this.foreignCatalogName.equals(that.foreignCatalogName))
+ return false;
+ }
+
+ boolean this_present_foreignSchemaName = true && this.isSetForeignSchemaName();
+ boolean that_present_foreignSchemaName = true && that.isSetForeignSchemaName();
+ if (this_present_foreignSchemaName || that_present_foreignSchemaName) {
+ if (!(this_present_foreignSchemaName && that_present_foreignSchemaName))
+ return false;
+ if (!this.foreignSchemaName.equals(that.foreignSchemaName))
+ return false;
+ }
+
+ boolean this_present_foreignTableName = true && this.isSetForeignTableName();
+ boolean that_present_foreignTableName = true && that.isSetForeignTableName();
+ if (this_present_foreignTableName || that_present_foreignTableName) {
+ if (!(this_present_foreignTableName && that_present_foreignTableName))
+ return false;
+ if (!this.foreignTableName.equals(that.foreignTableName))
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ List<Object> list = new ArrayList<Object>();
+
+ boolean present_sessionHandle = true && (isSetSessionHandle());
+ list.add(present_sessionHandle);
+ if (present_sessionHandle)
+ list.add(sessionHandle);
+
+ boolean present_parentCatalogName = true && (isSetParentCatalogName());
+ list.add(present_parentCatalogName);
+ if (present_parentCatalogName)
+ list.add(parentCatalogName);
+
+ boolean present_parentSchemaName = true && (isSetParentSchemaName());
+ list.add(present_parentSchemaName);
+ if (present_parentSchemaName)
+ list.add(parentSchemaName);
+
+ boolean present_parentTableName = true && (isSetParentTableName());
+ list.add(present_parentTableName);
+ if (present_parentTableName)
+ list.add(parentTableName);
+
+ boolean present_foreignCatalogName = true && (isSetForeignCatalogName());
+ list.add(present_foreignCatalogName);
+ if (present_foreignCatalogName)
+ list.add(foreignCatalogName);
+
+ boolean present_foreignSchemaName = true && (isSetForeignSchemaName());
+ list.add(present_foreignSchemaName);
+ if (present_foreignSchemaName)
+ list.add(foreignSchemaName);
+
+ boolean present_foreignTableName = true && (isSetForeignTableName());
+ list.add(present_foreignTableName);
+ if (present_foreignTableName)
+ list.add(foreignTableName);
+
+ return list.hashCode();
+ }
+
+ @Override
+ public int compareTo(TGetCrossReferenceReq other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+
+ lastComparison = Boolean.valueOf(isSetSessionHandle()).compareTo(other.isSetSessionHandle());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetSessionHandle()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sessionHandle, other.sessionHandle);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetParentCatalogName()).compareTo(other.isSetParentCatalogName());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetParentCatalogName()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.parentCatalogName, other.parentCatalogName);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetParentSchemaName()).compareTo(other.isSetParentSchemaName());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetParentSchemaName()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.parentSchemaName, other.parentSchemaName);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetParentTableName()).compareTo(other.isSetParentTableName());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetParentTableName()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.parentTableName, other.parentTableName);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetForeignCatalogName()).compareTo(other.isSetForeignCatalogName());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetForeignCatalogName()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.foreignCatalogName, other.foreignCatalogName);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetForeignSchemaName()).compareTo(other.isSetForeignSchemaName());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetForeignSchemaName()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.foreignSchemaName, other.foreignSchemaName);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetForeignTableName()).compareTo(other.isSetForeignTableName());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetForeignTableName()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.foreignTableName, other.foreignTableName);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ return 0;
+ }
+
+ public _Fields fieldForId(int fieldId) {
+ return _Fields.findByThriftId(fieldId);
+ }
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+ schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder("TGetCrossReferenceReq(");
+ boolean first = true;
+
+ sb.append("sessionHandle:");
+ if (this.sessionHandle == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.sessionHandle);
+ }
+ first = false;
+ if (isSetParentCatalogName()) {
+ if (!first) sb.append(", ");
+ sb.append("parentCatalogName:");
+ if (this.parentCatalogName == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.parentCatalogName);
+ }
+ first = false;
+ }
+ if (isSetParentSchemaName()) {
+ if (!first) sb.append(", ");
+ sb.append("parentSchemaName:");
+ if (this.parentSchemaName == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.parentSchemaName);
+ }
+ first = false;
+ }
+ if (isSetParentTableName()) {
+ if (!first) sb.append(", ");
+ sb.append("parentTableName:");
+ if (this.parentTableName == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.parentTableName);
+ }
+ first = false;
+ }
+ if (isSetForeignCatalogName()) {
+ if (!first) sb.append(", ");
+ sb.append("foreignCatalogName:");
+ if (this.foreignCatalogName == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.foreignCatalogName);
+ }
+ first = false;
+ }
+ if (isSetForeignSchemaName()) {
+ if (!first) sb.append(", ");
+ sb.append("foreignSchemaName:");
+ if (this.foreignSchemaName == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.foreignSchemaName);
+ }
+ first = false;
+ }
+ if (isSetForeignTableName()) {
+ if (!first) sb.append(", ");
+ sb.append("foreignTableName:");
+ if (this.foreignTableName == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.foreignTableName);
+ }
+ first = false;
+ }
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ if (!isSetSessionHandle()) {
+ throw new org.apache.thrift.protocol.TProtocolException("Required field 'sessionHandle' is unset! Struct:" + toString());
+ }
+
+ // check for sub-struct validity
+ if (sessionHandle != null) {
+ sessionHandle.validate();
+ }
+ }
+
+ private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+ try {
+ write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+ try {
+ read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private static class TGetCrossReferenceReqStandardSchemeFactory implements SchemeFactory {
+ public TGetCrossReferenceReqStandardScheme getScheme() {
+ return new TGetCrossReferenceReqStandardScheme();
+ }
+ }
+
+ private static class TGetCrossReferenceReqStandardScheme extends StandardScheme<TGetCrossReferenceReq> {
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot, TGetCrossReferenceReq struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TField schemeField;
+ iprot.readStructBegin();
+ while (true)
+ {
+ schemeField = iprot.readFieldBegin();
+ if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (schemeField.id) {
+ case 1: // SESSION_HANDLE
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+ struct.sessionHandle = new TSessionHandle();
+ struct.sessionHandle.read(iprot);
+ struct.setSessionHandleIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 2: // PARENT_CATALOG_NAME
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.parentCatalogName = iprot.readString();
+ struct.setParentCatalogNameIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 3: // PARENT_SCHEMA_NAME
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.parentSchemaName = iprot.readString();
+ struct.setParentSchemaNameIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 4: // PARENT_TABLE_NAME
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.parentTableName = iprot.readString();
+ struct.setParentTableNameIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 5: // FOREIGN_CATALOG_NAME
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.foreignCatalogName = iprot.readString();
+ struct.setForeignCatalogNameIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 6: // FOREIGN_SCHEMA_NAME
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.foreignSchemaName = iprot.readString();
+ struct.setForeignSchemaNameIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 7: // FOREIGN_TABLE_NAME
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.foreignTableName = iprot.readString();
+ struct.setForeignTableNameIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+ struct.validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot, TGetCrossReferenceReq struct) throws org.apache.thrift.TException {
+ struct.validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ if (struct.sessionHandle != null) {
+ oprot.writeFieldBegin(SESSION_HANDLE_FIELD_DESC);
+ struct.sessionHandle.write(oprot);
+ oprot.writeFieldEnd();
+ }
+ if (struct.parentCatalogName != null) {
+ if (struct.isSetParentCatalogName()) {
+ oprot.writeFieldBegin(PARENT_CATALOG_NAME_FIELD_DESC);
+ oprot.writeString(struct.parentCatalogName);
+ oprot.writeFieldEnd();
+ }
+ }
+ if (struct.parentSchemaName != null) {
+ if (struct.isSetParentSchemaName()) {
+ oprot.writeFieldBegin(PARENT_SCHEMA_NAME_FIELD_DESC);
+ oprot.writeString(struct.parentSchemaName);
+ oprot.writeFieldEnd();
+ }
+ }
+ if (struct.parentTableName != null) {
+ if (struct.isSetParentTableName()) {
+ oprot.writeFieldBegin(PARENT_TABLE_NAME_FIELD_DESC);
+ oprot.writeString(struct.parentTableName);
+ oprot.writeFieldEnd();
+ }
+ }
+ if (struct.foreignCatalogName != null) {
+ if (struct.isSetForeignCatalogName()) {
+ oprot.writeFieldBegin(FOREIGN_CATALOG_NAME_FIELD_DESC);
+ oprot.writeString(struct.foreignCatalogName);
+ oprot.writeFieldEnd();
+ }
+ }
+ if (struct.foreignSchemaName != null) {
+ if (struct.isSetForeignSchemaName()) {
+ oprot.writeFieldBegin(FOREIGN_SCHEMA_NAME_FIELD_DESC);
+ oprot.writeString(struct.foreignSchemaName);
+ oprot.writeFieldEnd();
+ }
+ }
+ if (struct.foreignTableName != null) {
+ if (struct.isSetForeignTableName()) {
+ oprot.writeFieldBegin(FOREIGN_TABLE_NAME_FIELD_DESC);
+ oprot.writeString(struct.foreignTableName);
+ oprot.writeFieldEnd();
+ }
+ }
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ }
+
+ private static class TGetCrossReferenceReqTupleSchemeFactory implements SchemeFactory {
+ public TGetCrossReferenceReqTupleScheme getScheme() {
+ return new TGetCrossReferenceReqTupleScheme();
+ }
+ }
+
+ private static class TGetCrossReferenceReqTupleScheme extends TupleScheme<TGetCrossReferenceReq> {
+
+ @Override
+ public void write(org.apache.thrift.protocol.TProtocol prot, TGetCrossReferenceReq struct) throws org.apache.thrift.TException {
+ TTupleProtocol oprot = (TTupleProtocol) prot;
+ struct.sessionHandle.write(oprot);
+ BitSet optionals = new BitSet();
+ if (struct.isSetParentCatalogName()) {
+ optionals.set(0);
+ }
+ if (struct.isSetParentSchemaName()) {
+ optionals.set(1);
+ }
+ if (struct.isSetParentTableName()) {
+ optionals.set(2);
+ }
+ if (struct.isSetForeignCatalogName()) {
+ optionals.set(3);
+ }
+ if (struct.isSetForeignSchemaName()) {
+ optionals.set(4);
+ }
+ if (struct.isSetForeignTableName()) {
+ optionals.set(5);
+ }
+ oprot.writeBitSet(optionals, 6);
+ if (struct.isSetParentCatalogName()) {
+ oprot.writeString(struct.parentCatalogName);
+ }
+ if (struct.isSetParentSchemaName()) {
+ oprot.writeString(struct.parentSchemaName);
+ }
+ if (struct.isSetParentTableName()) {
+ oprot.writeString(struct.parentTableName);
+ }
+ if (struct.isSetForeignCatalogName()) {
+ oprot.writeString(struct.foreignCatalogName);
+ }
+ if (struct.isSetForeignSchemaName()) {
+ oprot.writeString(struct.foreignSchemaName);
+ }
+ if (struct.isSetForeignTableName()) {
+ oprot.writeString(struct.foreignTableName);
+ }
+ }
+
+ @Override
+ public void read(org.apache.thrift.protocol.TProtocol prot, TGetCrossReferenceReq struct) throws org.apache.thrift.TException {
+ TTupleProtocol iprot = (TTupleProtocol) prot;
+ struct.sessionHandle = new TSessionHandle();
+ struct.sessionHandle.read(iprot);
+ struct.setSessionHandleIsSet(true);
+ BitSet incoming = iprot.readBitSet(6);
+ if (incoming.get(0)) {
+ struct.parentCatalogName = iprot.readString();
+ struct.setParentCatalogNameIsSet(true);
+ }
+ if (incoming.get(1)) {
+ struct.parentSchemaName = iprot.readString();
+ struct.setParentSchemaNameIsSet(true);
+ }
+ if (incoming.get(2)) {
+ struct.parentTableName = iprot.readString();
+ struct.setParentTableNameIsSet(true);
+ }
+ if (incoming.get(3)) {
+ struct.foreignCatalogName = iprot.readString();
+ struct.setForeignCatalogNameIsSet(true);
+ }
+ if (incoming.get(4)) {
+ struct.foreignSchemaName = iprot.readString();
+ struct.setForeignSchemaNameIsSet(true);
+ }
+ if (incoming.get(5)) {
+ struct.foreignTableName = iprot.readString();
+ struct.setForeignTableNameIsSet(true);
+ }
+ }
+ }
+
+}
+
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/service-rpc/src/gen/thrift/gen-javabean/org/apache/hive/service/rpc/thrift/TGetCrossReferenceResp.java
----------------------------------------------------------------------
diff --git a/service-rpc/src/gen/thrift/gen-javabean/org/apache/hive/service/rpc/thrift/TGetCrossReferenceResp.java b/service-rpc/src/gen/thrift/gen-javabean/org/apache/hive/service/rpc/thrift/TGetCrossReferenceResp.java
new file mode 100644
index 0000000..1bfe6d1
--- /dev/null
+++ b/service-rpc/src/gen/thrift/gen-javabean/org/apache/hive/service/rpc/thrift/TGetCrossReferenceResp.java
@@ -0,0 +1,509 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ * @generated
+ */
+package org.apache.hive.service.rpc.thrift;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
+public class TGetCrossReferenceResp implements org.apache.thrift.TBase<TGetCrossReferenceResp, TGetCrossReferenceResp._Fields>, java.io.Serializable, Cloneable, Comparable<TGetCrossReferenceResp> {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TGetCrossReferenceResp");
+
+ private static final org.apache.thrift.protocol.TField STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("status", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+ private static final org.apache.thrift.protocol.TField OPERATION_HANDLE_FIELD_DESC = new org.apache.thrift.protocol.TField("operationHandle", org.apache.thrift.protocol.TType.STRUCT, (short)2);
+
+ private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+ static {
+ schemes.put(StandardScheme.class, new TGetCrossReferenceRespStandardSchemeFactory());
+ schemes.put(TupleScheme.class, new TGetCrossReferenceRespTupleSchemeFactory());
+ }
+
+ private TStatus status; // required
+ private TOperationHandle operationHandle; // optional
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ STATUS((short)1, "status"),
+ OPERATION_HANDLE((short)2, "operationHandle");
+
+ private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+ static {
+ for (_Fields field : EnumSet.allOf(_Fields.class)) {
+ byName.put(field.getFieldName(), field);
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, or null if its not found.
+ */
+ public static _Fields findByThriftId(int fieldId) {
+ switch(fieldId) {
+ case 1: // STATUS
+ return STATUS;
+ case 2: // OPERATION_HANDLE
+ return OPERATION_HANDLE;
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, throwing an exception
+ * if it is not found.
+ */
+ public static _Fields findByThriftIdOrThrow(int fieldId) {
+ _Fields fields = findByThriftId(fieldId);
+ if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+ return fields;
+ }
+
+ /**
+ * Find the _Fields constant that matches name, or null if its not found.
+ */
+ public static _Fields findByName(String name) {
+ return byName.get(name);
+ }
+
+ private final short _thriftId;
+ private final String _fieldName;
+
+ _Fields(short thriftId, String fieldName) {
+ _thriftId = thriftId;
+ _fieldName = fieldName;
+ }
+
+ public short getThriftFieldId() {
+ return _thriftId;
+ }
+
+ public String getFieldName() {
+ return _fieldName;
+ }
+ }
+
+ // isset id assignments
+ private static final _Fields optionals[] = {_Fields.OPERATION_HANDLE};
+ public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+ static {
+ Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+ tmpMap.put(_Fields.STATUS, new org.apache.thrift.meta_data.FieldMetaData("status", org.apache.thrift.TFieldRequirementType.REQUIRED,
+ new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TStatus.class)));
+ tmpMap.put(_Fields.OPERATION_HANDLE, new org.apache.thrift.meta_data.FieldMetaData("operationHandle", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+ new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TOperationHandle.class)));
+ metaDataMap = Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TGetCrossReferenceResp.class, metaDataMap);
+ }
+
+ public TGetCrossReferenceResp() {
+ }
+
+ public TGetCrossReferenceResp(
+ TStatus status)
+ {
+ this();
+ this.status = status;
+ }
+
+ /**
+ * Performs a deep copy on <i>other</i>.
+ */
+ public TGetCrossReferenceResp(TGetCrossReferenceResp other) {
+ if (other.isSetStatus()) {
+ this.status = new TStatus(other.status);
+ }
+ if (other.isSetOperationHandle()) {
+ this.operationHandle = new TOperationHandle(other.operationHandle);
+ }
+ }
+
+ public TGetCrossReferenceResp deepCopy() {
+ return new TGetCrossReferenceResp(this);
+ }
+
+ @Override
+ public void clear() {
+ this.status = null;
+ this.operationHandle = null;
+ }
+
+ public TStatus getStatus() {
+ return this.status;
+ }
+
+ public void setStatus(TStatus status) {
+ this.status = status;
+ }
+
+ public void unsetStatus() {
+ this.status = null;
+ }
+
+ /** Returns true if field status is set (has been assigned a value) and false otherwise */
+ public boolean isSetStatus() {
+ return this.status != null;
+ }
+
+ public void setStatusIsSet(boolean value) {
+ if (!value) {
+ this.status = null;
+ }
+ }
+
+ public TOperationHandle getOperationHandle() {
+ return this.operationHandle;
+ }
+
+ public void setOperationHandle(TOperationHandle operationHandle) {
+ this.operationHandle = operationHandle;
+ }
+
+ public void unsetOperationHandle() {
+ this.operationHandle = null;
+ }
+
+ /** Returns true if field operationHandle is set (has been assigned a value) and false otherwise */
+ public boolean isSetOperationHandle() {
+ return this.operationHandle != null;
+ }
+
+ public void setOperationHandleIsSet(boolean value) {
+ if (!value) {
+ this.operationHandle = null;
+ }
+ }
+
+ public void setFieldValue(_Fields field, Object value) {
+ switch (field) {
+ case STATUS:
+ if (value == null) {
+ unsetStatus();
+ } else {
+ setStatus((TStatus)value);
+ }
+ break;
+
+ case OPERATION_HANDLE:
+ if (value == null) {
+ unsetOperationHandle();
+ } else {
+ setOperationHandle((TOperationHandle)value);
+ }
+ break;
+
+ }
+ }
+
+ public Object getFieldValue(_Fields field) {
+ switch (field) {
+ case STATUS:
+ return getStatus();
+
+ case OPERATION_HANDLE:
+ return getOperationHandle();
+
+ }
+ throw new IllegalStateException();
+ }
+
+ /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+ public boolean isSet(_Fields field) {
+ if (field == null) {
+ throw new IllegalArgumentException();
+ }
+
+ switch (field) {
+ case STATUS:
+ return isSetStatus();
+ case OPERATION_HANDLE:
+ return isSetOperationHandle();
+ }
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof TGetCrossReferenceResp)
+ return this.equals((TGetCrossReferenceResp)that);
+ return false;
+ }
+
+ public boolean equals(TGetCrossReferenceResp that) {
+ if (that == null)
+ return false;
+
+ boolean this_present_status = true && this.isSetStatus();
+ boolean that_present_status = true && that.isSetStatus();
+ if (this_present_status || that_present_status) {
+ if (!(this_present_status && that_present_status))
+ return false;
+ if (!this.status.equals(that.status))
+ return false;
+ }
+
+ boolean this_present_operationHandle = true && this.isSetOperationHandle();
+ boolean that_present_operationHandle = true && that.isSetOperationHandle();
+ if (this_present_operationHandle || that_present_operationHandle) {
+ if (!(this_present_operationHandle && that_present_operationHandle))
+ return false;
+ if (!this.operationHandle.equals(that.operationHandle))
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ List<Object> list = new ArrayList<Object>();
+
+ boolean present_status = true && (isSetStatus());
+ list.add(present_status);
+ if (present_status)
+ list.add(status);
+
+ boolean present_operationHandle = true && (isSetOperationHandle());
+ list.add(present_operationHandle);
+ if (present_operationHandle)
+ list.add(operationHandle);
+
+ return list.hashCode();
+ }
+
+ @Override
+ public int compareTo(TGetCrossReferenceResp other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+
+ lastComparison = Boolean.valueOf(isSetStatus()).compareTo(other.isSetStatus());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetStatus()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.status, other.status);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetOperationHandle()).compareTo(other.isSetOperationHandle());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetOperationHandle()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.operationHandle, other.operationHandle);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ return 0;
+ }
+
+ public _Fields fieldForId(int fieldId) {
+ return _Fields.findByThriftId(fieldId);
+ }
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+ schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder("TGetCrossReferenceResp(");
+ boolean first = true;
+
+ sb.append("status:");
+ if (this.status == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.status);
+ }
+ first = false;
+ if (isSetOperationHandle()) {
+ if (!first) sb.append(", ");
+ sb.append("operationHandle:");
+ if (this.operationHandle == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.operationHandle);
+ }
+ first = false;
+ }
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ if (!isSetStatus()) {
+ throw new org.apache.thrift.protocol.TProtocolException("Required field 'status' is unset! Struct:" + toString());
+ }
+
+ // check for sub-struct validity
+ if (status != null) {
+ status.validate();
+ }
+ if (operationHandle != null) {
+ operationHandle.validate();
+ }
+ }
+
+ private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+ try {
+ write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+ try {
+ read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private static class TGetCrossReferenceRespStandardSchemeFactory implements SchemeFactory {
+ public TGetCrossReferenceRespStandardScheme getScheme() {
+ return new TGetCrossReferenceRespStandardScheme();
+ }
+ }
+
+ private static class TGetCrossReferenceRespStandardScheme extends StandardScheme<TGetCrossReferenceResp> {
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot, TGetCrossReferenceResp struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TField schemeField;
+ iprot.readStructBegin();
+ while (true)
+ {
+ schemeField = iprot.readFieldBegin();
+ if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (schemeField.id) {
+ case 1: // STATUS
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+ struct.status = new TStatus();
+ struct.status.read(iprot);
+ struct.setStatusIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 2: // OPERATION_HANDLE
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+ struct.operationHandle = new TOperationHandle();
+ struct.operationHandle.read(iprot);
+ struct.setOperationHandleIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+ struct.validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot, TGetCrossReferenceResp struct) throws org.apache.thrift.TException {
+ struct.validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ if (struct.status != null) {
+ oprot.writeFieldBegin(STATUS_FIELD_DESC);
+ struct.status.write(oprot);
+ oprot.writeFieldEnd();
+ }
+ if (struct.operationHandle != null) {
+ if (struct.isSetOperationHandle()) {
+ oprot.writeFieldBegin(OPERATION_HANDLE_FIELD_DESC);
+ struct.operationHandle.write(oprot);
+ oprot.writeFieldEnd();
+ }
+ }
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ }
+
+ private static class TGetCrossReferenceRespTupleSchemeFactory implements SchemeFactory {
+ public TGetCrossReferenceRespTupleScheme getScheme() {
+ return new TGetCrossReferenceRespTupleScheme();
+ }
+ }
+
+ private static class TGetCrossReferenceRespTupleScheme extends TupleScheme<TGetCrossReferenceResp> {
+
+ @Override
+ public void write(org.apache.thrift.protocol.TProtocol prot, TGetCrossReferenceResp struct) throws org.apache.thrift.TException {
+ TTupleProtocol oprot = (TTupleProtocol) prot;
+ struct.status.write(oprot);
+ BitSet optionals = new BitSet();
+ if (struct.isSetOperationHandle()) {
+ optionals.set(0);
+ }
+ oprot.writeBitSet(optionals, 1);
+ if (struct.isSetOperationHandle()) {
+ struct.operationHandle.write(oprot);
+ }
+ }
+
+ @Override
+ public void read(org.apache.thrift.protocol.TProtocol prot, TGetCrossReferenceResp struct) throws org.apache.thrift.TException {
+ TTupleProtocol iprot = (TTupleProtocol) prot;
+ struct.status = new TStatus();
+ struct.status.read(iprot);
+ struct.setStatusIsSet(true);
+ BitSet incoming = iprot.readBitSet(1);
+ if (incoming.get(0)) {
+ struct.operationHandle = new TOperationHandle();
+ struct.operationHandle.read(iprot);
+ struct.setOperationHandleIsSet(true);
+ }
+ }
+ }
+
+}
+
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/service-rpc/src/gen/thrift/gen-javabean/org/apache/hive/service/rpc/thrift/TGetPrimaryKeysReq.java
----------------------------------------------------------------------
diff --git a/service-rpc/src/gen/thrift/gen-javabean/org/apache/hive/service/rpc/thrift/TGetPrimaryKeysReq.java b/service-rpc/src/gen/thrift/gen-javabean/org/apache/hive/service/rpc/thrift/TGetPrimaryKeysReq.java
new file mode 100644
index 0000000..1bec9b5
--- /dev/null
+++ b/service-rpc/src/gen/thrift/gen-javabean/org/apache/hive/service/rpc/thrift/TGetPrimaryKeysReq.java
@@ -0,0 +1,716 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.3)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ * @generated
+ */
+package org.apache.hive.service.rpc.thrift;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import javax.annotation.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)")
+public class TGetPrimaryKeysReq implements org.apache.thrift.TBase<TGetPrimaryKeysReq, TGetPrimaryKeysReq._Fields>, java.io.Serializable, Cloneable, Comparable<TGetPrimaryKeysReq> {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TGetPrimaryKeysReq");
+
+ private static final org.apache.thrift.protocol.TField SESSION_HANDLE_FIELD_DESC = new org.apache.thrift.protocol.TField("sessionHandle", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+ private static final org.apache.thrift.protocol.TField CATALOG_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("catalogName", org.apache.thrift.protocol.TType.STRING, (short)2);
+ private static final org.apache.thrift.protocol.TField SCHEMA_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("schemaName", org.apache.thrift.protocol.TType.STRING, (short)3);
+ private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)4);
+
+ private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+ static {
+ schemes.put(StandardScheme.class, new TGetPrimaryKeysReqStandardSchemeFactory());
+ schemes.put(TupleScheme.class, new TGetPrimaryKeysReqTupleSchemeFactory());
+ }
+
+ private TSessionHandle sessionHandle; // required
+ private String catalogName; // optional
+ private String schemaName; // optional
+ private String tableName; // optional
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ SESSION_HANDLE((short)1, "sessionHandle"),
+ CATALOG_NAME((short)2, "catalogName"),
+ SCHEMA_NAME((short)3, "schemaName"),
+ TABLE_NAME((short)4, "tableName");
+
+ private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+ static {
+ for (_Fields field : EnumSet.allOf(_Fields.class)) {
+ byName.put(field.getFieldName(), field);
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, or null if its not found.
+ */
+ public static _Fields findByThriftId(int fieldId) {
+ switch(fieldId) {
+ case 1: // SESSION_HANDLE
+ return SESSION_HANDLE;
+ case 2: // CATALOG_NAME
+ return CATALOG_NAME;
+ case 3: // SCHEMA_NAME
+ return SCHEMA_NAME;
+ case 4: // TABLE_NAME
+ return TABLE_NAME;
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, throwing an exception
+ * if it is not found.
+ */
+ public static _Fields findByThriftIdOrThrow(int fieldId) {
+ _Fields fields = findByThriftId(fieldId);
+ if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+ return fields;
+ }
+
+ /**
+ * Find the _Fields constant that matches name, or null if its not found.
+ */
+ public static _Fields findByName(String name) {
+ return byName.get(name);
+ }
+
+ private final short _thriftId;
+ private final String _fieldName;
+
+ _Fields(short thriftId, String fieldName) {
+ _thriftId = thriftId;
+ _fieldName = fieldName;
+ }
+
+ public short getThriftFieldId() {
+ return _thriftId;
+ }
+
+ public String getFieldName() {
+ return _fieldName;
+ }
+ }
+
+ // isset id assignments
+ private static final _Fields optionals[] = {_Fields.CATALOG_NAME,_Fields.SCHEMA_NAME,_Fields.TABLE_NAME};
+ public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+ static {
+ Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+ tmpMap.put(_Fields.SESSION_HANDLE, new org.apache.thrift.meta_data.FieldMetaData("sessionHandle", org.apache.thrift.TFieldRequirementType.REQUIRED,
+ new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TSessionHandle.class)));
+ tmpMap.put(_Fields.CATALOG_NAME, new org.apache.thrift.meta_data.FieldMetaData("catalogName", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING , "TIdentifier")));
+ tmpMap.put(_Fields.SCHEMA_NAME, new org.apache.thrift.meta_data.FieldMetaData("schemaName", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING , "TIdentifier")));
+ tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING , "TIdentifier")));
+ metaDataMap = Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TGetPrimaryKeysReq.class, metaDataMap);
+ }
+
+ public TGetPrimaryKeysReq() {
+ }
+
+ public TGetPrimaryKeysReq(
+ TSessionHandle sessionHandle)
+ {
+ this();
+ this.sessionHandle = sessionHandle;
+ }
+
+ /**
+ * Performs a deep copy on <i>other</i>.
+ */
+ public TGetPrimaryKeysReq(TGetPrimaryKeysReq other) {
+ if (other.isSetSessionHandle()) {
+ this.sessionHandle = new TSessionHandle(other.sessionHandle);
+ }
+ if (other.isSetCatalogName()) {
+ this.catalogName = other.catalogName;
+ }
+ if (other.isSetSchemaName()) {
+ this.schemaName = other.schemaName;
+ }
+ if (other.isSetTableName()) {
+ this.tableName = other.tableName;
+ }
+ }
+
+ public TGetPrimaryKeysReq deepCopy() {
+ return new TGetPrimaryKeysReq(this);
+ }
+
+ @Override
+ public void clear() {
+ this.sessionHandle = null;
+ this.catalogName = null;
+ this.schemaName = null;
+ this.tableName = null;
+ }
+
+ public TSessionHandle getSessionHandle() {
+ return this.sessionHandle;
+ }
+
+ public void setSessionHandle(TSessionHandle sessionHandle) {
+ this.sessionHandle = sessionHandle;
+ }
+
+ public void unsetSessionHandle() {
+ this.sessionHandle = null;
+ }
+
+ /** Returns true if field sessionHandle is set (has been assigned a value) and false otherwise */
+ public boolean isSetSessionHandle() {
+ return this.sessionHandle != null;
+ }
+
+ public void setSessionHandleIsSet(boolean value) {
+ if (!value) {
+ this.sessionHandle = null;
+ }
+ }
+
+ public String getCatalogName() {
+ return this.catalogName;
+ }
+
+ public void setCatalogName(String catalogName) {
+ this.catalogName = catalogName;
+ }
+
+ public void unsetCatalogName() {
+ this.catalogName = null;
+ }
+
+ /** Returns true if field catalogName is set (has been assigned a value) and false otherwise */
+ public boolean isSetCatalogName() {
+ return this.catalogName != null;
+ }
+
+ public void setCatalogNameIsSet(boolean value) {
+ if (!value) {
+ this.catalogName = null;
+ }
+ }
+
+ public String getSchemaName() {
+ return this.schemaName;
+ }
+
+ public void setSchemaName(String schemaName) {
+ this.schemaName = schemaName;
+ }
+
+ public void unsetSchemaName() {
+ this.schemaName = null;
+ }
+
+ /** Returns true if field schemaName is set (has been assigned a value) and false otherwise */
+ public boolean isSetSchemaName() {
+ return this.schemaName != null;
+ }
+
+ public void setSchemaNameIsSet(boolean value) {
+ if (!value) {
+ this.schemaName = null;
+ }
+ }
+
+ public String getTableName() {
+ return this.tableName;
+ }
+
+ public void setTableName(String tableName) {
+ this.tableName = tableName;
+ }
+
+ public void unsetTableName() {
+ this.tableName = null;
+ }
+
+ /** Returns true if field tableName is set (has been assigned a value) and false otherwise */
+ public boolean isSetTableName() {
+ return this.tableName != null;
+ }
+
+ public void setTableNameIsSet(boolean value) {
+ if (!value) {
+ this.tableName = null;
+ }
+ }
+
+ public void setFieldValue(_Fields field, Object value) {
+ switch (field) {
+ case SESSION_HANDLE:
+ if (value == null) {
+ unsetSessionHandle();
+ } else {
+ setSessionHandle((TSessionHandle)value);
+ }
+ break;
+
+ case CATALOG_NAME:
+ if (value == null) {
+ unsetCatalogName();
+ } else {
+ setCatalogName((String)value);
+ }
+ break;
+
+ case SCHEMA_NAME:
+ if (value == null) {
+ unsetSchemaName();
+ } else {
+ setSchemaName((String)value);
+ }
+ break;
+
+ case TABLE_NAME:
+ if (value == null) {
+ unsetTableName();
+ } else {
+ setTableName((String)value);
+ }
+ break;
+
+ }
+ }
+
+ public Object getFieldValue(_Fields field) {
+ switch (field) {
+ case SESSION_HANDLE:
+ return getSessionHandle();
+
+ case CATALOG_NAME:
+ return getCatalogName();
+
+ case SCHEMA_NAME:
+ return getSchemaName();
+
+ case TABLE_NAME:
+ return getTableName();
+
+ }
+ throw new IllegalStateException();
+ }
+
+ /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+ public boolean isSet(_Fields field) {
+ if (field == null) {
+ throw new IllegalArgumentException();
+ }
+
+ switch (field) {
+ case SESSION_HANDLE:
+ return isSetSessionHandle();
+ case CATALOG_NAME:
+ return isSetCatalogName();
+ case SCHEMA_NAME:
+ return isSetSchemaName();
+ case TABLE_NAME:
+ return isSetTableName();
+ }
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof TGetPrimaryKeysReq)
+ return this.equals((TGetPrimaryKeysReq)that);
+ return false;
+ }
+
+ public boolean equals(TGetPrimaryKeysReq that) {
+ if (that == null)
+ return false;
+
+ boolean this_present_sessionHandle = true && this.isSetSessionHandle();
+ boolean that_present_sessionHandle = true && that.isSetSessionHandle();
+ if (this_present_sessionHandle || that_present_sessionHandle) {
+ if (!(this_present_sessionHandle && that_present_sessionHandle))
+ return false;
+ if (!this.sessionHandle.equals(that.sessionHandle))
+ return false;
+ }
+
+ boolean this_present_catalogName = true && this.isSetCatalogName();
+ boolean that_present_catalogName = true && that.isSetCatalogName();
+ if (this_present_catalogName || that_present_catalogName) {
+ if (!(this_present_catalogName && that_present_catalogName))
+ return false;
+ if (!this.catalogName.equals(that.catalogName))
+ return false;
+ }
+
+ boolean this_present_schemaName = true && this.isSetSchemaName();
+ boolean that_present_schemaName = true && that.isSetSchemaName();
+ if (this_present_schemaName || that_present_schemaName) {
+ if (!(this_present_schemaName && that_present_schemaName))
+ return false;
+ if (!this.schemaName.equals(that.schemaName))
+ return false;
+ }
+
+ boolean this_present_tableName = true && this.isSetTableName();
+ boolean that_present_tableName = true && that.isSetTableName();
+ if (this_present_tableName || that_present_tableName) {
+ if (!(this_present_tableName && that_present_tableName))
+ return false;
+ if (!this.tableName.equals(that.tableName))
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ List<Object> list = new ArrayList<Object>();
+
+ boolean present_sessionHandle = true && (isSetSessionHandle());
+ list.add(present_sessionHandle);
+ if (present_sessionHandle)
+ list.add(sessionHandle);
+
+ boolean present_catalogName = true && (isSetCatalogName());
+ list.add(present_catalogName);
+ if (present_catalogName)
+ list.add(catalogName);
+
+ boolean present_schemaName = true && (isSetSchemaName());
+ list.add(present_schemaName);
+ if (present_schemaName)
+ list.add(schemaName);
+
+ boolean present_tableName = true && (isSetTableName());
+ list.add(present_tableName);
+ if (present_tableName)
+ list.add(tableName);
+
+ return list.hashCode();
+ }
+
+ @Override
+ public int compareTo(TGetPrimaryKeysReq other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+
+ lastComparison = Boolean.valueOf(isSetSessionHandle()).compareTo(other.isSetSessionHandle());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetSessionHandle()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.sessionHandle, other.sessionHandle);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetCatalogName()).compareTo(other.isSetCatalogName());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetCatalogName()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.catalogName, other.catalogName);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetSchemaName()).compareTo(other.isSetSchemaName());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetSchemaName()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.schemaName, other.schemaName);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = Boolean.valueOf(isSetTableName()).compareTo(other.isSetTableName());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetTableName()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName, other.tableName);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ return 0;
+ }
+
+ public _Fields fieldForId(int fieldId) {
+ return _Fields.findByThriftId(fieldId);
+ }
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+ schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder("TGetPrimaryKeysReq(");
+ boolean first = true;
+
+ sb.append("sessionHandle:");
+ if (this.sessionHandle == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.sessionHandle);
+ }
+ first = false;
+ if (isSetCatalogName()) {
+ if (!first) sb.append(", ");
+ sb.append("catalogName:");
+ if (this.catalogName == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.catalogName);
+ }
+ first = false;
+ }
+ if (isSetSchemaName()) {
+ if (!first) sb.append(", ");
+ sb.append("schemaName:");
+ if (this.schemaName == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.schemaName);
+ }
+ first = false;
+ }
+ if (isSetTableName()) {
+ if (!first) sb.append(", ");
+ sb.append("tableName:");
+ if (this.tableName == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.tableName);
+ }
+ first = false;
+ }
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ if (!isSetSessionHandle()) {
+ throw new org.apache.thrift.protocol.TProtocolException("Required field 'sessionHandle' is unset! Struct:" + toString());
+ }
+
+ // check for sub-struct validity
+ if (sessionHandle != null) {
+ sessionHandle.validate();
+ }
+ }
+
+ private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+ try {
+ write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+ try {
+ read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private static class TGetPrimaryKeysReqStandardSchemeFactory implements SchemeFactory {
+ public TGetPrimaryKeysReqStandardScheme getScheme() {
+ return new TGetPrimaryKeysReqStandardScheme();
+ }
+ }
+
+ private static class TGetPrimaryKeysReqStandardScheme extends StandardScheme<TGetPrimaryKeysReq> {
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot, TGetPrimaryKeysReq struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TField schemeField;
+ iprot.readStructBegin();
+ while (true)
+ {
+ schemeField = iprot.readFieldBegin();
+ if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (schemeField.id) {
+ case 1: // SESSION_HANDLE
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+ struct.sessionHandle = new TSessionHandle();
+ struct.sessionHandle.read(iprot);
+ struct.setSessionHandleIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 2: // CATALOG_NAME
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.catalogName = iprot.readString();
+ struct.setCatalogNameIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 3: // SCHEMA_NAME
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.schemaName = iprot.readString();
+ struct.setSchemaNameIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 4: // TABLE_NAME
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.tableName = iprot.readString();
+ struct.setTableNameIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+ struct.validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot, TGetPrimaryKeysReq struct) throws org.apache.thrift.TException {
+ struct.validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ if (struct.sessionHandle != null) {
+ oprot.writeFieldBegin(SESSION_HANDLE_FIELD_DESC);
+ struct.sessionHandle.write(oprot);
+ oprot.writeFieldEnd();
+ }
+ if (struct.catalogName != null) {
+ if (struct.isSetCatalogName()) {
+ oprot.writeFieldBegin(CATALOG_NAME_FIELD_DESC);
+ oprot.writeString(struct.catalogName);
+ oprot.writeFieldEnd();
+ }
+ }
+ if (struct.schemaName != null) {
+ if (struct.isSetSchemaName()) {
+ oprot.writeFieldBegin(SCHEMA_NAME_FIELD_DESC);
+ oprot.writeString(struct.schemaName);
+ oprot.writeFieldEnd();
+ }
+ }
+ if (struct.tableName != null) {
+ if (struct.isSetTableName()) {
+ oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
+ oprot.writeString(struct.tableName);
+ oprot.writeFieldEnd();
+ }
+ }
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ }
+
+ private static class TGetPrimaryKeysReqTupleSchemeFactory implements SchemeFactory {
+ public TGetPrimaryKeysReqTupleScheme getScheme() {
+ return new TGetPrimaryKeysReqTupleScheme();
+ }
+ }
+
+ private static class TGetPrimaryKeysReqTupleScheme extends TupleScheme<TGetPrimaryKeysReq> {
+
+ @Override
+ public void write(org.apache.thrift.protocol.TProtocol prot, TGetPrimaryKeysReq struct) throws org.apache.thrift.TException {
+ TTupleProtocol oprot = (TTupleProtocol) prot;
+ struct.sessionHandle.write(oprot);
+ BitSet optionals = new BitSet();
+ if (struct.isSetCatalogName()) {
+ optionals.set(0);
+ }
+ if (struct.isSetSchemaName()) {
+ optionals.set(1);
+ }
+ if (struct.isSetTableName()) {
+ optionals.set(2);
+ }
+ oprot.writeBitSet(optionals, 3);
+ if (struct.isSetCatalogName()) {
+ oprot.writeString(struct.catalogName);
+ }
+ if (struct.isSetSchemaName()) {
+ oprot.writeString(struct.schemaName);
+ }
+ if (struct.isSetTableName()) {
+ oprot.writeString(struct.tableName);
+ }
+ }
+
+ @Override
+ public void read(org.apache.thrift.protocol.TProtocol prot, TGetPrimaryKeysReq struct) throws org.apache.thrift.TException {
+ TTupleProtocol iprot = (TTupleProtocol) prot;
+ struct.sessionHandle = new TSessionHandle();
+ struct.sessionHandle.read(iprot);
+ struct.setSessionHandleIsSet(true);
+ BitSet incoming = iprot.readBitSet(3);
+ if (incoming.get(0)) {
+ struct.catalogName = iprot.readString();
+ struct.setCatalogNameIsSet(true);
+ }
+ if (incoming.get(1)) {
+ struct.schemaName = iprot.readString();
+ struct.setSchemaNameIsSet(true);
+ }
+ if (incoming.get(2)) {
+ struct.tableName = iprot.readString();
+ struct.setTableNameIsSet(true);
+ }
+ }
+ }
+
+}
+
[32/50] [abbrv] hive git commit: HIVE-13130: HS2 changes : API calls
for retrieving primary keys and foreign keys information (Hari Subramaniyan,
reviewed by Ashutosh Chauhan)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/service-rpc/src/gen/thrift/gen-javabean/org/apache/hive/service/rpc/thrift/TCLIService.java
----------------------------------------------------------------------
diff --git a/service-rpc/src/gen/thrift/gen-javabean/org/apache/hive/service/rpc/thrift/TCLIService.java b/service-rpc/src/gen/thrift/gen-javabean/org/apache/hive/service/rpc/thrift/TCLIService.java
index c684f89..6dba051 100644
--- a/service-rpc/src/gen/thrift/gen-javabean/org/apache/hive/service/rpc/thrift/TCLIService.java
+++ b/service-rpc/src/gen/thrift/gen-javabean/org/apache/hive/service/rpc/thrift/TCLIService.java
@@ -61,6 +61,10 @@ public class TCLIService {
public TGetFunctionsResp GetFunctions(TGetFunctionsReq req) throws org.apache.thrift.TException;
+ public TGetPrimaryKeysResp GetPrimaryKeys(TGetPrimaryKeysReq req) throws org.apache.thrift.TException;
+
+ public TGetCrossReferenceResp GetCrossReference(TGetCrossReferenceReq req) throws org.apache.thrift.TException;
+
public TGetOperationStatusResp GetOperationStatus(TGetOperationStatusReq req) throws org.apache.thrift.TException;
public TCancelOperationResp CancelOperation(TCancelOperationReq req) throws org.apache.thrift.TException;
@@ -103,6 +107,10 @@ public class TCLIService {
public void GetFunctions(TGetFunctionsReq req, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+ public void GetPrimaryKeys(TGetPrimaryKeysReq req, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+ public void GetCrossReference(TGetCrossReferenceReq req, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
public void GetOperationStatus(TGetOperationStatusReq req, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
public void CancelOperation(TCancelOperationReq req, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
@@ -394,6 +402,52 @@ public class TCLIService {
throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "GetFunctions failed: unknown result");
}
+ public TGetPrimaryKeysResp GetPrimaryKeys(TGetPrimaryKeysReq req) throws org.apache.thrift.TException
+ {
+ send_GetPrimaryKeys(req);
+ return recv_GetPrimaryKeys();
+ }
+
+ public void send_GetPrimaryKeys(TGetPrimaryKeysReq req) throws org.apache.thrift.TException
+ {
+ GetPrimaryKeys_args args = new GetPrimaryKeys_args();
+ args.setReq(req);
+ sendBase("GetPrimaryKeys", args);
+ }
+
+ public TGetPrimaryKeysResp recv_GetPrimaryKeys() throws org.apache.thrift.TException
+ {
+ GetPrimaryKeys_result result = new GetPrimaryKeys_result();
+ receiveBase(result, "GetPrimaryKeys");
+ if (result.isSetSuccess()) {
+ return result.success;
+ }
+ throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "GetPrimaryKeys failed: unknown result");
+ }
+
+ public TGetCrossReferenceResp GetCrossReference(TGetCrossReferenceReq req) throws org.apache.thrift.TException
+ {
+ send_GetCrossReference(req);
+ return recv_GetCrossReference();
+ }
+
+ public void send_GetCrossReference(TGetCrossReferenceReq req) throws org.apache.thrift.TException
+ {
+ GetCrossReference_args args = new GetCrossReference_args();
+ args.setReq(req);
+ sendBase("GetCrossReference", args);
+ }
+
+ public TGetCrossReferenceResp recv_GetCrossReference() throws org.apache.thrift.TException
+ {
+ GetCrossReference_result result = new GetCrossReference_result();
+ receiveBase(result, "GetCrossReference");
+ if (result.isSetSuccess()) {
+ return result.success;
+ }
+ throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "GetCrossReference failed: unknown result");
+ }
+
public TGetOperationStatusResp GetOperationStatus(TGetOperationStatusReq req) throws org.apache.thrift.TException
{
send_GetOperationStatus(req);
@@ -948,6 +1002,70 @@ public class TCLIService {
}
}
+ public void GetPrimaryKeys(TGetPrimaryKeysReq req, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+ checkReady();
+ GetPrimaryKeys_call method_call = new GetPrimaryKeys_call(req, resultHandler, this, ___protocolFactory, ___transport);
+ this.___currentMethod = method_call;
+ ___manager.call(method_call);
+ }
+
+ public static class GetPrimaryKeys_call extends org.apache.thrift.async.TAsyncMethodCall {
+ private TGetPrimaryKeysReq req;
+ public GetPrimaryKeys_call(TGetPrimaryKeysReq req, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+ super(client, protocolFactory, transport, resultHandler, false);
+ this.req = req;
+ }
+
+ public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+ prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("GetPrimaryKeys", org.apache.thrift.protocol.TMessageType.CALL, 0));
+ GetPrimaryKeys_args args = new GetPrimaryKeys_args();
+ args.setReq(req);
+ args.write(prot);
+ prot.writeMessageEnd();
+ }
+
+ public TGetPrimaryKeysResp getResult() throws org.apache.thrift.TException {
+ if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+ throw new IllegalStateException("Method call not finished!");
+ }
+ org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+ org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+ return (new Client(prot)).recv_GetPrimaryKeys();
+ }
+ }
+
+ public void GetCrossReference(TGetCrossReferenceReq req, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+ checkReady();
+ GetCrossReference_call method_call = new GetCrossReference_call(req, resultHandler, this, ___protocolFactory, ___transport);
+ this.___currentMethod = method_call;
+ ___manager.call(method_call);
+ }
+
+ public static class GetCrossReference_call extends org.apache.thrift.async.TAsyncMethodCall {
+ private TGetCrossReferenceReq req;
+ public GetCrossReference_call(TGetCrossReferenceReq req, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+ super(client, protocolFactory, transport, resultHandler, false);
+ this.req = req;
+ }
+
+ public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+ prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("GetCrossReference", org.apache.thrift.protocol.TMessageType.CALL, 0));
+ GetCrossReference_args args = new GetCrossReference_args();
+ args.setReq(req);
+ args.write(prot);
+ prot.writeMessageEnd();
+ }
+
+ public TGetCrossReferenceResp getResult() throws org.apache.thrift.TException {
+ if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+ throw new IllegalStateException("Method call not finished!");
+ }
+ org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+ org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+ return (new Client(prot)).recv_GetCrossReference();
+ }
+ }
+
public void GetOperationStatus(TGetOperationStatusReq req, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
checkReady();
GetOperationStatus_call method_call = new GetOperationStatus_call(req, resultHandler, this, ___protocolFactory, ___transport);
@@ -1228,6 +1346,8 @@ public class TCLIService {
processMap.put("GetTableTypes", new GetTableTypes());
processMap.put("GetColumns", new GetColumns());
processMap.put("GetFunctions", new GetFunctions());
+ processMap.put("GetPrimaryKeys", new GetPrimaryKeys());
+ processMap.put("GetCrossReference", new GetCrossReference());
processMap.put("GetOperationStatus", new GetOperationStatus());
processMap.put("CancelOperation", new CancelOperation());
processMap.put("CloseOperation", new CloseOperation());
@@ -1459,6 +1579,46 @@ public class TCLIService {
}
}
+ public static class GetPrimaryKeys<I extends Iface> extends org.apache.thrift.ProcessFunction<I, GetPrimaryKeys_args> {
+ public GetPrimaryKeys() {
+ super("GetPrimaryKeys");
+ }
+
+ public GetPrimaryKeys_args getEmptyArgsInstance() {
+ return new GetPrimaryKeys_args();
+ }
+
+ protected boolean isOneway() {
+ return false;
+ }
+
+ public GetPrimaryKeys_result getResult(I iface, GetPrimaryKeys_args args) throws org.apache.thrift.TException {
+ GetPrimaryKeys_result result = new GetPrimaryKeys_result();
+ result.success = iface.GetPrimaryKeys(args.req);
+ return result;
+ }
+ }
+
+ public static class GetCrossReference<I extends Iface> extends org.apache.thrift.ProcessFunction<I, GetCrossReference_args> {
+ public GetCrossReference() {
+ super("GetCrossReference");
+ }
+
+ public GetCrossReference_args getEmptyArgsInstance() {
+ return new GetCrossReference_args();
+ }
+
+ protected boolean isOneway() {
+ return false;
+ }
+
+ public GetCrossReference_result getResult(I iface, GetCrossReference_args args) throws org.apache.thrift.TException {
+ GetCrossReference_result result = new GetCrossReference_result();
+ result.success = iface.GetCrossReference(args.req);
+ return result;
+ }
+ }
+
public static class GetOperationStatus<I extends Iface> extends org.apache.thrift.ProcessFunction<I, GetOperationStatus_args> {
public GetOperationStatus() {
super("GetOperationStatus");
@@ -1643,6 +1803,8 @@ public class TCLIService {
processMap.put("GetTableTypes", new GetTableTypes());
processMap.put("GetColumns", new GetColumns());
processMap.put("GetFunctions", new GetFunctions());
+ processMap.put("GetPrimaryKeys", new GetPrimaryKeys());
+ processMap.put("GetCrossReference", new GetCrossReference());
processMap.put("GetOperationStatus", new GetOperationStatus());
processMap.put("CancelOperation", new CancelOperation());
processMap.put("CloseOperation", new CloseOperation());
@@ -2215,6 +2377,108 @@ public class TCLIService {
}
}
+ public static class GetPrimaryKeys<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, GetPrimaryKeys_args, TGetPrimaryKeysResp> {
+ public GetPrimaryKeys() {
+ super("GetPrimaryKeys");
+ }
+
+ public GetPrimaryKeys_args getEmptyArgsInstance() {
+ return new GetPrimaryKeys_args();
+ }
+
+ public AsyncMethodCallback<TGetPrimaryKeysResp> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+ final org.apache.thrift.AsyncProcessFunction fcall = this;
+ return new AsyncMethodCallback<TGetPrimaryKeysResp>() {
+ public void onComplete(TGetPrimaryKeysResp o) {
+ GetPrimaryKeys_result result = new GetPrimaryKeys_result();
+ result.success = o;
+ try {
+ fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+ return;
+ } catch (Exception e) {
+ LOGGER.error("Exception writing to internal frame buffer", e);
+ }
+ fb.close();
+ }
+ public void onError(Exception e) {
+ byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+ org.apache.thrift.TBase msg;
+ GetPrimaryKeys_result result = new GetPrimaryKeys_result();
+ {
+ msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+ msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+ }
+ try {
+ fcall.sendResponse(fb,msg,msgType,seqid);
+ return;
+ } catch (Exception ex) {
+ LOGGER.error("Exception writing to internal frame buffer", ex);
+ }
+ fb.close();
+ }
+ };
+ }
+
+ protected boolean isOneway() {
+ return false;
+ }
+
+ public void start(I iface, GetPrimaryKeys_args args, org.apache.thrift.async.AsyncMethodCallback<TGetPrimaryKeysResp> resultHandler) throws TException {
+ iface.GetPrimaryKeys(args.req,resultHandler);
+ }
+ }
+
+ public static class GetCrossReference<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, GetCrossReference_args, TGetCrossReferenceResp> {
+ public GetCrossReference() {
+ super("GetCrossReference");
+ }
+
+ public GetCrossReference_args getEmptyArgsInstance() {
+ return new GetCrossReference_args();
+ }
+
+ public AsyncMethodCallback<TGetCrossReferenceResp> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+ final org.apache.thrift.AsyncProcessFunction fcall = this;
+ return new AsyncMethodCallback<TGetCrossReferenceResp>() {
+ public void onComplete(TGetCrossReferenceResp o) {
+ GetCrossReference_result result = new GetCrossReference_result();
+ result.success = o;
+ try {
+ fcall.sendResponse(fb,result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+ return;
+ } catch (Exception e) {
+ LOGGER.error("Exception writing to internal frame buffer", e);
+ }
+ fb.close();
+ }
+ public void onError(Exception e) {
+ byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+ org.apache.thrift.TBase msg;
+ GetCrossReference_result result = new GetCrossReference_result();
+ {
+ msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+ msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+ }
+ try {
+ fcall.sendResponse(fb,msg,msgType,seqid);
+ return;
+ } catch (Exception ex) {
+ LOGGER.error("Exception writing to internal frame buffer", ex);
+ }
+ fb.close();
+ }
+ };
+ }
+
+ protected boolean isOneway() {
+ return false;
+ }
+
+ public void start(I iface, GetCrossReference_args args, org.apache.thrift.async.AsyncMethodCallback<TGetCrossReferenceResp> resultHandler) throws TException {
+ iface.GetCrossReference(args.req,resultHandler);
+ }
+ }
+
public static class GetOperationStatus<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, GetOperationStatus_args, TGetOperationStatusResp> {
public GetOperationStatus() {
super("GetOperationStatus");
@@ -10611,6 +10875,1458 @@ public class TCLIService {
}
+ public static class GetPrimaryKeys_args implements org.apache.thrift.TBase<GetPrimaryKeys_args, GetPrimaryKeys_args._Fields>, java.io.Serializable, Cloneable, Comparable<GetPrimaryKeys_args> {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GetPrimaryKeys_args");
+
+ private static final org.apache.thrift.protocol.TField REQ_FIELD_DESC = new org.apache.thrift.protocol.TField("req", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+ private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+ static {
+ schemes.put(StandardScheme.class, new GetPrimaryKeys_argsStandardSchemeFactory());
+ schemes.put(TupleScheme.class, new GetPrimaryKeys_argsTupleSchemeFactory());
+ }
+
+ private TGetPrimaryKeysReq req; // required
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ REQ((short)1, "req");
+
+ private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+ static {
+ for (_Fields field : EnumSet.allOf(_Fields.class)) {
+ byName.put(field.getFieldName(), field);
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, or null if its not found.
+ */
+ public static _Fields findByThriftId(int fieldId) {
+ switch(fieldId) {
+ case 1: // REQ
+ return REQ;
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, throwing an exception
+ * if it is not found.
+ */
+ public static _Fields findByThriftIdOrThrow(int fieldId) {
+ _Fields fields = findByThriftId(fieldId);
+ if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+ return fields;
+ }
+
+ /**
+ * Find the _Fields constant that matches name, or null if its not found.
+ */
+ public static _Fields findByName(String name) {
+ return byName.get(name);
+ }
+
+ private final short _thriftId;
+ private final String _fieldName;
+
+ _Fields(short thriftId, String fieldName) {
+ _thriftId = thriftId;
+ _fieldName = fieldName;
+ }
+
+ public short getThriftFieldId() {
+ return _thriftId;
+ }
+
+ public String getFieldName() {
+ return _fieldName;
+ }
+ }
+
+ // isset id assignments
+ public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+ static {
+ Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+ tmpMap.put(_Fields.REQ, new org.apache.thrift.meta_data.FieldMetaData("req", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TGetPrimaryKeysReq.class)));
+ metaDataMap = Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(GetPrimaryKeys_args.class, metaDataMap);
+ }
+
+ public GetPrimaryKeys_args() {
+ }
+
+ public GetPrimaryKeys_args(
+ TGetPrimaryKeysReq req)
+ {
+ this();
+ this.req = req;
+ }
+
+ /**
+ * Performs a deep copy on <i>other</i>.
+ */
+ public GetPrimaryKeys_args(GetPrimaryKeys_args other) {
+ if (other.isSetReq()) {
+ this.req = new TGetPrimaryKeysReq(other.req);
+ }
+ }
+
+ public GetPrimaryKeys_args deepCopy() {
+ return new GetPrimaryKeys_args(this);
+ }
+
+ @Override
+ public void clear() {
+ this.req = null;
+ }
+
+ public TGetPrimaryKeysReq getReq() {
+ return this.req;
+ }
+
+ public void setReq(TGetPrimaryKeysReq req) {
+ this.req = req;
+ }
+
+ public void unsetReq() {
+ this.req = null;
+ }
+
+ /** Returns true if field req is set (has been assigned a value) and false otherwise */
+ public boolean isSetReq() {
+ return this.req != null;
+ }
+
+ public void setReqIsSet(boolean value) {
+ if (!value) {
+ this.req = null;
+ }
+ }
+
+ public void setFieldValue(_Fields field, Object value) {
+ switch (field) {
+ case REQ:
+ if (value == null) {
+ unsetReq();
+ } else {
+ setReq((TGetPrimaryKeysReq)value);
+ }
+ break;
+
+ }
+ }
+
+ public Object getFieldValue(_Fields field) {
+ switch (field) {
+ case REQ:
+ return getReq();
+
+ }
+ throw new IllegalStateException();
+ }
+
+ /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+ public boolean isSet(_Fields field) {
+ if (field == null) {
+ throw new IllegalArgumentException();
+ }
+
+ switch (field) {
+ case REQ:
+ return isSetReq();
+ }
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof GetPrimaryKeys_args)
+ return this.equals((GetPrimaryKeys_args)that);
+ return false;
+ }
+
+ public boolean equals(GetPrimaryKeys_args that) {
+ if (that == null)
+ return false;
+
+ boolean this_present_req = true && this.isSetReq();
+ boolean that_present_req = true && that.isSetReq();
+ if (this_present_req || that_present_req) {
+ if (!(this_present_req && that_present_req))
+ return false;
+ if (!this.req.equals(that.req))
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ List<Object> list = new ArrayList<Object>();
+
+ boolean present_req = true && (isSetReq());
+ list.add(present_req);
+ if (present_req)
+ list.add(req);
+
+ return list.hashCode();
+ }
+
+ @Override
+ public int compareTo(GetPrimaryKeys_args other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+
+ lastComparison = Boolean.valueOf(isSetReq()).compareTo(other.isSetReq());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetReq()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.req, other.req);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ return 0;
+ }
+
+ public _Fields fieldForId(int fieldId) {
+ return _Fields.findByThriftId(fieldId);
+ }
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+ schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder("GetPrimaryKeys_args(");
+ boolean first = true;
+
+ sb.append("req:");
+ if (this.req == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.req);
+ }
+ first = false;
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ // check for sub-struct validity
+ if (req != null) {
+ req.validate();
+ }
+ }
+
+ private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+ try {
+ write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+ try {
+ read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private static class GetPrimaryKeys_argsStandardSchemeFactory implements SchemeFactory {
+ public GetPrimaryKeys_argsStandardScheme getScheme() {
+ return new GetPrimaryKeys_argsStandardScheme();
+ }
+ }
+
+ private static class GetPrimaryKeys_argsStandardScheme extends StandardScheme<GetPrimaryKeys_args> {
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot, GetPrimaryKeys_args struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TField schemeField;
+ iprot.readStructBegin();
+ while (true)
+ {
+ schemeField = iprot.readFieldBegin();
+ if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (schemeField.id) {
+ case 1: // REQ
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+ struct.req = new TGetPrimaryKeysReq();
+ struct.req.read(iprot);
+ struct.setReqIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+ struct.validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot, GetPrimaryKeys_args struct) throws org.apache.thrift.TException {
+ struct.validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ if (struct.req != null) {
+ oprot.writeFieldBegin(REQ_FIELD_DESC);
+ struct.req.write(oprot);
+ oprot.writeFieldEnd();
+ }
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ }
+
+ private static class GetPrimaryKeys_argsTupleSchemeFactory implements SchemeFactory {
+ public GetPrimaryKeys_argsTupleScheme getScheme() {
+ return new GetPrimaryKeys_argsTupleScheme();
+ }
+ }
+
+ private static class GetPrimaryKeys_argsTupleScheme extends TupleScheme<GetPrimaryKeys_args> {
+
+ @Override
+ public void write(org.apache.thrift.protocol.TProtocol prot, GetPrimaryKeys_args struct) throws org.apache.thrift.TException {
+ TTupleProtocol oprot = (TTupleProtocol) prot;
+ BitSet optionals = new BitSet();
+ if (struct.isSetReq()) {
+ optionals.set(0);
+ }
+ oprot.writeBitSet(optionals, 1);
+ if (struct.isSetReq()) {
+ struct.req.write(oprot);
+ }
+ }
+
+ @Override
+ public void read(org.apache.thrift.protocol.TProtocol prot, GetPrimaryKeys_args struct) throws org.apache.thrift.TException {
+ TTupleProtocol iprot = (TTupleProtocol) prot;
+ BitSet incoming = iprot.readBitSet(1);
+ if (incoming.get(0)) {
+ struct.req = new TGetPrimaryKeysReq();
+ struct.req.read(iprot);
+ struct.setReqIsSet(true);
+ }
+ }
+ }
+
+ }
+
+ public static class GetPrimaryKeys_result implements org.apache.thrift.TBase<GetPrimaryKeys_result, GetPrimaryKeys_result._Fields>, java.io.Serializable, Cloneable, Comparable<GetPrimaryKeys_result> {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GetPrimaryKeys_result");
+
+ private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
+
+ private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+ static {
+ schemes.put(StandardScheme.class, new GetPrimaryKeys_resultStandardSchemeFactory());
+ schemes.put(TupleScheme.class, new GetPrimaryKeys_resultTupleSchemeFactory());
+ }
+
+ private TGetPrimaryKeysResp success; // required
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ SUCCESS((short)0, "success");
+
+ private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+ static {
+ for (_Fields field : EnumSet.allOf(_Fields.class)) {
+ byName.put(field.getFieldName(), field);
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, or null if its not found.
+ */
+ public static _Fields findByThriftId(int fieldId) {
+ switch(fieldId) {
+ case 0: // SUCCESS
+ return SUCCESS;
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, throwing an exception
+ * if it is not found.
+ */
+ public static _Fields findByThriftIdOrThrow(int fieldId) {
+ _Fields fields = findByThriftId(fieldId);
+ if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+ return fields;
+ }
+
+ /**
+ * Find the _Fields constant that matches name, or null if its not found.
+ */
+ public static _Fields findByName(String name) {
+ return byName.get(name);
+ }
+
+ private final short _thriftId;
+ private final String _fieldName;
+
+ _Fields(short thriftId, String fieldName) {
+ _thriftId = thriftId;
+ _fieldName = fieldName;
+ }
+
+ public short getThriftFieldId() {
+ return _thriftId;
+ }
+
+ public String getFieldName() {
+ return _fieldName;
+ }
+ }
+
+ // isset id assignments
+ public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+ static {
+ Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+ tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TGetPrimaryKeysResp.class)));
+ metaDataMap = Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(GetPrimaryKeys_result.class, metaDataMap);
+ }
+
+ public GetPrimaryKeys_result() {
+ }
+
+ public GetPrimaryKeys_result(
+ TGetPrimaryKeysResp success)
+ {
+ this();
+ this.success = success;
+ }
+
+ /**
+ * Performs a deep copy on <i>other</i>.
+ */
+ public GetPrimaryKeys_result(GetPrimaryKeys_result other) {
+ if (other.isSetSuccess()) {
+ this.success = new TGetPrimaryKeysResp(other.success);
+ }
+ }
+
+ public GetPrimaryKeys_result deepCopy() {
+ return new GetPrimaryKeys_result(this);
+ }
+
+ @Override
+ public void clear() {
+ this.success = null;
+ }
+
+ public TGetPrimaryKeysResp getSuccess() {
+ return this.success;
+ }
+
+ public void setSuccess(TGetPrimaryKeysResp success) {
+ this.success = success;
+ }
+
+ public void unsetSuccess() {
+ this.success = null;
+ }
+
+ /** Returns true if field success is set (has been assigned a value) and false otherwise */
+ public boolean isSetSuccess() {
+ return this.success != null;
+ }
+
+ public void setSuccessIsSet(boolean value) {
+ if (!value) {
+ this.success = null;
+ }
+ }
+
+ public void setFieldValue(_Fields field, Object value) {
+ switch (field) {
+ case SUCCESS:
+ if (value == null) {
+ unsetSuccess();
+ } else {
+ setSuccess((TGetPrimaryKeysResp)value);
+ }
+ break;
+
+ }
+ }
+
+ public Object getFieldValue(_Fields field) {
+ switch (field) {
+ case SUCCESS:
+ return getSuccess();
+
+ }
+ throw new IllegalStateException();
+ }
+
+ /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+ public boolean isSet(_Fields field) {
+ if (field == null) {
+ throw new IllegalArgumentException();
+ }
+
+ switch (field) {
+ case SUCCESS:
+ return isSetSuccess();
+ }
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof GetPrimaryKeys_result)
+ return this.equals((GetPrimaryKeys_result)that);
+ return false;
+ }
+
+ public boolean equals(GetPrimaryKeys_result that) {
+ if (that == null)
+ return false;
+
+ boolean this_present_success = true && this.isSetSuccess();
+ boolean that_present_success = true && that.isSetSuccess();
+ if (this_present_success || that_present_success) {
+ if (!(this_present_success && that_present_success))
+ return false;
+ if (!this.success.equals(that.success))
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ List<Object> list = new ArrayList<Object>();
+
+ boolean present_success = true && (isSetSuccess());
+ list.add(present_success);
+ if (present_success)
+ list.add(success);
+
+ return list.hashCode();
+ }
+
+ @Override
+ public int compareTo(GetPrimaryKeys_result other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+
+ lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetSuccess()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ return 0;
+ }
+
+ public _Fields fieldForId(int fieldId) {
+ return _Fields.findByThriftId(fieldId);
+ }
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+ schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder("GetPrimaryKeys_result(");
+ boolean first = true;
+
+ sb.append("success:");
+ if (this.success == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.success);
+ }
+ first = false;
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ // check for sub-struct validity
+ if (success != null) {
+ success.validate();
+ }
+ }
+
+ private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+ try {
+ write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+ try {
+ read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private static class GetPrimaryKeys_resultStandardSchemeFactory implements SchemeFactory {
+ public GetPrimaryKeys_resultStandardScheme getScheme() {
+ return new GetPrimaryKeys_resultStandardScheme();
+ }
+ }
+
+ private static class GetPrimaryKeys_resultStandardScheme extends StandardScheme<GetPrimaryKeys_result> {
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot, GetPrimaryKeys_result struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TField schemeField;
+ iprot.readStructBegin();
+ while (true)
+ {
+ schemeField = iprot.readFieldBegin();
+ if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (schemeField.id) {
+ case 0: // SUCCESS
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+ struct.success = new TGetPrimaryKeysResp();
+ struct.success.read(iprot);
+ struct.setSuccessIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+ struct.validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot, GetPrimaryKeys_result struct) throws org.apache.thrift.TException {
+ struct.validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ if (struct.success != null) {
+ oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+ struct.success.write(oprot);
+ oprot.writeFieldEnd();
+ }
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ }
+
+ private static class GetPrimaryKeys_resultTupleSchemeFactory implements SchemeFactory {
+ public GetPrimaryKeys_resultTupleScheme getScheme() {
+ return new GetPrimaryKeys_resultTupleScheme();
+ }
+ }
+
+ private static class GetPrimaryKeys_resultTupleScheme extends TupleScheme<GetPrimaryKeys_result> {
+
+ @Override
+ public void write(org.apache.thrift.protocol.TProtocol prot, GetPrimaryKeys_result struct) throws org.apache.thrift.TException {
+ TTupleProtocol oprot = (TTupleProtocol) prot;
+ BitSet optionals = new BitSet();
+ if (struct.isSetSuccess()) {
+ optionals.set(0);
+ }
+ oprot.writeBitSet(optionals, 1);
+ if (struct.isSetSuccess()) {
+ struct.success.write(oprot);
+ }
+ }
+
+ @Override
+ public void read(org.apache.thrift.protocol.TProtocol prot, GetPrimaryKeys_result struct) throws org.apache.thrift.TException {
+ TTupleProtocol iprot = (TTupleProtocol) prot;
+ BitSet incoming = iprot.readBitSet(1);
+ if (incoming.get(0)) {
+ struct.success = new TGetPrimaryKeysResp();
+ struct.success.read(iprot);
+ struct.setSuccessIsSet(true);
+ }
+ }
+ }
+
+ }
+
+ public static class GetCrossReference_args implements org.apache.thrift.TBase<GetCrossReference_args, GetCrossReference_args._Fields>, java.io.Serializable, Cloneable, Comparable<GetCrossReference_args> {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GetCrossReference_args");
+
+ private static final org.apache.thrift.protocol.TField REQ_FIELD_DESC = new org.apache.thrift.protocol.TField("req", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+ private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+ static {
+ schemes.put(StandardScheme.class, new GetCrossReference_argsStandardSchemeFactory());
+ schemes.put(TupleScheme.class, new GetCrossReference_argsTupleSchemeFactory());
+ }
+
+ private TGetCrossReferenceReq req; // required
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ REQ((short)1, "req");
+
+ private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+ static {
+ for (_Fields field : EnumSet.allOf(_Fields.class)) {
+ byName.put(field.getFieldName(), field);
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, or null if its not found.
+ */
+ public static _Fields findByThriftId(int fieldId) {
+ switch(fieldId) {
+ case 1: // REQ
+ return REQ;
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, throwing an exception
+ * if it is not found.
+ */
+ public static _Fields findByThriftIdOrThrow(int fieldId) {
+ _Fields fields = findByThriftId(fieldId);
+ if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+ return fields;
+ }
+
+ /**
+ * Find the _Fields constant that matches name, or null if its not found.
+ */
+ public static _Fields findByName(String name) {
+ return byName.get(name);
+ }
+
+ private final short _thriftId;
+ private final String _fieldName;
+
+ _Fields(short thriftId, String fieldName) {
+ _thriftId = thriftId;
+ _fieldName = fieldName;
+ }
+
+ public short getThriftFieldId() {
+ return _thriftId;
+ }
+
+ public String getFieldName() {
+ return _fieldName;
+ }
+ }
+
+ // isset id assignments
+ public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+ static {
+ Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+ tmpMap.put(_Fields.REQ, new org.apache.thrift.meta_data.FieldMetaData("req", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TGetCrossReferenceReq.class)));
+ metaDataMap = Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(GetCrossReference_args.class, metaDataMap);
+ }
+
+ public GetCrossReference_args() {
+ }
+
+ public GetCrossReference_args(
+ TGetCrossReferenceReq req)
+ {
+ this();
+ this.req = req;
+ }
+
+ /**
+ * Performs a deep copy on <i>other</i>.
+ */
+ public GetCrossReference_args(GetCrossReference_args other) {
+ if (other.isSetReq()) {
+ this.req = new TGetCrossReferenceReq(other.req);
+ }
+ }
+
+ public GetCrossReference_args deepCopy() {
+ return new GetCrossReference_args(this);
+ }
+
+ @Override
+ public void clear() {
+ this.req = null;
+ }
+
+ public TGetCrossReferenceReq getReq() {
+ return this.req;
+ }
+
+ public void setReq(TGetCrossReferenceReq req) {
+ this.req = req;
+ }
+
+ public void unsetReq() {
+ this.req = null;
+ }
+
+ /** Returns true if field req is set (has been assigned a value) and false otherwise */
+ public boolean isSetReq() {
+ return this.req != null;
+ }
+
+ public void setReqIsSet(boolean value) {
+ if (!value) {
+ this.req = null;
+ }
+ }
+
+ public void setFieldValue(_Fields field, Object value) {
+ switch (field) {
+ case REQ:
+ if (value == null) {
+ unsetReq();
+ } else {
+ setReq((TGetCrossReferenceReq)value);
+ }
+ break;
+
+ }
+ }
+
+ public Object getFieldValue(_Fields field) {
+ switch (field) {
+ case REQ:
+ return getReq();
+
+ }
+ throw new IllegalStateException();
+ }
+
+ /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+ public boolean isSet(_Fields field) {
+ if (field == null) {
+ throw new IllegalArgumentException();
+ }
+
+ switch (field) {
+ case REQ:
+ return isSetReq();
+ }
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof GetCrossReference_args)
+ return this.equals((GetCrossReference_args)that);
+ return false;
+ }
+
+ public boolean equals(GetCrossReference_args that) {
+ if (that == null)
+ return false;
+
+ boolean this_present_req = true && this.isSetReq();
+ boolean that_present_req = true && that.isSetReq();
+ if (this_present_req || that_present_req) {
+ if (!(this_present_req && that_present_req))
+ return false;
+ if (!this.req.equals(that.req))
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ List<Object> list = new ArrayList<Object>();
+
+ boolean present_req = true && (isSetReq());
+ list.add(present_req);
+ if (present_req)
+ list.add(req);
+
+ return list.hashCode();
+ }
+
+ @Override
+ public int compareTo(GetCrossReference_args other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+
+ lastComparison = Boolean.valueOf(isSetReq()).compareTo(other.isSetReq());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetReq()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.req, other.req);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ return 0;
+ }
+
+ public _Fields fieldForId(int fieldId) {
+ return _Fields.findByThriftId(fieldId);
+ }
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+ schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder("GetCrossReference_args(");
+ boolean first = true;
+
+ sb.append("req:");
+ if (this.req == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.req);
+ }
+ first = false;
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ // check for sub-struct validity
+ if (req != null) {
+ req.validate();
+ }
+ }
+
+ private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+ try {
+ write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+ try {
+ read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private static class GetCrossReference_argsStandardSchemeFactory implements SchemeFactory {
+ public GetCrossReference_argsStandardScheme getScheme() {
+ return new GetCrossReference_argsStandardScheme();
+ }
+ }
+
+ private static class GetCrossReference_argsStandardScheme extends StandardScheme<GetCrossReference_args> {
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot, GetCrossReference_args struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TField schemeField;
+ iprot.readStructBegin();
+ while (true)
+ {
+ schemeField = iprot.readFieldBegin();
+ if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (schemeField.id) {
+ case 1: // REQ
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+ struct.req = new TGetCrossReferenceReq();
+ struct.req.read(iprot);
+ struct.setReqIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+ struct.validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot, GetCrossReference_args struct) throws org.apache.thrift.TException {
+ struct.validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ if (struct.req != null) {
+ oprot.writeFieldBegin(REQ_FIELD_DESC);
+ struct.req.write(oprot);
+ oprot.writeFieldEnd();
+ }
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ }
+
+ private static class GetCrossReference_argsTupleSchemeFactory implements SchemeFactory {
+ public GetCrossReference_argsTupleScheme getScheme() {
+ return new GetCrossReference_argsTupleScheme();
+ }
+ }
+
+ private static class GetCrossReference_argsTupleScheme extends TupleScheme<GetCrossReference_args> {
+
+ @Override
+ public void write(org.apache.thrift.protocol.TProtocol prot, GetCrossReference_args struct) throws org.apache.thrift.TException {
+ TTupleProtocol oprot = (TTupleProtocol) prot;
+ BitSet optionals = new BitSet();
+ if (struct.isSetReq()) {
+ optionals.set(0);
+ }
+ oprot.writeBitSet(optionals, 1);
+ if (struct.isSetReq()) {
+ struct.req.write(oprot);
+ }
+ }
+
+ @Override
+ public void read(org.apache.thrift.protocol.TProtocol prot, GetCrossReference_args struct) throws org.apache.thrift.TException {
+ TTupleProtocol iprot = (TTupleProtocol) prot;
+ BitSet incoming = iprot.readBitSet(1);
+ if (incoming.get(0)) {
+ struct.req = new TGetCrossReferenceReq();
+ struct.req.read(iprot);
+ struct.setReqIsSet(true);
+ }
+ }
+ }
+
+ }
+
+ public static class GetCrossReference_result implements org.apache.thrift.TBase<GetCrossReference_result, GetCrossReference_result._Fields>, java.io.Serializable, Cloneable, Comparable<GetCrossReference_result> {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GetCrossReference_result");
+
+ private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
+
+ private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+ static {
+ schemes.put(StandardScheme.class, new GetCrossReference_resultStandardSchemeFactory());
+ schemes.put(TupleScheme.class, new GetCrossReference_resultTupleSchemeFactory());
+ }
+
+ private TGetCrossReferenceResp success; // required
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ SUCCESS((short)0, "success");
+
+ private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+ static {
+ for (_Fields field : EnumSet.allOf(_Fields.class)) {
+ byName.put(field.getFieldName(), field);
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, or null if its not found.
+ */
+ public static _Fields findByThriftId(int fieldId) {
+ switch(fieldId) {
+ case 0: // SUCCESS
+ return SUCCESS;
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, throwing an exception
+ * if it is not found.
+ */
+ public static _Fields findByThriftIdOrThrow(int fieldId) {
+ _Fields fields = findByThriftId(fieldId);
+ if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+ return fields;
+ }
+
+ /**
+ * Find the _Fields constant that matches name, or null if its not found.
+ */
+ public static _Fields findByName(String name) {
+ return byName.get(name);
+ }
+
+ private final short _thriftId;
+ private final String _fieldName;
+
+ _Fields(short thriftId, String fieldName) {
+ _thriftId = thriftId;
+ _fieldName = fieldName;
+ }
+
+ public short getThriftFieldId() {
+ return _thriftId;
+ }
+
+ public String getFieldName() {
+ return _fieldName;
+ }
+ }
+
+ // isset id assignments
+ public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+ static {
+ Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+ tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TGetCrossReferenceResp.class)));
+ metaDataMap = Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(GetCrossReference_result.class, metaDataMap);
+ }
+
+ public GetCrossReference_result() {
+ }
+
+ public GetCrossReference_result(
+ TGetCrossReferenceResp success)
+ {
+ this();
+ this.success = success;
+ }
+
+ /**
+ * Performs a deep copy on <i>other</i>.
+ */
+ public GetCrossReference_result(GetCrossReference_result other) {
+ if (other.isSetSuccess()) {
+ this.success = new TGetCrossReferenceResp(other.success);
+ }
+ }
+
+ public GetCrossReference_result deepCopy() {
+ return new GetCrossReference_result(this);
+ }
+
+ @Override
+ public void clear() {
+ this.success = null;
+ }
+
+ public TGetCrossReferenceResp getSuccess() {
+ return this.success;
+ }
+
+ public void setSuccess(TGetCrossReferenceResp success) {
+ this.success = success;
+ }
+
+ public void unsetSuccess() {
+ this.success = null;
+ }
+
+ /** Returns true if field success is set (has been assigned a value) and false otherwise */
+ public boolean isSetSuccess() {
+ return this.success != null;
+ }
+
+ public void setSuccessIsSet(boolean value) {
+ if (!value) {
+ this.success = null;
+ }
+ }
+
+ public void setFieldValue(_Fields field, Object value) {
+ switch (field) {
+ case SUCCESS:
+ if (value == null) {
+ unsetSuccess();
+ } else {
+ setSuccess((TGetCrossReferenceResp)value);
+ }
+ break;
+
+ }
+ }
+
+ public Object getFieldValue(_Fields field) {
+ switch (field) {
+ case SUCCESS:
+ return getSuccess();
+
+ }
+ throw new IllegalStateException();
+ }
+
+ /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+ public boolean isSet(_Fields field) {
+ if (field == null) {
+ throw new IllegalArgumentException();
+ }
+
+ switch (field) {
+ case SUCCESS:
+ return isSetSuccess();
+ }
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof GetCrossReference_result)
+ return this.equals((GetCrossReference_result)that);
+ return false;
+ }
+
+ public boolean equals(GetCrossReference_result that) {
+ if (that == null)
+ return false;
+
+ boolean this_present_success = true && this.isSetSuccess();
+ boolean that_present_success = true && that.isSetSuccess();
+ if (this_present_success || that_present_success) {
+ if (!(this_present_success && that_present_success))
+ return false;
+ if (!this.success.equals(that.success))
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ List<Object> list = new ArrayList<Object>();
+
+ boolean present_success = true && (isSetSuccess());
+ list.add(present_success);
+ if (present_success)
+ list.add(success);
+
+ return list.hashCode();
+ }
+
+ @Override
+ public int compareTo(GetCrossReference_result other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+
+ lastComparison = Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetSuccess()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ return 0;
+ }
+
+ public _Fields fieldForId(int fieldId) {
+ return _Fields.findByThriftId(fieldId);
+ }
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+ schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder("GetCrossReference_result(");
+ boolean first = true;
+
+ sb.append("success:");
+ if (this.success == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.success);
+ }
+ first = false;
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ // check for sub-struct validity
+ if (success != null) {
+ success.validate();
+ }
+ }
+
+ private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+ try {
+ write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+ try {
+ read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private static class GetCrossReference_resultStandardSchemeFactory implements SchemeFactory {
+ public GetCrossReference_resultStandardScheme getScheme() {
+ return new GetCrossReference_resultStandardScheme();
+ }
+ }
+
+ private static class GetCrossReference_resultStandardScheme extends StandardScheme<GetCrossReference_result> {
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot, GetCrossReference_result struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TField schemeField;
+ iprot.readStructBegin();
+ while (true)
+ {
+ schemeField = iprot.readFieldBegin();
+ if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (schemeField.id) {
+ case 0: // SUCCESS
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+ struct.success = new TGetCrossReferenceResp();
+ struct.success.read(iprot);
+ struct.setSuccessIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+ struct.validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot, GetCrossReference_result struct) throws org.apache.thrift.TException {
+ struct.validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ if (struct.success != null) {
+ oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+ struct.success.write(oprot);
+ oprot.writeFieldEnd();
+ }
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ }
+
+ private static class GetCrossReference_resultTupleSchemeFactory implements SchemeFactory {
+ public GetCrossReference_resultTupleScheme getScheme() {
+ return new GetCrossReference_resultTupleScheme();
+ }
+ }
+
+ private static class GetCrossReference_resultTupleScheme extends TupleScheme<GetCrossReference_result> {
+
+ @Override
+ public void write(org.apache.thrift.protocol.TProtocol prot, GetCrossReference_result struct) throws org.apache.thrift.TException {
+ TTupleProtocol oprot = (TTupleProtocol) prot;
+ BitSet optionals = new BitSet();
+ if (struct.isSetSuccess()) {
+ optionals.set(0);
+ }
+ oprot.writeBitSet(optionals, 1);
+ if (struct.isSetSuccess()) {
+ struct.success.write(oprot);
+ }
+ }
+
+ @Override
+ public void read(org.apache.thrift.protocol.TProtocol prot, GetCrossReference_result struct) throws org.apache.thrift.TException {
+ TTupleProtocol iprot = (TTupleProtocol) prot;
+ BitSet incoming = iprot.readBitSet(1);
+ if (incoming.get(0)) {
+ struct.success = new TGetCrossReferenceResp();
+ struct.success.read(iprot);
+ struct.setSuccessIsSet(true);
+ }
+ }
+ }
+
+ }
+
public static class GetOperationStatus_args implements org.apache.thrift.TBase<GetOperationStatus_args, GetOperationStatus_args._Fields>, java.io.Serializable, Cloneable, Comparable<GetOperationStatus_args> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("GetOperationStatus_args");
[29/50] [abbrv] hive git commit: HIVE-13130: HS2 changes : API calls
for retrieving primary keys and foreign keys information (Hari Subramaniyan,
reviewed by Ashutosh Chauhan)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/service/src/java/org/apache/hive/service/cli/ICLIService.java
----------------------------------------------------------------------
diff --git a/service/src/java/org/apache/hive/service/cli/ICLIService.java b/service/src/java/org/apache/hive/service/cli/ICLIService.java
index 0a54bdd..e4aef96 100644
--- a/service/src/java/org/apache/hive/service/cli/ICLIService.java
+++ b/service/src/java/org/apache/hive/service/cli/ICLIService.java
@@ -98,5 +98,13 @@ public interface ICLIService {
void renewDelegationToken(SessionHandle sessionHandle, HiveAuthFactory authFactory,
String tokenStr) throws HiveSQLException;
+ OperationHandle getPrimaryKeys(SessionHandle sessionHandle, String catalog,
+ String schema, String table) throws HiveSQLException;
+
+ OperationHandle getCrossReference(SessionHandle sessionHandle,
+ String primaryCatalog, String primarySchema, String primaryTable,
+ String foreignCatalog, String foreignSchema, String foreignTable)
+ throws HiveSQLException;
+
}
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/service/src/java/org/apache/hive/service/cli/operation/GetCrossReferenceOperation.java
----------------------------------------------------------------------
diff --git a/service/src/java/org/apache/hive/service/cli/operation/GetCrossReferenceOperation.java b/service/src/java/org/apache/hive/service/cli/operation/GetCrossReferenceOperation.java
new file mode 100644
index 0000000..a6439b6
--- /dev/null
+++ b/service/src/java/org/apache/hive/service/cli/operation/GetCrossReferenceOperation.java
@@ -0,0 +1,169 @@
+/**
+ * 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.service.cli.operation;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.hadoop.hive.metastore.IMetaStoreClient;
+import org.apache.hadoop.hive.metastore.api.ForeignKeysRequest;
+import org.apache.hadoop.hive.metastore.api.SQLForeignKey;
+import org.apache.hive.service.cli.FetchOrientation;
+import org.apache.hive.service.cli.HiveSQLException;
+import org.apache.hive.service.cli.OperationState;
+import org.apache.hive.service.cli.OperationType;
+import org.apache.hive.service.cli.RowSet;
+import org.apache.hive.service.cli.RowSetFactory;
+import org.apache.hive.service.cli.TableSchema;
+import org.apache.hadoop.hive.serde2.thrift.Type;
+import org.apache.hive.service.cli.session.HiveSession;
+
+/**
+ * GetCrossReferenceOperation.
+ *
+ */
+public class GetCrossReferenceOperation extends MetadataOperation {
+ /**
+ PKTABLE_CAT String => parent key table catalog (may be null)
+ PKTABLE_SCHEM String => parent key table schema (may be null)
+ PKTABLE_NAME String => parent key table name
+ PKCOLUMN_NAME String => parent key column name
+ FKTABLE_CAT String => foreign key table catalog (may be null) being exported (may be null)
+ FKTABLE_SCHEM String => foreign key table schema (may be null) being exported (may be null)
+ FKTABLE_NAME String => foreign key table name being exported
+ FKCOLUMN_NAME String => foreign key column name being exported
+ KEY_SEQ short => sequence number within foreign key( a value of 1 represents the first column of the foreign key, a value of 2 would represent the second column within the foreign key).
+ UPDATE_RULE short => What happens to foreign key when parent key is updated:
+ importedNoAction - do not allow update of parent key if it has been imported
+ importedKeyCascade - change imported key to agree with parent key update
+ importedKeySetNull - change imported key to NULL if its parent key has been updated
+ importedKeySetDefault - change imported key to default values if its parent key has been updated
+ importedKeyRestrict - same as importedKeyNoAction (for ODBC 2.x compatibility)
+ DELETE_RULE short => What happens to the foreign key when parent key is deleted.
+ importedKeyNoAction - do not allow delete of parent key if it has been imported
+ importedKeyCascade - delete rows that import a deleted key
+ importedKeySetNull - change imported key to NULL if its primary key has been deleted
+ importedKeyRestrict - same as importedKeyNoAction (for ODBC 2.x compatibility)
+ importedKeySetDefault - change imported key to default if its parent key has been deleted
+ FK_NAME String => foreign key name (may be null)
+ PK_NAME String => parent key name (may be null)
+ DEFERRABILITY short => can the evaluation of foreign key constraints be deferred until commit
+ importedKeyInitiallyDeferred - see SQL92 for definition
+ importedKeyInitiallyImmediate - see SQL92 for definition
+ importedKeyNotDeferrable - see SQL92 for definition
+ */
+ private static final TableSchema RESULT_SET_SCHEMA = new TableSchema()
+ .addPrimitiveColumn("PKTABLE_CAT", Type.STRING_TYPE,
+ "Parent key table catalog (may be null)")
+ .addPrimitiveColumn("PKTABLE_SCHEM", Type.STRING_TYPE,
+ "Parent key table schema (may be null)")
+ .addPrimitiveColumn("PKTABLE_NAME", Type.STRING_TYPE,
+ "Parent Key table name")
+ .addPrimitiveColumn("PKCOLUMN_NAME", Type.STRING_TYPE,
+ "Parent Key column name")
+ .addPrimitiveColumn("FKTABLE_CAT", Type.STRING_TYPE,
+ "Foreign key table catalog (may be null)")
+ .addPrimitiveColumn("FKTABLE_SCHEM", Type.STRING_TYPE,
+ "Foreign key table schema (may be null)")
+ .addPrimitiveColumn("FKTABLE_NAME", Type.STRING_TYPE,
+ "Foreign Key table name")
+ .addPrimitiveColumn("FKCOLUMN_NAME", Type.STRING_TYPE,
+ "Foreign Key column name")
+ .addPrimitiveColumn("KEQ_SEQ", Type.INT_TYPE,
+ "Sequence number within primary key")
+ .addPrimitiveColumn("UPDATE_RULE", Type.INT_TYPE,
+ "What happens to foreign key when parent key is updated")
+ .addPrimitiveColumn("DELETE_RULE", Type.INT_TYPE,
+ "What happens to foreign key when parent key is deleted")
+ .addPrimitiveColumn("FK_NAME", Type.STRING_TYPE,
+ "Foreign key name (may be null)")
+ .addPrimitiveColumn("PK_NAME", Type.STRING_TYPE,
+ "Primary key name (may be null)")
+ .addPrimitiveColumn("DEFERRABILITY", Type.INT_TYPE,
+ "Can the evaluation of foreign key constraints be deferred until commit");
+ private final String parentCatalogName;
+ private final String parentSchemaName;
+ private final String parentTableName;
+ private final String foreignCatalogName;
+ private final String foreignSchemaName;
+ private final String foreignTableName;
+ private final RowSet rowSet;
+
+ public GetCrossReferenceOperation(HiveSession parentSession,
+ String parentCatalogName, String parentSchemaName, String parentTableName,
+ String foreignCatalog, String foreignSchema, String foreignTable) {
+ super(parentSession, OperationType.GET_FUNCTIONS);
+ this.parentCatalogName = parentCatalogName;
+ this.parentSchemaName = parentSchemaName;
+ this.parentTableName = parentTableName;
+ this.foreignCatalogName = foreignCatalog;
+ this.foreignSchemaName = foreignSchema;
+ this.foreignTableName = foreignTable;
+ this.rowSet = RowSetFactory.create(RESULT_SET_SCHEMA, getProtocolVersion(), false);
+ }
+
+ @Override
+ public void runInternal() throws HiveSQLException {
+ setState(OperationState.RUNNING);
+ try {
+ IMetaStoreClient metastoreClient = getParentSession().getMetaStoreClient();
+ ForeignKeysRequest fkReq = new ForeignKeysRequest(parentSchemaName, parentTableName, foreignSchemaName, foreignTableName);
+ List<SQLForeignKey> fks = metastoreClient.getForeignKeys(fkReq);
+ if (fks == null) {
+ return;
+ }
+ for (SQLForeignKey fk : fks) {
+ rowSet.addRow(new Object[] {parentCatalogName,
+ fk.getPktable_db(), fk.getPktable_name(), fk.getPkcolumn_name(),
+ foreignCatalogName,
+ fk.getFktable_db(), fk.getFktable_name(), fk.getFkcolumn_name(),
+ fk.getKey_seq(), fk.getUpdate_rule(), fk.getDelete_rule(), fk.getFk_name(),
+ fk.getPk_name(), 0});
+ }
+ setState(OperationState.FINISHED);
+ } catch (Exception e) {
+ setState(OperationState.ERROR);
+ throw new HiveSQLException(e);
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.hive.service.cli.Operation#getResultSetSchema()
+ */
+ @Override
+ public TableSchema getResultSetSchema() throws HiveSQLException {
+ assertState(new ArrayList<OperationState>(Arrays.asList(OperationState.FINISHED)));
+ return RESULT_SET_SCHEMA;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.hive.service.cli.Operation#getNextRowSet(org.apache.hive.service.cli.FetchOrientation, long)
+ */
+ @Override
+ public RowSet getNextRowSet(FetchOrientation orientation, long maxRows) throws HiveSQLException {
+ assertState(new ArrayList<OperationState>(Arrays.asList(OperationState.FINISHED)));
+ validateDefaultFetchOrientation(orientation);
+ if (orientation.equals(FetchOrientation.FETCH_FIRST)) {
+ rowSet.setStartOffset(0);
+ }
+ return rowSet.extractSubset((int)maxRows);
+ }
+}
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/service/src/java/org/apache/hive/service/cli/operation/GetPrimaryKeysOperation.java
----------------------------------------------------------------------
diff --git a/service/src/java/org/apache/hive/service/cli/operation/GetPrimaryKeysOperation.java b/service/src/java/org/apache/hive/service/cli/operation/GetPrimaryKeysOperation.java
new file mode 100644
index 0000000..5ec510d
--- /dev/null
+++ b/service/src/java/org/apache/hive/service/cli/operation/GetPrimaryKeysOperation.java
@@ -0,0 +1,126 @@
+/**
+ * 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.service.cli.operation;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.commons.lang.NumberUtils;
+import org.apache.hadoop.hive.conf.HiveConf;
+import org.apache.hadoop.hive.metastore.IMetaStoreClient;
+import org.apache.hadoop.hive.metastore.api.PrimaryKeysRequest;
+import org.apache.hadoop.hive.metastore.api.SQLPrimaryKey;
+import org.apache.hadoop.hive.ql.security.authorization.plugin.HiveOperationType;
+import org.apache.hive.service.cli.FetchOrientation;
+import org.apache.hive.service.cli.HiveSQLException;
+import org.apache.hive.service.cli.OperationState;
+import org.apache.hive.service.cli.OperationType;
+import org.apache.hive.service.cli.RowSet;
+import org.apache.hive.service.cli.RowSetFactory;
+import org.apache.hive.service.cli.TableSchema;
+import org.apache.hadoop.hive.serde2.thrift.Type;
+import org.apache.hive.service.cli.session.HiveSession;
+
+/**
+ * GetPrimaryKeysOperation.
+ *
+ */
+public class GetPrimaryKeysOperation extends MetadataOperation {
+/**
+TABLE_CAT String => table catalog (may be null)
+TABLE_SCHEM String => table schema (may be null)
+TABLE_NAME String => table name
+COLUMN_NAME String => column name
+KEY_SEQ short => sequence number within primary key( a value of 1 represents the first column of the primary key, a value of 2 would represent the second column within the primary key).
+PK_NAME String => primary key name (may be null)
+ */
+ private static final TableSchema RESULT_SET_SCHEMA = new TableSchema()
+ .addPrimitiveColumn("TABLE_CAT", Type.STRING_TYPE,
+ "Table catalog (may be null)")
+ .addPrimitiveColumn("TABLE_SCHEM", Type.STRING_TYPE,
+ "Table schema (may be null)")
+ .addPrimitiveColumn("TABLE_NAME", Type.STRING_TYPE,
+ "Table name")
+ .addPrimitiveColumn("COLUMN_NAME", Type.STRING_TYPE,
+ "Column name")
+ .addPrimitiveColumn("KEQ_SEQ", Type.INT_TYPE,
+ "Sequence number within primary key")
+ .addPrimitiveColumn("PK_NAME", Type.STRING_TYPE,
+ "Primary key name (may be null)");
+
+ private final String catalogName;
+ private final String schemaName;
+ private final String tableName;
+
+ private final RowSet rowSet;
+
+ public GetPrimaryKeysOperation(HiveSession parentSession,
+ String catalogName, String schemaName, String tableName) {
+ super(parentSession, OperationType.GET_FUNCTIONS);
+ this.catalogName = catalogName;
+ this.schemaName = schemaName;
+ this.tableName = tableName;
+ this.rowSet = RowSetFactory.create(RESULT_SET_SCHEMA, getProtocolVersion(), false);
+ }
+
+ @Override
+ public void runInternal() throws HiveSQLException {
+ setState(OperationState.RUNNING);
+ try {
+ IMetaStoreClient metastoreClient = getParentSession().getMetaStoreClient();
+ PrimaryKeysRequest sqlReq = new PrimaryKeysRequest(schemaName, tableName);
+ List<SQLPrimaryKey> pks = metastoreClient.getPrimaryKeys(sqlReq);
+ if (pks == null) {
+ return;
+ }
+ for (SQLPrimaryKey pk : pks) {
+ rowSet.addRow(new Object[] {catalogName, pk.getTable_db(),
+ pk.getTable_name(), pk.getColumn_name(), pk.getKey_seq(), pk.getPk_name()});
+ }
+ setState(OperationState.FINISHED);
+ } catch (Exception e) {
+ setState(OperationState.ERROR);
+ throw new HiveSQLException(e);
+ }
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.apache.hive.service.cli.Operation#getResultSetSchema()
+ */
+ @Override
+ public TableSchema getResultSetSchema() throws HiveSQLException {
+ assertState(new ArrayList<OperationState>(Arrays.asList(OperationState.FINISHED)));
+ return RESULT_SET_SCHEMA;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.hive.service.cli.Operation#getNextRowSet(org.apache.hive.service.cli.FetchOrientation, long)
+ */
+ @Override
+ public RowSet getNextRowSet(FetchOrientation orientation, long maxRows) throws HiveSQLException {
+ assertState(new ArrayList<OperationState>(Arrays.asList(OperationState.FINISHED)));
+ validateDefaultFetchOrientation(orientation);
+ if (orientation.equals(FetchOrientation.FETCH_FIRST)) {
+ rowSet.setStartOffset(0);
+ }
+ return rowSet.extractSubset((int)maxRows);
+ }
+}
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/service/src/java/org/apache/hive/service/cli/operation/OperationManager.java
----------------------------------------------------------------------
diff --git a/service/src/java/org/apache/hive/service/cli/operation/OperationManager.java b/service/src/java/org/apache/hive/service/cli/operation/OperationManager.java
index eb3ab21..52e4b4d 100644
--- a/service/src/java/org/apache/hive/service/cli/operation/OperationManager.java
+++ b/service/src/java/org/apache/hive/service/cli/operation/OperationManager.java
@@ -169,6 +169,25 @@ public class OperationManager extends AbstractService {
return operation;
}
+ public GetPrimaryKeysOperation newGetPrimaryKeysOperation(HiveSession parentSession,
+ String catalogName, String schemaName, String tableName) {
+ GetPrimaryKeysOperation operation = new GetPrimaryKeysOperation(parentSession,
+ catalogName, schemaName, tableName);
+ addOperation(operation);
+ return operation;
+ }
+
+ public GetCrossReferenceOperation newGetCrossReferenceOperation(
+ HiveSession session, String primaryCatalog, String primarySchema,
+ String primaryTable, String foreignCatalog, String foreignSchema,
+ String foreignTable) {
+ GetCrossReferenceOperation operation = new GetCrossReferenceOperation(session,
+ primaryCatalog, primarySchema, primaryTable, foreignCatalog, foreignSchema,
+ foreignTable);
+ addOperation(operation);
+ return operation;
+ }
+
public Operation getOperation(OperationHandle operationHandle) throws HiveSQLException {
Operation operation = getOperationInternal(operationHandle);
if (operation == null) {
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/service/src/java/org/apache/hive/service/cli/session/HiveSession.java
----------------------------------------------------------------------
diff --git a/service/src/java/org/apache/hive/service/cli/session/HiveSession.java b/service/src/java/org/apache/hive/service/cli/session/HiveSession.java
index 4f4e92d..9ea643b 100644
--- a/service/src/java/org/apache/hive/service/cli/session/HiveSession.java
+++ b/service/src/java/org/apache/hive/service/cli/session/HiveSession.java
@@ -136,6 +136,34 @@ public interface HiveSession extends HiveSessionBase {
String functionName) throws HiveSQLException;
/**
+ * getPrimaryKeys operation handler
+ * @param catalog
+ * @param schema
+ * @param table
+ * @return
+ * @throws HiveSQLException
+ */
+ OperationHandle getPrimaryKeys(String catalog, String schema, String table)
+ throws HiveSQLException;
+
+
+ /**
+ * getCrossReference operation handler
+ * @param primaryCatalog
+ * @param primarySchema
+ * @param primaryTable
+ * @param foreignCatalog
+ * @param foreignSchema
+ * @param foreignTable
+ * @return
+ * @throws HiveSQLException
+ */
+ OperationHandle getCrossReference(String primaryCatalog,
+ String primarySchema, String primaryTable, String foreignCatalog,
+ String foreignSchema, String foreignTable)
+ throws HiveSQLException;
+
+ /**
* close the session
* @throws HiveSQLException
*/
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java
----------------------------------------------------------------------
diff --git a/service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java b/service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java
index ce50967..c24f162 100644
--- a/service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java
+++ b/service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java
@@ -63,7 +63,9 @@ import org.apache.hive.service.cli.TableSchema;
import org.apache.hive.service.cli.operation.ExecuteStatementOperation;
import org.apache.hive.service.cli.operation.GetCatalogsOperation;
import org.apache.hive.service.cli.operation.GetColumnsOperation;
+import org.apache.hive.service.cli.operation.GetCrossReferenceOperation;
import org.apache.hive.service.cli.operation.GetFunctionsOperation;
+import org.apache.hive.service.cli.operation.GetPrimaryKeysOperation;
import org.apache.hive.service.cli.operation.GetSchemasOperation;
import org.apache.hive.service.cli.operation.GetTableTypesOperation;
import org.apache.hive.service.cli.operation.GetTypeInfoOperation;
@@ -838,4 +840,49 @@ public class HiveSessionImpl implements HiveSession {
private String getUserFromToken(HiveAuthFactory authFactory, String tokenStr) throws HiveSQLException {
return authFactory.getUserFromToken(tokenStr);
}
+
+ @Override
+ public OperationHandle getPrimaryKeys(String catalog, String schema,
+ String table) throws HiveSQLException {
+ acquire(true);
+
+ OperationManager operationManager = getOperationManager();
+ GetPrimaryKeysOperation operation = operationManager
+ .newGetPrimaryKeysOperation(getSession(), catalog, schema, table);
+ OperationHandle opHandle = operation.getHandle();
+ try {
+ operation.run();
+ addOpHandle(opHandle);
+ return opHandle;
+ } catch (HiveSQLException e) {
+ operationManager.closeOperation(opHandle);
+ throw e;
+ } finally {
+ release(true);
+ }
+ }
+
+ @Override
+ public OperationHandle getCrossReference(String primaryCatalog,
+ String primarySchema, String primaryTable, String foreignCatalog,
+ String foreignSchema, String foreignTable) throws HiveSQLException {
+ acquire(true);
+
+ OperationManager operationManager = getOperationManager();
+ GetCrossReferenceOperation operation = operationManager
+ .newGetCrossReferenceOperation(getSession(), primaryCatalog,
+ primarySchema, primaryTable, foreignCatalog,
+ foreignSchema, foreignTable);
+ OperationHandle opHandle = operation.getHandle();
+ try {
+ operation.run();
+ addOpHandle(opHandle);
+ return opHandle;
+ } catch (HiveSQLException e) {
+ operationManager.closeOperation(opHandle);
+ throw e;
+ } finally {
+ release(true);
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/service/src/java/org/apache/hive/service/cli/thrift/RetryingThriftCLIServiceClient.java
----------------------------------------------------------------------
diff --git a/service/src/java/org/apache/hive/service/cli/thrift/RetryingThriftCLIServiceClient.java b/service/src/java/org/apache/hive/service/cli/thrift/RetryingThriftCLIServiceClient.java
index 14191e5..b2e0e9e 100644
--- a/service/src/java/org/apache/hive/service/cli/thrift/RetryingThriftCLIServiceClient.java
+++ b/service/src/java/org/apache/hive/service/cli/thrift/RetryingThriftCLIServiceClient.java
@@ -207,6 +207,22 @@ public class RetryingThriftCLIServiceClient implements InvocationHandler {
public void closeTransport() {
tTransport.close();
}
+
+ @Override
+ public OperationHandle getPrimaryKeys(SessionHandle sessionHandle,
+ String catalog, String schema, String table)
+ throws HiveSQLException {
+ return cliService.getPrimaryKeys(sessionHandle, catalog, schema, table);
+ }
+
+ @Override
+ public OperationHandle getCrossReference(SessionHandle sessionHandle,
+ String primaryCatalog, String primarySchema, String primaryTable,
+ String foreignCatalog, String foreignSchema, String foreignTable)
+ throws HiveSQLException {
+ return cliService.getCrossReference(sessionHandle, primaryCatalog, primarySchema,
+ primaryTable, foreignCatalog, foreignSchema, foreignTable);
+ }
}
protected RetryingThriftCLIServiceClient(HiveConf conf) {
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/service/src/java/org/apache/hive/service/cli/thrift/ThriftCLIService.java
----------------------------------------------------------------------
diff --git a/service/src/java/org/apache/hive/service/cli/thrift/ThriftCLIService.java b/service/src/java/org/apache/hive/service/cli/thrift/ThriftCLIService.java
index 74263e3..6ede1d7 100644
--- a/service/src/java/org/apache/hive/service/cli/thrift/ThriftCLIService.java
+++ b/service/src/java/org/apache/hive/service/cli/thrift/ThriftCLIService.java
@@ -66,6 +66,8 @@ import org.apache.hive.service.rpc.thrift.TGetCatalogsReq;
import org.apache.hive.service.rpc.thrift.TGetCatalogsResp;
import org.apache.hive.service.rpc.thrift.TGetColumnsReq;
import org.apache.hive.service.rpc.thrift.TGetColumnsResp;
+import org.apache.hive.service.rpc.thrift.TGetCrossReferenceReq;
+import org.apache.hive.service.rpc.thrift.TGetCrossReferenceResp;
import org.apache.hive.service.rpc.thrift.TGetDelegationTokenReq;
import org.apache.hive.service.rpc.thrift.TGetDelegationTokenResp;
import org.apache.hive.service.rpc.thrift.TGetFunctionsReq;
@@ -74,6 +76,8 @@ import org.apache.hive.service.rpc.thrift.TGetInfoReq;
import org.apache.hive.service.rpc.thrift.TGetInfoResp;
import org.apache.hive.service.rpc.thrift.TGetOperationStatusReq;
import org.apache.hive.service.rpc.thrift.TGetOperationStatusResp;
+import org.apache.hive.service.rpc.thrift.TGetPrimaryKeysReq;
+import org.apache.hive.service.rpc.thrift.TGetPrimaryKeysResp;
import org.apache.hive.service.rpc.thrift.TGetResultSetMetadataReq;
import org.apache.hive.service.rpc.thrift.TGetResultSetMetadataResp;
import org.apache.hive.service.rpc.thrift.TGetSchemasReq;
@@ -697,6 +701,41 @@ public abstract class ThriftCLIService extends AbstractService implements TCLISe
}
@Override
+ public TGetPrimaryKeysResp GetPrimaryKeys(TGetPrimaryKeysReq req)
+ throws TException {
+ TGetPrimaryKeysResp resp = new TGetPrimaryKeysResp();
+ try {
+ OperationHandle opHandle = cliService.getPrimaryKeys(
+ new SessionHandle(req.getSessionHandle()), req.getCatalogName(),
+ req.getSchemaName(), req.getTableName());
+ resp.setOperationHandle(opHandle.toTOperationHandle());
+ resp.setStatus(OK_STATUS);
+ } catch (Exception e) {
+ LOG.warn("Error getting functions: ", e);
+ resp.setStatus(HiveSQLException.toTStatus(e));
+ }
+ return resp;
+ }
+
+ @Override
+ public TGetCrossReferenceResp GetCrossReference(TGetCrossReferenceReq req)
+ throws TException {
+ TGetCrossReferenceResp resp = new TGetCrossReferenceResp();
+ try {
+ OperationHandle opHandle = cliService.getCrossReference(
+ new SessionHandle(req.getSessionHandle()), req.getParentCatalogName(),
+ req.getParentSchemaName(), req.getParentTableName(),
+ req.getForeignCatalogName(), req.getForeignSchemaName(), req.getForeignTableName());
+ resp.setOperationHandle(opHandle.toTOperationHandle());
+ resp.setStatus(OK_STATUS);
+ } catch (Exception e) {
+ LOG.warn("Error getting functions: ", e);
+ resp.setStatus(HiveSQLException.toTStatus(e));
+ }
+ return resp;
+ }
+
+ @Override
public abstract void run();
/**
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/service/src/java/org/apache/hive/service/cli/thrift/ThriftCLIServiceClient.java
----------------------------------------------------------------------
diff --git a/service/src/java/org/apache/hive/service/cli/thrift/ThriftCLIServiceClient.java b/service/src/java/org/apache/hive/service/cli/thrift/ThriftCLIServiceClient.java
index ccce6dc..098aea6 100644
--- a/service/src/java/org/apache/hive/service/cli/thrift/ThriftCLIServiceClient.java
+++ b/service/src/java/org/apache/hive/service/cli/thrift/ThriftCLIServiceClient.java
@@ -52,6 +52,8 @@ import org.apache.hive.service.rpc.thrift.TGetCatalogsReq;
import org.apache.hive.service.rpc.thrift.TGetCatalogsResp;
import org.apache.hive.service.rpc.thrift.TGetColumnsReq;
import org.apache.hive.service.rpc.thrift.TGetColumnsResp;
+import org.apache.hive.service.rpc.thrift.TGetCrossReferenceReq;
+import org.apache.hive.service.rpc.thrift.TGetCrossReferenceResp;
import org.apache.hive.service.rpc.thrift.TGetDelegationTokenReq;
import org.apache.hive.service.rpc.thrift.TGetDelegationTokenResp;
import org.apache.hive.service.rpc.thrift.TGetFunctionsReq;
@@ -60,6 +62,8 @@ import org.apache.hive.service.rpc.thrift.TGetInfoReq;
import org.apache.hive.service.rpc.thrift.TGetInfoResp;
import org.apache.hive.service.rpc.thrift.TGetOperationStatusReq;
import org.apache.hive.service.rpc.thrift.TGetOperationStatusResp;
+import org.apache.hive.service.rpc.thrift.TGetPrimaryKeysReq;
+import org.apache.hive.service.rpc.thrift.TGetPrimaryKeysResp;
import org.apache.hive.service.rpc.thrift.TGetResultSetMetadataReq;
import org.apache.hive.service.rpc.thrift.TGetResultSetMetadataResp;
import org.apache.hive.service.rpc.thrift.TGetSchemasReq;
@@ -492,4 +496,47 @@ public class ThriftCLIServiceClient extends CLIServiceClient {
throw new HiveSQLException(e);
}
}
+
+ @Override
+ public OperationHandle getPrimaryKeys(SessionHandle sessionHandle,
+ String catalog, String schema, String table) throws HiveSQLException {
+ try {
+ TGetPrimaryKeysReq req = new TGetPrimaryKeysReq(sessionHandle.toTSessionHandle());
+ req.setCatalogName(catalog);
+ req.setSchemaName(schema);
+ req.setTableName(table);
+ TGetPrimaryKeysResp resp = cliService.GetPrimaryKeys(req);
+ checkStatus(resp.getStatus());
+ TProtocolVersion protocol = sessionHandle.getProtocolVersion();
+ return new OperationHandle(resp.getOperationHandle(), protocol);
+ } catch (HiveSQLException e) {
+ throw e;
+ } catch (Exception e) {
+ throw new HiveSQLException(e);
+ }
+ }
+
+ @Override
+ public OperationHandle getCrossReference(SessionHandle sessionHandle,
+ String primaryCatalog, String primarySchema, String primaryTable,
+ String foreignCatalog, String foreignSchema, String foreignTable)
+ throws HiveSQLException {
+ try {
+ TGetCrossReferenceReq req = new TGetCrossReferenceReq(sessionHandle.toTSessionHandle());
+ req.setParentCatalogName(primaryCatalog);
+ req.setParentSchemaName(primarySchema);
+ req.setParentTableName(primaryTable);
+ req.setForeignCatalogName(foreignCatalog);
+ req.setForeignSchemaName(foreignSchema);
+ req.setForeignTableName(foreignTable);
+ TGetCrossReferenceResp resp = cliService.GetCrossReference(req);
+ checkStatus(resp.getStatus());
+ TProtocolVersion protocol = sessionHandle.getProtocolVersion();
+ return new OperationHandle(resp.getOperationHandle(), protocol);
+ } catch (HiveSQLException e) {
+ throw e;
+ } catch (Exception e) {
+ throw new HiveSQLException(e);
+ }
+ }
}
[20/50] [abbrv] hive git commit: HIVE-13533: Remove AST dump (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/rand_partitionpruner3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/rand_partitionpruner3.q.out b/ql/src/test/results/clientpositive/rand_partitionpruner3.q.out
index 9ee3462..a2a06b2 100644
--- a/ql/src/test/results/clientpositive/rand_partitionpruner3.q.out
+++ b/ql/src/test/results/clientpositive/rand_partitionpruner3.q.out
@@ -6,56 +6,6 @@ POSTHOOK: query: -- complex predicates in the where clause
explain extended select a.* from srcpart a where rand(1) < 0.1 and a.ds = '2008-04-08' and not(key > 50 or key < 10) and a.hr like '%2'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- a
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- a
- TOK_WHERE
- and
- and
- and
- <
- TOK_FUNCTION
- rand
- 1
- 0.1
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '2008-04-08'
- not
- or
- >
- TOK_TABLE_OR_COL
- key
- 50
- <
- TOK_TABLE_OR_COL
- key
- 10
- like
- .
- TOK_TABLE_OR_COL
- a
- hr
- '%2'
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -144,50 +94,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- without rand for comparison
explain extended select a.* from srcpart a where a.ds = '2008-04-08' and not(key > 50 or key < 10) and a.hr like '%2'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- a
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- a
- TOK_WHERE
- and
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '2008-04-08'
- not
- or
- >
- TOK_TABLE_OR_COL
- key
- 50
- <
- TOK_TABLE_OR_COL
- key
- 10
- like
- .
- TOK_TABLE_OR_COL
- a
- hr
- '%2'
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/reduce_deduplicate.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/reduce_deduplicate.q.out b/ql/src/test/results/clientpositive/reduce_deduplicate.q.out
index 96b51d7..379f884 100644
--- a/ql/src/test/results/clientpositive/reduce_deduplicate.q.out
+++ b/ql/src/test/results/clientpositive/reduce_deduplicate.q.out
@@ -14,26 +14,6 @@ POSTHOOK: query: explain extended
insert overwrite table bucket5_1
select * from src cluster by key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucket5_1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_CLUSTERBY
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -248,133 +228,6 @@ select s2.* from
)s
)s2
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- complex_tbl_2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TRANSFORM
- TOK_EXPLIST
- TOK_TABLE_OR_COL
- aet
- TOK_TABLE_OR_COL
- aes
- TOK_SERDE
- TOK_RECORDWRITER
- 'cat'
- TOK_SERDE
- TOK_RECORDREADER
- TOK_TABCOLLIST
- TOK_TABCOL
- aid
- TOK_STRING
- TOK_TABCOL
- bid
- TOK_STRING
- TOK_TABCOL
- t
- TOK_INT
- TOK_TABCOL
- ctime
- TOK_STRING
- TOK_TABCOL
- etime
- TOK_BIGINT
- TOK_TABCOL
- l
- TOK_STRING
- TOK_TABCOL
- et
- TOK_STRING
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- ds
- '2010-03-29'
- TOK_CLUSTERBY
- TOK_TABLE_OR_COL
- bid
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TRANSFORM
- TOK_EXPLIST
- TOK_TABLE_OR_COL
- aid
- TOK_TABLE_OR_COL
- bid
- TOK_TABLE_OR_COL
- t
- TOK_TABLE_OR_COL
- ctime
- TOK_TABLE_OR_COL
- etime
- TOK_TABLE_OR_COL
- l
- TOK_TABLE_OR_COL
- et
- TOK_SERDE
- TOK_RECORDWRITER
- 'cat'
- TOK_SERDE
- TOK_RECORDREADER
- TOK_TABCOLLIST
- TOK_TABCOL
- aid
- TOK_STRING
- TOK_TABCOL
- bid
- TOK_STRING
- TOK_TABCOL
- t
- TOK_INT
- TOK_TABCOL
- ctime
- TOK_STRING
- TOK_TABCOL
- etime
- TOK_BIGINT
- TOK_TABCOL
- l
- TOK_STRING
- TOK_TABCOL
- et
- TOK_STRING
- s2
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- complex_tbl_1
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2010-03-29'
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s2
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/router_join_ppr.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/router_join_ppr.q.out b/ql/src/test/results/clientpositive/router_join_ppr.q.out
index f149058..1f79be9 100644
--- a/ql/src/test/results/clientpositive/router_join_ppr.q.out
+++ b/ql/src/test/results/clientpositive/router_join_ppr.q.out
@@ -20,90 +20,6 @@ EXPLAIN EXTENDED
SELECT a.key, a.value, b.key, b.value
WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_RIGHTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- src
- a
- TOK_TABREF
- TOK_TABNAME
- srcpart
- b
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- '2008-04-08'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- AND
- AND
- AND
- >
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 20
- >
- .
- TOK_TABLE_OR_COL
- b
- key
- 15
- <
- .
- TOK_TABLE_OR_COL
- b
- key
- 25
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -499,90 +415,6 @@ POSTHOOK: query: EXPLAIN EXTENDED
SELECT a.key, a.value, b.key, b.value
WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_RIGHTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- srcpart
- a
- TOK_TABREF
- TOK_TABNAME
- src
- b
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '2008-04-08'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- AND
- AND
- AND
- >
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 20
- >
- .
- TOK_TABLE_OR_COL
- b
- key
- 15
- <
- .
- TOK_TABLE_OR_COL
- b
- key
- 25
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -879,90 +711,6 @@ POSTHOOK: query: EXPLAIN EXTENDED
SELECT a.key, a.value, b.key, b.value
WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 AND b.ds = '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_RIGHTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- src
- a
- TOK_TABREF
- TOK_TABNAME
- srcpart
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- AND
- AND
- AND
- AND
- >
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 20
- >
- .
- TOK_TABLE_OR_COL
- b
- key
- 15
- <
- .
- TOK_TABLE_OR_COL
- b
- key
- 25
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1255,90 +1003,6 @@ POSTHOOK: query: EXPLAIN EXTENDED
SELECT a.key, a.value, b.key, b.value
WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 AND a.ds = '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_RIGHTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- srcpart
- a
- TOK_TABREF
- TOK_TABNAME
- src
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- AND
- AND
- AND
- AND
- >
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 20
- >
- .
- TOK_TABLE_OR_COL
- b
- key
- 15
- <
- .
- TOK_TABLE_OR_COL
- b
- key
- 25
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/sample1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/sample1.q.out b/ql/src/test/results/clientpositive/sample1.q.out
index caf62f4..e188902 100644
--- a/ql/src/test/results/clientpositive/sample1.q.out
+++ b/ql/src/test/results/clientpositive/sample1.q.out
@@ -18,45 +18,6 @@ INSERT OVERWRITE TABLE dest1 SELECT s.*
FROM srcpart TABLESAMPLE (BUCKET 1 OUT OF 1 ON rand()) s
WHERE s.ds='2008-04-08' and s.hr='11'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_TABLEBUCKETSAMPLE
- 1
- 1
- TOK_FUNCTION
- rand
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
- TOK_WHERE
- and
- =
- .
- TOK_TABLE_OR_COL
- s
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- s
- hr
- '11'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/sample10.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/sample10.q.out b/ql/src/test/results/clientpositive/sample10.q.out
index bf0cb59..3d0b88f 100644
--- a/ql/src/test/results/clientpositive/sample10.q.out
+++ b/ql/src/test/results/clientpositive/sample10.q.out
@@ -43,45 +43,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select ds, count(1) from srcpartbucket tablesample (bucket 1 out of 4 on key) where ds is not null group by ds ORDER BY ds ASC
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpartbucket
- TOK_TABLEBUCKETSAMPLE
- 1
- 4
- TOK_TABLE_OR_COL
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_WHERE
- TOK_FUNCTION
- TOK_ISNOTNULL
- TOK_TABLE_OR_COL
- ds
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- ds
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/sample2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/sample2.q.out b/ql/src/test/results/clientpositive/sample2.q.out
index e70edd7..9653c41 100644
--- a/ql/src/test/results/clientpositive/sample2.q.out
+++ b/ql/src/test/results/clientpositive/sample2.q.out
@@ -18,29 +18,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE dest1 SELECT s.*
FROM srcbucket TABLESAMPLE (BUCKET 1 OUT OF 2) s
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket
- TOK_TABLEBUCKETSAMPLE
- 1
- 2
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/sample4.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/sample4.q.out b/ql/src/test/results/clientpositive/sample4.q.out
index 90dfc26..a9730b1 100644
--- a/ql/src/test/results/clientpositive/sample4.q.out
+++ b/ql/src/test/results/clientpositive/sample4.q.out
@@ -18,31 +18,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE dest1 SELECT s.*
FROM srcbucket TABLESAMPLE (BUCKET 1 OUT OF 2 on key) s
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket
- TOK_TABLEBUCKETSAMPLE
- 1
- 2
- TOK_TABLE_OR_COL
- key
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/sample5.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/sample5.q.out b/ql/src/test/results/clientpositive/sample5.q.out
index 04aa8cc..d5ff403 100644
--- a/ql/src/test/results/clientpositive/sample5.q.out
+++ b/ql/src/test/results/clientpositive/sample5.q.out
@@ -20,31 +20,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE dest1 SELECT s.* -- here's another test
FROM srcbucket TABLESAMPLE (BUCKET 1 OUT OF 5 on key) s
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket
- TOK_TABLEBUCKETSAMPLE
- 1
- 5
- TOK_TABLE_OR_COL
- key
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/sample6.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/sample6.q.out b/ql/src/test/results/clientpositive/sample6.q.out
index c2be9d6..ea71ad6 100644
--- a/ql/src/test/results/clientpositive/sample6.q.out
+++ b/ql/src/test/results/clientpositive/sample6.q.out
@@ -16,31 +16,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE dest1 SELECT s.*
FROM srcbucket TABLESAMPLE (BUCKET 1 OUT OF 4 on key) s
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket
- TOK_TABLEBUCKETSAMPLE
- 1
- 4
- TOK_TABLE_OR_COL
- key
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
@@ -600,39 +575,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT s.* FROM srcbucket TABLESAMPLE (BUCKET 4 OUT OF 4 on key) s
ORDER BY key, value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket
- TOK_TABLEBUCKETSAMPLE
- 4
- 4
- TOK_TABLE_OR_COL
- key
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1002,39 +944,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT s.* FROM srcbucket TABLESAMPLE (BUCKET 1 OUT OF 2 on key) s
ORDER BY key, value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket
- TOK_TABLEBUCKETSAMPLE
- 1
- 2
- TOK_TABLE_OR_COL
- key
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1658,39 +1567,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT s.* FROM srcbucket TABLESAMPLE (BUCKET 1 OUT OF 3 on key) s
ORDER BY key, value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket
- TOK_TABLEBUCKETSAMPLE
- 1
- 3
- TOK_TABLE_OR_COL
- key
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2156,39 +2032,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT s.* FROM srcbucket TABLESAMPLE (BUCKET 2 OUT OF 3 on key) s
ORDER BY key, value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket
- TOK_TABLEBUCKETSAMPLE
- 2
- 3
- TOK_TABLE_OR_COL
- key
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2640,39 +2483,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT s.* FROM srcbucket2 TABLESAMPLE (BUCKET 1 OUT OF 2 on key) s
ORDER BY key, value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket2
- TOK_TABLEBUCKETSAMPLE
- 1
- 2
- TOK_TABLE_OR_COL
- key
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2972,39 +2782,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT s.* FROM srcbucket2 TABLESAMPLE (BUCKET 2 OUT OF 4 on key) s
ORDER BY key, value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket2
- TOK_TABLEBUCKETSAMPLE
- 2
- 4
- TOK_TABLE_OR_COL
- key
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -3181,39 +2958,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT s.* FROM empty_bucket TABLESAMPLE (BUCKET 1 OUT OF 2 on key) s
ORDER BY key, value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- empty_bucket
- TOK_TABLEBUCKETSAMPLE
- 1
- 2
- TOK_TABLE_OR_COL
- key
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/sample7.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/sample7.q.out b/ql/src/test/results/clientpositive/sample7.q.out
index e1897ee..94618e5 100644
--- a/ql/src/test/results/clientpositive/sample7.q.out
+++ b/ql/src/test/results/clientpositive/sample7.q.out
@@ -18,38 +18,6 @@ INSERT OVERWRITE TABLE dest1 SELECT s.*
FROM srcbucket TABLESAMPLE (BUCKET 1 OUT OF 4 on key) s
WHERE s.key > 100
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket
- TOK_TABLEBUCKETSAMPLE
- 1
- 4
- TOK_TABLE_OR_COL
- key
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
- TOK_WHERE
- >
- .
- TOK_TABLE_OR_COL
- s
- key
- 100
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/sample8.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/sample8.q.out b/ql/src/test/results/clientpositive/sample8.q.out
index 3f50ed2..dd55fa0 100644
--- a/ql/src/test/results/clientpositive/sample8.q.out
+++ b/ql/src/test/results/clientpositive/sample8.q.out
@@ -16,74 +16,6 @@ FROM srcpart TABLESAMPLE (BUCKET 1 OUT OF 1 ON key) s
JOIN srcpart TABLESAMPLE (BUCKET 1 OUT OF 10 ON key) t
WHERE t.key = s.key and t.value = s.value and s.ds='2008-04-08' and s.hr='11'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_TABLEBUCKETSAMPLE
- 1
- 1
- TOK_TABLE_OR_COL
- key
- s
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_TABLEBUCKETSAMPLE
- 1
- 10
- TOK_TABLE_OR_COL
- key
- t
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
- TOK_WHERE
- and
- and
- and
- =
- .
- TOK_TABLE_OR_COL
- t
- key
- .
- TOK_TABLE_OR_COL
- s
- key
- =
- .
- TOK_TABLE_OR_COL
- t
- value
- .
- TOK_TABLE_OR_COL
- s
- value
- =
- .
- TOK_TABLE_OR_COL
- s
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- s
- hr
- '11'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/sample9.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/sample9.q.out b/ql/src/test/results/clientpositive/sample9.q.out
index b5bce0b..14a512a 100644
--- a/ql/src/test/results/clientpositive/sample9.q.out
+++ b/ql/src/test/results/clientpositive/sample9.q.out
@@ -6,43 +6,6 @@ POSTHOOK: query: EXPLAIN EXTENDED
SELECT s.*
FROM (SELECT a.* FROM srcbucket TABLESAMPLE (BUCKET 1 OUT OF 2 on key) a) s
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket
- TOK_TABLEBUCKETSAMPLE
- 1
- 2
- TOK_TABLE_OR_COL
- key
- a
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- a
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/serde_user_properties.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/serde_user_properties.q.out b/ql/src/test/results/clientpositive/serde_user_properties.q.out
index 080653d..1dbc274 100644
--- a/ql/src/test/results/clientpositive/serde_user_properties.q.out
+++ b/ql/src/test/results/clientpositive/serde_user_properties.q.out
@@ -6,23 +6,6 @@ POSTHOOK: query: -- HIVE-2906 Table properties in SQL
explain extended select key from src
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -45,26 +28,6 @@ PREHOOK: query: explain extended select a.key from src a
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select a.key from src a
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- a
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -87,29 +50,6 @@ PREHOOK: query: explain extended select a.key from src tablesample(1 percent) a
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select a.key from src tablesample(1 percent) a
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_TABLESPLITSAMPLE
- TOK_PERCENT
- 1
- a
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -212,28 +152,6 @@ PREHOOK: query: explain extended select key from src ('user.defined.key'='some.v
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select key from src ('user.defined.key'='some.value')
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_TABLEPROPERTIES
- TOK_TABLEPROPLIST
- TOK_TABLEPROPERTY
- 'user.defined.key'
- 'some.value'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -256,31 +174,6 @@ PREHOOK: query: explain extended select key from src ('user.defined.key'='some.v
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select key from src ('user.defined.key'='some.value') tablesample(1 percent)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_TABLEPROPERTIES
- TOK_TABLEPROPLIST
- TOK_TABLEPROPERTY
- 'user.defined.key'
- 'some.value'
- TOK_TABLESPLITSAMPLE
- TOK_PERCENT
- 1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -385,31 +278,6 @@ PREHOOK: query: explain extended select a.key from src ('user.defined.key'='some
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select a.key from src ('user.defined.key'='some.value') a
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_TABLEPROPERTIES
- TOK_TABLEPROPLIST
- TOK_TABLEPROPERTY
- 'user.defined.key'
- 'some.value'
- a
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -432,34 +300,6 @@ PREHOOK: query: explain extended select a.key from src ('user.defined.key'='some
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select a.key from src ('user.defined.key'='some.value') tablesample(1 percent) a
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_TABLEPROPERTIES
- TOK_TABLEPROPLIST
- TOK_TABLEPROPERTY
- 'user.defined.key'
- 'some.value'
- TOK_TABLESPLITSAMPLE
- TOK_PERCENT
- 1
- a
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/smb_mapjoin9.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/smb_mapjoin9.q.out b/ql/src/test/results/clientpositive/smb_mapjoin9.q.out
index ff7c0aa..45b1884 100644
--- a/ql/src/test/results/clientpositive/smb_mapjoin9.q.out
+++ b/ql/src/test/results/clientpositive/smb_mapjoin9.q.out
@@ -28,83 +28,6 @@ FROM hive_test_smb_bucket1 a JOIN
hive_test_smb_bucket2 b
ON a.key = b.key WHERE a.ds = '2010-10-15' and b.ds='2010-10-15' and b.key IS NOT NULL
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- hive_test_smb_bucket1
- a
- TOK_TABREF
- TOK_TABNAME
- hive_test_smb_bucket2
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- key
- k1
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- ds
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- k2
- TOK_WHERE
- and
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '2010-10-15'
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- '2010-10-15'
- TOK_FUNCTION
- TOK_ISNOTNULL
- .
- TOK_TABLE_OR_COL
- b
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -189,83 +112,6 @@ FROM hive_test_smb_bucket1 a JOIN
hive_test_smb_bucket2 b
ON a.key = b.key WHERE a.ds = '2010-10-15' and b.ds='2010-10-15' and b.key IS NOT NULL
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- hive_test_smb_bucket1
- a
- TOK_TABREF
- TOK_TABNAME
- hive_test_smb_bucket2
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- key
- k1
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- ds
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- k2
- TOK_WHERE
- and
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '2010-10-15'
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- '2010-10-15'
- TOK_FUNCTION
- TOK_ISNOTNULL
- .
- TOK_TABLE_OR_COL
- b
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/smb_mapjoin_11.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/smb_mapjoin_11.q.out b/ql/src/test/results/clientpositive/smb_mapjoin_11.q.out
index b407402..30dbc70 100644
--- a/ql/src/test/results/clientpositive/smb_mapjoin_11.q.out
+++ b/ql/src/test/results/clientpositive/smb_mapjoin_11.q.out
@@ -56,69 +56,6 @@ POSTHOOK: query: -- Insert data into the bucketed table by joining the two bucke
EXPLAIN EXTENDED
INSERT OVERWRITE TABLE test_table3 PARTITION (ds = '1') SELECT /*+ MAPJOIN(b) */ a.key, b.value FROM test_table1 a JOIN test_table2 b ON a.key = b.key AND a.ds = '1' AND b.ds = '1'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test_table1
- a
- TOK_TABREF
- TOK_TABNAME
- test_table2
- b
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '1'
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- '1'
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- test_table3
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '1'
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1842,25 +1779,6 @@ PREHOOK: query: EXPLAIN EXTENDED SELECT * FROM test_table1 TABLESAMPLE(BUCKET 2
PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT * FROM test_table1 TABLESAMPLE(BUCKET 2 OUT OF 16)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- test_table1
- TOK_TABLEBUCKETSAMPLE
- 2
- 16
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1968,25 +1886,6 @@ PREHOOK: query: EXPLAIN EXTENDED SELECT * FROM test_table3 TABLESAMPLE(BUCKET 2
PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT * FROM test_table3 TABLESAMPLE(BUCKET 2 OUT OF 16)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- test_table3
- TOK_TABLEBUCKETSAMPLE
- 2
- 16
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/smb_mapjoin_12.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/smb_mapjoin_12.q.out b/ql/src/test/results/clientpositive/smb_mapjoin_12.q.out
index e2723a0..519faf6 100644
--- a/ql/src/test/results/clientpositive/smb_mapjoin_12.q.out
+++ b/ql/src/test/results/clientpositive/smb_mapjoin_12.q.out
@@ -68,69 +68,6 @@ POSTHOOK: query: -- Insert data into the bucketed table by joining the two bucke
EXPLAIN EXTENDED
INSERT OVERWRITE TABLE test_table3 PARTITION (ds = '1') SELECT /*+ MAPJOIN(b) */ a.key, b.value FROM test_table1 a JOIN test_table2 b ON a.key = b.key AND a.ds = '1' AND b.ds >= '1'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test_table1
- a
- TOK_TABREF
- TOK_TABNAME
- test_table2
- b
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '1'
- >=
- .
- TOK_TABLE_OR_COL
- b
- ds
- '1'
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- test_table3
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '1'
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -323,75 +260,6 @@ explain extended
INSERT OVERWRITE TABLE test_table3 PARTITION (ds = '2')
SELECT /*+mapjoin(b)*/ a.key, concat(a.value, b.value) FROM test_table3 a JOIN test_table1 b ON a.key = b.key AND a.ds = '1' AND b.ds='1'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test_table3
- a
- TOK_TABREF
- TOK_TABNAME
- test_table1
- b
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '1'
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- '1'
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- test_table3
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2'
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- TOK_FUNCTION
- concat
- .
- TOK_TABLE_OR_COL
- a
- value
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/smb_mapjoin_13.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/smb_mapjoin_13.q.out b/ql/src/test/results/clientpositive/smb_mapjoin_13.q.out
index a5a60e4..f0f8af8 100644
--- a/ql/src/test/results/clientpositive/smb_mapjoin_13.q.out
+++ b/ql/src/test/results/clientpositive/smb_mapjoin_13.q.out
@@ -76,51 +76,6 @@ POSTHOOK: query: -- Join data from 2 tables on their respective sorted columns (
EXPLAIN EXTENDED
SELECT /*+mapjoin(b)*/ * FROM test_table1 a JOIN test_table2 b ON a.key = b.value ORDER BY a.key LIMIT 10
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test_table1
- a
- TOK_TABREF
- TOK_TABNAME
- test_table2
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_LIMIT
- 10
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -276,51 +231,6 @@ POSTHOOK: query: -- Join data from 2 tables on their respective columns (two eac
EXPLAIN EXTENDED
SELECT /*+mapjoin(b)*/ * FROM test_table3 a JOIN test_table4 b ON a.key = b.value ORDER BY a.key LIMIT 10
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test_table3
- a
- TOK_TABREF
- TOK_TABNAME
- test_table4
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_LIMIT
- 10
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/smb_mapjoin_15.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/smb_mapjoin_15.q.out b/ql/src/test/results/clientpositive/smb_mapjoin_15.q.out
index cdf2359..1474e49 100644
--- a/ql/src/test/results/clientpositive/smb_mapjoin_15.q.out
+++ b/ql/src/test/results/clientpositive/smb_mapjoin_15.q.out
@@ -48,51 +48,6 @@ POSTHOOK: query: -- it should be converted to a sort-merge join, since the first
EXPLAIN EXTENDED
SELECT /*+mapjoin(b)*/ * FROM test_table1 a JOIN test_table2 b ON a.key = b.key ORDER BY a.key LIMIT 10
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test_table1
- a
- TOK_TABREF
- TOK_TABNAME
- test_table2
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_LIMIT
- 10
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -300,61 +255,6 @@ POSTHOOK: query: -- it should be converted to a sort-merge join, since the first
EXPLAIN EXTENDED
SELECT /*+mapjoin(b)*/ * FROM test_table1 a JOIN test_table2 b ON a.key = b.key and a.key2 = b.key2 ORDER BY a.key LIMIT 10
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test_table1
- a
- TOK_TABREF
- TOK_TABNAME
- test_table2
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- key2
- .
- TOK_TABLE_OR_COL
- b
- key2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_LIMIT
- 10
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -510,61 +410,6 @@ POSTHOOK: query: -- it should be converted to a sort-merge join, since the first
EXPLAIN EXTENDED
SELECT /*+mapjoin(b)*/ * FROM test_table1 a JOIN test_table2 b ON a.key2 = b.key2 and a.key = b.key ORDER BY a.key LIMIT 10
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test_table1
- a
- TOK_TABREF
- TOK_TABNAME
- test_table2
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key2
- .
- TOK_TABLE_OR_COL
- b
- key2
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_LIMIT
- 10
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -720,61 +565,6 @@ POSTHOOK: query: -- it should not be converted to a sort-merge join, since the f
EXPLAIN EXTENDED
SELECT /*+mapjoin(b)*/ * FROM test_table1 a JOIN test_table2 b ON a.key = b.key and a.value = b.value ORDER BY a.key LIMIT 10
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test_table1
- a
- TOK_TABREF
- TOK_TABNAME
- test_table2
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- value
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_LIMIT
- 10
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/sort_merge_join_desc_5.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/sort_merge_join_desc_5.q.out b/ql/src/test/results/clientpositive/sort_merge_join_desc_5.q.out
index 29dee15..687d892 100644
--- a/ql/src/test/results/clientpositive/sort_merge_join_desc_5.q.out
+++ b/ql/src/test/results/clientpositive/sort_merge_join_desc_5.q.out
@@ -60,57 +60,6 @@ SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_2 b
ON a.key = b.key AND a.part = '1' AND b.part = '1'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- part
- '1'
- =
- .
- TOK_TABLE_OR_COL
- b
- part
- '1'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/sort_merge_join_desc_6.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/sort_merge_join_desc_6.q.out b/ql/src/test/results/clientpositive/sort_merge_join_desc_6.q.out
index b1f99e5..06027d8 100644
--- a/ql/src/test/results/clientpositive/sort_merge_join_desc_6.q.out
+++ b/ql/src/test/results/clientpositive/sort_merge_join_desc_6.q.out
@@ -60,57 +60,6 @@ SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_2 b
ON a.key = b.key AND a.part = '1' AND b.part = '1'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- part
- '1'
- =
- .
- TOK_TABLE_OR_COL
- b
- part
- '1'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/sort_merge_join_desc_7.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/sort_merge_join_desc_7.q.out b/ql/src/test/results/clientpositive/sort_merge_join_desc_7.q.out
index f788fec..8bbcdd3 100644
--- a/ql/src/test/results/clientpositive/sort_merge_join_desc_7.q.out
+++ b/ql/src/test/results/clientpositive/sort_merge_join_desc_7.q.out
@@ -96,57 +96,6 @@ SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_2 b
ON a.key = b.key AND a.part IS NOT NULL AND b.part IS NOT NULL
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_FUNCTION
- TOK_ISNOTNULL
- .
- TOK_TABLE_OR_COL
- a
- part
- TOK_FUNCTION
- TOK_ISNOTNULL
- .
- TOK_TABLE_OR_COL
- b
- part
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/auto_join_reordering_values.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/auto_join_reordering_values.q.out b/ql/src/test/results/clientpositive/spark/auto_join_reordering_values.q.out
index ea38826..4e5bd92 100644
--- a/ql/src/test/results/clientpositive/spark/auto_join_reordering_values.q.out
+++ b/ql/src/test/results/clientpositive/spark/auto_join_reordering_values.q.out
@@ -84,89 +84,6 @@ JOIN `orderpayment_small` `order_city` ON `order_city`.`cityid` = `orderpayment`
JOIN `user_small` `user` ON `user`.`userid` = `orderpayment`.`userid`
limit 5
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- orderpayment_small
- orderpayment
- TOK_TABREF
- TOK_TABNAME
- orderpayment_small
- dim_pay_date
- =
- .
- TOK_TABLE_OR_COL
- dim_pay_date
- date
- .
- TOK_TABLE_OR_COL
- orderpayment
- date
- TOK_TABREF
- TOK_TABNAME
- orderpayment_small
- deal
- =
- .
- TOK_TABLE_OR_COL
- deal
- dealid
- .
- TOK_TABLE_OR_COL
- orderpayment
- dealid
- TOK_TABREF
- TOK_TABNAME
- orderpayment_small
- order_city
- =
- .
- TOK_TABLE_OR_COL
- order_city
- cityid
- .
- TOK_TABLE_OR_COL
- orderpayment
- cityid
- TOK_TABREF
- TOK_TABNAME
- user_small
- user
- =
- .
- TOK_TABLE_OR_COL
- user
- userid
- .
- TOK_TABLE_OR_COL
- orderpayment
- userid
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- dim_pay_date
- date
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- deal
- dealid
- TOK_LIMIT
- 5
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_1.q.out b/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_1.q.out
index c32a0dd..dfb571d 100644
--- a/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_1.q.out
+++ b/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_1.q.out
@@ -109,38 +109,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- Since size is being used to find the big table, the order of the tables in the join does not matter
explain extended select count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -341,38 +309,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -573,38 +509,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_12.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_12.q.out b/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_12.q.out
index d004ff3..76ea0a8 100644
--- a/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_12.q.out
+++ b/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_12.q.out
@@ -143,66 +143,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_small a JOIN bucket
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_small a JOIN bucket_medium b ON a.key = b.key JOIN bucket_big c ON c.key = b.key JOIN bucket_medium d ON c.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_medium
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- c
- =
- .
- TOK_TABLE_OR_COL
- c
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_TABREF
- TOK_TABNAME
- bucket_medium
- d
- =
- .
- TOK_TABLE_OR_COL
- c
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_3.q.out b/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_3.q.out
index 00d5138..c942d11 100644
--- a/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_3.q.out
+++ b/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_3.q.out
@@ -89,38 +89,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- Since size is being used to find the big table, the order of the tables in the join does not matter
explain extended select count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -275,38 +243,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -461,38 +397,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_4.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_4.q.out b/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_4.q.out
index b06df04..ba2547a 100644
--- a/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_4.q.out
+++ b/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_4.q.out
@@ -105,38 +105,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- Since size is being used to find the big table, the order of the tables in the join does not matter
explain extended select count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -291,38 +259,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -477,38 +413,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_5.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_5.q.out b/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_5.q.out
index 18ab5c8..99fca25 100644
--- a/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_5.q.out
+++ b/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_5.q.out
@@ -76,38 +76,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- Since size is being used to find the big table, the order of the tables in the join does not matter
explain extended select count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -253,38 +221,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -430,38 +366,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
[34/50] [abbrv] hive git commit: HIVE-13130: HS2 changes : API calls
for retrieving primary keys and foreign keys information (Hari Subramaniyan,
reviewed by Ashutosh Chauhan)
Posted by jd...@apache.org.
HIVE-13130: HS2 changes : API calls for retrieving primary keys and foreign keys information (Hari Subramaniyan, reviewed by Ashutosh Chauhan)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/f13ee089
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/f13ee089
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/f13ee089
Branch: refs/heads/llap
Commit: f13ee089797c3b0a61fd6b053526b8da46ec4d36
Parents: 4536dcd
Author: Hari Subramaniyan <ha...@apache.org>
Authored: Mon Apr 25 12:10:52 2016 -0700
Committer: Hari Subramaniyan <ha...@apache.org>
Committed: Mon Apr 25 12:10:52 2016 -0700
----------------------------------------------------------------------
.../org/apache/hive/jdbc/TestJdbcDriver2.java | 5 +-
.../apache/hive/jdbc/HiveDatabaseMetaData.java | 49 +-
service-rpc/if/TCLIService.thrift | 50 +
.../src/gen/thrift/gen-cpp/TCLIService.cpp | 812 ++++++++-
.../src/gen/thrift/gen-cpp/TCLIService.h | 252 +++
.../gen-cpp/TCLIService_server.skeleton.cpp | 10 +
.../gen/thrift/gen-cpp/TCLIService_types.cpp | 836 +++++++--
.../src/gen/thrift/gen-cpp/TCLIService_types.h | 276 +++
.../hive/service/rpc/thrift/TCLIService.java | 1716 ++++++++++++++++++
.../rpc/thrift/TGetCrossReferenceReq.java | 1034 +++++++++++
.../rpc/thrift/TGetCrossReferenceResp.java | 509 ++++++
.../service/rpc/thrift/TGetPrimaryKeysReq.java | 716 ++++++++
.../service/rpc/thrift/TGetPrimaryKeysResp.java | 509 ++++++
.../src/gen/thrift/gen-php/TCLIService.php | 432 +++++
service-rpc/src/gen/thrift/gen-php/Types.php | 583 ++++++
.../gen-py/TCLIService/TCLIService-remote | 14 +
.../thrift/gen-py/TCLIService/TCLIService.py | 378 ++++
.../src/gen/thrift/gen-py/TCLIService/ttypes.py | 417 +++++
.../src/gen/thrift/gen-rb/t_c_l_i_service.rb | 108 ++
.../gen/thrift/gen-rb/t_c_l_i_service_types.rb | 90 +
.../org/apache/hive/service/cli/CLIService.java | 30 +
.../service/cli/EmbeddedCLIServiceClient.java | 15 +
.../apache/hive/service/cli/ICLIService.java | 8 +
.../operation/GetCrossReferenceOperation.java | 169 ++
.../cli/operation/GetPrimaryKeysOperation.java | 126 ++
.../service/cli/operation/OperationManager.java | 19 +
.../hive/service/cli/session/HiveSession.java | 28 +
.../service/cli/session/HiveSessionImpl.java | 47 +
.../thrift/RetryingThriftCLIServiceClient.java | 16 +
.../service/cli/thrift/ThriftCLIService.java | 39 +
.../cli/thrift/ThriftCLIServiceClient.java | 47 +
31 files changed, 9188 insertions(+), 152 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcDriver2.java
----------------------------------------------------------------------
diff --git a/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcDriver2.java b/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcDriver2.java
index 7028c25..965627f 100644
--- a/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcDriver2.java
+++ b/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcDriver2.java
@@ -369,7 +369,7 @@ public class TestJdbcDriver2 {
assertNull(rs.getStatement());
rs.close();
- rs = md.getPrimaryKeys(null, null, null);
+ rs = md.getPrimaryKeys(null, "testdb", tableName);
assertNull(rs.getStatement());
rs.close();
@@ -2145,8 +2145,7 @@ public void testParseUrlHttpMode() throws SQLException, JdbcUriParseException,
public void testPrimaryKeys() throws SQLException {
DatabaseMetaData dbmd = con.getMetaData();
assertNotNull(dbmd);
- // currently getPrimaryKeys always returns an empty resultset for Hive
- ResultSet res = dbmd.getPrimaryKeys(null, null, null);
+ ResultSet res = dbmd.getPrimaryKeys(null, "testdb", tableName);
ResultSetMetaData md = res.getMetaData();
assertEquals(md.getColumnCount(), 6);
assertFalse(res.next());
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/jdbc/src/java/org/apache/hive/jdbc/HiveDatabaseMetaData.java
----------------------------------------------------------------------
diff --git a/jdbc/src/java/org/apache/hive/jdbc/HiveDatabaseMetaData.java b/jdbc/src/java/org/apache/hive/jdbc/HiveDatabaseMetaData.java
index 7e54d1f..9d73470 100644
--- a/jdbc/src/java/org/apache/hive/jdbc/HiveDatabaseMetaData.java
+++ b/jdbc/src/java/org/apache/hive/jdbc/HiveDatabaseMetaData.java
@@ -35,11 +35,15 @@ import org.apache.hive.service.rpc.thrift.TGetCatalogsReq;
import org.apache.hive.service.rpc.thrift.TGetCatalogsResp;
import org.apache.hive.service.rpc.thrift.TGetColumnsReq;
import org.apache.hive.service.rpc.thrift.TGetColumnsResp;
+import org.apache.hive.service.rpc.thrift.TGetCrossReferenceReq;
+import org.apache.hive.service.rpc.thrift.TGetCrossReferenceResp;
import org.apache.hive.service.rpc.thrift.TGetFunctionsReq;
import org.apache.hive.service.rpc.thrift.TGetFunctionsResp;
import org.apache.hive.service.rpc.thrift.TGetInfoReq;
import org.apache.hive.service.rpc.thrift.TGetInfoResp;
import org.apache.hive.service.rpc.thrift.TGetInfoType;
+import org.apache.hive.service.rpc.thrift.TGetPrimaryKeysReq;
+import org.apache.hive.service.rpc.thrift.TGetPrimaryKeysResp;
import org.apache.hive.service.rpc.thrift.TGetSchemasReq;
import org.apache.hive.service.rpc.thrift.TGetSchemasResp;
import org.apache.hive.service.rpc.thrift.TGetTableTypesReq;
@@ -255,7 +259,27 @@ public class HiveDatabaseMetaData implements DatabaseMetaData {
public ResultSet getCrossReference(String primaryCatalog,
String primarySchema, String primaryTable, String foreignCatalog,
String foreignSchema, String foreignTable) throws SQLException {
- throw new SQLException("Method not supported");
+ TGetCrossReferenceResp getFKResp;
+ TGetCrossReferenceReq getFKReq = new TGetCrossReferenceReq(sessHandle);
+ getFKReq.setParentTableName(primaryTable);
+ getFKReq.setParentSchemaName(primarySchema);
+ getFKReq.setParentCatalogName(primaryCatalog);
+ getFKReq.setForeignTableName(foreignTable);
+ getFKReq.setForeignSchemaName(foreignSchema);
+ getFKReq.setForeignCatalogName(foreignCatalog);
+
+ try {
+ getFKResp = client.GetCrossReference(getFKReq);
+ } catch (TException e) {
+ throw new SQLException(e.getMessage(), "08S01", e);
+ }
+ Utils.verifySuccess(getFKResp.getStatus());
+
+ return new HiveQueryResultSet.Builder(connection)
+ .setClient(client)
+ .setSessionHandle(sessHandle)
+ .setStmtHandle(getFKResp.getOperationHandle())
+ .build();
}
public int getDatabaseMajorVersion() throws SQLException {
@@ -493,12 +517,23 @@ public class HiveDatabaseMetaData implements DatabaseMetaData {
public ResultSet getPrimaryKeys(String catalog, String schema, String table)
throws SQLException {
- // Hive doesn't support primary keys
- // using local schema with empty resultset
- return new HiveQueryResultSet.Builder(connection).setClient(client).setEmptyResultSet(true).
- setSchema(Arrays.asList("TABLE_CAT", "TABLE_SCHEM", "TABLE_NAME", "COLUMN_NAME", "KEY_SEQ", "PK_NAME" ),
- Arrays.asList("STRING", "STRING", "STRING", "STRING", "INT", "STRING"))
- .build();
+ TGetPrimaryKeysResp getPKResp;
+ TGetPrimaryKeysReq getPKReq = new TGetPrimaryKeysReq(sessHandle);
+ getPKReq.setTableName(table);
+ getPKReq.setSchemaName(schema);
+ getPKReq.setCatalogName(catalog);
+ try {
+ getPKResp = client.GetPrimaryKeys(getPKReq);
+ } catch (TException e) {
+ throw new SQLException(e.getMessage(), "08S01", e);
+ }
+ Utils.verifySuccess(getPKResp.getStatus());
+
+ return new HiveQueryResultSet.Builder(connection)
+ .setClient(client)
+ .setSessionHandle(sessHandle)
+ .setStmtHandle(getPKResp.getOperationHandle())
+ .build();
}
public ResultSet getProcedureColumns(String catalog, String schemaPattern,
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/service-rpc/if/TCLIService.thrift
----------------------------------------------------------------------
diff --git a/service-rpc/if/TCLIService.thrift b/service-rpc/if/TCLIService.thrift
index 674530d..92bcf77 100644
--- a/service-rpc/if/TCLIService.thrift
+++ b/service-rpc/if/TCLIService.thrift
@@ -957,6 +957,52 @@ struct TGetFunctionsResp {
2: optional TOperationHandle operationHandle
}
+struct TGetPrimaryKeysReq {
+ // Session to run this request against
+ 1: required TSessionHandle sessionHandle
+
+ // Name of the catalog.
+ 2: optional TIdentifier catalogName
+
+ // Name of the schema.
+ 3: optional TIdentifier schemaName
+
+ // Name of the table.
+ 4: optional TIdentifier tableName
+}
+
+struct TGetPrimaryKeysResp {
+ 1: required TStatus status
+ 2: optional TOperationHandle operationHandle
+}
+
+struct TGetCrossReferenceReq {
+ // Session to run this request against
+ 1: required TSessionHandle sessionHandle
+
+ // Name of the parent catalog.
+ 2: optional TIdentifier parentCatalogName
+
+ // Name of the parent schema.
+ 3: optional TIdentifier parentSchemaName
+
+ // Name of the parent table.
+ 4: optional TIdentifier parentTableName
+
+ // Name of the foreign catalog.
+ 5: optional TIdentifier foreignCatalogName
+
+ // Name of the foreign schema.
+ 6: optional TIdentifier foreignSchemaName
+
+ // Name of the foreign table.
+ 7: optional TIdentifier foreignTableName
+}
+
+struct TGetCrossReferenceResp {
+ 1: required TStatus status
+ 2: optional TOperationHandle operationHandle
+}
// GetOperationStatus()
//
@@ -1167,6 +1213,10 @@ service TCLIService {
TGetFunctionsResp GetFunctions(1:TGetFunctionsReq req);
+ TGetPrimaryKeysResp GetPrimaryKeys(1:TGetPrimaryKeysReq req);
+
+ TGetCrossReferenceResp GetCrossReference(1:TGetCrossReferenceReq req);
+
TGetOperationStatusResp GetOperationStatus(1:TGetOperationStatusReq req);
TCancelOperationResp CancelOperation(1:TCancelOperationReq req);
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/service-rpc/src/gen/thrift/gen-cpp/TCLIService.cpp
----------------------------------------------------------------------
diff --git a/service-rpc/src/gen/thrift/gen-cpp/TCLIService.cpp b/service-rpc/src/gen/thrift/gen-cpp/TCLIService.cpp
index fc82b88..3597d44 100644
--- a/service-rpc/src/gen/thrift/gen-cpp/TCLIService.cpp
+++ b/service-rpc/src/gen/thrift/gen-cpp/TCLIService.cpp
@@ -2066,6 +2066,380 @@ uint32_t TCLIService_GetFunctions_presult::read(::apache::thrift::protocol::TPro
}
+TCLIService_GetPrimaryKeys_args::~TCLIService_GetPrimaryKeys_args() throw() {
+}
+
+
+uint32_t TCLIService_GetPrimaryKeys_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+ apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+ uint32_t xfer = 0;
+ std::string fname;
+ ::apache::thrift::protocol::TType ftype;
+ int16_t fid;
+
+ xfer += iprot->readStructBegin(fname);
+
+ using ::apache::thrift::protocol::TProtocolException;
+
+
+ while (true)
+ {
+ xfer += iprot->readFieldBegin(fname, ftype, fid);
+ if (ftype == ::apache::thrift::protocol::T_STOP) {
+ break;
+ }
+ switch (fid)
+ {
+ case 1:
+ if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+ xfer += this->req.read(iprot);
+ this->__isset.req = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ default:
+ xfer += iprot->skip(ftype);
+ break;
+ }
+ xfer += iprot->readFieldEnd();
+ }
+
+ xfer += iprot->readStructEnd();
+
+ return xfer;
+}
+
+uint32_t TCLIService_GetPrimaryKeys_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+ uint32_t xfer = 0;
+ apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+ xfer += oprot->writeStructBegin("TCLIService_GetPrimaryKeys_args");
+
+ xfer += oprot->writeFieldBegin("req", ::apache::thrift::protocol::T_STRUCT, 1);
+ xfer += this->req.write(oprot);
+ xfer += oprot->writeFieldEnd();
+
+ xfer += oprot->writeFieldStop();
+ xfer += oprot->writeStructEnd();
+ return xfer;
+}
+
+
+TCLIService_GetPrimaryKeys_pargs::~TCLIService_GetPrimaryKeys_pargs() throw() {
+}
+
+
+uint32_t TCLIService_GetPrimaryKeys_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+ uint32_t xfer = 0;
+ apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+ xfer += oprot->writeStructBegin("TCLIService_GetPrimaryKeys_pargs");
+
+ xfer += oprot->writeFieldBegin("req", ::apache::thrift::protocol::T_STRUCT, 1);
+ xfer += (*(this->req)).write(oprot);
+ xfer += oprot->writeFieldEnd();
+
+ xfer += oprot->writeFieldStop();
+ xfer += oprot->writeStructEnd();
+ return xfer;
+}
+
+
+TCLIService_GetPrimaryKeys_result::~TCLIService_GetPrimaryKeys_result() throw() {
+}
+
+
+uint32_t TCLIService_GetPrimaryKeys_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+ apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+ uint32_t xfer = 0;
+ std::string fname;
+ ::apache::thrift::protocol::TType ftype;
+ int16_t fid;
+
+ xfer += iprot->readStructBegin(fname);
+
+ using ::apache::thrift::protocol::TProtocolException;
+
+
+ while (true)
+ {
+ xfer += iprot->readFieldBegin(fname, ftype, fid);
+ if (ftype == ::apache::thrift::protocol::T_STOP) {
+ break;
+ }
+ switch (fid)
+ {
+ case 0:
+ if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+ xfer += this->success.read(iprot);
+ this->__isset.success = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ default:
+ xfer += iprot->skip(ftype);
+ break;
+ }
+ xfer += iprot->readFieldEnd();
+ }
+
+ xfer += iprot->readStructEnd();
+
+ return xfer;
+}
+
+uint32_t TCLIService_GetPrimaryKeys_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+ uint32_t xfer = 0;
+
+ xfer += oprot->writeStructBegin("TCLIService_GetPrimaryKeys_result");
+
+ if (this->__isset.success) {
+ xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRUCT, 0);
+ xfer += this->success.write(oprot);
+ xfer += oprot->writeFieldEnd();
+ }
+ xfer += oprot->writeFieldStop();
+ xfer += oprot->writeStructEnd();
+ return xfer;
+}
+
+
+TCLIService_GetPrimaryKeys_presult::~TCLIService_GetPrimaryKeys_presult() throw() {
+}
+
+
+uint32_t TCLIService_GetPrimaryKeys_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+ apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+ uint32_t xfer = 0;
+ std::string fname;
+ ::apache::thrift::protocol::TType ftype;
+ int16_t fid;
+
+ xfer += iprot->readStructBegin(fname);
+
+ using ::apache::thrift::protocol::TProtocolException;
+
+
+ while (true)
+ {
+ xfer += iprot->readFieldBegin(fname, ftype, fid);
+ if (ftype == ::apache::thrift::protocol::T_STOP) {
+ break;
+ }
+ switch (fid)
+ {
+ case 0:
+ if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+ xfer += (*(this->success)).read(iprot);
+ this->__isset.success = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ default:
+ xfer += iprot->skip(ftype);
+ break;
+ }
+ xfer += iprot->readFieldEnd();
+ }
+
+ xfer += iprot->readStructEnd();
+
+ return xfer;
+}
+
+
+TCLIService_GetCrossReference_args::~TCLIService_GetCrossReference_args() throw() {
+}
+
+
+uint32_t TCLIService_GetCrossReference_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+ apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+ uint32_t xfer = 0;
+ std::string fname;
+ ::apache::thrift::protocol::TType ftype;
+ int16_t fid;
+
+ xfer += iprot->readStructBegin(fname);
+
+ using ::apache::thrift::protocol::TProtocolException;
+
+
+ while (true)
+ {
+ xfer += iprot->readFieldBegin(fname, ftype, fid);
+ if (ftype == ::apache::thrift::protocol::T_STOP) {
+ break;
+ }
+ switch (fid)
+ {
+ case 1:
+ if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+ xfer += this->req.read(iprot);
+ this->__isset.req = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ default:
+ xfer += iprot->skip(ftype);
+ break;
+ }
+ xfer += iprot->readFieldEnd();
+ }
+
+ xfer += iprot->readStructEnd();
+
+ return xfer;
+}
+
+uint32_t TCLIService_GetCrossReference_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+ uint32_t xfer = 0;
+ apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+ xfer += oprot->writeStructBegin("TCLIService_GetCrossReference_args");
+
+ xfer += oprot->writeFieldBegin("req", ::apache::thrift::protocol::T_STRUCT, 1);
+ xfer += this->req.write(oprot);
+ xfer += oprot->writeFieldEnd();
+
+ xfer += oprot->writeFieldStop();
+ xfer += oprot->writeStructEnd();
+ return xfer;
+}
+
+
+TCLIService_GetCrossReference_pargs::~TCLIService_GetCrossReference_pargs() throw() {
+}
+
+
+uint32_t TCLIService_GetCrossReference_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+ uint32_t xfer = 0;
+ apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+ xfer += oprot->writeStructBegin("TCLIService_GetCrossReference_pargs");
+
+ xfer += oprot->writeFieldBegin("req", ::apache::thrift::protocol::T_STRUCT, 1);
+ xfer += (*(this->req)).write(oprot);
+ xfer += oprot->writeFieldEnd();
+
+ xfer += oprot->writeFieldStop();
+ xfer += oprot->writeStructEnd();
+ return xfer;
+}
+
+
+TCLIService_GetCrossReference_result::~TCLIService_GetCrossReference_result() throw() {
+}
+
+
+uint32_t TCLIService_GetCrossReference_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+ apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+ uint32_t xfer = 0;
+ std::string fname;
+ ::apache::thrift::protocol::TType ftype;
+ int16_t fid;
+
+ xfer += iprot->readStructBegin(fname);
+
+ using ::apache::thrift::protocol::TProtocolException;
+
+
+ while (true)
+ {
+ xfer += iprot->readFieldBegin(fname, ftype, fid);
+ if (ftype == ::apache::thrift::protocol::T_STOP) {
+ break;
+ }
+ switch (fid)
+ {
+ case 0:
+ if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+ xfer += this->success.read(iprot);
+ this->__isset.success = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ default:
+ xfer += iprot->skip(ftype);
+ break;
+ }
+ xfer += iprot->readFieldEnd();
+ }
+
+ xfer += iprot->readStructEnd();
+
+ return xfer;
+}
+
+uint32_t TCLIService_GetCrossReference_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+ uint32_t xfer = 0;
+
+ xfer += oprot->writeStructBegin("TCLIService_GetCrossReference_result");
+
+ if (this->__isset.success) {
+ xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRUCT, 0);
+ xfer += this->success.write(oprot);
+ xfer += oprot->writeFieldEnd();
+ }
+ xfer += oprot->writeFieldStop();
+ xfer += oprot->writeStructEnd();
+ return xfer;
+}
+
+
+TCLIService_GetCrossReference_presult::~TCLIService_GetCrossReference_presult() throw() {
+}
+
+
+uint32_t TCLIService_GetCrossReference_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+ apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+ uint32_t xfer = 0;
+ std::string fname;
+ ::apache::thrift::protocol::TType ftype;
+ int16_t fid;
+
+ xfer += iprot->readStructBegin(fname);
+
+ using ::apache::thrift::protocol::TProtocolException;
+
+
+ while (true)
+ {
+ xfer += iprot->readFieldBegin(fname, ftype, fid);
+ if (ftype == ::apache::thrift::protocol::T_STOP) {
+ break;
+ }
+ switch (fid)
+ {
+ case 0:
+ if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+ xfer += (*(this->success)).read(iprot);
+ this->__isset.success = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ default:
+ xfer += iprot->skip(ftype);
+ break;
+ }
+ xfer += iprot->readFieldEnd();
+ }
+
+ xfer += iprot->readStructEnd();
+
+ return xfer;
+}
+
+
TCLIService_GetOperationStatus_args::~TCLIService_GetOperationStatus_args() throw() {
}
@@ -4065,12 +4439,128 @@ void TCLIServiceClient::recv_GetTableTypes(TGetTableTypesResp& _return)
iprot_->readMessageEnd();
iprot_->getTransport()->readEnd();
}
- if (fname.compare("GetTableTypes") != 0) {
+ if (fname.compare("GetTableTypes") != 0) {
+ iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+ }
+ TCLIService_GetTableTypes_presult result;
+ result.success = &_return;
+ result.read(iprot_);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+
+ if (result.__isset.success) {
+ // _return pointer has now been filled
+ return;
+ }
+ throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "GetTableTypes failed: unknown result");
+}
+
+void TCLIServiceClient::GetColumns(TGetColumnsResp& _return, const TGetColumnsReq& req)
+{
+ send_GetColumns(req);
+ recv_GetColumns(_return);
+}
+
+void TCLIServiceClient::send_GetColumns(const TGetColumnsReq& req)
+{
+ int32_t cseqid = 0;
+ oprot_->writeMessageBegin("GetColumns", ::apache::thrift::protocol::T_CALL, cseqid);
+
+ TCLIService_GetColumns_pargs args;
+ args.req = &req;
+ args.write(oprot_);
+
+ oprot_->writeMessageEnd();
+ oprot_->getTransport()->writeEnd();
+ oprot_->getTransport()->flush();
+}
+
+void TCLIServiceClient::recv_GetColumns(TGetColumnsResp& _return)
+{
+
+ int32_t rseqid = 0;
+ std::string fname;
+ ::apache::thrift::protocol::TMessageType mtype;
+
+ iprot_->readMessageBegin(fname, mtype, rseqid);
+ if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+ ::apache::thrift::TApplicationException x;
+ x.read(iprot_);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+ throw x;
+ }
+ if (mtype != ::apache::thrift::protocol::T_REPLY) {
+ iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+ }
+ if (fname.compare("GetColumns") != 0) {
+ iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+ }
+ TCLIService_GetColumns_presult result;
+ result.success = &_return;
+ result.read(iprot_);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+
+ if (result.__isset.success) {
+ // _return pointer has now been filled
+ return;
+ }
+ throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "GetColumns failed: unknown result");
+}
+
+void TCLIServiceClient::GetFunctions(TGetFunctionsResp& _return, const TGetFunctionsReq& req)
+{
+ send_GetFunctions(req);
+ recv_GetFunctions(_return);
+}
+
+void TCLIServiceClient::send_GetFunctions(const TGetFunctionsReq& req)
+{
+ int32_t cseqid = 0;
+ oprot_->writeMessageBegin("GetFunctions", ::apache::thrift::protocol::T_CALL, cseqid);
+
+ TCLIService_GetFunctions_pargs args;
+ args.req = &req;
+ args.write(oprot_);
+
+ oprot_->writeMessageEnd();
+ oprot_->getTransport()->writeEnd();
+ oprot_->getTransport()->flush();
+}
+
+void TCLIServiceClient::recv_GetFunctions(TGetFunctionsResp& _return)
+{
+
+ int32_t rseqid = 0;
+ std::string fname;
+ ::apache::thrift::protocol::TMessageType mtype;
+
+ iprot_->readMessageBegin(fname, mtype, rseqid);
+ if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+ ::apache::thrift::TApplicationException x;
+ x.read(iprot_);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+ throw x;
+ }
+ if (mtype != ::apache::thrift::protocol::T_REPLY) {
+ iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+ }
+ if (fname.compare("GetFunctions") != 0) {
iprot_->skip(::apache::thrift::protocol::T_STRUCT);
iprot_->readMessageEnd();
iprot_->getTransport()->readEnd();
}
- TCLIService_GetTableTypes_presult result;
+ TCLIService_GetFunctions_presult result;
result.success = &_return;
result.read(iprot_);
iprot_->readMessageEnd();
@@ -4080,21 +4570,21 @@ void TCLIServiceClient::recv_GetTableTypes(TGetTableTypesResp& _return)
// _return pointer has now been filled
return;
}
- throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "GetTableTypes failed: unknown result");
+ throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "GetFunctions failed: unknown result");
}
-void TCLIServiceClient::GetColumns(TGetColumnsResp& _return, const TGetColumnsReq& req)
+void TCLIServiceClient::GetPrimaryKeys(TGetPrimaryKeysResp& _return, const TGetPrimaryKeysReq& req)
{
- send_GetColumns(req);
- recv_GetColumns(_return);
+ send_GetPrimaryKeys(req);
+ recv_GetPrimaryKeys(_return);
}
-void TCLIServiceClient::send_GetColumns(const TGetColumnsReq& req)
+void TCLIServiceClient::send_GetPrimaryKeys(const TGetPrimaryKeysReq& req)
{
int32_t cseqid = 0;
- oprot_->writeMessageBegin("GetColumns", ::apache::thrift::protocol::T_CALL, cseqid);
+ oprot_->writeMessageBegin("GetPrimaryKeys", ::apache::thrift::protocol::T_CALL, cseqid);
- TCLIService_GetColumns_pargs args;
+ TCLIService_GetPrimaryKeys_pargs args;
args.req = &req;
args.write(oprot_);
@@ -4103,7 +4593,7 @@ void TCLIServiceClient::send_GetColumns(const TGetColumnsReq& req)
oprot_->getTransport()->flush();
}
-void TCLIServiceClient::recv_GetColumns(TGetColumnsResp& _return)
+void TCLIServiceClient::recv_GetPrimaryKeys(TGetPrimaryKeysResp& _return)
{
int32_t rseqid = 0;
@@ -4123,12 +4613,12 @@ void TCLIServiceClient::recv_GetColumns(TGetColumnsResp& _return)
iprot_->readMessageEnd();
iprot_->getTransport()->readEnd();
}
- if (fname.compare("GetColumns") != 0) {
+ if (fname.compare("GetPrimaryKeys") != 0) {
iprot_->skip(::apache::thrift::protocol::T_STRUCT);
iprot_->readMessageEnd();
iprot_->getTransport()->readEnd();
}
- TCLIService_GetColumns_presult result;
+ TCLIService_GetPrimaryKeys_presult result;
result.success = &_return;
result.read(iprot_);
iprot_->readMessageEnd();
@@ -4138,21 +4628,21 @@ void TCLIServiceClient::recv_GetColumns(TGetColumnsResp& _return)
// _return pointer has now been filled
return;
}
- throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "GetColumns failed: unknown result");
+ throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "GetPrimaryKeys failed: unknown result");
}
-void TCLIServiceClient::GetFunctions(TGetFunctionsResp& _return, const TGetFunctionsReq& req)
+void TCLIServiceClient::GetCrossReference(TGetCrossReferenceResp& _return, const TGetCrossReferenceReq& req)
{
- send_GetFunctions(req);
- recv_GetFunctions(_return);
+ send_GetCrossReference(req);
+ recv_GetCrossReference(_return);
}
-void TCLIServiceClient::send_GetFunctions(const TGetFunctionsReq& req)
+void TCLIServiceClient::send_GetCrossReference(const TGetCrossReferenceReq& req)
{
int32_t cseqid = 0;
- oprot_->writeMessageBegin("GetFunctions", ::apache::thrift::protocol::T_CALL, cseqid);
+ oprot_->writeMessageBegin("GetCrossReference", ::apache::thrift::protocol::T_CALL, cseqid);
- TCLIService_GetFunctions_pargs args;
+ TCLIService_GetCrossReference_pargs args;
args.req = &req;
args.write(oprot_);
@@ -4161,7 +4651,7 @@ void TCLIServiceClient::send_GetFunctions(const TGetFunctionsReq& req)
oprot_->getTransport()->flush();
}
-void TCLIServiceClient::recv_GetFunctions(TGetFunctionsResp& _return)
+void TCLIServiceClient::recv_GetCrossReference(TGetCrossReferenceResp& _return)
{
int32_t rseqid = 0;
@@ -4181,12 +4671,12 @@ void TCLIServiceClient::recv_GetFunctions(TGetFunctionsResp& _return)
iprot_->readMessageEnd();
iprot_->getTransport()->readEnd();
}
- if (fname.compare("GetFunctions") != 0) {
+ if (fname.compare("GetCrossReference") != 0) {
iprot_->skip(::apache::thrift::protocol::T_STRUCT);
iprot_->readMessageEnd();
iprot_->getTransport()->readEnd();
}
- TCLIService_GetFunctions_presult result;
+ TCLIService_GetCrossReference_presult result;
result.success = &_return;
result.read(iprot_);
iprot_->readMessageEnd();
@@ -4196,7 +4686,7 @@ void TCLIServiceClient::recv_GetFunctions(TGetFunctionsResp& _return)
// _return pointer has now been filled
return;
}
- throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "GetFunctions failed: unknown result");
+ throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "GetCrossReference failed: unknown result");
}
void TCLIServiceClient::GetOperationStatus(TGetOperationStatusResp& _return, const TGetOperationStatusReq& req)
@@ -5276,6 +5766,114 @@ void TCLIServiceProcessor::process_GetFunctions(int32_t seqid, ::apache::thrift:
}
}
+void TCLIServiceProcessor::process_GetPrimaryKeys(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext)
+{
+ void* ctx = NULL;
+ if (this->eventHandler_.get() != NULL) {
+ ctx = this->eventHandler_->getContext("TCLIService.GetPrimaryKeys", callContext);
+ }
+ ::apache::thrift::TProcessorContextFreer freer(this->eventHandler_.get(), ctx, "TCLIService.GetPrimaryKeys");
+
+ if (this->eventHandler_.get() != NULL) {
+ this->eventHandler_->preRead(ctx, "TCLIService.GetPrimaryKeys");
+ }
+
+ TCLIService_GetPrimaryKeys_args args;
+ args.read(iprot);
+ iprot->readMessageEnd();
+ uint32_t bytes = iprot->getTransport()->readEnd();
+
+ if (this->eventHandler_.get() != NULL) {
+ this->eventHandler_->postRead(ctx, "TCLIService.GetPrimaryKeys", bytes);
+ }
+
+ TCLIService_GetPrimaryKeys_result result;
+ try {
+ iface_->GetPrimaryKeys(result.success, args.req);
+ result.__isset.success = true;
+ } catch (const std::exception& e) {
+ if (this->eventHandler_.get() != NULL) {
+ this->eventHandler_->handlerError(ctx, "TCLIService.GetPrimaryKeys");
+ }
+
+ ::apache::thrift::TApplicationException x(e.what());
+ oprot->writeMessageBegin("GetPrimaryKeys", ::apache::thrift::protocol::T_EXCEPTION, seqid);
+ x.write(oprot);
+ oprot->writeMessageEnd();
+ oprot->getTransport()->writeEnd();
+ oprot->getTransport()->flush();
+ return;
+ }
+
+ if (this->eventHandler_.get() != NULL) {
+ this->eventHandler_->preWrite(ctx, "TCLIService.GetPrimaryKeys");
+ }
+
+ oprot->writeMessageBegin("GetPrimaryKeys", ::apache::thrift::protocol::T_REPLY, seqid);
+ result.write(oprot);
+ oprot->writeMessageEnd();
+ bytes = oprot->getTransport()->writeEnd();
+ oprot->getTransport()->flush();
+
+ if (this->eventHandler_.get() != NULL) {
+ this->eventHandler_->postWrite(ctx, "TCLIService.GetPrimaryKeys", bytes);
+ }
+}
+
+void TCLIServiceProcessor::process_GetCrossReference(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext)
+{
+ void* ctx = NULL;
+ if (this->eventHandler_.get() != NULL) {
+ ctx = this->eventHandler_->getContext("TCLIService.GetCrossReference", callContext);
+ }
+ ::apache::thrift::TProcessorContextFreer freer(this->eventHandler_.get(), ctx, "TCLIService.GetCrossReference");
+
+ if (this->eventHandler_.get() != NULL) {
+ this->eventHandler_->preRead(ctx, "TCLIService.GetCrossReference");
+ }
+
+ TCLIService_GetCrossReference_args args;
+ args.read(iprot);
+ iprot->readMessageEnd();
+ uint32_t bytes = iprot->getTransport()->readEnd();
+
+ if (this->eventHandler_.get() != NULL) {
+ this->eventHandler_->postRead(ctx, "TCLIService.GetCrossReference", bytes);
+ }
+
+ TCLIService_GetCrossReference_result result;
+ try {
+ iface_->GetCrossReference(result.success, args.req);
+ result.__isset.success = true;
+ } catch (const std::exception& e) {
+ if (this->eventHandler_.get() != NULL) {
+ this->eventHandler_->handlerError(ctx, "TCLIService.GetCrossReference");
+ }
+
+ ::apache::thrift::TApplicationException x(e.what());
+ oprot->writeMessageBegin("GetCrossReference", ::apache::thrift::protocol::T_EXCEPTION, seqid);
+ x.write(oprot);
+ oprot->writeMessageEnd();
+ oprot->getTransport()->writeEnd();
+ oprot->getTransport()->flush();
+ return;
+ }
+
+ if (this->eventHandler_.get() != NULL) {
+ this->eventHandler_->preWrite(ctx, "TCLIService.GetCrossReference");
+ }
+
+ oprot->writeMessageBegin("GetCrossReference", ::apache::thrift::protocol::T_REPLY, seqid);
+ result.write(oprot);
+ oprot->writeMessageEnd();
+ bytes = oprot->getTransport()->writeEnd();
+ oprot->getTransport()->flush();
+
+ if (this->eventHandler_.get() != NULL) {
+ this->eventHandler_->postWrite(ctx, "TCLIService.GetCrossReference", bytes);
+ }
+}
+
void TCLIServiceProcessor::process_GetOperationStatus(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext)
{
void* ctx = NULL;
@@ -6639,6 +7237,174 @@ void TCLIServiceConcurrentClient::recv_GetFunctions(TGetFunctionsResp& _return,
} // end while(true)
}
+void TCLIServiceConcurrentClient::GetPrimaryKeys(TGetPrimaryKeysResp& _return, const TGetPrimaryKeysReq& req)
+{
+ int32_t seqid = send_GetPrimaryKeys(req);
+ recv_GetPrimaryKeys(_return, seqid);
+}
+
+int32_t TCLIServiceConcurrentClient::send_GetPrimaryKeys(const TGetPrimaryKeysReq& req)
+{
+ int32_t cseqid = this->sync_.generateSeqId();
+ ::apache::thrift::async::TConcurrentSendSentry sentry(&this->sync_);
+ oprot_->writeMessageBegin("GetPrimaryKeys", ::apache::thrift::protocol::T_CALL, cseqid);
+
+ TCLIService_GetPrimaryKeys_pargs args;
+ args.req = &req;
+ args.write(oprot_);
+
+ oprot_->writeMessageEnd();
+ oprot_->getTransport()->writeEnd();
+ oprot_->getTransport()->flush();
+
+ sentry.commit();
+ return cseqid;
+}
+
+void TCLIServiceConcurrentClient::recv_GetPrimaryKeys(TGetPrimaryKeysResp& _return, const int32_t seqid)
+{
+
+ int32_t rseqid = 0;
+ std::string fname;
+ ::apache::thrift::protocol::TMessageType mtype;
+
+ // the read mutex gets dropped and reacquired as part of waitForWork()
+ // The destructor of this sentry wakes up other clients
+ ::apache::thrift::async::TConcurrentRecvSentry sentry(&this->sync_, seqid);
+
+ while(true) {
+ if(!this->sync_.getPending(fname, mtype, rseqid)) {
+ iprot_->readMessageBegin(fname, mtype, rseqid);
+ }
+ if(seqid == rseqid) {
+ if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+ ::apache::thrift::TApplicationException x;
+ x.read(iprot_);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+ sentry.commit();
+ throw x;
+ }
+ if (mtype != ::apache::thrift::protocol::T_REPLY) {
+ iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+ }
+ if (fname.compare("GetPrimaryKeys") != 0) {
+ iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+
+ // in a bad state, don't commit
+ using ::apache::thrift::protocol::TProtocolException;
+ throw TProtocolException(TProtocolException::INVALID_DATA);
+ }
+ TCLIService_GetPrimaryKeys_presult result;
+ result.success = &_return;
+ result.read(iprot_);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+
+ if (result.__isset.success) {
+ // _return pointer has now been filled
+ sentry.commit();
+ return;
+ }
+ // in a bad state, don't commit
+ throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "GetPrimaryKeys failed: unknown result");
+ }
+ // seqid != rseqid
+ this->sync_.updatePending(fname, mtype, rseqid);
+
+ // this will temporarily unlock the readMutex, and let other clients get work done
+ this->sync_.waitForWork(seqid);
+ } // end while(true)
+}
+
+void TCLIServiceConcurrentClient::GetCrossReference(TGetCrossReferenceResp& _return, const TGetCrossReferenceReq& req)
+{
+ int32_t seqid = send_GetCrossReference(req);
+ recv_GetCrossReference(_return, seqid);
+}
+
+int32_t TCLIServiceConcurrentClient::send_GetCrossReference(const TGetCrossReferenceReq& req)
+{
+ int32_t cseqid = this->sync_.generateSeqId();
+ ::apache::thrift::async::TConcurrentSendSentry sentry(&this->sync_);
+ oprot_->writeMessageBegin("GetCrossReference", ::apache::thrift::protocol::T_CALL, cseqid);
+
+ TCLIService_GetCrossReference_pargs args;
+ args.req = &req;
+ args.write(oprot_);
+
+ oprot_->writeMessageEnd();
+ oprot_->getTransport()->writeEnd();
+ oprot_->getTransport()->flush();
+
+ sentry.commit();
+ return cseqid;
+}
+
+void TCLIServiceConcurrentClient::recv_GetCrossReference(TGetCrossReferenceResp& _return, const int32_t seqid)
+{
+
+ int32_t rseqid = 0;
+ std::string fname;
+ ::apache::thrift::protocol::TMessageType mtype;
+
+ // the read mutex gets dropped and reacquired as part of waitForWork()
+ // The destructor of this sentry wakes up other clients
+ ::apache::thrift::async::TConcurrentRecvSentry sentry(&this->sync_, seqid);
+
+ while(true) {
+ if(!this->sync_.getPending(fname, mtype, rseqid)) {
+ iprot_->readMessageBegin(fname, mtype, rseqid);
+ }
+ if(seqid == rseqid) {
+ if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+ ::apache::thrift::TApplicationException x;
+ x.read(iprot_);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+ sentry.commit();
+ throw x;
+ }
+ if (mtype != ::apache::thrift::protocol::T_REPLY) {
+ iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+ }
+ if (fname.compare("GetCrossReference") != 0) {
+ iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+
+ // in a bad state, don't commit
+ using ::apache::thrift::protocol::TProtocolException;
+ throw TProtocolException(TProtocolException::INVALID_DATA);
+ }
+ TCLIService_GetCrossReference_presult result;
+ result.success = &_return;
+ result.read(iprot_);
+ iprot_->readMessageEnd();
+ iprot_->getTransport()->readEnd();
+
+ if (result.__isset.success) {
+ // _return pointer has now been filled
+ sentry.commit();
+ return;
+ }
+ // in a bad state, don't commit
+ throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "GetCrossReference failed: unknown result");
+ }
+ // seqid != rseqid
+ this->sync_.updatePending(fname, mtype, rseqid);
+
+ // this will temporarily unlock the readMutex, and let other clients get work done
+ this->sync_.waitForWork(seqid);
+ } // end while(true)
+}
+
void TCLIServiceConcurrentClient::GetOperationStatus(TGetOperationStatusResp& _return, const TGetOperationStatusReq& req)
{
int32_t seqid = send_GetOperationStatus(req);
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/service-rpc/src/gen/thrift/gen-cpp/TCLIService.h
----------------------------------------------------------------------
diff --git a/service-rpc/src/gen/thrift/gen-cpp/TCLIService.h b/service-rpc/src/gen/thrift/gen-cpp/TCLIService.h
index 3407564..5fd423d 100644
--- a/service-rpc/src/gen/thrift/gen-cpp/TCLIService.h
+++ b/service-rpc/src/gen/thrift/gen-cpp/TCLIService.h
@@ -32,6 +32,8 @@ class TCLIServiceIf {
virtual void GetTableTypes(TGetTableTypesResp& _return, const TGetTableTypesReq& req) = 0;
virtual void GetColumns(TGetColumnsResp& _return, const TGetColumnsReq& req) = 0;
virtual void GetFunctions(TGetFunctionsResp& _return, const TGetFunctionsReq& req) = 0;
+ virtual void GetPrimaryKeys(TGetPrimaryKeysResp& _return, const TGetPrimaryKeysReq& req) = 0;
+ virtual void GetCrossReference(TGetCrossReferenceResp& _return, const TGetCrossReferenceReq& req) = 0;
virtual void GetOperationStatus(TGetOperationStatusResp& _return, const TGetOperationStatusReq& req) = 0;
virtual void CancelOperation(TCancelOperationResp& _return, const TCancelOperationReq& req) = 0;
virtual void CloseOperation(TCloseOperationResp& _return, const TCloseOperationReq& req) = 0;
@@ -102,6 +104,12 @@ class TCLIServiceNull : virtual public TCLIServiceIf {
void GetFunctions(TGetFunctionsResp& /* _return */, const TGetFunctionsReq& /* req */) {
return;
}
+ void GetPrimaryKeys(TGetPrimaryKeysResp& /* _return */, const TGetPrimaryKeysReq& /* req */) {
+ return;
+ }
+ void GetCrossReference(TGetCrossReferenceResp& /* _return */, const TGetCrossReferenceReq& /* req */) {
+ return;
+ }
void GetOperationStatus(TGetOperationStatusResp& /* _return */, const TGetOperationStatusReq& /* req */) {
return;
}
@@ -1272,6 +1280,214 @@ class TCLIService_GetFunctions_presult {
};
+typedef struct _TCLIService_GetPrimaryKeys_args__isset {
+ _TCLIService_GetPrimaryKeys_args__isset() : req(false) {}
+ bool req :1;
+} _TCLIService_GetPrimaryKeys_args__isset;
+
+class TCLIService_GetPrimaryKeys_args {
+ public:
+
+ TCLIService_GetPrimaryKeys_args(const TCLIService_GetPrimaryKeys_args&);
+ TCLIService_GetPrimaryKeys_args& operator=(const TCLIService_GetPrimaryKeys_args&);
+ TCLIService_GetPrimaryKeys_args() {
+ }
+
+ virtual ~TCLIService_GetPrimaryKeys_args() throw();
+ TGetPrimaryKeysReq req;
+
+ _TCLIService_GetPrimaryKeys_args__isset __isset;
+
+ void __set_req(const TGetPrimaryKeysReq& val);
+
+ bool operator == (const TCLIService_GetPrimaryKeys_args & rhs) const
+ {
+ if (!(req == rhs.req))
+ return false;
+ return true;
+ }
+ bool operator != (const TCLIService_GetPrimaryKeys_args &rhs) const {
+ return !(*this == rhs);
+ }
+
+ bool operator < (const TCLIService_GetPrimaryKeys_args & ) const;
+
+ uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+ uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class TCLIService_GetPrimaryKeys_pargs {
+ public:
+
+
+ virtual ~TCLIService_GetPrimaryKeys_pargs() throw();
+ const TGetPrimaryKeysReq* req;
+
+ uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _TCLIService_GetPrimaryKeys_result__isset {
+ _TCLIService_GetPrimaryKeys_result__isset() : success(false) {}
+ bool success :1;
+} _TCLIService_GetPrimaryKeys_result__isset;
+
+class TCLIService_GetPrimaryKeys_result {
+ public:
+
+ TCLIService_GetPrimaryKeys_result(const TCLIService_GetPrimaryKeys_result&);
+ TCLIService_GetPrimaryKeys_result& operator=(const TCLIService_GetPrimaryKeys_result&);
+ TCLIService_GetPrimaryKeys_result() {
+ }
+
+ virtual ~TCLIService_GetPrimaryKeys_result() throw();
+ TGetPrimaryKeysResp success;
+
+ _TCLIService_GetPrimaryKeys_result__isset __isset;
+
+ void __set_success(const TGetPrimaryKeysResp& val);
+
+ bool operator == (const TCLIService_GetPrimaryKeys_result & rhs) const
+ {
+ if (!(success == rhs.success))
+ return false;
+ return true;
+ }
+ bool operator != (const TCLIService_GetPrimaryKeys_result &rhs) const {
+ return !(*this == rhs);
+ }
+
+ bool operator < (const TCLIService_GetPrimaryKeys_result & ) const;
+
+ uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+ uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _TCLIService_GetPrimaryKeys_presult__isset {
+ _TCLIService_GetPrimaryKeys_presult__isset() : success(false) {}
+ bool success :1;
+} _TCLIService_GetPrimaryKeys_presult__isset;
+
+class TCLIService_GetPrimaryKeys_presult {
+ public:
+
+
+ virtual ~TCLIService_GetPrimaryKeys_presult() throw();
+ TGetPrimaryKeysResp* success;
+
+ _TCLIService_GetPrimaryKeys_presult__isset __isset;
+
+ uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+typedef struct _TCLIService_GetCrossReference_args__isset {
+ _TCLIService_GetCrossReference_args__isset() : req(false) {}
+ bool req :1;
+} _TCLIService_GetCrossReference_args__isset;
+
+class TCLIService_GetCrossReference_args {
+ public:
+
+ TCLIService_GetCrossReference_args(const TCLIService_GetCrossReference_args&);
+ TCLIService_GetCrossReference_args& operator=(const TCLIService_GetCrossReference_args&);
+ TCLIService_GetCrossReference_args() {
+ }
+
+ virtual ~TCLIService_GetCrossReference_args() throw();
+ TGetCrossReferenceReq req;
+
+ _TCLIService_GetCrossReference_args__isset __isset;
+
+ void __set_req(const TGetCrossReferenceReq& val);
+
+ bool operator == (const TCLIService_GetCrossReference_args & rhs) const
+ {
+ if (!(req == rhs.req))
+ return false;
+ return true;
+ }
+ bool operator != (const TCLIService_GetCrossReference_args &rhs) const {
+ return !(*this == rhs);
+ }
+
+ bool operator < (const TCLIService_GetCrossReference_args & ) const;
+
+ uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+ uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class TCLIService_GetCrossReference_pargs {
+ public:
+
+
+ virtual ~TCLIService_GetCrossReference_pargs() throw();
+ const TGetCrossReferenceReq* req;
+
+ uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _TCLIService_GetCrossReference_result__isset {
+ _TCLIService_GetCrossReference_result__isset() : success(false) {}
+ bool success :1;
+} _TCLIService_GetCrossReference_result__isset;
+
+class TCLIService_GetCrossReference_result {
+ public:
+
+ TCLIService_GetCrossReference_result(const TCLIService_GetCrossReference_result&);
+ TCLIService_GetCrossReference_result& operator=(const TCLIService_GetCrossReference_result&);
+ TCLIService_GetCrossReference_result() {
+ }
+
+ virtual ~TCLIService_GetCrossReference_result() throw();
+ TGetCrossReferenceResp success;
+
+ _TCLIService_GetCrossReference_result__isset __isset;
+
+ void __set_success(const TGetCrossReferenceResp& val);
+
+ bool operator == (const TCLIService_GetCrossReference_result & rhs) const
+ {
+ if (!(success == rhs.success))
+ return false;
+ return true;
+ }
+ bool operator != (const TCLIService_GetCrossReference_result &rhs) const {
+ return !(*this == rhs);
+ }
+
+ bool operator < (const TCLIService_GetCrossReference_result & ) const;
+
+ uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+ uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _TCLIService_GetCrossReference_presult__isset {
+ _TCLIService_GetCrossReference_presult__isset() : success(false) {}
+ bool success :1;
+} _TCLIService_GetCrossReference_presult__isset;
+
+class TCLIService_GetCrossReference_presult {
+ public:
+
+
+ virtual ~TCLIService_GetCrossReference_presult() throw();
+ TGetCrossReferenceResp* success;
+
+ _TCLIService_GetCrossReference_presult__isset __isset;
+
+ uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
typedef struct _TCLIService_GetOperationStatus_args__isset {
_TCLIService_GetOperationStatus_args__isset() : req(false) {}
bool req :1;
@@ -2162,6 +2378,12 @@ class TCLIServiceClient : virtual public TCLIServiceIf {
void GetFunctions(TGetFunctionsResp& _return, const TGetFunctionsReq& req);
void send_GetFunctions(const TGetFunctionsReq& req);
void recv_GetFunctions(TGetFunctionsResp& _return);
+ void GetPrimaryKeys(TGetPrimaryKeysResp& _return, const TGetPrimaryKeysReq& req);
+ void send_GetPrimaryKeys(const TGetPrimaryKeysReq& req);
+ void recv_GetPrimaryKeys(TGetPrimaryKeysResp& _return);
+ void GetCrossReference(TGetCrossReferenceResp& _return, const TGetCrossReferenceReq& req);
+ void send_GetCrossReference(const TGetCrossReferenceReq& req);
+ void recv_GetCrossReference(TGetCrossReferenceResp& _return);
void GetOperationStatus(TGetOperationStatusResp& _return, const TGetOperationStatusReq& req);
void send_GetOperationStatus(const TGetOperationStatusReq& req);
void recv_GetOperationStatus(TGetOperationStatusResp& _return);
@@ -2212,6 +2434,8 @@ class TCLIServiceProcessor : public ::apache::thrift::TDispatchProcessor {
void process_GetTableTypes(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
void process_GetColumns(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
void process_GetFunctions(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+ void process_GetPrimaryKeys(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+ void process_GetCrossReference(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
void process_GetOperationStatus(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
void process_CancelOperation(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
void process_CloseOperation(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
@@ -2234,6 +2458,8 @@ class TCLIServiceProcessor : public ::apache::thrift::TDispatchProcessor {
processMap_["GetTableTypes"] = &TCLIServiceProcessor::process_GetTableTypes;
processMap_["GetColumns"] = &TCLIServiceProcessor::process_GetColumns;
processMap_["GetFunctions"] = &TCLIServiceProcessor::process_GetFunctions;
+ processMap_["GetPrimaryKeys"] = &TCLIServiceProcessor::process_GetPrimaryKeys;
+ processMap_["GetCrossReference"] = &TCLIServiceProcessor::process_GetCrossReference;
processMap_["GetOperationStatus"] = &TCLIServiceProcessor::process_GetOperationStatus;
processMap_["CancelOperation"] = &TCLIServiceProcessor::process_CancelOperation;
processMap_["CloseOperation"] = &TCLIServiceProcessor::process_CloseOperation;
@@ -2380,6 +2606,26 @@ class TCLIServiceMultiface : virtual public TCLIServiceIf {
return;
}
+ void GetPrimaryKeys(TGetPrimaryKeysResp& _return, const TGetPrimaryKeysReq& req) {
+ size_t sz = ifaces_.size();
+ size_t i = 0;
+ for (; i < (sz - 1); ++i) {
+ ifaces_[i]->GetPrimaryKeys(_return, req);
+ }
+ ifaces_[i]->GetPrimaryKeys(_return, req);
+ return;
+ }
+
+ void GetCrossReference(TGetCrossReferenceResp& _return, const TGetCrossReferenceReq& req) {
+ size_t sz = ifaces_.size();
+ size_t i = 0;
+ for (; i < (sz - 1); ++i) {
+ ifaces_[i]->GetCrossReference(_return, req);
+ }
+ ifaces_[i]->GetCrossReference(_return, req);
+ return;
+ }
+
void GetOperationStatus(TGetOperationStatusResp& _return, const TGetOperationStatusReq& req) {
size_t sz = ifaces_.size();
size_t i = 0;
@@ -2523,6 +2769,12 @@ class TCLIServiceConcurrentClient : virtual public TCLIServiceIf {
void GetFunctions(TGetFunctionsResp& _return, const TGetFunctionsReq& req);
int32_t send_GetFunctions(const TGetFunctionsReq& req);
void recv_GetFunctions(TGetFunctionsResp& _return, const int32_t seqid);
+ void GetPrimaryKeys(TGetPrimaryKeysResp& _return, const TGetPrimaryKeysReq& req);
+ int32_t send_GetPrimaryKeys(const TGetPrimaryKeysReq& req);
+ void recv_GetPrimaryKeys(TGetPrimaryKeysResp& _return, const int32_t seqid);
+ void GetCrossReference(TGetCrossReferenceResp& _return, const TGetCrossReferenceReq& req);
+ int32_t send_GetCrossReference(const TGetCrossReferenceReq& req);
+ void recv_GetCrossReference(TGetCrossReferenceResp& _return, const int32_t seqid);
void GetOperationStatus(TGetOperationStatusResp& _return, const TGetOperationStatusReq& req);
int32_t send_GetOperationStatus(const TGetOperationStatusReq& req);
void recv_GetOperationStatus(TGetOperationStatusResp& _return, const int32_t seqid);
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/service-rpc/src/gen/thrift/gen-cpp/TCLIService_server.skeleton.cpp
----------------------------------------------------------------------
diff --git a/service-rpc/src/gen/thrift/gen-cpp/TCLIService_server.skeleton.cpp b/service-rpc/src/gen/thrift/gen-cpp/TCLIService_server.skeleton.cpp
index 66ed6a7..5d7caf9 100644
--- a/service-rpc/src/gen/thrift/gen-cpp/TCLIService_server.skeleton.cpp
+++ b/service-rpc/src/gen/thrift/gen-cpp/TCLIService_server.skeleton.cpp
@@ -77,6 +77,16 @@ class TCLIServiceHandler : virtual public TCLIServiceIf {
printf("GetFunctions\n");
}
+ void GetPrimaryKeys(TGetPrimaryKeysResp& _return, const TGetPrimaryKeysReq& req) {
+ // Your implementation goes here
+ printf("GetPrimaryKeys\n");
+ }
+
+ void GetCrossReference(TGetCrossReferenceResp& _return, const TGetCrossReferenceReq& req) {
+ // Your implementation goes here
+ printf("GetCrossReference\n");
+ }
+
void GetOperationStatus(TGetOperationStatusResp& _return, const TGetOperationStatusReq& req) {
// Your implementation goes here
printf("GetOperationStatus\n");
[46/50] [abbrv] hive git commit: HIVE-12159: Create vectorized
readers for the complex types (Owen O'Malley,
reviewed by Matt McCline and Prasanth)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestVectorOrcFile.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestVectorOrcFile.java b/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestVectorOrcFile.java
index a82d672..6589692 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestVectorOrcFile.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestVectorOrcFile.java
@@ -32,51 +32,26 @@ import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.MapColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.StructColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.TimestampColumnVector;
-import org.apache.hadoop.hive.ql.exec.vector.TimestampUtils;
import org.apache.hadoop.hive.ql.exec.vector.UnionColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch;
import org.apache.hadoop.hive.ql.io.sarg.PredicateLeaf;
import org.apache.hadoop.hive.ql.io.sarg.SearchArgument;
import org.apache.hadoop.hive.ql.io.sarg.SearchArgumentFactory;
-import org.apache.hadoop.hive.serde2.io.ByteWritable;
import org.apache.hadoop.hive.serde2.io.DateWritable;
-import org.apache.hadoop.hive.serde2.io.DoubleWritable;
import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable;
-import org.apache.hadoop.hive.serde2.io.ShortWritable;
-import org.apache.hadoop.hive.serde2.io.TimestampWritable;
-import org.apache.hadoop.hive.serde2.objectinspector.ListObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.MapObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorFactory;
-import org.apache.hadoop.hive.serde2.objectinspector.StructField;
-import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.BinaryObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.BooleanObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.ByteObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.DoubleObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.FloatObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.HiveDecimalObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.IntObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.LongObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.ShortObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.StringObjectInspector;
-import org.apache.hadoop.hive.serde2.objectinspector.primitive.TimestampObjectInspector;
-import org.apache.hadoop.io.BooleanWritable;
import org.apache.hadoop.io.BytesWritable;
-import org.apache.hadoop.io.FloatWritable;
-import org.apache.hadoop.io.IntWritable;
-import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hive.common.util.HiveTestUtils;
import org.apache.orc.BinaryColumnStatistics;
import org.apache.orc.BooleanColumnStatistics;
import org.apache.orc.ColumnStatistics;
import org.apache.orc.CompressionKind;
+import org.apache.orc.DataReader;
import org.apache.orc.DecimalColumnStatistics;
import org.apache.orc.DoubleColumnStatistics;
import org.apache.orc.IntegerColumnStatistics;
+import org.apache.orc.impl.DataReaderProperties;
import org.apache.orc.impl.MemoryManager;
-import org.apache.orc.impl.MetadataReader;
import org.apache.orc.impl.OrcIndex;
import org.apache.orc.OrcProto;
import org.apache.orc.OrcUtils;
@@ -117,6 +92,10 @@ public class TestVectorOrcFile {
public static class InnerStruct {
int int1;
Text string1 = new Text();
+ InnerStruct(int int1, Text string1) {
+ this.int1 = int1;
+ this.string1.set(string1);
+ }
InnerStruct(int int1, String string1) {
this.int1 = int1;
this.string1.set(string1);
@@ -136,50 +115,6 @@ public class TestVectorOrcFile {
}
}
- public static class BigRow {
- Boolean boolean1;
- Byte byte1;
- Short short1;
- Integer int1;
- Long long1;
- Float float1;
- Double double1;
- BytesWritable bytes1;
- Text string1;
- MiddleStruct middle;
- List<InnerStruct> list = new ArrayList<InnerStruct>();
- Map<Text, InnerStruct> map = new HashMap<Text, InnerStruct>();
-
- BigRow(Boolean b1, Byte b2, Short s1, Integer i1, Long l1, Float f1,
- Double d1,
- BytesWritable b3, String s2, MiddleStruct m1,
- List<InnerStruct> l2, Map<String, InnerStruct> m2) {
- this.boolean1 = b1;
- this.byte1 = b2;
- this.short1 = s1;
- this.int1 = i1;
- this.long1 = l1;
- this.float1 = f1;
- this.double1 = d1;
- this.bytes1 = b3;
- if (s2 == null) {
- this.string1 = null;
- } else {
- this.string1 = new Text(s2);
- }
- this.middle = m1;
- this.list = l2;
- if (m2 != null) {
- this.map = new HashMap<Text, InnerStruct>();
- for (Map.Entry<String, InnerStruct> item : m2.entrySet()) {
- this.map.put(new Text(item.getKey()), item.getValue());
- }
- } else {
- this.map = null;
- }
- }
- }
-
private static InnerStruct inner(int i, String s) {
return new InnerStruct(i, s);
}
@@ -301,206 +236,115 @@ public class TestVectorOrcFile {
assertEquals("count: 7500 hasNull: true min: bye max: hi sum: 0", stats[9].toString());
// check the inspectors
- StructObjectInspector readerInspector = (StructObjectInspector) reader
- .getObjectInspector();
- assertEquals(ObjectInspector.Category.STRUCT, readerInspector.getCategory());
+ TypeDescription schema = reader.getSchema();
+ assertEquals(TypeDescription.Category.STRUCT, schema.getCategory());
assertEquals("struct<boolean1:boolean,byte1:tinyint,short1:smallint,"
+ "int1:int,long1:bigint,float1:float,double1:double,bytes1:"
+ "binary,string1:string,middle:struct<list:array<struct<int1:int,"
+ "string1:string>>>,list:array<struct<int1:int,string1:string>>,"
+ "map:map<string,struct<int1:int,string1:string>>,ts:timestamp,"
- + "decimal1:decimal(38,18)>", readerInspector.getTypeName());
- List<? extends StructField> fields = readerInspector
- .getAllStructFieldRefs();
- BooleanObjectInspector bo = (BooleanObjectInspector) readerInspector
- .getStructFieldRef("boolean1").getFieldObjectInspector();
- ByteObjectInspector by = (ByteObjectInspector) readerInspector
- .getStructFieldRef("byte1").getFieldObjectInspector();
- ShortObjectInspector sh = (ShortObjectInspector) readerInspector
- .getStructFieldRef("short1").getFieldObjectInspector();
- IntObjectInspector in = (IntObjectInspector) readerInspector
- .getStructFieldRef("int1").getFieldObjectInspector();
- LongObjectInspector lo = (LongObjectInspector) readerInspector
- .getStructFieldRef("long1").getFieldObjectInspector();
- FloatObjectInspector fl = (FloatObjectInspector) readerInspector
- .getStructFieldRef("float1").getFieldObjectInspector();
- DoubleObjectInspector dbl = (DoubleObjectInspector) readerInspector
- .getStructFieldRef("double1").getFieldObjectInspector();
- BinaryObjectInspector bi = (BinaryObjectInspector) readerInspector
- .getStructFieldRef("bytes1").getFieldObjectInspector();
- StringObjectInspector st = (StringObjectInspector) readerInspector
- .getStructFieldRef("string1").getFieldObjectInspector();
- StructObjectInspector mid = (StructObjectInspector) readerInspector
- .getStructFieldRef("middle").getFieldObjectInspector();
- List<? extends StructField> midFields = mid.getAllStructFieldRefs();
- ListObjectInspector midli = (ListObjectInspector) midFields.get(0)
- .getFieldObjectInspector();
- StructObjectInspector inner = (StructObjectInspector) midli
- .getListElementObjectInspector();
- List<? extends StructField> inFields = inner.getAllStructFieldRefs();
- ListObjectInspector li = (ListObjectInspector) readerInspector
- .getStructFieldRef("list").getFieldObjectInspector();
- MapObjectInspector ma = (MapObjectInspector) readerInspector
- .getStructFieldRef("map").getFieldObjectInspector();
- TimestampObjectInspector tso = (TimestampObjectInspector) readerInspector
- .getStructFieldRef("ts").getFieldObjectInspector();
- HiveDecimalObjectInspector dco = (HiveDecimalObjectInspector) readerInspector
- .getStructFieldRef("decimal1").getFieldObjectInspector();
- StringObjectInspector mk = (StringObjectInspector) ma
- .getMapKeyObjectInspector();
+ + "decimal1:decimal(38,10)>", schema.toString());
+ VectorizedRowBatch batch = schema.createRowBatch();
+
RecordReader rows = reader.rows();
- Object row = rows.next(null);
- assertNotNull(row);
+ assertEquals(true, rows.nextBatch(batch));
+ assertEquals(1024, batch.size);
+
// check the contents of the first row
- assertEquals(false,
- bo.get(readerInspector.getStructFieldData(row, fields.get(0))));
- assertEquals(1,
- by.get(readerInspector.getStructFieldData(row, fields.get(1))));
- assertEquals(1024,
- sh.get(readerInspector.getStructFieldData(row, fields.get(2))));
- assertEquals(65536,
- in.get(readerInspector.getStructFieldData(row, fields.get(3))));
- assertEquals(Long.MAX_VALUE,
- lo.get(readerInspector.getStructFieldData(row, fields.get(4))));
- assertEquals(1.0,
- fl.get(readerInspector.getStructFieldData(row, fields.get(5))), 0.00001);
- assertEquals(-15.0,
- dbl.get(readerInspector.getStructFieldData(row, fields.get(6))),
- 0.00001);
- assertEquals(bytes(0, 1, 2, 3, 4),
- bi.getPrimitiveWritableObject(readerInspector.getStructFieldData(row,
- fields.get(7))));
- assertEquals("hi", st.getPrimitiveJavaObject(readerInspector
- .getStructFieldData(row, fields.get(8))));
- List<?> midRow = midli.getList(mid.getStructFieldData(
- readerInspector.getStructFieldData(row, fields.get(9)),
- midFields.get(0)));
- assertNotNull(midRow);
- assertEquals(2, midRow.size());
- assertEquals(1,
- in.get(inner.getStructFieldData(midRow.get(0), inFields.get(0))));
- assertEquals("bye", st.getPrimitiveJavaObject(inner.getStructFieldData(
- midRow.get(0), inFields.get(1))));
- assertEquals(2,
- in.get(inner.getStructFieldData(midRow.get(1), inFields.get(0))));
- assertEquals("sigh", st.getPrimitiveJavaObject(inner.getStructFieldData(
- midRow.get(1), inFields.get(1))));
- List<?> list = li.getList(readerInspector.getStructFieldData(row,
- fields.get(10)));
- assertEquals(2, list.size());
- assertEquals(3,
- in.get(inner.getStructFieldData(list.get(0), inFields.get(0))));
- assertEquals("good", st.getPrimitiveJavaObject(inner.getStructFieldData(
- list.get(0), inFields.get(1))));
- assertEquals(4,
- in.get(inner.getStructFieldData(list.get(1), inFields.get(0))));
- assertEquals("bad", st.getPrimitiveJavaObject(inner.getStructFieldData(
- list.get(1), inFields.get(1))));
- Map<?, ?> map = ma.getMap(readerInspector.getStructFieldData(row,
- fields.get(11)));
- assertEquals(0, map.size());
+ assertEquals(false, getBoolean(batch, 0));
+ assertEquals(1, getByte(batch, 0));
+ assertEquals(1024, getShort(batch, 0));
+ assertEquals(65536, getInt(batch, 0));
+ assertEquals(Long.MAX_VALUE, getLong(batch, 0));
+ assertEquals(1.0, getFloat(batch, 0), 0.00001);
+ assertEquals(-15.0, getDouble(batch, 0), 0.00001);
+ assertEquals(bytes(0, 1, 2, 3, 4), getBinary(batch, 0));
+ assertEquals("hi", getText(batch, 0).toString());
+
+ StructColumnVector middle = (StructColumnVector) batch.cols[9];
+ ListColumnVector midList = (ListColumnVector) middle.fields[0];
+ StructColumnVector midListStruct = (StructColumnVector) midList.child;
+ LongColumnVector midListInt = (LongColumnVector) midListStruct.fields[0];
+ BytesColumnVector midListStr = (BytesColumnVector) midListStruct.fields[1];
+ ListColumnVector list = (ListColumnVector) batch.cols[10];
+ StructColumnVector listStruct = (StructColumnVector) list.child;
+ LongColumnVector listInts = (LongColumnVector) listStruct.fields[0];
+ BytesColumnVector listStrs = (BytesColumnVector) listStruct.fields[1];
+ MapColumnVector map = (MapColumnVector) batch.cols[11];
+ BytesColumnVector mapKey = (BytesColumnVector) map.keys;
+ StructColumnVector mapValue = (StructColumnVector) map.values;
+ LongColumnVector mapValueInts = (LongColumnVector) mapValue.fields[0];
+ BytesColumnVector mapValueStrs = (BytesColumnVector) mapValue.fields[1];
+ TimestampColumnVector timestamp = (TimestampColumnVector) batch.cols[12];
+ DecimalColumnVector decs = (DecimalColumnVector) batch.cols[13];
+
+ assertEquals(false, middle.isNull[0]);
+ assertEquals(2, midList.lengths[0]);
+ int start = (int) midList.offsets[0];
+ assertEquals(1, midListInt.vector[start]);
+ assertEquals("bye", midListStr.toString(start));
+ assertEquals(2, midListInt.vector[start + 1]);
+ assertEquals("sigh", midListStr.toString(start + 1));
+
+ assertEquals(2, list.lengths[0]);
+ start = (int) list.offsets[0];
+ assertEquals(3, listInts.vector[start]);
+ assertEquals("good", listStrs.toString(start));
+ assertEquals(4, listInts.vector[start + 1]);
+ assertEquals("bad", listStrs.toString(start + 1));
+ assertEquals(0, map.lengths[0]);
assertEquals(Timestamp.valueOf("2000-03-12 15:00:00"),
- tso.getPrimitiveJavaObject(readerInspector.getStructFieldData(row,
- fields.get(12))));
- assertEquals(HiveDecimal.create("12345678.6547456"),
- dco.getPrimitiveJavaObject(readerInspector.getStructFieldData(row,
- fields.get(13))));
+ timestamp.asScratchTimestamp(0));
+ assertEquals(new HiveDecimalWritable(HiveDecimal.create("12345678.6547456")),
+ decs.vector[0]);
- // check the contents of second row
- assertEquals(true, rows.hasNext());
+ // check the contents of row 7499
rows.seekToRow(7499);
- row = rows.next(null);
- assertEquals(true,
- bo.get(readerInspector.getStructFieldData(row, fields.get(0))));
- assertEquals(100,
- by.get(readerInspector.getStructFieldData(row, fields.get(1))));
- assertEquals(2048,
- sh.get(readerInspector.getStructFieldData(row, fields.get(2))));
- assertEquals(65536,
- in.get(readerInspector.getStructFieldData(row, fields.get(3))));
- assertEquals(Long.MAX_VALUE,
- lo.get(readerInspector.getStructFieldData(row, fields.get(4))));
- assertEquals(2.0,
- fl.get(readerInspector.getStructFieldData(row, fields.get(5))), 0.00001);
- assertEquals(-5.0,
- dbl.get(readerInspector.getStructFieldData(row, fields.get(6))),
- 0.00001);
- assertEquals(bytes(), bi.getPrimitiveWritableObject(readerInspector
- .getStructFieldData(row, fields.get(7))));
- assertEquals("bye", st.getPrimitiveJavaObject(readerInspector
- .getStructFieldData(row, fields.get(8))));
- midRow = midli.getList(mid.getStructFieldData(
- readerInspector.getStructFieldData(row, fields.get(9)),
- midFields.get(0)));
- assertNotNull(midRow);
- assertEquals(2, midRow.size());
- assertEquals(1,
- in.get(inner.getStructFieldData(midRow.get(0), inFields.get(0))));
- assertEquals("bye", st.getPrimitiveJavaObject(inner.getStructFieldData(
- midRow.get(0), inFields.get(1))));
- assertEquals(2,
- in.get(inner.getStructFieldData(midRow.get(1), inFields.get(0))));
- assertEquals("sigh", st.getPrimitiveJavaObject(inner.getStructFieldData(
- midRow.get(1), inFields.get(1))));
- list = li.getList(readerInspector.getStructFieldData(row, fields.get(10)));
- assertEquals(3, list.size());
- assertEquals(100000000,
- in.get(inner.getStructFieldData(list.get(0), inFields.get(0))));
- assertEquals("cat", st.getPrimitiveJavaObject(inner.getStructFieldData(
- list.get(0), inFields.get(1))));
- assertEquals(-100000,
- in.get(inner.getStructFieldData(list.get(1), inFields.get(0))));
- assertEquals("in", st.getPrimitiveJavaObject(inner.getStructFieldData(
- list.get(1), inFields.get(1))));
- assertEquals(1234,
- in.get(inner.getStructFieldData(list.get(2), inFields.get(0))));
- assertEquals("hat", st.getPrimitiveJavaObject(inner.getStructFieldData(
- list.get(2), inFields.get(1))));
- map = ma.getMap(readerInspector.getStructFieldData(row, fields.get(11)));
- assertEquals(2, map.size());
- boolean[] found = new boolean[2];
- for(Object key : map.keySet()) {
- String str = mk.getPrimitiveJavaObject(key);
- if (str.equals("chani")) {
- assertEquals(false, found[0]);
- assertEquals(5,
- in.get(inner.getStructFieldData(map.get(key), inFields.get(0))));
- assertEquals(str, st.getPrimitiveJavaObject(inner.getStructFieldData(
- map.get(key), inFields.get(1))));
- found[0] = true;
- } else if (str.equals("mauddib")) {
- assertEquals(false, found[1]);
- assertEquals(1,
- in.get(inner.getStructFieldData(map.get(key), inFields.get(0))));
- assertEquals(str, st.getPrimitiveJavaObject(inner.getStructFieldData(
- map.get(key), inFields.get(1))));
- found[1] = true;
- } else {
- throw new IllegalArgumentException("Unknown key " + str);
- }
- }
- assertEquals(true, found[0]);
- assertEquals(true, found[1]);
+ assertEquals(true, rows.nextBatch(batch));
+ assertEquals(true, getBoolean(batch, 0));
+ assertEquals(100, getByte(batch, 0));
+ assertEquals(2048, getShort(batch, 0));
+ assertEquals(65536, getInt(batch, 0));
+ assertEquals(Long.MAX_VALUE, getLong(batch, 0));
+ assertEquals(2.0, getFloat(batch, 0), 0.00001);
+ assertEquals(-5.0, getDouble(batch, 0), 0.00001);
+ assertEquals(bytes(), getBinary(batch, 0));
+ assertEquals("bye", getText(batch, 0).toString());
+ assertEquals(false, middle.isNull[0]);
+ assertEquals(2, midList.lengths[0]);
+ start = (int) midList.offsets[0];
+ assertEquals(1, midListInt.vector[start]);
+ assertEquals("bye", midListStr.toString(start));
+ assertEquals(2, midListInt.vector[start + 1]);
+ assertEquals("sigh", midListStr.toString(start + 1));
+ assertEquals(3, list.lengths[0]);
+ start = (int) list.offsets[0];
+ assertEquals(100000000, listInts.vector[start]);
+ assertEquals("cat", listStrs.toString(start));
+ assertEquals(-100000, listInts.vector[start + 1]);
+ assertEquals("in", listStrs.toString(start + 1));
+ assertEquals(1234, listInts.vector[start + 2]);
+ assertEquals("hat", listStrs.toString(start + 2));
+ assertEquals(2, map.lengths[0]);
+ start = (int) map.offsets[0];
+ assertEquals("chani", mapKey.toString(start));
+ assertEquals(5, mapValueInts.vector[start]);
+ assertEquals("chani", mapValueStrs.toString(start));
+ assertEquals("mauddib", mapKey.toString(start + 1));
+ assertEquals(1, mapValueInts.vector[start + 1]);
+ assertEquals("mauddib", mapValueStrs.toString(start + 1));
assertEquals(Timestamp.valueOf("2000-03-12 15:00:01"),
- tso.getPrimitiveJavaObject(readerInspector.getStructFieldData(row,
- fields.get(12))));
- assertEquals(HiveDecimal.create("12345678.6547457"),
- dco.getPrimitiveJavaObject(readerInspector.getStructFieldData(row,
- fields.get(13))));
+ timestamp.asScratchTimestamp(0));
+ assertEquals(new HiveDecimalWritable(HiveDecimal.create("12345678.6547457")),
+ decs.vector[0]);
// handle the close up
- assertEquals(false, rows.hasNext());
+ assertEquals(false, rows.nextBatch(batch));
rows.close();
}
@Test
public void testTimestamp() throws Exception {
- ObjectInspector inspector;
- synchronized (TestVectorOrcFile.class) {
- inspector = ObjectInspectorFactory.getReflectionObjectInspector(Timestamp.class,
- ObjectInspectorFactory.ObjectInspectorOptions.JAVA);
- }
-
TypeDescription schema = TypeDescription.createTimestamp();
Writer writer = OrcFile.createWriter(testFilePath,
OrcFile.writerOptions(conf).setSchema(schema).stripeSize(100000)
@@ -533,11 +377,15 @@ public class TestVectorOrcFile {
Reader reader = OrcFile.createReader(testFilePath,
OrcFile.readerOptions(conf).filesystem(fs));
- RecordReader rows = reader.rows(null);
+ RecordReader rows = reader.rows();
+ batch = reader.getSchema().createRowBatch();
+ TimestampColumnVector timestamps = (TimestampColumnVector) batch.cols[0];
int idx = 0;
- while (rows.hasNext()) {
- Object row = rows.next(null);
- assertEquals(tslist.get(idx++).getNanos(), ((TimestampWritable) row).getNanos());
+ while (rows.nextBatch(batch)) {
+ for(int r=0; r < batch.size; ++r) {
+ assertEquals(tslist.get(idx++).getNanos(),
+ timestamps.asScratchTimestamp(r).getNanos());
+ }
}
assertEquals(tslist.size(), rows.getRowNumber());
assertEquals(0, writer.getSchema().getMaximumId());
@@ -608,50 +456,28 @@ public class TestVectorOrcFile {
stats[2].toString());
// check the inspectors
- StructObjectInspector readerInspector =
- (StructObjectInspector) reader.getObjectInspector();
- assertEquals(ObjectInspector.Category.STRUCT,
- readerInspector.getCategory());
- assertEquals("struct<bytes1:binary,string1:string>",
- readerInspector.getTypeName());
- List<? extends StructField> fields =
- readerInspector.getAllStructFieldRefs();
- BinaryObjectInspector bi = (BinaryObjectInspector) readerInspector.
- getStructFieldRef("bytes1").getFieldObjectInspector();
- StringObjectInspector st = (StringObjectInspector) readerInspector.
- getStructFieldRef("string1").getFieldObjectInspector();
+ batch = reader.getSchema().createRowBatch();
+ BytesColumnVector bytes = (BytesColumnVector) batch.cols[0];
+ BytesColumnVector strs = (BytesColumnVector) batch.cols[1];
RecordReader rows = reader.rows();
- Object row = rows.next(null);
- assertNotNull(row);
+ assertEquals(true, rows.nextBatch(batch));
+ assertEquals(4, batch.size);
+
// check the contents of the first row
- assertEquals(bytes(0,1,2,3,4), bi.getPrimitiveWritableObject(
- readerInspector.getStructFieldData(row, fields.get(0))));
- assertEquals("foo", st.getPrimitiveJavaObject(readerInspector.
- getStructFieldData(row, fields.get(1))));
+ assertEquals(bytes(0,1,2,3,4), getBinary(bytes, 0));
+ assertEquals("foo", strs.toString(0));
// check the contents of second row
- assertEquals(true, rows.hasNext());
- row = rows.next(row);
- assertEquals(bytes(0,1,2,3), bi.getPrimitiveWritableObject(
- readerInspector.getStructFieldData(row, fields.get(0))));
- assertEquals("bar", st.getPrimitiveJavaObject(readerInspector.
- getStructFieldData(row, fields.get(1))));
+ assertEquals(bytes(0,1,2,3), getBinary(bytes, 1));
+ assertEquals("bar", strs.toString(1));
// check the contents of third row
- assertEquals(true, rows.hasNext());
- row = rows.next(row);
- assertEquals(bytes(0,1,2,3,4,5), bi.getPrimitiveWritableObject(
- readerInspector.getStructFieldData(row, fields.get(0))));
- assertNull(st.getPrimitiveJavaObject(readerInspector.
- getStructFieldData(row, fields.get(1))));
+ assertEquals(bytes(0,1,2,3,4,5), getBinary(bytes, 2));
+ assertNull(strs.toString(2));
// check the contents of fourth row
- assertEquals(true, rows.hasNext());
- row = rows.next(row);
- assertNull(bi.getPrimitiveWritableObject(
- readerInspector.getStructFieldData(row, fields.get(0))));
- assertEquals("hi", st.getPrimitiveJavaObject(readerInspector.
- getStructFieldData(row, fields.get(1))));
+ assertNull(getBinary(bytes, 3));
+ assertEquals("hi", strs.toString(3));
// handle the close up
assertEquals(false, rows.hasNext());
@@ -767,6 +593,19 @@ public class TestVectorOrcFile {
}
}
+ private static void checkInner(StructColumnVector inner, int rowId,
+ int rowInBatch, int i, String value) {
+ assertEquals("row " + rowId, i,
+ ((LongColumnVector) inner.fields[0]).vector[rowInBatch]);
+ if (value != null) {
+ assertEquals("row " + rowId, value,
+ ((BytesColumnVector) inner.fields[1]).toString(rowInBatch));
+ } else {
+ assertEquals("row " + rowId, true, inner.fields[1].isNull[rowInBatch]);
+ assertEquals("row " + rowId, false, inner.fields[1].noNulls);
+ }
+ }
+
private static void setInnerList(ListColumnVector list, int rowId,
List<InnerStruct> value) {
if (value != null) {
@@ -787,6 +626,23 @@ public class TestVectorOrcFile {
}
}
+ private static void checkInnerList(ListColumnVector list, int rowId,
+ int rowInBatch, List<InnerStruct> value) {
+ if (value != null) {
+ assertEquals("row " + rowId, value.size(), list.lengths[rowInBatch]);
+ int start = (int) list.offsets[rowInBatch];
+ for (int i = 0; i < list.lengths[rowInBatch]; ++i) {
+ InnerStruct inner = value.get(i);
+ checkInner((StructColumnVector) list.child, rowId, i + start,
+ inner.int1, inner.string1.toString());
+ }
+ list.childCount += value.size();
+ } else {
+ assertEquals("row " + rowId, true, list.isNull[rowInBatch]);
+ assertEquals("row " + rowId, false, list.noNulls);
+ }
+ }
+
private static void setInnerMap(MapColumnVector map, int rowId,
Map<String, InnerStruct> value) {
if (value != null) {
@@ -812,6 +668,24 @@ public class TestVectorOrcFile {
}
}
+ private static void checkInnerMap(MapColumnVector map, int rowId,
+ int rowInBatch,
+ Map<String, InnerStruct> value) {
+ if (value != null) {
+ assertEquals("row " + rowId, value.size(), map.lengths[rowInBatch]);
+ int offset = (int) map.offsets[rowInBatch];
+ for(int i=0; i < value.size(); ++i) {
+ String key = ((BytesColumnVector) map.keys).toString(offset + i);
+ InnerStruct expected = value.get(key);
+ checkInner((StructColumnVector) map.values, rowId, offset + i,
+ expected.int1, expected.string1.toString());
+ }
+ } else {
+ assertEquals("row " + rowId, true, map.isNull[rowId]);
+ assertEquals("row " + rowId, false, map.noNulls);
+ }
+ }
+
private static void setMiddleStruct(StructColumnVector middle, int rowId,
MiddleStruct value) {
if (value != null) {
@@ -822,6 +696,17 @@ public class TestVectorOrcFile {
}
}
+ private static void checkMiddleStruct(StructColumnVector middle, int rowId,
+ int rowInBatch, MiddleStruct value) {
+ if (value != null) {
+ checkInnerList((ListColumnVector) middle.fields[0], rowId, rowInBatch,
+ value.list);
+ } else {
+ assertEquals("row " + rowId, true, middle.isNull[rowInBatch]);
+ assertEquals("row " + rowId, false, middle.noNulls);
+ }
+ }
+
private static void setBigRow(VectorizedRowBatch batch, int rowId,
Boolean b1, Byte b2, Short s1,
Integer i1, Long l1, Float f1,
@@ -853,6 +738,160 @@ public class TestVectorOrcFile {
setInnerMap((MapColumnVector) batch.cols[11], rowId, m2);
}
+ private static void checkBigRow(VectorizedRowBatch batch,
+ int rowInBatch,
+ int rowId,
+ boolean b1, byte b2, short s1,
+ int i1, long l1, float f1,
+ double d1, BytesWritable b3, String s2,
+ MiddleStruct m1, List<InnerStruct> l2,
+ Map<String, InnerStruct> m2) {
+ assertEquals("row " + rowId, b1, getBoolean(batch, rowInBatch));
+ assertEquals("row " + rowId, b2, getByte(batch, rowInBatch));
+ assertEquals("row " + rowId, s1, getShort(batch, rowInBatch));
+ assertEquals("row " + rowId, i1, getInt(batch, rowInBatch));
+ assertEquals("row " + rowId, l1, getLong(batch, rowInBatch));
+ assertEquals("row " + rowId, f1, getFloat(batch, rowInBatch), 0.0001);
+ assertEquals("row " + rowId, d1, getDouble(batch, rowInBatch), 0.0001);
+ if (b3 != null) {
+ BytesColumnVector bytes = (BytesColumnVector) batch.cols[7];
+ assertEquals("row " + rowId, b3.getLength(), bytes.length[rowInBatch]);
+ for(int i=0; i < b3.getLength(); ++i) {
+ assertEquals("row " + rowId + " byte " + i, b3.getBytes()[i],
+ bytes.vector[rowInBatch][bytes.start[rowInBatch] + i]);
+ }
+ } else {
+ assertEquals("row " + rowId, true, batch.cols[7].isNull[rowInBatch]);
+ assertEquals("row " + rowId, false, batch.cols[7].noNulls);
+ }
+ if (s2 != null) {
+ assertEquals("row " + rowId, s2, getText(batch, rowInBatch).toString());
+ } else {
+ assertEquals("row " + rowId, true, batch.cols[8].isNull[rowInBatch]);
+ assertEquals("row " + rowId, false, batch.cols[8].noNulls);
+ }
+ checkMiddleStruct((StructColumnVector) batch.cols[9], rowId, rowInBatch,
+ m1);
+ checkInnerList((ListColumnVector) batch.cols[10], rowId, rowInBatch, l2);
+ checkInnerMap((MapColumnVector) batch.cols[11], rowId, rowInBatch, m2);
+ }
+
+ private static boolean getBoolean(VectorizedRowBatch batch, int rowId) {
+ return ((LongColumnVector) batch.cols[0]).vector[rowId] != 0;
+ }
+
+ private static byte getByte(VectorizedRowBatch batch, int rowId) {
+ return (byte) ((LongColumnVector) batch.cols[1]).vector[rowId];
+ }
+
+ private static short getShort(VectorizedRowBatch batch, int rowId) {
+ return (short) ((LongColumnVector) batch.cols[2]).vector[rowId];
+ }
+
+ private static int getInt(VectorizedRowBatch batch, int rowId) {
+ return (int) ((LongColumnVector) batch.cols[3]).vector[rowId];
+ }
+
+ private static long getLong(VectorizedRowBatch batch, int rowId) {
+ return ((LongColumnVector) batch.cols[4]).vector[rowId];
+ }
+
+ private static float getFloat(VectorizedRowBatch batch, int rowId) {
+ return (float) ((DoubleColumnVector) batch.cols[5]).vector[rowId];
+ }
+
+ private static double getDouble(VectorizedRowBatch batch, int rowId) {
+ return ((DoubleColumnVector) batch.cols[6]).vector[rowId];
+ }
+
+ private static BytesWritable getBinary(BytesColumnVector column, int rowId) {
+ if (column.isRepeating) {
+ rowId = 0;
+ }
+ if (column.noNulls || !column.isNull[rowId]) {
+ return new BytesWritable(Arrays.copyOfRange(column.vector[rowId],
+ column.start[rowId], column.start[rowId] + column.length[rowId]));
+ } else {
+ return null;
+ }
+ }
+
+ private static BytesWritable getBinary(VectorizedRowBatch batch, int rowId) {
+ return getBinary((BytesColumnVector) batch.cols[7], rowId);
+ }
+
+ private static Text getText(BytesColumnVector vector, int rowId) {
+ if (vector.isRepeating) {
+ rowId = 0;
+ }
+ if (vector.noNulls || !vector.isNull[rowId]) {
+ return new Text(Arrays.copyOfRange(vector.vector[rowId],
+ vector.start[rowId], vector.start[rowId] + vector.length[rowId]));
+ } else {
+ return null;
+ }
+ }
+
+ private static Text getText(VectorizedRowBatch batch, int rowId) {
+ return getText((BytesColumnVector) batch.cols[8], rowId);
+ }
+
+ private static InnerStruct getInner(StructColumnVector vector,
+ int rowId) {
+ return new InnerStruct(
+ (int) ((LongColumnVector) vector.fields[0]).vector[rowId],
+ getText((BytesColumnVector) vector.fields[1], rowId));
+ }
+
+ private static List<InnerStruct> getList(ListColumnVector cv,
+ int rowId) {
+ if (cv.isRepeating) {
+ rowId = 0;
+ }
+ if (cv.noNulls || !cv.isNull[rowId]) {
+ List<InnerStruct> result =
+ new ArrayList<InnerStruct>((int) cv.lengths[rowId]);
+ for(long i=cv.offsets[rowId];
+ i < cv.offsets[rowId] + cv.lengths[rowId]; ++i) {
+ result.add(getInner((StructColumnVector) cv.child, (int) i));
+ }
+ return result;
+ } else {
+ return null;
+ }
+ }
+
+ private static List<InnerStruct> getMidList(VectorizedRowBatch batch,
+ int rowId) {
+ return getList((ListColumnVector) ((StructColumnVector) batch.cols[9])
+ .fields[0], rowId);
+ }
+
+ private static List<InnerStruct> getList(VectorizedRowBatch batch,
+ int rowId) {
+ return getList((ListColumnVector) batch.cols[10], rowId);
+ }
+
+ private static Map<Text, InnerStruct> getMap(VectorizedRowBatch batch,
+ int rowId) {
+ MapColumnVector cv = (MapColumnVector) batch.cols[11];
+ if (cv.isRepeating) {
+ rowId = 0;
+ }
+ if (cv.noNulls || !cv.isNull[rowId]) {
+ Map<Text, InnerStruct> result =
+ new HashMap<Text, InnerStruct>((int) cv.lengths[rowId]);
+ for(long i=cv.offsets[rowId];
+ i < cv.offsets[rowId] + cv.lengths[rowId]; ++i) {
+ result.put(getText((BytesColumnVector) cv.keys, (int) i),
+ getInner((StructColumnVector) cv.values, (int) i));
+ }
+ return result;
+ } else {
+ return null;
+ }
+ }
+
private static TypeDescription createInnerSchema() {
return TypeDescription.createStruct()
.addField("int1", TypeDescription.createInt())
@@ -981,178 +1020,114 @@ public class TestVectorOrcFile {
assertEquals("count: 2 hasNull: false min: bye max: hi sum: 5", stats[9].toString());
- // check the inspectors
- StructObjectInspector readerInspector =
- (StructObjectInspector) reader.getObjectInspector();
- assertEquals(ObjectInspector.Category.STRUCT,
- readerInspector.getCategory());
+ // check the schema
+ TypeDescription readerSchema = reader.getSchema();
+ assertEquals(TypeDescription.Category.STRUCT, readerSchema.getCategory());
assertEquals("struct<boolean1:boolean,byte1:tinyint,short1:smallint,"
+ "int1:int,long1:bigint,float1:float,double1:double,bytes1:"
+ "binary,string1:string,middle:struct<list:array<struct<int1:int,"
+ "string1:string>>>,list:array<struct<int1:int,string1:string>>,"
+ "map:map<string,struct<int1:int,string1:string>>>",
- readerInspector.getTypeName());
- List<? extends StructField> fields =
- readerInspector.getAllStructFieldRefs();
- BooleanObjectInspector bo = (BooleanObjectInspector) readerInspector.
- getStructFieldRef("boolean1").getFieldObjectInspector();
- ByteObjectInspector by = (ByteObjectInspector) readerInspector.
- getStructFieldRef("byte1").getFieldObjectInspector();
- ShortObjectInspector sh = (ShortObjectInspector) readerInspector.
- getStructFieldRef("short1").getFieldObjectInspector();
- IntObjectInspector in = (IntObjectInspector) readerInspector.
- getStructFieldRef("int1").getFieldObjectInspector();
- LongObjectInspector lo = (LongObjectInspector) readerInspector.
- getStructFieldRef("long1").getFieldObjectInspector();
- FloatObjectInspector fl = (FloatObjectInspector) readerInspector.
- getStructFieldRef("float1").getFieldObjectInspector();
- DoubleObjectInspector dbl = (DoubleObjectInspector) readerInspector.
- getStructFieldRef("double1").getFieldObjectInspector();
- BinaryObjectInspector bi = (BinaryObjectInspector) readerInspector.
- getStructFieldRef("bytes1").getFieldObjectInspector();
- StringObjectInspector st = (StringObjectInspector) readerInspector.
- getStructFieldRef("string1").getFieldObjectInspector();
- StructObjectInspector mid = (StructObjectInspector) readerInspector.
- getStructFieldRef("middle").getFieldObjectInspector();
- List<? extends StructField> midFields =
- mid.getAllStructFieldRefs();
- ListObjectInspector midli =
- (ListObjectInspector) midFields.get(0).getFieldObjectInspector();
- StructObjectInspector inner = (StructObjectInspector)
- midli.getListElementObjectInspector();
- List<? extends StructField> inFields = inner.getAllStructFieldRefs();
- ListObjectInspector li = (ListObjectInspector) readerInspector.
- getStructFieldRef("list").getFieldObjectInspector();
- MapObjectInspector ma = (MapObjectInspector) readerInspector.
- getStructFieldRef("map").getFieldObjectInspector();
- StringObjectInspector mk = (StringObjectInspector)
- ma.getMapKeyObjectInspector();
+ readerSchema.toString());
+ List<String> fieldNames = readerSchema.getFieldNames();
+ List<TypeDescription> fieldTypes = readerSchema.getChildren();
+ assertEquals("boolean1", fieldNames.get(0));
+ assertEquals(TypeDescription.Category.BOOLEAN, fieldTypes.get(0).getCategory());
+ assertEquals("byte1", fieldNames.get(1));
+ assertEquals(TypeDescription.Category.BYTE, fieldTypes.get(1).getCategory());
+ assertEquals("short1", fieldNames.get(2));
+ assertEquals(TypeDescription.Category.SHORT, fieldTypes.get(2).getCategory());
+ assertEquals("int1", fieldNames.get(3));
+ assertEquals(TypeDescription.Category.INT, fieldTypes.get(3).getCategory());
+ assertEquals("long1", fieldNames.get(4));
+ assertEquals(TypeDescription.Category.LONG, fieldTypes.get(4).getCategory());
+ assertEquals("float1", fieldNames.get(5));
+ assertEquals(TypeDescription.Category.FLOAT, fieldTypes.get(5).getCategory());
+ assertEquals("double1", fieldNames.get(6));
+ assertEquals(TypeDescription.Category.DOUBLE, fieldTypes.get(6).getCategory());
+ assertEquals("bytes1", fieldNames.get(7));
+ assertEquals(TypeDescription.Category.BINARY, fieldTypes.get(7).getCategory());
+ assertEquals("string1", fieldNames.get(8));
+ assertEquals(TypeDescription.Category.STRING, fieldTypes.get(8).getCategory());
+ assertEquals("middle", fieldNames.get(9));
+ TypeDescription middle = fieldTypes.get(9);
+ assertEquals(TypeDescription.Category.STRUCT, middle.getCategory());
+ TypeDescription midList = middle.getChildren().get(0);
+ assertEquals(TypeDescription.Category.LIST, midList.getCategory());
+ TypeDescription inner = midList.getChildren().get(0);
+ assertEquals(TypeDescription.Category.STRUCT, inner.getCategory());
+ assertEquals("int1", inner.getFieldNames().get(0));
+ assertEquals("string1", inner.getFieldNames().get(1));
+
RecordReader rows = reader.rows();
- Object row = rows.next(null);
- assertNotNull(row);
+ // create a new batch
+ batch = readerSchema.createRowBatch();
+ assertEquals(true, rows.nextBatch(batch));
+ assertEquals(2, batch.size);
+ assertEquals(false, rows.hasNext());
+
// check the contents of the first row
- assertEquals(false,
- bo.get(readerInspector.getStructFieldData(row, fields.get(0))));
- assertEquals(1, by.get(readerInspector.getStructFieldData(row,
- fields.get(1))));
- assertEquals(1024, sh.get(readerInspector.getStructFieldData(row,
- fields.get(2))));
- assertEquals(65536, in.get(readerInspector.getStructFieldData(row,
- fields.get(3))));
- assertEquals(Long.MAX_VALUE, lo.get(readerInspector.
- getStructFieldData(row, fields.get(4))));
- assertEquals(1.0, fl.get(readerInspector.getStructFieldData(row,
- fields.get(5))), 0.00001);
- assertEquals(-15.0, dbl.get(readerInspector.getStructFieldData(row,
- fields.get(6))), 0.00001);
- assertEquals(bytes(0,1,2,3,4), bi.getPrimitiveWritableObject(
- readerInspector.getStructFieldData(row, fields.get(7))));
- assertEquals("hi", st.getPrimitiveJavaObject(readerInspector.
- getStructFieldData(row, fields.get(8))));
- List<?> midRow = midli.getList(mid.getStructFieldData(readerInspector.
- getStructFieldData(row, fields.get(9)), midFields.get(0)));
+ assertEquals(false, getBoolean(batch, 0));
+ assertEquals(1, getByte(batch, 0));
+ assertEquals(1024, getShort(batch, 0));
+ assertEquals(65536, getInt(batch, 0));
+ assertEquals(Long.MAX_VALUE, getLong(batch, 0));
+ assertEquals(1.0, getFloat(batch, 0), 0.00001);
+ assertEquals(-15.0, getDouble(batch, 0), 0.00001);
+ assertEquals(bytes(0,1,2,3,4), getBinary(batch, 0));
+ assertEquals("hi", getText(batch, 0).toString());
+ List<InnerStruct> midRow = getMidList(batch, 0);
assertNotNull(midRow);
assertEquals(2, midRow.size());
- assertEquals(1, in.get(inner.getStructFieldData(midRow.get(0),
- inFields.get(0))));
- assertEquals("bye", st.getPrimitiveJavaObject(inner.getStructFieldData
- (midRow.get(0), inFields.get(1))));
- assertEquals(2, in.get(inner.getStructFieldData(midRow.get(1),
- inFields.get(0))));
- assertEquals("sigh", st.getPrimitiveJavaObject(inner.getStructFieldData
- (midRow.get(1), inFields.get(1))));
- List<?> list = li.getList(readerInspector.getStructFieldData(row,
- fields.get(10)));
+ assertEquals(1, midRow.get(0).int1);
+ assertEquals("bye", midRow.get(0).string1.toString());
+ assertEquals(2, midRow.get(1).int1);
+ assertEquals("sigh", midRow.get(1).string1.toString());
+ List<InnerStruct> list = getList(batch, 0);
assertEquals(2, list.size());
- assertEquals(3, in.get(inner.getStructFieldData(list.get(0),
- inFields.get(0))));
- assertEquals("good", st.getPrimitiveJavaObject(inner.getStructFieldData
- (list.get(0), inFields.get(1))));
- assertEquals(4, in.get(inner.getStructFieldData(list.get(1),
- inFields.get(0))));
- assertEquals("bad", st.getPrimitiveJavaObject(inner.getStructFieldData
- (list.get(1), inFields.get(1))));
- Map<?,?> map = ma.getMap(readerInspector.getStructFieldData(row,
- fields.get(11)));
+ assertEquals(3, list.get(0).int1);
+ assertEquals("good", list.get(0).string1.toString());
+ assertEquals(4, list.get(1).int1);
+ assertEquals("bad", list.get(1).string1.toString());
+ Map<Text, InnerStruct> map = getMap(batch, 0);
assertEquals(0, map.size());
// check the contents of second row
- assertEquals(true, rows.hasNext());
- row = rows.next(row);
- assertEquals(true,
- bo.get(readerInspector.getStructFieldData(row, fields.get(0))));
- assertEquals(100, by.get(readerInspector.getStructFieldData(row,
- fields.get(1))));
- assertEquals(2048, sh.get(readerInspector.getStructFieldData(row,
- fields.get(2))));
- assertEquals(65536, in.get(readerInspector.getStructFieldData(row,
- fields.get(3))));
- assertEquals(Long.MAX_VALUE, lo.get(readerInspector.
- getStructFieldData(row, fields.get(4))));
- assertEquals(2.0, fl.get(readerInspector.getStructFieldData(row,
- fields.get(5))), 0.00001);
- assertEquals(-5.0, dbl.get(readerInspector.getStructFieldData(row,
- fields.get(6))), 0.00001);
- assertEquals(bytes(), bi.getPrimitiveWritableObject(
- readerInspector.getStructFieldData(row, fields.get(7))));
- assertEquals("bye", st.getPrimitiveJavaObject(readerInspector.
- getStructFieldData(row, fields.get(8))));
- midRow = midli.getList(mid.getStructFieldData(readerInspector.
- getStructFieldData(row, fields.get(9)), midFields.get(0)));
+ assertEquals(true, getBoolean(batch, 1));
+ assertEquals(100, getByte(batch, 1));
+ assertEquals(2048, getShort(batch, 1));
+ assertEquals(65536, getInt(batch, 1));
+ assertEquals(Long.MAX_VALUE, getLong(batch, 1));
+ assertEquals(2.0, getFloat(batch, 1), 0.00001);
+ assertEquals(-5.0, getDouble(batch, 1), 0.00001);
+ assertEquals(bytes(), getBinary(batch, 1));
+ assertEquals("bye", getText(batch, 1).toString());
+ midRow = getMidList(batch, 1);
assertNotNull(midRow);
assertEquals(2, midRow.size());
- assertEquals(1, in.get(inner.getStructFieldData(midRow.get(0),
- inFields.get(0))));
- assertEquals("bye", st.getPrimitiveJavaObject(inner.getStructFieldData
- (midRow.get(0), inFields.get(1))));
- assertEquals(2, in.get(inner.getStructFieldData(midRow.get(1),
- inFields.get(0))));
- assertEquals("sigh", st.getPrimitiveJavaObject(inner.getStructFieldData
- (midRow.get(1), inFields.get(1))));
- list = li.getList(readerInspector.getStructFieldData(row,
- fields.get(10)));
+ assertEquals(1, midRow.get(0).int1);
+ assertEquals("bye", midRow.get(0).string1.toString());
+ assertEquals(2, midRow.get(1).int1);
+ assertEquals("sigh", midRow.get(1).string1.toString());
+ list = getList(batch, 1);
assertEquals(3, list.size());
- assertEquals(100000000, in.get(inner.getStructFieldData(list.get(0),
- inFields.get(0))));
- assertEquals("cat", st.getPrimitiveJavaObject(inner.getStructFieldData
- (list.get(0), inFields.get(1))));
- assertEquals(-100000, in.get(inner.getStructFieldData(list.get(1),
- inFields.get(0))));
- assertEquals("in", st.getPrimitiveJavaObject(inner.getStructFieldData
- (list.get(1), inFields.get(1))));
- assertEquals(1234, in.get(inner.getStructFieldData(list.get(2),
- inFields.get(0))));
- assertEquals("hat", st.getPrimitiveJavaObject(inner.getStructFieldData
- (list.get(2), inFields.get(1))));
- map = ma.getMap(readerInspector.getStructFieldData(row,
- fields.get(11)));
+ assertEquals(100000000, list.get(0).int1);
+ assertEquals("cat", list.get(0).string1.toString());
+ assertEquals(-100000, list.get(1).int1);
+ assertEquals("in", list.get(1).string1.toString());
+ assertEquals(1234, list.get(2).int1);
+ assertEquals("hat", list.get(2).string1.toString());
+ map = getMap(batch, 1);
assertEquals(2, map.size());
- boolean[] found = new boolean[2];
- for(Object key: map.keySet()) {
- String str = mk.getPrimitiveJavaObject(key);
- if (str.equals("chani")) {
- assertEquals(false, found[0]);
- assertEquals(5, in.get(inner.getStructFieldData(map.get(key),
- inFields.get(0))));
- assertEquals(str, st.getPrimitiveJavaObject(
- inner.getStructFieldData(map.get(key), inFields.get(1))));
- found[0] = true;
- } else if (str.equals("mauddib")) {
- assertEquals(false, found[1]);
- assertEquals(1, in.get(inner.getStructFieldData(map.get(key),
- inFields.get(0))));
- assertEquals(str, st.getPrimitiveJavaObject(
- inner.getStructFieldData(map.get(key), inFields.get(1))));
- found[1] = true;
- } else {
- throw new IllegalArgumentException("Unknown key " + str);
- }
- }
- assertEquals(true, found[0]);
- assertEquals(true, found[1]);
+ InnerStruct value = map.get(new Text("chani"));
+ assertEquals(5, value.int1);
+ assertEquals("chani", value.string1.toString());
+ value = map.get(new Text("mauddib"));
+ assertEquals(1, value.int1);
+ assertEquals("mauddib", value.string1.toString());
// handle the close up
- assertEquals(false, rows.hasNext());
+ assertEquals(false, rows.nextBatch(batch));
rows.close();
}
@@ -1216,35 +1191,36 @@ public class TestVectorOrcFile {
}
// check out the types
- List<OrcProto.Type> types = reader.getTypes();
- assertEquals(3, types.size());
- assertEquals(OrcProto.Type.Kind.STRUCT, types.get(0).getKind());
- assertEquals(2, types.get(0).getSubtypesCount());
- assertEquals(1, types.get(0).getSubtypes(0));
- assertEquals(2, types.get(0).getSubtypes(1));
- assertEquals(OrcProto.Type.Kind.INT, types.get(1).getKind());
- assertEquals(0, types.get(1).getSubtypesCount());
- assertEquals(OrcProto.Type.Kind.STRING, types.get(2).getKind());
- assertEquals(0, types.get(2).getSubtypesCount());
+ TypeDescription type = reader.getSchema();
+ assertEquals(TypeDescription.Category.STRUCT, type.getCategory());
+ assertEquals(2, type.getChildren().size());
+ TypeDescription type1 = type.getChildren().get(0);
+ TypeDescription type2 = type.getChildren().get(1);
+ assertEquals(TypeDescription.Category.INT, type1.getCategory());
+ assertEquals(TypeDescription.Category.STRING, type2.getCategory());
+ assertEquals("struct<int1:int,string1:string>", type.toString());
// read the contents and make sure they match
RecordReader rows1 = reader.rows(new boolean[]{true, true, false});
RecordReader rows2 = reader.rows(new boolean[]{true, false, true});
r1 = new Random(1);
r2 = new Random(2);
- OrcStruct row1 = null;
- OrcStruct row2 = null;
- for(int i = 0; i < 21000; ++i) {
- assertEquals(true, rows1.hasNext());
- assertEquals(true, rows2.hasNext());
- row1 = (OrcStruct) rows1.next(row1);
- row2 = (OrcStruct) rows2.next(row2);
- assertEquals(r1.nextInt(), ((IntWritable) row1.getFieldValue(0)).get());
- assertEquals(Long.toHexString(r2.nextLong()),
- row2.getFieldValue(1).toString());
- }
- assertEquals(false, rows1.hasNext());
- assertEquals(false, rows2.hasNext());
+ VectorizedRowBatch batch1 = reader.getSchema().createRowBatch(1000);
+ VectorizedRowBatch batch2 = reader.getSchema().createRowBatch(1000);
+ for(int i = 0; i < 21000; i += 1000) {
+ assertEquals(true, rows1.nextBatch(batch1));
+ assertEquals(true, rows2.nextBatch(batch2));
+ assertEquals(1000, batch1.size);
+ assertEquals(1000, batch2.size);
+ for(int j=0; j < 1000; ++j) {
+ assertEquals(r1.nextInt(),
+ ((LongColumnVector) batch1.cols[0]).vector[j]);
+ assertEquals(Long.toHexString(r2.nextLong()),
+ ((BytesColumnVector) batch2.cols[1]).toString(j));
+ }
+ }
+ assertEquals(false, rows1.nextBatch(batch1));
+ assertEquals(false, rows2.nextBatch(batch2));
rows1.close();
rows2.close();
}
@@ -1355,17 +1331,33 @@ public class TestVectorOrcFile {
Reader reader = OrcFile.createReader(file,
OrcFile.readerOptions(conf));
RecordReader rows = reader.rows();
- OrcStruct row = null;
+ batch = reader.getSchema().createRowBatch(1000);
+ TimestampColumnVector times = (TimestampColumnVector) batch.cols[0];
+ LongColumnVector dates = (LongColumnVector) batch.cols[1];
for (int year = minYear; year < maxYear; ++year) {
+ rows.nextBatch(batch);
+ assertEquals(1000, batch.size);
for(int ms = 1000; ms < 2000; ++ms) {
- row = (OrcStruct) rows.next(row);
- assertEquals(new TimestampWritable
- (Timestamp.valueOf(year + "-05-05 12:34:56." + ms)),
- row.getFieldValue(0));
- assertEquals(new DateWritable(new Date(year - 1900, 11, 25)),
- row.getFieldValue(1));
+ StringBuilder buffer = new StringBuilder();
+ times.stringifyValue(buffer, ms - 1000);
+ String expected = Integer.toString(year) + "-05-05 12:34:56.";
+ // suppress the final zeros on the string by dividing by the largest
+ // power of 10 that divides evenly.
+ int roundedMs = ms;
+ for(int round = 1000; round > 0; round /= 10) {
+ if (ms % round == 0) {
+ roundedMs = ms / round;
+ break;
+ }
+ }
+ expected += roundedMs;
+ assertEquals(expected, buffer.toString());
+ assertEquals(Integer.toString(year) + "-12-25",
+ new DateWritable((int) dates.vector[ms - 1000]).toString());
}
}
+ rows.nextBatch(batch);
+ assertEquals(0, batch.size);
}
@Test
@@ -1483,6 +1475,7 @@ public class TestVectorOrcFile {
for(int c=0; c < batch.cols.length; ++c) {
batch.cols[c].setRepeating(true);
}
+ ((UnionColumnVector) batch.cols[1]).fields[0].isRepeating = true;
setUnion(batch, 0, null, 0, 1732050807, null, null);
for(int i=0; i < 5; ++i) {
writer.addRowBatch(batch);
@@ -1540,83 +1533,115 @@ public class TestVectorOrcFile {
RecordReader rows = reader.rows();
assertEquals(0, rows.getRowNumber());
assertEquals(0.0, rows.getProgress(), 0.000001);
- assertEquals(true, rows.hasNext());
- OrcStruct row = (OrcStruct) rows.next(null);
- assertEquals(1, rows.getRowNumber());
- ObjectInspector inspector = reader.getObjectInspector();
+
+ schema = reader.getSchema();
+ batch = schema.createRowBatch(74);
+ assertEquals(0, rows.getRowNumber());
+ rows.nextBatch(batch);
+ assertEquals(74, batch.size);
+ assertEquals(74, rows.getRowNumber());
+ TimestampColumnVector ts = (TimestampColumnVector) batch.cols[0];
+ UnionColumnVector union = (UnionColumnVector) batch.cols[1];
+ LongColumnVector longs = (LongColumnVector) union.fields[0];
+ BytesColumnVector strs = (BytesColumnVector) union.fields[1];
+ DecimalColumnVector decs = (DecimalColumnVector) batch.cols[2];
+
assertEquals("struct<time:timestamp,union:uniontype<int,string>,decimal:decimal(38,18)>",
- inspector.getTypeName());
- assertEquals(new TimestampWritable(Timestamp.valueOf("2000-03-12 15:00:00")),
- row.getFieldValue(0));
- OrcUnion union = (OrcUnion) row.getFieldValue(1);
- assertEquals(0, union.getTag());
- assertEquals(new IntWritable(42), union.getObject());
- assertEquals(new HiveDecimalWritable(HiveDecimal.create("12345678.6547456")),
- row.getFieldValue(2));
- row = (OrcStruct) rows.next(row);
- assertEquals(2, rows.getRowNumber());
- assertEquals(new TimestampWritable(Timestamp.valueOf("2000-03-20 12:00:00.123456789")),
- row.getFieldValue(0));
- assertEquals(1, union.getTag());
- assertEquals(new Text("hello"), union.getObject());
- assertEquals(new HiveDecimalWritable(HiveDecimal.create("-5643.234")),
- row.getFieldValue(2));
- row = (OrcStruct) rows.next(row);
- assertEquals(null, row.getFieldValue(0));
- assertEquals(null, row.getFieldValue(1));
- assertEquals(null, row.getFieldValue(2));
- row = (OrcStruct) rows.next(row);
- assertEquals(null, row.getFieldValue(0));
- union = (OrcUnion) row.getFieldValue(1);
- assertEquals(0, union.getTag());
- assertEquals(null, union.getObject());
- assertEquals(null, row.getFieldValue(2));
- row = (OrcStruct) rows.next(row);
- assertEquals(null, row.getFieldValue(0));
- assertEquals(1, union.getTag());
- assertEquals(null, union.getObject());
- assertEquals(null, row.getFieldValue(2));
- row = (OrcStruct) rows.next(row);
- assertEquals(new TimestampWritable(Timestamp.valueOf("1970-01-01 00:00:00")),
- row.getFieldValue(0));
- assertEquals(new IntWritable(200000), union.getObject());
- assertEquals(new HiveDecimalWritable(HiveDecimal.create("10000000000000000000")),
- row.getFieldValue(2));
+ schema.toString());
+ assertEquals("2000-03-12 15:00:00.0", ts.asScratchTimestamp(0).toString());
+ assertEquals(0, union.tags[0]);
+ assertEquals(42, longs.vector[0]);
+ assertEquals("12345678.6547456", decs.vector[0].toString());
+
+ assertEquals("2000-03-20 12:00:00.123456789", ts.asScratchTimestamp(1).toString());
+ assertEquals(1, union.tags[1]);
+ assertEquals("hello", strs.toString(1));
+ assertEquals("-5643.234", decs.vector[1].toString());
+
+ assertEquals(false, ts.noNulls);
+ assertEquals(false, union.noNulls);
+ assertEquals(false, decs.noNulls);
+ assertEquals(true, ts.isNull[2]);
+ assertEquals(true, union.isNull[2]);
+ assertEquals(true, decs.isNull[2]);
+
+ assertEquals(true, ts.isNull[3]);
+ assertEquals(false, union.isNull[3]);
+ assertEquals(0, union.tags[3]);
+ assertEquals(true, longs.isNull[3]);
+ assertEquals(true, decs.isNull[3]);
+
+ assertEquals(true, ts.isNull[4]);
+ assertEquals(false, union.isNull[4]);
+ assertEquals(1, union.tags[4]);
+ assertEquals(true, strs.isNull[4]);
+ assertEquals(true, decs.isNull[4]);
+
+ assertEquals(false, ts.isNull[5]);
+ assertEquals("1970-01-01 00:00:00.0", ts.asScratchTimestamp(5).toString());
+ assertEquals(false, union.isNull[5]);
+ assertEquals(0, union.tags[5]);
+ assertEquals(false, longs.isNull[5]);
+ assertEquals(200000, longs.vector[5]);
+ assertEquals(false, decs.isNull[5]);
+ assertEquals("10000000000000000000", decs.vector[5].toString());
+
rand = new Random(42);
for(int i=1970; i < 2038; ++i) {
- row = (OrcStruct) rows.next(row);
- assertEquals(new TimestampWritable(Timestamp.valueOf(i + "-05-05 12:34:56." + i)),
- row.getFieldValue(0));
+ int row = 6 + i - 1970;
+ assertEquals(Timestamp.valueOf(i + "-05-05 12:34:56." + i),
+ ts.asScratchTimestamp(row));
if ((i & 1) == 0) {
- assertEquals(0, union.getTag());
- assertEquals(new IntWritable(i*i), union.getObject());
+ assertEquals(0, union.tags[row]);
+ assertEquals(i*i, longs.vector[row]);
} else {
- assertEquals(1, union.getTag());
- assertEquals(new Text(Integer.toString(i * i)), union.getObject());
+ assertEquals(1, union.tags[row]);
+ assertEquals(Integer.toString(i * i), strs.toString(row));
}
assertEquals(new HiveDecimalWritable(HiveDecimal.create(new BigInteger(64, rand),
- rand.nextInt(18))), row.getFieldValue(2));
- }
- for(int i=0; i < 5000; ++i) {
- row = (OrcStruct) rows.next(row);
- assertEquals(new IntWritable(1732050807), union.getObject());
- }
- row = (OrcStruct) rows.next(row);
- assertEquals(new IntWritable(0), union.getObject());
- row = (OrcStruct) rows.next(row);
- assertEquals(new IntWritable(10), union.getObject());
- row = (OrcStruct) rows.next(row);
- assertEquals(new IntWritable(138), union.getObject());
- assertEquals(false, rows.hasNext());
+ rand.nextInt(18))), decs.vector[row]);
+ }
+
+ // rebuild the row batch, so that we can read by 1000 rows
+ batch = schema.createRowBatch(1000);
+ ts = (TimestampColumnVector) batch.cols[0];
+ union = (UnionColumnVector) batch.cols[1];
+ longs = (LongColumnVector) union.fields[0];
+ strs = (BytesColumnVector) union.fields[1];
+ decs = (DecimalColumnVector) batch.cols[2];
+
+ for(int i=0; i < 5; ++i) {
+ rows.nextBatch(batch);
+ assertEquals("batch " + i, 1000, batch.size);
+ assertEquals("batch " + i, false, union.isRepeating);
+ assertEquals("batch " + i, true, union.noNulls);
+ for(int r=0; r < batch.size; ++r) {
+ assertEquals("bad tag at " + i + "." +r, 0, union.tags[r]);
+ }
+ assertEquals("batch " + i, true, longs.isRepeating);
+ assertEquals("batch " + i, 1732050807, longs.vector[0]);
+ }
+
+ rows.nextBatch(batch);
+ assertEquals(3, batch.size);
+ assertEquals(0, union.tags[0]);
+ assertEquals(0, longs.vector[0]);
+ assertEquals(0, union.tags[1]);
+ assertEquals(10, longs.vector[1]);
+ assertEquals(0, union.tags[2]);
+ assertEquals(138, longs.vector[2]);
+
+ rows.nextBatch(batch);
+ assertEquals(0, batch.size);
assertEquals(1.0, rows.getProgress(), 0.00001);
assertEquals(reader.getNumberOfRows(), rows.getRowNumber());
rows.seekToRow(1);
- row = (OrcStruct) rows.next(row);
- assertEquals(new TimestampWritable(Timestamp.valueOf("2000-03-20 12:00:00.123456789")),
- row.getFieldValue(0));
- assertEquals(1, union.getTag());
- assertEquals(new Text("hello"), union.getObject());
- assertEquals(new HiveDecimalWritable(HiveDecimal.create("-5643.234")), row.getFieldValue(2));
+ rows.nextBatch(batch);
+ assertEquals(1000, batch.size);
+ assertEquals(Timestamp.valueOf("2000-03-20 12:00:00.123456789"), ts.asScratchTimestamp(0));
+ assertEquals(1, union.tags[0]);
+ assertEquals("hello", strs.toString(0));
+ assertEquals(new HiveDecimalWritable(HiveDecimal.create("-5643.234")), decs.vector[0]);
rows.close();
}
@@ -1647,17 +1672,22 @@ public class TestVectorOrcFile {
writer.close();
Reader reader = OrcFile.createReader(testFilePath,
OrcFile.readerOptions(conf).filesystem(fs));
+ assertEquals(CompressionKind.SNAPPY, reader.getCompressionKind());
RecordReader rows = reader.rows();
+ batch = reader.getSchema().createRowBatch(1000);
rand = new Random(12);
- OrcStruct row = null;
- for(int i=0; i < 10000; ++i) {
- assertEquals(true, rows.hasNext());
- row = (OrcStruct) rows.next(row);
- assertEquals(rand.nextInt(), ((IntWritable) row.getFieldValue(0)).get());
- assertEquals(Integer.toHexString(rand.nextInt()),
- row.getFieldValue(1).toString());
+ LongColumnVector longs = (LongColumnVector) batch.cols[0];
+ BytesColumnVector strs = (BytesColumnVector) batch.cols[1];
+ for(int b=0; b < 10; ++b) {
+ rows.nextBatch(batch);
+ assertEquals(1000, batch.size);
+ for(int r=0; r < batch.size; ++r) {
+ assertEquals(rand.nextInt(), longs.vector[r]);
+ assertEquals(Integer.toHexString(rand.nextInt()), strs.toString(r));
+ }
}
- assertEquals(false, rows.hasNext());
+ rows.nextBatch(batch);
+ assertEquals(0, batch.size);
rows.close();
}
@@ -1697,18 +1727,23 @@ public class TestVectorOrcFile {
assertEquals(0, stripe.getIndexLength());
RecordReader rows = reader.rows();
rand = new Random(24);
- OrcStruct row = null;
- for(int i=0; i < 10000; ++i) {
- int intVal = rand.nextInt();
- String strVal = Integer.toBinaryString(rand.nextInt());
- for(int j=0; j < 5; ++j) {
- assertEquals(true, rows.hasNext());
- row = (OrcStruct) rows.next(row);
- assertEquals(intVal, ((IntWritable) row.getFieldValue(0)).get());
- assertEquals(strVal, row.getFieldValue(1).toString());
+ batch = reader.getSchema().createRowBatch(1000);
+ LongColumnVector longs = (LongColumnVector) batch.cols[0];
+ BytesColumnVector strs = (BytesColumnVector) batch.cols[1];
+ for(int i=0; i < 50; ++i) {
+ rows.nextBatch(batch);
+ assertEquals("batch " + i, 1000, batch.size);
+ for(int j=0; j < 200; ++j) {
+ int intVal = rand.nextInt();
+ String strVal = Integer.toBinaryString(rand.nextInt());
+ for (int k = 0; k < 5; ++k) {
+ assertEquals(intVal, longs.vector[j * 5 + k]);
+ assertEquals(strVal, strs.toString(j * 5 + k));
+ }
}
}
- assertEquals(false, rows.hasNext());
+ rows.nextBatch(batch);
+ assertEquals(0, batch.size);
rows.close();
}
@@ -1761,7 +1796,15 @@ public class TestVectorOrcFile {
assertEquals(COUNT, reader.getNumberOfRows());
RecordReader rows = reader.rows();
// get the row index
- MetadataReader meta = ((RecordReaderImpl) rows).getMetadataReader();
+ DataReader meta = RecordReaderUtils.createDefaultDataReader(
+ DataReaderProperties.builder()
+ .withBufferSize(reader.getCompressionSize())
+ .withFileSystem(fs)
+ .withPath(testFilePath)
+ .withCompression(reader.getCompressionKind())
+ .withTypeCount(reader.getSchema().getMaximumId() + 1)
+ .withZeroCopy(false)
+ .build());
OrcIndex index =
meta.readRowIndex(reader.getStripes().get(0), null, null, null, null,
null);
@@ -1772,34 +1815,18 @@ public class TestVectorOrcFile {
assertEquals(1000,
colIndex.getEntry(0).getStatistics().getNumberOfValues());
}
- OrcStruct row = null;
- for(int i=COUNT-1; i >= 0; --i) {
- rows.seekToRow(i);
- row = (OrcStruct) rows.next(row);
- BigRow expected = createRandomRow(intValues, doubleValues,
- stringValues, byteValues, words, i);
- assertEquals(expected.boolean1.booleanValue(),
- ((BooleanWritable) row.getFieldValue(0)).get());
- assertEquals(expected.byte1.byteValue(),
- ((ByteWritable) row.getFieldValue(1)).get());
- assertEquals(expected.short1.shortValue(),
- ((ShortWritable) row.getFieldValue(2)).get());
- assertEquals(expected.int1.intValue(),
- ((IntWritable) row.getFieldValue(3)).get());
- assertEquals(expected.long1.longValue(),
- ((LongWritable) row.getFieldValue(4)).get());
- assertEquals(expected.float1,
- ((FloatWritable) row.getFieldValue(5)).get(), 0.0001);
- assertEquals(expected.double1,
- ((DoubleWritable) row.getFieldValue(6)).get(), 0.0001);
- assertEquals(expected.bytes1, row.getFieldValue(7));
- assertEquals(expected.string1, row.getFieldValue(8));
- List<InnerStruct> expectedList = expected.middle.list;
- List<OrcStruct> actualList =
- (List<OrcStruct>) ((OrcStruct) row.getFieldValue(9)).getFieldValue(0);
- compareList(expectedList, actualList, "middle list " + i);
- compareList(expected.list, (List<OrcStruct>) row.getFieldValue(10),
- "list " + i);
+ batch = reader.getSchema().createRowBatch();
+ int nextRowInBatch = -1;
+ for(int i=COUNT-1; i >= 0; --i, --nextRowInBatch) {
+ // if we have consumed the previous batch read a new one
+ if (nextRowInBatch < 0) {
+ long base = Math.max(i - 1023, 0);
+ rows.seekToRow(base);
+ assertEquals("row " + i, true, rows.nextBatch(batch));
+ nextRowInBatch = batch.size - 1;
+ }
+ checkRandomRow(batch, intValues, doubleValues,
+ stringValues, byteValues, words, i, nextRowInBatch);
}
rows.close();
Iterator<StripeInformation> stripeIterator =
@@ -1825,41 +1852,20 @@ public class TestVectorOrcFile {
.range(offsetOfStripe2, offsetOfStripe4 - offsetOfStripe2)
.include(columns));
rows.seekToRow(lastRowOfStripe2);
- for(int i = 0; i < 2; ++i) {
- row = (OrcStruct) rows.next(row);
- BigRow expected = createRandomRow(intValues, doubleValues,
- stringValues, byteValues, words,
- (int) (lastRowOfStripe2 + i));
-
- assertEquals(expected.long1.longValue(),
- ((LongWritable) row.getFieldValue(4)).get());
- assertEquals(expected.string1, row.getFieldValue(8));
- }
+ // we only want two rows
+ batch = reader.getSchema().createRowBatch(2);
+ assertEquals(true, rows.nextBatch(batch));
+ assertEquals(1, batch.size);
+ assertEquals(intValues[(int) lastRowOfStripe2], getLong(batch, 0));
+ assertEquals(stringValues[(int) lastRowOfStripe2],
+ getText(batch, 0).toString());
+ assertEquals(true, rows.nextBatch(batch));
+ assertEquals(intValues[(int) lastRowOfStripe2 + 1], getLong(batch, 0));
+ assertEquals(stringValues[(int) lastRowOfStripe2 + 1],
+ getText(batch, 0).toString());
rows.close();
}
- private void compareInner(InnerStruct expect,
- OrcStruct actual,
- String context) throws Exception {
- if (expect == null || actual == null) {
- assertEquals(context, null, expect);
- assertEquals(context, null, actual);
- } else {
- assertEquals(context, expect.int1,
- ((IntWritable) actual.getFieldValue(0)).get());
- assertEquals(context, expect.string1, actual.getFieldValue(1));
- }
- }
-
- private void compareList(List<InnerStruct> expect,
- List<OrcStruct> actual,
- String context) throws Exception {
- assertEquals(context, expect.size(), actual.size());
- for(int j=0; j < expect.size(); ++j) {
- compareInner(expect.get(j), actual.get(j), context + " at " + j);
- }
- }
-
private void appendRandomRow(VectorizedRowBatch batch,
long[] intValues, double[] doubleValues,
String[] stringValues,
@@ -1874,17 +1880,18 @@ public class TestVectorOrcFile {
new MiddleStruct(inner, inner2), list(), map(inner, inner2));
}
- private BigRow createRandomRow(long[] intValues, double[] doubleValues,
- String[] stringValues,
- BytesWritable[] byteValues,
- String[] words, int i) {
+ private void checkRandomRow(VectorizedRowBatch batch,
+ long[] intValues, double[] doubleValues,
+ String[] stringValues,
+ BytesWritable[] byteValues,
+ String[] words, int i, int rowInBatch) {
InnerStruct inner = new InnerStruct((int) intValues[i], stringValues[i]);
InnerStruct inner2 = new InnerStruct((int) (intValues[i] >> 32),
words[i % words.length] + "-x");
- return new BigRow((intValues[i] & 1) == 0, (byte) intValues[i],
+ checkBigRow(batch, rowInBatch, i, (intValues[i] & 1) == 0, (byte) intValues[i],
(short) intValues[i], (int) intValues[i], intValues[i],
- (float) doubleValues[i], doubleValues[i], byteValues[i],stringValues[i],
- new MiddleStruct(inner, inner2), list(), map(inner,inner2));
+ (float) doubleValues[i], doubleValues[i], byteValues[i], stringValues[i],
+ new MiddleStruct(inner, inner2), list(), map(inner, inner2));
}
private static class MyMemoryManager extends MemoryManager {
@@ -2045,15 +2052,19 @@ public class TestVectorOrcFile {
.range(0L, Long.MAX_VALUE)
.include(new boolean[]{true, true, true})
.searchArgument(sarg, new String[]{null, "int1", "string1"}));
+ batch = reader.getSchema().createRowBatch(2000);
+ LongColumnVector ints = (LongColumnVector) batch.cols[0];
+ BytesColumnVector strs = (BytesColumnVector) batch.cols[1];
+
assertEquals(1000L, rows.getRowNumber());
- OrcStruct row = null;
+ assertEquals(true, rows.nextBatch(batch));
+ assertEquals(1000, batch.size);
+
for(int i=1000; i < 2000; ++i) {
- assertTrue(rows.hasNext());
- row = (OrcStruct) rows.next(row);
- assertEquals(300 * i, ((IntWritable) row.getFieldValue(0)).get());
- assertEquals(Integer.toHexString(10*i), row.getFieldValue(1).toString());
+ assertEquals(300 * i, ints.vector[i - 1000]);
+ assertEquals(Integer.toHexString(10*i), strs.toString(i - 1000));
}
- assertTrue(!rows.hasNext());
+ assertEquals(false, rows.nextBatch(batch));
assertEquals(3500, rows.getRowNumber());
// look through the file with no rows selected
@@ -2082,40 +2093,26 @@ public class TestVectorOrcFile {
.range(0L, Long.MAX_VALUE)
.include(new boolean[]{true, true, true})
.searchArgument(sarg, new String[]{null, "int1", "string1"}));
- row = null;
+ assertEquals(0, rows.getRowNumber());
+ assertEquals(true, rows.nextBatch(batch));
+ assertEquals(1000, batch.size);
+ assertEquals(3000, rows.getRowNumber());
for(int i=0; i < 1000; ++i) {
- assertTrue(rows.hasNext());
- assertEquals(i, rows.getRowNumber());
- row = (OrcStruct) rows.next(row);
- assertEquals(300 * i, ((IntWritable) row.getFieldValue(0)).get());
- assertEquals(Integer.toHexString(10*i), row.getFieldValue(1).toString());
+ assertEquals(300 * i, ints.vector[i]);
+ assertEquals(Integer.toHexString(10*i), strs.toString(i));
}
+
+ assertEquals(true, rows.nextBatch(batch));
+ assertEquals(500, batch.size);
+ assertEquals(3500, rows.getRowNumber());
for(int i=3000; i < 3500; ++i) {
- assertTrue(rows.hasNext());
- assertEquals(i, rows.getRowNumber());
- row = (OrcStruct) rows.next(row);
- assertEquals(300 * i, ((IntWritable) row.getFieldValue(0)).get());
- assertEquals(Integer.toHexString(10*i), row.getFieldValue(1).toString());
+ assertEquals(300 * i, ints.vector[i - 3000]);
+ assertEquals(Integer.toHexString(10*i), strs.toString(i - 3000));
}
- assertTrue(!rows.hasNext());
+ assertEquals(false, rows.nextBatch(batch));
assertEquals(3500, rows.getRowNumber());
}
- private static String pad(String value, int length) {
- if (value.length() == length) {
- return value;
- } else if (value.length() > length) {
- return value.substring(0, length);
- } else {
- StringBuilder buf = new StringBuilder();
- buf.append(value);
- for(int i=0; i < length - value.length(); ++i) {
- buf.append(' ');
- }
- return buf.toString();
- }
- }
-
/**
* Test all of the types that have distinct ORC writers using the vectorized
* writer with different combinations of repeating and null values.
@@ -2232,8 +2229,7 @@ public class TestVectorOrcFile {
((LongColumnVector) batch.cols[6]).vector[r] =
new DateWritable(new Date(111, 6, 1)).getDays() + r;
- Timestamp ts = new Timestamp(115, 9, 23, 10, 11, 59, 999999999);
- ts.setTime(ts.getTime() + r * 1000);
+ Timestamp ts = new Timestamp(115, 9, 25, 10, 11, 59 + r, 999999999);
((TimestampColumnVector) batch.cols[7]).set(r, ts);
((DecimalColumnVector) batch.cols[8]).vector[r] =
new HiveDecimalWritable("1.234567");
@@ -2302,118 +2298,125 @@ public class TestVectorOrcFile {
assertEquals(14813, ((StringColumnStatistics) stats[12]).getSum());
RecordReader rows = reader.rows();
- OrcStruct row = null;
+ batch = reader.getSchema().createRowBatch(1024);
+ BytesColumnVector bins = (BytesColumnVector) batch.cols[0];
+ LongColumnVector bools = (LongColumnVector) batch.cols[1];
+ LongColumnVector bytes = (LongColumnVector) batch.cols[2];
+ LongColumnVector longs = (LongColumnVector) batch.cols[3];
+ DoubleColumnVector floats = (DoubleColumnVector) batch.cols[4];
+ DoubleColumnVector doubles = (DoubleColumnVector) batch.cols[5];
+ LongColumnVector dates = (LongColumnVector) batch.cols[6];
+ TimestampColumnVector times = (TimestampColumnVector) batch.cols[7];
+ DecimalColumnVector decs = (DecimalColumnVector) batch.cols[8];
+ BytesColumnVector strs = (BytesColumnVector) batch.cols[9];
+ BytesColumnVector chars = (BytesColumnVector) batch.cols[10];
+ BytesColumnVector vcs = (BytesColumnVector) batch.cols[11];
+ StructColumnVector structs = (StructColumnVector) batch.cols[12];
+ UnionColumnVector unions = (UnionColumnVector) batch.cols[13];
+ ListColumnVector lists = (ListColumnVector) batch.cols[14];
+ MapColumnVector maps = (MapColumnVector) batch.cols[15];
+ LongColumnVector structInts = (LongColumnVector) structs.fields[0];
+ LongColumnVector unionInts = (LongColumnVector) unions.fields[1];
+ LongColumnVector listInts = (LongColumnVector) lists.child;
+ BytesColumnVector mapKeys = (BytesColumnVector) maps.keys;
+ BytesColumnVector mapValues = (BytesColumnVector) maps.values;
+
+ assertEquals(true, rows.nextBatch(batch));
+ assertEquals(1024, batch.size);
// read the 1024 nulls
- for(int r=0; r < 1024; ++r) {
- assertEquals(true, rows.hasNext());
- row = (OrcStruct) rows.next(row);
- for(int f=0; f < row.getNumFields(); ++f) {
- assertEquals("non-null on row " + r + " field " + f,
- null, row.getFieldValue(f));
- }
+ for(int f=0; f < batch.cols.length; ++f) {
+ assertEquals("field " + f,
+ true, batch.cols[f].isRepeating);
+ assertEquals("field " + f,
+ false, batch.cols[f].noNulls);
+ assertEquals("field " + f,
+ true, batch.cols[f].isNull[0]);
}
// read the 1024 repeat values
+ assertEquals(true, rows.nextBatch(batch));
+ assertEquals(1024, batch.size);
for(int r=0; r < 1024; ++r) {
- assertEquals(true, rows.hasNext());
- row = (OrcStruct) rows.next(row);
- assertEquals("row " + r, "48 6f 72 74 6f 6e",
- row.getFieldValue(0).toString());
- assertEquals("row " + r, "true", row.getFieldValue(1).toString());
- assertEquals("row " + r, "-126", row.getFieldValue(2).toString());
- assertEquals("row " + r, "1311768467463790320",
- row.getFieldValue(3).toString());
- assertEquals("row " + r, "1.125", row.getFieldValue(4).toString());
- assertEquals("row " + r, "9.765625E-4", row.getFieldValue(5).toString());
- assertEquals("row " + r, "2011-07-01", row.getFieldValue(6).toString());
+ assertEquals("row " + r, "Horton", bins.toString(r));
+ assertEquals("row " + r, 1, bools.vector[r]);
+ assertEquals("row " + r, -126, bytes.vector[r]);
+ assertEquals("row " + r, 1311768467463790320L, longs.vector[r]);
+ assertEquals("row " + r, 1.125, floats.vector[r], 0.00001);
+ assertEquals("row " + r, 9.765625E-4, doubles.vector[r], 0.000001);
+ assertEquals("row " + r, "2011-07-01",
+ new DateWritable((int) dates.vector[r]).toString());
assertEquals("row " + r, "2015-10-23 10:11:59.999999999",
- row.getFieldValue(7).toString());
- assertEquals("row " + r, "1.234567", row.getFieldValue(8).toString());
- assertEquals("row " + r, "Echelon", row.getFieldValue(9).toString());
- assertEquals("row " + r, "Juggernaut", row.getFieldValue(10).toString());
- assertEquals("row " + r, "Dreadnaugh", row.getFieldValue(11).toString());
- assertEquals("row " + r, "{123}", row.getFieldValue(12).toString());
- assertEquals("row " + r, "union(1, 1234)",
- row.getFieldValue(13).toString());
- assertEquals("row " + r, "[31415, 31415, 31415]",
- row.getFieldValue(14).toString());
- assertEquals("row " + r, "{ORC=fast, Hive=fast, LLAP=fast}",
- row.getFieldValue(15).toString());
+ times.asScratchTimestamp(r).toString());
+ assertEquals("row " + r, "1.234567", decs.vector[r].toString());
+ assertEquals("row " + r, "Echelon", strs.toString(r));
+ assertEquals("row " + r, "Juggernaut", chars.toString(r));
+ assertEquals("row " + r, "Dreadnaugh", vcs.toString(r));
+ assertEquals("row " + r, 123, structInts.vector[r]);
+ assertEquals("row " + r, 1, unions.tags[r]);
+ assertEquals("row " + r, 1234, unionInts.vector[r]);
+ assertEquals("row " + r, 3, lists.lengths[r]);
+ assertEquals("row " + r, true, listInts.isRepeating);
+ assertEquals("row " + r, 31415, listInts.vector[0]);
+ assertEquals("row " + r, 3, maps.lengths[r]);
+ assertEquals("row " + r, "ORC", mapKeys.toString((int) maps.offsets[r]));
+ assertEquals("row " + r, "Hive", mapKeys.toString((int) maps.offsets[r] + 1));
+ assertEquals("row " + r, "LLAP", mapKeys.toString((int) maps.offsets[r] + 2));
+ assertEquals("row " + r, "fast", mapValues.toString((int) maps.offsets[r]));
+ assertEquals("row " + r, "fast", mapValues.toString((int) maps.offsets[r] + 1));
+ assertEquals("row " + r, "fast", mapValues.toString((int) maps.offsets[r] + 2));
}
// read the second set of 1024 nulls
- for(int r=0; r < 1024; ++r) {
- assertEquals(true, rows.hasNext());
- row = (OrcStruct) rows.next(row);
- for(int f=0; f < row.getNumFields(); ++f) {
- assertEquals("non-null on row " + r + " field " + f,
- null, row.getFieldValue(f));
- }
+ assertEquals(true, rows.nextBatch(batch));
+ assertEquals(1024, batch.size);
+ for(int f=0; f < batch.cols.length; ++f) {
+ assertEquals("field " + f,
+ true, batch.cols[f].isRepeating);
+ assertEquals("field " + f,
+ false, batch.cols[f].noNulls);
+ assertEquals("field " + f,
+ true, batch.cols[f].isNull[0]);
}
+
+ assertEquals(true, rows.nextBatch(batch));
+ assertEquals(1024, batch.size);
for(int r=0; r < 1024; ++r) {
- assertEquals(true, rows.hasNext());
- row = (OrcStruct) rows.next(row);
- byte[] hex = Integer.toHexString(r).getBytes();
- StringBuilder expected = new StringBuilder();
- for(int i=0; i < hex.length; ++i) {
- if (i != 0) {
- expected.append(' ');
- }
- expected.append(Integer.toHexString(hex[i]));
- }
- assertEquals("row " + r, expected.toString(),
- row.getFieldValue(0).toString());
- assertEquals("row " + r, r % 2 == 1 ? "true" : "false",
- row.getFieldValue(1).toString());
- assertEquals("row " + r, Integer.toString((byte) (r % 255)),
- row.getFieldValue(2).toString());
- assertEquals("row " + r, Long.toString(31415L * r),
- row.getFieldValue(3).toString());
- assertEquals("row " + r, Float.toString(1.125F * r),
- row.getFieldValue(4).toString());
- assertEquals("row " + r, Double.toString(0.0009765625 * r),
- row.getFieldValue(5).toString());
- assertEquals("row " + r, new Date(111, 6, 1 + r).toString(),
- row.getFieldValue(6).toString());
- Timestamp ts = new Timestamp(115, 9, 23, 10, 11, 59, 999999999);
- ts.setTime(ts.getTime() + r * 1000);
+ String hex = Integer.toHexString(r);
+
+ assertEquals("row " + r, hex, bins.toString(r));
+ assertEquals("row " + r, r % 2 == 1 ? 1 : 0, bools.vector[r]);
+ assertEquals("row " + r, (byte) (r % 255), bytes.vector[r]);
+ assertEquals("row " + r, 31415L * r, longs.vector[r]);
+ assertEquals("row " + r, 1.125F * r, floats.vector[r], 0.0001);
+ assertEquals("row " + r, 0.0009765625 * r, doubles.vector[r], 0.000001);
+ assertEquals("row " + r, new DateWritable(new Date(111, 6, 1 + r)),
+ new DateWritable((int) dates.vector[r]));
assertEquals("row " + r,
- ts.toString(),
- row.getFieldValue(7).toString());
- assertEquals("row " + r, "1.234567", row.getFieldValue(8).toString());
- assertEquals("row " + r, Integer.toString(r),
- row.getFieldValue(9).toString());
- assertEquals("row " + r, pad(Integer.toHexString(r), 10),
- row.getFieldValue(10).toString());
- assertEquals("row " + r, Integer.toHexString(r * 128),
- row.getFieldValue(11).toString());
- assertEquals("row " + r, "{" + Integer.toString(r + 13) + "}",
- row.getFieldValue(12).toString());
- assertEquals("row " + r, "union(1, " + Integer.toString(r + 42) + ")",
- row.getFieldValue(13).toString());
- assertEquals("row " + r, "[31415, 31416, 31417]",
- row.getFieldValue(14).toString());
- expected = new StringBuilder();
- expected.append('{');
- expected.append(Integer.toHexString(3 * r));
- expected.append('=');
- expected.append(3 * r);
- expected.append(", ");
- expected.append(Integer.toHexString(3 * r + 1));
- expected.append('=');
- expected.append(3 * r + 1);
- expected.append(", ");
- expected.append(Integer.toHexString(3 * r + 2));
- expected.append('=');
- expected.append(3 * r + 2);
- expected.append('}');
- assertEquals("row " + r, expected.toString(),
- row.getFieldValue(15).toString());
+ new Timestamp(115, 9, 25, 10, 11, 59 + r, 999999999),
+ times.asScratchTimestamp(r));
+ assertEquals("row " + r, "1.234567", decs.vector[r].toString());
+ assertEquals("row " + r, Integer.toString(r), strs.toString(r));
+ assertEquals("row " + r, Integer.toHexString(r), chars.toString(r));
+ assertEquals("row " + r, Integer.toHexString(r * 128), vcs.toString(r));
+ assertEquals("row " + r, r + 13, structInts.vector[r]);
+ assertEquals("row " + r, 1, unions.tags[r]);
+ assertEquals("row " + r, r + 42, unionInts.vector[r]);
+ assertEquals("row " + r, 3, lists.lengths[r]);
+ assertEquals("row " + r, 31415, listInts.vector[(int) lists.offsets[r]]);
+ assertEquals("row " + r, 31416, listInts.vector[(int) lists.offsets[r] + 1]);
+ assertEquals("row " + r, 31417, listInts.vector[(int) lists.offsets[r] + 2]);
+ assertEquals("row " + r, 3, maps.lengths[3]);
+ assertEquals("row " + r, Integer.toHexString(3 * r), mapKeys.toString((int) maps.offsets[r]));
+ assertEquals("row " + r, Integer.toString(3 * r), mapValues.toString((int) maps.offsets[r]));
+ assertEquals("row " + r, Integer.toHexString(3 * r + 1), mapKeys.toString((int) maps.offsets[r] + 1));
+ assertEquals("row " + r, Integer.toString(3 * r + 1), mapValues.toString((int) maps.offsets[r] + 1));
+ assertEquals("row " + r, Integer.toHexString(3 * r + 2), mapKeys.toString((int) maps.offsets[r] + 2));
+ assertEquals("row " + r, Integer.toString(3 * r + 2), mapValues.toString((int) maps.offsets[r] + 2));
}
// should have no more rows
- assertEquals(false, rows.hasNext());
+ assertEquals(false, rows.nextBatch(batch));
}
private static String makeString(BytesColumnVector vector, int row) {
@@ -2455,7 +2458,8 @@ public class TestVectorOrcFile {
Reader reader = OrcFile.createReader(testFilePath,
OrcFile.readerOptions(conf));
RecordReader rows = reader.rows();
- batch = rows.nextBatch(null);
+ batch = reader.getSchema().createRowBatch();
+ assertEquals(true, rows.nextBatch(batch));
assertEquals(4, batch.size);
// ORC currently trims the output strings. See HIVE-12286
assertEquals("",
@@ -2504,19 +2508,20 @@ public class TestVectorOrcFile {
Reader reader = OrcFile.createReader(testFilePath,
OrcFile.readerOptions(conf));
RecordReader rows = reader.rows();
- batch = rows.nextBatch(null);
+ batch = reader.getSchema().createRowBatch();
+ assertEquals(true, rows.nextBatch(batch));
assertEquals(1024, batch.size);
for(int r=0; r < 1024; ++r) {
assertEquals(Integer.toString(r * 10001),
makeString((BytesColumnVector) batch.cols[0], r));
}
- batch = rows.nextBatch(batch);
+ assertEquals(true, rows.nextBatch(batch));
assertEquals(1024, batch.size);
for(int r=0; r < 1024; ++r) {
assertEquals("Halloween",
makeString((BytesColumnVector) batch.cols[0], r));
}
- assertEquals(false, rows.hasNext());
+ assertEquals(false, rows.nextBatch(batch));
}
@Test
@@ -2541,18 +2546,21 @@ public class TestVectorOrcFile {
Reader reader = OrcFile.createReader(testFilePath,
OrcFile.readerOptions(conf));
RecordReader rows = reader.rows();
- OrcStruct row = null;
+ batch = reader.getSchema().createRowBatch();
+ rows.nextBatch(batch);
+ assertEquals(1024, batch.size);
+ StructColumnVector inner = (StructColumnVector) batch.cols[0];
+ LongColumnVector vec = (LongColumnVector) inner.fields[0];
for(int r=0; r < 1024; ++r) {
- assertEquals(true, rows.hasNext());
- row = (OrcStruct) rows.next(row);
- OrcStruct inner = (OrcStruct) row.getFieldValue(0);
if (r < 200 || (r >= 400 && r < 600) || r >= 800) {
- assertEquals("row " + r, null, inner);
+ assertEquals("row " + r, true, inner.isNull[r]);
} else {
- assertEquals("row " + r, "{" + r + "}", inner.toString());
+ assertEquals("row " + r, false, inner.isNull[r]);
+ assertEquals("row " + r, r, vec.vector[r]);
}
}
- assertEquals(false, rows.hasNext());
+ rows.nextBatch(batch);
+ assertEquals(0, batch.size);
}
/**
@@ -2595,28 +2603,38 @@ public class TestVectorOrcFile {
Reader reader = OrcFile.createReader(testFilePath,
OrcFile.readerOptions(conf));
RecordReader rows = reader.rows();
- OrcStruct row = null;
+ batch = reader.getSchema().createRowBatch(1024);
+ UnionColumnVector union = (UnionColumnVector) batch.cols[0];
+ LongColumnVector ints = (LongColumnVector) union.fields[0];
+ LongColumnVector longs = (LongColumnVector) union.fields[1];
+ assertEquals(true, rows.nextBatch(batch));
+ assertEquals(1024, batch.size);
for(int r=0; r < 1024; ++r) {
- assertEquals(true, rows.hasNext());
- row = (OrcStruct) rows.next(row);
- OrcUnion inner = (OrcUnion) row.getFieldValue(0);
if (r < 200) {
- assertEquals("row " + r, null, inner);
+ assertEquals("row " + r, true, union.isNull[r]);
} else if (r < 300) {
- assertEquals("row " + r, "union(0, " + r +")", inner.toString());
+ assertEquals("row " + r, false, union.isNull[r]);
+ assertEquals("row " + r, 0, uni
<TRUNCATED>
[43/50] [abbrv] hive git commit: HIVE-13433. Fixes for additional
incompatible changes in tez-0.8.3. (Siddharth Seth,
reviewed by Prasanth Jayachandran)
Posted by jd...@apache.org.
HIVE-13433. Fixes for additional incompatible changes in tez-0.8.3. (Siddharth Seth, reviewed by Prasanth Jayachandran)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/5d4b9c99
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/5d4b9c99
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/5d4b9c99
Branch: refs/heads/llap
Commit: 5d4b9c99e8d1315bea44b91fe476e6612ec829b6
Parents: f5665e3
Author: Siddharth Seth <ss...@apache.org>
Authored: Mon Apr 25 23:20:37 2016 -0700
Committer: Siddharth Seth <ss...@apache.org>
Committed: Mon Apr 25 23:20:37 2016 -0700
----------------------------------------------------------------------
.../hadoop/hive/llap/tezplugins/LlapTaskCommunicator.java | 9 +++++----
.../hive/llap/tezplugins/TestLlapTaskCommunicator.java | 7 ++++++-
2 files changed, 11 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/5d4b9c99/llap-tez/src/java/org/apache/hadoop/hive/llap/tezplugins/LlapTaskCommunicator.java
----------------------------------------------------------------------
diff --git a/llap-tez/src/java/org/apache/hadoop/hive/llap/tezplugins/LlapTaskCommunicator.java b/llap-tez/src/java/org/apache/hadoop/hive/llap/tezplugins/LlapTaskCommunicator.java
index bc9a209..a4f5d4d 100644
--- a/llap-tez/src/java/org/apache/hadoop/hive/llap/tezplugins/LlapTaskCommunicator.java
+++ b/llap-tez/src/java/org/apache/hadoop/hive/llap/tezplugins/LlapTaskCommunicator.java
@@ -71,6 +71,7 @@ import org.apache.tez.dag.api.TezUncheckedException;
import org.apache.tez.dag.api.event.VertexStateUpdate;
import org.apache.tez.dag.app.TezTaskCommunicatorImpl;
import org.apache.tez.dag.records.TezTaskAttemptID;
+import org.apache.tez.runtime.api.TaskFailureType;
import org.apache.tez.runtime.api.impl.TaskSpec;
import org.apache.tez.runtime.api.impl.TezHeartbeatRequest;
import org.apache.tez.runtime.api.impl.TezHeartbeatResponse;
@@ -114,7 +115,7 @@ public class LlapTaskCommunicator extends TezTaskCommunicatorImpl {
public LlapTaskCommunicator(
TaskCommunicatorContext taskCommunicatorContext) {
super(taskCommunicatorContext);
- Credentials credentials = taskCommunicatorContext.getCredentials();
+ Credentials credentials = taskCommunicatorContext.getAMCredentials();
if (credentials != null) {
@SuppressWarnings("unchecked")
Token<LlapTokenIdentifier> llapToken =
@@ -313,7 +314,7 @@ public class LlapTaskCommunicator extends TezTaskCommunicatorImpl {
"Failed to run task: " + taskSpec.getTaskAttemptID() + " on containerId: " +
containerId, t);
getContext()
- .taskFailed(taskSpec.getTaskAttemptID(), TaskAttemptEndReason.OTHER,
+ .taskFailed(taskSpec.getTaskAttemptID(), TaskFailureType.NON_FATAL, TaskAttemptEndReason.OTHER,
t.toString());
} else {
// Exception from the RPC layer - communication failure, consider as KILLED / service down.
@@ -329,7 +330,7 @@ public class LlapTaskCommunicator extends TezTaskCommunicatorImpl {
"Failed to run task: " + taskSpec.getTaskAttemptID() + " on containerId: " +
containerId, t);
getContext()
- .taskFailed(taskSpec.getTaskAttemptID(), TaskAttemptEndReason.OTHER,
+ .taskFailed(taskSpec.getTaskAttemptID(), TaskFailureType.NON_FATAL, TaskAttemptEndReason.OTHER,
t.getMessage());
}
}
@@ -534,7 +535,7 @@ public class LlapTaskCommunicator extends TezTaskCommunicatorImpl {
currentQueryIdentifierProto = constructQueryIdentifierProto(newDagId);
sourceStateTracker.resetState(newDagId);
nodesForQuery.clear();
- LOG.info("CurrentDagId set to: " + newDagId + ", name=" + getContext().getCurrentDagName());
+ LOG.info("CurrentDagId set to: " + newDagId + ", name=" + getContext().getCurrentDagInfo().getName());
// TODO Is it possible for heartbeats to come in from lost tasks - those should be told to die, which
// is likely already happening.
}
http://git-wip-us.apache.org/repos/asf/hive/blob/5d4b9c99/llap-tez/src/test/org/apache/hadoop/hive/llap/tezplugins/TestLlapTaskCommunicator.java
----------------------------------------------------------------------
diff --git a/llap-tez/src/test/org/apache/hadoop/hive/llap/tezplugins/TestLlapTaskCommunicator.java b/llap-tez/src/test/org/apache/hadoop/hive/llap/tezplugins/TestLlapTaskCommunicator.java
index 1ee6a50..8e2d0ac 100644
--- a/llap-tez/src/test/org/apache/hadoop/hive/llap/tezplugins/TestLlapTaskCommunicator.java
+++ b/llap-tez/src/test/org/apache/hadoop/hive/llap/tezplugins/TestLlapTaskCommunicator.java
@@ -55,6 +55,7 @@ import org.apache.tez.dag.records.TezTaskID;
import org.apache.tez.dag.records.TezVertexID;
import org.apache.tez.runtime.api.impl.InputSpec;
import org.apache.tez.runtime.api.impl.TaskSpec;
+import org.apache.tez.serviceplugins.api.DagInfo;
import org.apache.tez.serviceplugins.api.TaskAttemptEndReason;
import org.apache.tez.serviceplugins.api.TaskCommunicatorContext;
import org.junit.Test;
@@ -278,9 +279,13 @@ public class TestLlapTaskCommunicator {
public LlapTaskCommunicatorWrapperForTest(LlapProtocolClientProxy llapProxy) throws Exception {
doReturn(appAttemptId).when(taskCommunicatorContext).getApplicationAttemptId();
- doReturn(new Credentials()).when(taskCommunicatorContext).getCredentials();
+ doReturn(new Credentials()).when(taskCommunicatorContext).getAMCredentials();
doReturn(userPayload).when(taskCommunicatorContext).getInitialUserPayload();
doReturn(appId.toString()).when(taskCommunicatorContext).getCurrentAppIdentifier();
+ DagInfo dagInfo = mock(DagInfo.class);
+ doReturn(dagInfo).when(taskCommunicatorContext).getCurrentDagInfo();
+ doReturn(DAG_NAME).when(dagInfo).getName();
+ doReturn(new Credentials()).when(dagInfo).getCredentials();
doReturn(new LinkedList<String>()).when(taskCommunicatorContext)
.getInputVertexNames(any(String.class));
[38/50] [abbrv] hive git commit: HIVE-13290: Support primary
keys/foreign keys constraint as part of create table command in Hive (Hari
Subramaniyan, reviewed by Ashutosh Chauhan)
Posted by jd...@apache.org.
HIVE-13290: Support primary keys/foreign keys constraint as part of create table command in Hive (Hari Subramaniyan, reviewed by Ashutosh Chauhan)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/53249a35
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/53249a35
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/53249a35
Branch: refs/heads/llap
Commit: 53249a3579dce000736a05348b64faed32fb610c
Parents: caa3ec7
Author: Hari Subramaniyan <ha...@apache.org>
Authored: Mon Apr 25 13:57:17 2016 -0700
Committer: Hari Subramaniyan <ha...@apache.org>
Committed: Mon Apr 25 13:57:17 2016 -0700
----------------------------------------------------------------------
.../hadoop/hive/metastore/ObjectStore.java | 41 +++-
.../org/apache/hadoop/hive/ql/ErrorMsg.java | 3 +-
.../org/apache/hadoop/hive/ql/exec/DDLTask.java | 11 +-
.../apache/hadoop/hive/ql/metadata/Hive.java | 24 ++-
.../hive/ql/parse/BaseSemanticAnalyzer.java | 209 +++++++++++++++++--
.../org/apache/hadoop/hive/ql/parse/HiveLexer.g | 9 +
.../apache/hadoop/hive/ql/parse/HiveParser.g | 92 +++++++-
.../hadoop/hive/ql/parse/IdentifiersParser.g | 11 +-
.../hive/ql/parse/ImportSemanticAnalyzer.java | 2 +-
.../hadoop/hive/ql/parse/SemanticAnalyzer.java | 10 +-
.../hadoop/hive/ql/plan/CreateTableDesc.java | 43 +++-
.../hive/ql/parse/TestHiveDecimalParse.java | 2 +-
.../create_with_constraints_duplicate_name.q | 2 +
.../create_with_constraints_enable.q | 1 +
.../create_with_constraints_validate.q | 1 +
.../clientpositive/create_with_constraints.q | 12 ++
...create_with_constraints_duplicate_name.q.out | 13 ++
.../create_with_constraints_enable.q.out | 1 +
.../create_with_constraints_validate.q.out | 1 +
.../create_with_constraints.q.out | 68 ++++++
20 files changed, 520 insertions(+), 36 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/53249a35/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java
----------------------------------------------------------------------
diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java b/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java
index ae6f084..24fbf70 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java
@@ -1022,6 +1022,11 @@ public class ObjectStore implements RawStore, Configurable {
" table " + tableName + " record to delete");
}
+ List<MConstraint> tabConstraints = listAllTableConstraints(dbName, tableName);
+ if (tabConstraints != null && tabConstraints.size() > 0) {
+ pm.deletePersistentAll(tabConstraints);
+ }
+
preDropStorageDescriptor(tbl.getSd());
// then remove the table
pm.deletePersistentAll(tbl);
@@ -1035,7 +1040,41 @@ public class ObjectStore implements RawStore, Configurable {
return success;
}
- @Override
+ private List<MConstraint> listAllTableConstraints(String dbName, String tableName) {
+ List<MConstraint> mConstraints = null;
+ List<String> constraintNames = new ArrayList<String>();
+ Query query = null;
+
+ try {
+ query = pm.newQuery("select constraintName from org.apache.hadoop.hive.metastore.model.MConstraint where "
+ + "(parentTable.tableName == ptblname && parentTable.database.name == pdbname) || "
+ + "(childTable != null && childTable.tableName == ctblname && childTable.database.name == cdbname)");
+ query.declareParameters("java.lang.String ptblname, java.lang.String pdbname,"
+ + "java.lang.String ctblname, java.lang.String cdbname");
+ Collection<?> constraintNamesColl = (Collection<?>) query.
+ executeWithArray(tableName, dbName, tableName, dbName);
+ for (Iterator<?> i = constraintNamesColl.iterator(); i.hasNext();) {
+ String currName = (String) i.next();
+ constraintNames.add(currName);
+ }
+ query = pm.newQuery(MConstraint.class);
+ query.setFilter("param.contains(constraintName)");
+ query.declareParameters("java.util.Collection param");
+ Collection<?> constraints = (Collection<?>)query.execute(constraintNames);
+ mConstraints = new ArrayList<MConstraint>();
+ for (Iterator<?> i = constraints.iterator(); i.hasNext();) {
+ MConstraint currConstraint = (MConstraint) i.next();
+ mConstraints.add(currConstraint);
+ }
+ } finally {
+ if (query != null) {
+ query.closeAll();
+ }
+ }
+ return mConstraints;
+ }
+
+@Override
public Table getTable(String dbName, String tableName) throws MetaException {
boolean commited = false;
Table tbl = null;
http://git-wip-us.apache.org/repos/asf/hive/blob/53249a35/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java b/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java
index f091f67..1de3309 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java
@@ -447,6 +447,8 @@ public enum ErrorMsg {
INVALID_LOAD_TABLE_FILE_WORK(10322, "Invalid Load Table Work or Load File Work"),
CLASSPATH_ERROR(10323, "Classpath error"),
IMPORT_SEMANTIC_ERROR(10324, "Import Semantic Analyzer Error"),
+ INVALID_FK_SYNTAX(10325, "Invalid Foreign Key syntax"),
+ INVALID_PK_SYNTAX(10326, "Invalid Primary Key syntax"),
//========================== 20000 range starts here ========================//
SCRIPT_INIT_ERROR(20000, "Unable to initialize custom script."),
SCRIPT_IO_ERROR(20001, "An error occurred while reading or writing to your custom script. "
@@ -463,7 +465,6 @@ public enum ErrorMsg {
OP_NOT_ALLOWED_IN_AUTOCOMMIT(20006, "Operation {0} is not allowed when autoCommit=true.", true),//todo: better SQLState?
OP_NOT_ALLOWED_IN_TXN(20007, "Operation {0} is not allowed in a transaction. TransactionID={1}.", true),
OP_NOT_ALLOWED_WITHOUT_TXN(20008, "Operation {0} is not allowed since autoCommit=false and there is no active transaction", true),
-
//========================== 30000 range starts here ========================//
STATSPUBLISHER_NOT_OBTAINED(30000, "StatsPublisher cannot be obtained. " +
"There was a error to retrieve the StatsPublisher, and retrying " +
http://git-wip-us.apache.org/repos/asf/hive/blob/53249a35/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
index d2c3ca8..cbeb361 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
@@ -78,6 +78,8 @@ import org.apache.hadoop.hive.metastore.api.NoSuchObjectException;
import org.apache.hadoop.hive.metastore.api.Order;
import org.apache.hadoop.hive.metastore.api.PrincipalType;
import org.apache.hadoop.hive.metastore.api.RolePrincipalGrant;
+import org.apache.hadoop.hive.metastore.api.SQLForeignKey;
+import org.apache.hadoop.hive.metastore.api.SQLPrimaryKey;
import org.apache.hadoop.hive.metastore.api.SerDeInfo;
import org.apache.hadoop.hive.metastore.api.ShowCompactResponse;
import org.apache.hadoop.hive.metastore.api.ShowCompactResponseElement;
@@ -3926,6 +3928,8 @@ public class DDLTask extends Task<DDLWork> implements Serializable {
private int createTable(Hive db, CreateTableDesc crtTbl) throws HiveException {
// create the table
Table tbl = crtTbl.toTable(conf);
+ List<SQLPrimaryKey> primaryKeys = crtTbl.getPrimaryKeys();
+ List<SQLForeignKey> foreignKeys = crtTbl.getForeignKeys();
LOG.info("creating table " + tbl.getDbName() + "." + tbl.getTableName() + " on " +
tbl.getDataLocation());
@@ -3938,7 +3942,12 @@ public class DDLTask extends Task<DDLWork> implements Serializable {
throw new HiveException("Unable to alter table. " + e.getMessage(), e);
}
} else {
- db.createTable(tbl, crtTbl.getIfNotExists());
+ if ((foreignKeys != null && foreignKeys.size() > 0 ) ||
+ (primaryKeys != null && primaryKeys.size() > 0)) {
+ db.createTable(tbl, crtTbl.getIfNotExists(), primaryKeys, foreignKeys);
+ } else {
+ db.createTable(tbl, crtTbl.getIfNotExists());
+ }
if ( crtTbl.isCTAS()) {
Table createdTable = db.getTable(tbl.getDbName(), tbl.getTableName());
DataContainer dc = new DataContainer(createdTable.getTTable());
http://git-wip-us.apache.org/repos/asf/hive/blob/53249a35/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 4c9acce..ab165f1 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
@@ -104,6 +104,8 @@ import org.apache.hadoop.hive.metastore.api.PrincipalType;
import org.apache.hadoop.hive.metastore.api.PrivilegeBag;
import org.apache.hadoop.hive.metastore.api.Role;
import org.apache.hadoop.hive.metastore.api.RolePrincipalGrant;
+import org.apache.hadoop.hive.metastore.api.SQLForeignKey;
+import org.apache.hadoop.hive.metastore.api.SQLPrimaryKey;
import org.apache.hadoop.hive.metastore.api.SerDeInfo;
import org.apache.hadoop.hive.metastore.api.SetPartitionsStatsRequest;
import org.apache.hadoop.hive.metastore.api.ShowCompactResponse;
@@ -780,15 +782,21 @@ public class Hive {
}
/**
- * Creates the table with the give objects
+ * Creates the table with the given objects. It takes additional arguments for
+ * primary keys and foreign keys associated with the table.
*
* @param tbl
* a table object
* @param ifNotExists
* if true, ignore AlreadyExistsException
+ * @param primaryKeys
+ * primary key columns associated with the table
+ * @param foreignKeys
+ * foreign key columns associated with the table
* @throws HiveException
*/
- public void createTable(Table tbl, boolean ifNotExists) throws HiveException {
+ public void createTable(Table tbl, boolean ifNotExists,
+ List<SQLPrimaryKey> primaryKeys, List<SQLForeignKey> foreignKeys) throws HiveException {
try {
if (tbl.getDbName() == null || "".equals(tbl.getDbName().trim())) {
tbl.setDbName(SessionState.get().getCurrentDatabase());
@@ -813,7 +821,12 @@ public class Hive {
tTbl.setPrivileges(principalPrivs);
}
}
- getMSC().createTable(tTbl);
+ if (primaryKeys == null && foreignKeys == null) {
+ getMSC().createTable(tTbl);
+ } else {
+ getMSC().createTableWithConstraints(tTbl, primaryKeys, foreignKeys);
+ }
+
} catch (AlreadyExistsException e) {
if (!ifNotExists) {
throw new HiveException(e);
@@ -823,6 +836,10 @@ public class Hive {
}
}
+ public void createTable(Table tbl, boolean ifNotExists) throws HiveException {
+ createTable(tbl, ifNotExists, null, null);
+ }
+
public static List<FieldSchema> getFieldsFromDeserializerForMsStorage(
Table tbl, Deserializer deserializer) throws SerDeException, MetaException {
List<FieldSchema> schema = MetaStoreUtils.getFieldsFromDeserializer(
@@ -3583,4 +3600,5 @@ private void constructOneLBLocationMap(FileStatus fSta,
throw new HiveException(e);
}
}
+
};
http://git-wip-us.apache.org/repos/asf/hive/blob/53249a35/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java
index cbb1b0a..7fcbd6a 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java
@@ -44,6 +44,8 @@ import org.apache.hadoop.hive.metastore.HiveMetaStore;
import org.apache.hadoop.hive.metastore.api.Database;
import org.apache.hadoop.hive.metastore.api.FieldSchema;
import org.apache.hadoop.hive.metastore.api.Order;
+import org.apache.hadoop.hive.metastore.api.SQLForeignKey;
+import org.apache.hadoop.hive.metastore.api.SQLPrimaryKey;
import org.apache.hadoop.hive.ql.CompilationOpContext;
import org.apache.hadoop.hive.ql.Context;
import org.apache.hadoop.hive.ql.ErrorMsg;
@@ -617,29 +619,204 @@ public abstract class BaseSemanticAnalyzer {
* Get the list of FieldSchema out of the ASTNode.
*/
public static List<FieldSchema> getColumns(ASTNode ast, boolean lowerCase) throws SemanticException {
+ return getColumns(ast, lowerCase, new ArrayList<SQLPrimaryKey>(), new ArrayList<SQLForeignKey>());
+ }
+
+ static class PKInfo {
+ public String colName;
+ public String constraintName;
+ public boolean rely;
+
+ public PKInfo(String colName, String constraintName, boolean rely) {
+ this.colName = colName;
+ this.constraintName = constraintName;
+ this.rely = rely;
+ }
+ }
+
+ /**
+ * Get the primary keys from the AST and populate the pkInfos with the required
+ * information.
+ * @param child The node with primary key token
+ * @param pkInfos Primary Key information structure
+ * @throws SemanticException
+ */
+ private static void processPrimaryKeyInfos(
+ ASTNode child, List<PKInfo> pkInfos) throws SemanticException {
+ if (child.getChildCount() < 6) {
+ throw new SemanticException(ErrorMsg.INVALID_PK_SYNTAX.getMsg());
+ }
+ // The ANTLR grammar looks like :
+ // 1. KW_CONSTRAINT idfr=identifier KW_PRIMARY KW_KEY pkCols=columnParenthesesList
+ // enableSpec=enableSpecification validateSpec=validateSpecification relySpec=relySpecification
+ // -> ^(TOK_PRIMARY_KEY $pkCols $idfr $relySpec $enableSpec $validateSpec)
+ // when the user specifies the constraint name (i.e. child.getChildCount() == 7)
+ // 2. KW_PRIMARY KW_KEY columnParenthesesList
+ // enableSpec=enableSpecification validateSpec=validateSpecification relySpec=relySpecification
+ // -> ^(TOK_PRIMARY_KEY columnParenthesesList $relySpec $enableSpec $validateSpec)
+ // when the user does not specify the constraint name (i.e. child.getChildCount() == 6)
+ boolean userSpecifiedConstraintName = child.getChildCount() == 7;
+ int relyIndex = child.getChildCount() == 7 ? 4 : 3;
+ for (int j = 0; j < child.getChild(1).getChildCount(); j++) {
+ Tree grandChild = child.getChild(1).getChild(j);
+ boolean rely = child.getChild(relyIndex).getType() == HiveParser.TOK_VALIDATE;
+ boolean enable = child.getChild(relyIndex+1).getType() == HiveParser.TOK_ENABLE;
+ boolean validate = child.getChild(relyIndex+2).getType() == HiveParser.TOK_VALIDATE;
+ if (enable) {
+ throw new SemanticException(
+ ErrorMsg.INVALID_PK_SYNTAX.getMsg(" ENABLE feature not supported yet"));
+ }
+ if (validate) {
+ throw new SemanticException(
+ ErrorMsg.INVALID_PK_SYNTAX.getMsg(" VALIDATE feature not supported yet"));
+ }
+ pkInfos.add(
+ new PKInfo(
+ unescapeIdentifier(grandChild.getText().toLowerCase()),
+ (userSpecifiedConstraintName ?
+ unescapeIdentifier(child.getChild(3).getText().toLowerCase()) : null),
+ rely));
+ }
+ }
+
+ /**
+ * Process the primary keys from the pkInfos structure and populate the SQLPrimaryKey list
+ * @param parent Parent of the primary key token node
+ * @param pkInfos primary key information
+ * @param primaryKeys SQLPrimaryKey list
+ * @param nametoFS Mapping from column name to field schema for the current table
+ * @throws SemanticException
+ */
+ private static void processPrimaryKeys(ASTNode parent, List<PKInfo> pkInfos,
+ List<SQLPrimaryKey> primaryKeys, Map<String, FieldSchema> nametoFS) throws SemanticException {
+ int cnt = 1;
+ String[] qualifiedTabName = getQualifiedTableName((ASTNode) parent.getChild(0));
+
+ for (int i = 0; i < pkInfos.size(); i++) {
+ String pk = pkInfos.get(i).colName;
+ if (nametoFS.containsKey(pk)) {
+ SQLPrimaryKey currPrimaryKey = new SQLPrimaryKey(
+ qualifiedTabName[0], qualifiedTabName[1], pk, cnt++, pkInfos.get(i).constraintName,
+ false, false, pkInfos.get(i).rely);
+ primaryKeys.add(currPrimaryKey);
+ } else {
+ throw new SemanticException(ErrorMsg.INVALID_COLUMN.getMsg(pk));
+ }
+ }
+ }
+
+ /**
+ * Process the foreign keys from the AST and populate the foreign keys in the SQLForeignKey list
+ * @param parent Parent of the foreign key token node
+ * @param child Foreign Key token node
+ * @param foreignKeys SQLForeignKey list
+ * @throws SemanticException
+ */
+ private static void processForeignKeys(
+ ASTNode parent, ASTNode child, List<SQLForeignKey> foreignKeys) throws SemanticException {
+ String[] qualifiedTabName = getQualifiedTableName((ASTNode) parent.getChild(0));
+ // The ANTLR grammar looks like :
+ // 1. KW_CONSTRAINT idfr=identifier KW_FOREIGN KW_KEY fkCols=columnParenthesesList
+ // KW_REFERENCES tabName=tableName parCols=columnParenthesesList
+ // enableSpec=enableSpecification validateSpec=validateSpecification relySpec=relySpecification
+ // -> ^(TOK_FOREIGN_KEY $idfr $fkCols $tabName $parCols $relySpec $enableSpec $validateSpec)
+ // when the user specifies the constraint name (i.e. child.getChildCount() == 11)
+ // 2. KW_FOREIGN KW_KEY fkCols=columnParenthesesList
+ // KW_REFERENCES tabName=tableName parCols=columnParenthesesList
+ // enableSpec=enableSpecification validateSpec=validateSpecification relySpec=relySpecification
+ // -> ^(TOK_FOREIGN_KEY $fkCols $tabName $parCols $relySpec $enableSpec $validateSpec)
+ // when the user does not specify the constraint name (i.e. child.getChildCount() == 10)
+ boolean userSpecifiedConstraintName = child.getChildCount() == 11;
+ int fkIndex = userSpecifiedConstraintName ? 2 : 1;
+ int pkIndex = userSpecifiedConstraintName ? 6 : 5;
+ int ptIndex = userSpecifiedConstraintName ? 4 : 3;
+ int relyIndex = child.getChildCount() == 11 ? 8 : 7;
+
+ if (child.getChildCount() <= fkIndex ||child.getChildCount() <= pkIndex ||
+ child.getChildCount() <= ptIndex) {
+ throw new SemanticException(ErrorMsg.INVALID_FK_SYNTAX.getMsg());
+ }
+
+ String[] parentDBTbl = getQualifiedTableName((ASTNode) child.getChild(ptIndex));
+
+ if (child.getChild(fkIndex).getChildCount() != child.getChild(pkIndex).getChildCount()) {
+ throw new SemanticException(ErrorMsg.INVALID_FK_SYNTAX.getMsg(
+ " The number of foreign key columns should be same as number of parent key columns "));
+ }
+ for (int j = 0; j < child.getChild(fkIndex).getChildCount(); j++) {
+ SQLForeignKey sqlForeignKey = new SQLForeignKey();
+ Tree fkgrandChild = child.getChild(fkIndex).getChild(j);
+ boolean rely = child.getChild(relyIndex).getType() == HiveParser.TOK_VALIDATE;
+ boolean enable = child.getChild(relyIndex+1).getType() == HiveParser.TOK_ENABLE;
+ boolean validate = child.getChild(relyIndex+2).getType() == HiveParser.TOK_VALIDATE;
+ if (enable) {
+ throw new SemanticException(
+ ErrorMsg.INVALID_FK_SYNTAX.getMsg(" ENABLE feature not supported yet"));
+ }
+ if (validate) {
+ throw new SemanticException(
+ ErrorMsg.INVALID_FK_SYNTAX.getMsg(" VALIDATE feature not supported yet"));
+ }
+ sqlForeignKey.setRely_cstr(rely);
+ sqlForeignKey.setPktable_db(parentDBTbl[0]);
+ sqlForeignKey.setPktable_name(parentDBTbl[1]);
+ sqlForeignKey.setFktable_db(qualifiedTabName[0]);
+ sqlForeignKey.setFktable_name(qualifiedTabName[1]);
+ sqlForeignKey.setFkcolumn_name(unescapeIdentifier(fkgrandChild.getText().toLowerCase()));
+ Tree pkgrandChild = child.getChild(pkIndex).getChild(j);
+ sqlForeignKey.setPkcolumn_name(unescapeIdentifier(pkgrandChild.getText().toLowerCase()));
+ sqlForeignKey.setKey_seq(j+1);
+ if (userSpecifiedConstraintName) {
+ sqlForeignKey.setFk_name(unescapeIdentifier(child.getChild(0).getText().toLowerCase()));
+ }
+ foreignKeys.add(sqlForeignKey);
+ }
+ }
+
+ /**
+ * Get the list of FieldSchema out of the ASTNode.
+ * Additionally, populate the primaryKeys and foreignKeys if any.
+ */
+ public static List<FieldSchema> getColumns(ASTNode ast, boolean lowerCase,
+ List<SQLPrimaryKey> primaryKeys, List<SQLForeignKey> foreignKeys) throws SemanticException {
List<FieldSchema> colList = new ArrayList<FieldSchema>();
int numCh = ast.getChildCount();
+ List<PKInfo> pkInfos = new ArrayList<PKInfo>();
+ Map<String, FieldSchema> nametoFS = new HashMap<String, FieldSchema>();
+ Tree parent = ast.getParent();
+
for (int i = 0; i < numCh; i++) {
FieldSchema col = new FieldSchema();
ASTNode child = (ASTNode) ast.getChild(i);
- Tree grandChild = child.getChild(0);
- if(grandChild != null) {
- String name = grandChild.getText();
- if(lowerCase) {
- name = name.toLowerCase();
- }
- // child 0 is the name of the column
- col.setName(unescapeIdentifier(name));
- // child 1 is the type of the column
- ASTNode typeChild = (ASTNode) (child.getChild(1));
- col.setType(getTypeStringFromAST(typeChild));
-
- // child 2 is the optional comment of the column
- if (child.getChildCount() == 3) {
- col.setComment(unescapeSQLString(child.getChild(2).getText()));
+ if (child.getToken().getType() == HiveParser.TOK_PRIMARY_KEY) {
+ processPrimaryKeyInfos(child, pkInfos);
+ } else if (child.getToken().getType() == HiveParser.TOK_FOREIGN_KEY) {
+ processForeignKeys((ASTNode)parent, child, foreignKeys);
+ }
+ else {
+ Tree grandChild = child.getChild(0);
+ if(grandChild != null) {
+ String name = grandChild.getText();
+ if(lowerCase) {
+ name = name.toLowerCase();
+ }
+ // child 0 is the name of the column
+ col.setName(unescapeIdentifier(name));
+ // child 1 is the type of the column
+ ASTNode typeChild = (ASTNode) (child.getChild(1));
+ col.setType(getTypeStringFromAST(typeChild));
+
+ // child 2 is the optional comment of the column
+ if (child.getChildCount() == 3) {
+ col.setComment(unescapeSQLString(child.getChild(2).getText()));
+ }
}
+ nametoFS.put(col.getName(), col);
+ colList.add(col);
}
- colList.add(col);
+ }
+ if (!pkInfos.isEmpty()) {
+ processPrimaryKeys((ASTNode) parent, pkInfos, primaryKeys, nametoFS);
}
return colList;
}
http://git-wip-us.apache.org/repos/asf/hive/blob/53249a35/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveLexer.g
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveLexer.g b/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveLexer.g
index dd997f0..f6d380a 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveLexer.g
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveLexer.g
@@ -318,6 +318,15 @@ KW_LEVEL: 'LEVEL';
KW_SNAPSHOT: 'SNAPSHOT';
KW_AUTOCOMMIT: 'AUTOCOMMIT';
KW_CACHE: 'CACHE';
+KW_PRIMARY: 'PRIMARY';
+KW_FOREIGN: 'FOREIGN';
+KW_REFERENCES: 'REFERENCES';
+KW_CONSTRAINT: 'CONSTRAINT';
+KW_VALIDATE: 'VALIDATE';
+KW_NOVALIDATE: 'NOVALIDATE';
+KW_RELY: 'RELY';
+KW_NORELY: 'NORELY';
+KW_KEY: 'KEY';
// Operators
// NOTE: if you add a new function/operator, add it to sysFuncNames so that describe function _FUNC_ will work.
http://git-wip-us.apache.org/repos/asf/hive/blob/53249a35/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g b/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g
index 50c53db..6531b03 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g
@@ -102,6 +102,12 @@ TOK_METADATA;
TOK_NULL;
TOK_ISNULL;
TOK_ISNOTNULL;
+TOK_PRIMARY_KEY;
+TOK_FOREIGN_KEY;
+TOK_VALIDATE;
+TOK_NOVALIDATE;
+TOK_RELY;
+TOK_NORELY;
TOK_TINYINT;
TOK_SMALLINT;
TOK_INT;
@@ -515,7 +521,17 @@ import org.apache.hadoop.hive.conf.HiveConf;
xlateMap.put("KW_UPDATE", "UPDATE");
xlateMap.put("KW_VALUES", "VALUES");
xlateMap.put("KW_PURGE", "PURGE");
-
+ xlateMap.put("KW_PRIMARY", "PRIMARY");
+ xlateMap.put("KW_FOREIGN", "FOREIGN");
+ xlateMap.put("KW_KEY", "KEY");
+ xlateMap.put("KW_REFERENCES", "REFERENCES");
+ xlateMap.put("KW_CONSTRAINT", "CONSTRAINT");
+ xlateMap.put("KW_ENABLE", "ENABLE");
+ xlateMap.put("KW_DISABLE", "DISABLE");
+ xlateMap.put("KW_VALIDATE", "VALIDATE");
+ xlateMap.put("KW_NOVALIDATE", "NOVALIDATE");
+ xlateMap.put("KW_RELY", "RELY");
+ xlateMap.put("KW_NORELY", "NORELY");
// Operators
xlateMap.put("DOT", ".");
@@ -890,7 +906,7 @@ createTableStatement
tableFileFormat?
tableLocation?
tablePropertiesPrefixed?
- | (LPAREN columnNameTypeList RPAREN)?
+ | (LPAREN columnNameTypeOrPKOrFKList RPAREN)?
tableComment?
tablePartition?
tableBuckets?
@@ -903,7 +919,7 @@ createTableStatement
)
-> ^(TOK_CREATETABLE $name $temp? $ext? ifNotExists?
^(TOK_LIKETABLE $likeName?)
- columnNameTypeList?
+ columnNameTypeOrPKOrFKList?
tableComment?
tablePartition?
tableBuckets?
@@ -1943,6 +1959,11 @@ columnNameTypeList
@after { popMsg(state); }
: columnNameType (COMMA columnNameType)* -> ^(TOK_TABCOLLIST columnNameType+)
;
+columnNameTypeOrPKOrFKList
+@init { pushMsg("column name type list with PK and FK", state); }
+@after { popMsg(state); }
+ : columnNameTypeOrPKOrFK (COMMA columnNameTypeOrPKOrFK)* -> ^(TOK_TABCOLLIST columnNameTypeOrPKOrFK+)
+ ;
columnNameColonTypeList
@init { pushMsg("column name type list", state); }
@@ -1976,6 +1997,61 @@ columnNameOrderList
: columnNameOrder (COMMA columnNameOrder)* -> ^(TOK_TABCOLNAME columnNameOrder+)
;
+columnParenthesesList
+@init { pushMsg("column parentheses list", state); }
+@after { popMsg(state); }
+ : LPAREN columnNameList RPAREN
+ ;
+
+enableSpecification
+@init { pushMsg("enable specification", state); }
+@after { popMsg(state); }
+ : KW_ENABLE -> ^(TOK_ENABLE)
+ | KW_DISABLE -> ^(TOK_DISABLE)
+ ;
+
+validateSpecification
+@init { pushMsg("validate specification", state); }
+@after { popMsg(state); }
+ : KW_VALIDATE -> ^(TOK_VALIDATE)
+ | KW_NOVALIDATE -> ^(TOK_NOVALIDATE)
+ ;
+
+relySpecification
+@init { pushMsg("rely specification", state); }
+@after { popMsg(state); }
+ : KW_RELY -> ^(TOK_RELY)
+ | (KW_NORELY)? -> ^(TOK_NORELY)
+ ;
+
+primaryKeyWithoutName
+@init { pushMsg("primary key without key name", state); }
+@after { popMsg(state); }
+ : KW_PRIMARY KW_KEY columnParenthesesList enableSpec=enableSpecification validateSpec=validateSpecification relySpec=relySpecification
+ -> ^(TOK_PRIMARY_KEY columnParenthesesList $relySpec $enableSpec $validateSpec)
+ ;
+
+primaryKeyWithName
+@init { pushMsg("primary key with key name", state); }
+@after { popMsg(state); }
+ : KW_CONSTRAINT idfr=identifier KW_PRIMARY KW_KEY pkCols=columnParenthesesList enableSpec=enableSpecification validateSpec=validateSpecification relySpec=relySpecification
+ -> ^(TOK_PRIMARY_KEY $pkCols $idfr $relySpec $enableSpec $validateSpec)
+ ;
+
+foreignKeyWithName
+@init { pushMsg("foreign key with key name", state); }
+@after { popMsg(state); }
+ : KW_CONSTRAINT idfr=identifier KW_FOREIGN KW_KEY fkCols=columnParenthesesList KW_REFERENCES tabName=tableName parCols=columnParenthesesList enableSpec=enableSpecification validateSpec=validateSpecification relySpec=relySpecification
+ -> ^(TOK_FOREIGN_KEY $idfr $fkCols $tabName $parCols $relySpec $enableSpec $validateSpec)
+ ;
+
+foreignKeyWithoutName
+@init { pushMsg("foreign key without key name", state); }
+@after { popMsg(state); }
+ : KW_FOREIGN KW_KEY fkCols=columnParenthesesList KW_REFERENCES tabName=tableName parCols=columnParenthesesList enableSpec=enableSpecification validateSpec=validateSpecification relySpec=relySpecification
+ -> ^(TOK_FOREIGN_KEY $fkCols $tabName $parCols $relySpec $enableSpec $validateSpec)
+ ;
+
skewedValueElement
@init { pushMsg("skewed value element", state); }
@after { popMsg(state); }
@@ -2087,6 +2163,16 @@ columnNameType
-> ^(TOK_TABCOL $colName colType $comment)
;
+columnNameTypeOrPKOrFK
+@init { pushMsg("column name or primary key or foreign key", state); }
+@after { popMsg(state); }
+ : ( foreignKeyWithName )
+ | ( primaryKeyWithName )
+ | ( primaryKeyWithoutName )
+ | ( foreignKeyWithoutName )
+ | ( columnNameType )
+ ;
+
columnNameColonType
@init { pushMsg("column specification", state); }
@after { popMsg(state); }
http://git-wip-us.apache.org/repos/asf/hive/blob/53249a35/ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g b/ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g
index a192fa7..3f74551 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g
@@ -670,6 +670,11 @@ nonReserved
| KW_LEVEL
| KW_SNAPSHOT
| KW_AUTOCOMMIT
+ | KW_RELY
+ | KW_NORELY
+ | KW_VALIDATE
+ | KW_NOVALIDATE
+ | KW_KEY
;
//The following SQL2011 reserved keywords are used as cast function name only, but not as identifiers.
@@ -692,5 +697,9 @@ sql11ReservedKeywordsUsedAsIdentifier
| KW_ROLLUP | KW_ROW | KW_ROWS | KW_SET | KW_SMALLINT | KW_TABLE | KW_TIMESTAMP | KW_TO | KW_TRIGGER | KW_TRUE
| KW_TRUNCATE | KW_UNION | KW_UPDATE | KW_USER | KW_USING | KW_VALUES | KW_WITH
//The following two keywords come from MySQL. Although they are not keywords in SQL2011, they are reserved keywords in MySQL.
- | KW_REGEXP | KW_RLIKE
+ | KW_REGEXP | KW_RLIKE
+ | KW_PRIMARY
+ | KW_FOREIGN
+ | KW_CONSTRAINT
+ | KW_REFERENCES
;
http://git-wip-us.apache.org/repos/asf/hive/blob/53249a35/ql/src/java/org/apache/hadoop/hive/ql/parse/ImportSemanticAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/ImportSemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/ImportSemanticAnalyzer.java
index a9bc271..fbf1a3c 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/ImportSemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/ImportSemanticAnalyzer.java
@@ -313,7 +313,7 @@ public class ImportSemanticAnalyzer extends BaseSemanticAnalyzer {
(null == table.getSd().getSkewedInfo()) ? null : table.getSd().getSkewedInfo()
.getSkewedColNames(),
(null == table.getSd().getSkewedInfo()) ? null : table.getSd().getSkewedInfo()
- .getSkewedColValues());
+ .getSkewedColValues(), null, null);
tblDesc.setStoredAsSubDirectories(table.getSd().isStoredAsSubDirectories());
return tblDesc;
}
http://git-wip-us.apache.org/repos/asf/hive/blob/53249a35/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 11fd2c7..197e8f1 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
@@ -68,6 +68,8 @@ import org.apache.hadoop.hive.metastore.api.Database;
import org.apache.hadoop.hive.metastore.api.FieldSchema;
import org.apache.hadoop.hive.metastore.api.MetaException;
import org.apache.hadoop.hive.metastore.api.Order;
+import org.apache.hadoop.hive.metastore.api.SQLForeignKey;
+import org.apache.hadoop.hive.metastore.api.SQLPrimaryKey;
import org.apache.hadoop.hive.ql.CompilationOpContext;
import org.apache.hadoop.hive.ql.Context;
import org.apache.hadoop.hive.ql.ErrorMsg;
@@ -11312,6 +11314,8 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
List<FieldSchema> cols = new ArrayList<FieldSchema>();
List<FieldSchema> partCols = new ArrayList<FieldSchema>();
List<String> bucketCols = new ArrayList<String>();
+ List<SQLPrimaryKey> primaryKeys = new ArrayList<SQLPrimaryKey>();
+ List<SQLForeignKey> foreignKeys = new ArrayList<SQLForeignKey>();
List<Order> sortCols = new ArrayList<Order>();
int numBuckets = -1;
String comment = null;
@@ -11404,7 +11408,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
selectStmt = child;
break;
case HiveParser.TOK_TABCOLLIST:
- cols = getColumns(child);
+ cols = getColumns(child, true, primaryKeys, foreignKeys);
break;
case HiveParser.TOK_TABLECOMMENT:
comment = unescapeSQLString(child.getChild(0).getText());
@@ -11514,7 +11518,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
comment,
storageFormat.getInputFormat(), storageFormat.getOutputFormat(), location, storageFormat.getSerde(),
storageFormat.getStorageHandler(), storageFormat.getSerdeProps(), tblProps, ifNotExists, skewedColNames,
- skewedValues);
+ skewedValues, primaryKeys, foreignKeys);
crtTblDesc.setStoredAsSubDirectories(storedAsDirs);
crtTblDesc.setNullFormat(rowFormatParams.nullFormat);
@@ -11608,7 +11612,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
rowFormatParams.lineDelim, comment, storageFormat.getInputFormat(),
storageFormat.getOutputFormat(), location, storageFormat.getSerde(),
storageFormat.getStorageHandler(), storageFormat.getSerdeProps(), tblProps, ifNotExists,
- skewedColNames, skewedValues, true);
+ skewedColNames, skewedValues, true, primaryKeys, foreignKeys);
tableDesc.setMaterialization(isMaterialization);
tableDesc.setStoredAsSubDirectories(storedAsDirs);
tableDesc.setNullFormat(rowFormatParams.nullFormat);
http://git-wip-us.apache.org/repos/asf/hive/blob/53249a35/ql/src/java/org/apache/hadoop/hive/ql/plan/CreateTableDesc.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/plan/CreateTableDesc.java b/ql/src/java/org/apache/hadoop/hive/ql/plan/CreateTableDesc.java
index 03b4d8b..2dc4e11 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/plan/CreateTableDesc.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/plan/CreateTableDesc.java
@@ -28,6 +28,8 @@ import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.metastore.TableType;
import org.apache.hadoop.hive.metastore.api.FieldSchema;
+import org.apache.hadoop.hive.metastore.api.SQLPrimaryKey;
+import org.apache.hadoop.hive.metastore.api.SQLForeignKey;
import org.apache.hadoop.hive.metastore.api.Order;
import org.apache.hadoop.hive.ql.ErrorMsg;
import org.apache.hadoop.hive.ql.exec.DDLTask;
@@ -88,6 +90,8 @@ public class CreateTableDesc extends DDLDesc implements Serializable {
private boolean isMaterialization = false;
private boolean replaceMode = false;
private boolean isCTAS = false;
+ List<SQLPrimaryKey> primaryKeys;
+ List<SQLForeignKey> foreignKeys;
public CreateTableDesc() {
}
@@ -101,13 +105,14 @@ public class CreateTableDesc extends DDLDesc implements Serializable {
String storageHandler,
Map<String, String> serdeProps,
Map<String, String> tblProps,
- boolean ifNotExists, List<String> skewedColNames, List<List<String>> skewedColValues) {
+ boolean ifNotExists, List<String> skewedColNames, List<List<String>> skewedColValues,
+ List<SQLPrimaryKey> primaryKeys, List<SQLForeignKey> foreignKeys) {
this(tableName, isExternal, isTemporary, cols, partCols,
bucketCols, sortCols, numBuckets, fieldDelim, fieldEscape,
collItemDelim, mapKeyDelim, lineDelim, comment, inputFormat,
outputFormat, location, serName, storageHandler, serdeProps,
- tblProps, ifNotExists, skewedColNames, skewedColValues);
+ tblProps, ifNotExists, skewedColNames, skewedColValues, primaryKeys, foreignKeys);
this.databaseName = databaseName;
}
@@ -122,12 +127,12 @@ public class CreateTableDesc extends DDLDesc implements Serializable {
Map<String, String> serdeProps,
Map<String, String> tblProps,
boolean ifNotExists, List<String> skewedColNames, List<List<String>> skewedColValues,
- boolean isCTAS) {
+ boolean isCTAS, List<SQLPrimaryKey> primaryKeys, List<SQLForeignKey> foreignKeys) {
this(databaseName, tableName, isExternal, isTemporary, cols, partCols,
bucketCols, sortCols, numBuckets, fieldDelim, fieldEscape,
collItemDelim, mapKeyDelim, lineDelim, comment, inputFormat,
outputFormat, location, serName, storageHandler, serdeProps,
- tblProps, ifNotExists, skewedColNames, skewedColValues);
+ tblProps, ifNotExists, skewedColNames, skewedColValues, primaryKeys, foreignKeys);
this.isCTAS = isCTAS;
}
@@ -142,7 +147,8 @@ public class CreateTableDesc extends DDLDesc implements Serializable {
String storageHandler,
Map<String, String> serdeProps,
Map<String, String> tblProps,
- boolean ifNotExists, List<String> skewedColNames, List<List<String>> skewedColValues) {
+ boolean ifNotExists, List<String> skewedColNames, List<List<String>> skewedColValues,
+ List<SQLPrimaryKey> primaryKeys, List<SQLForeignKey> foreignKeys) {
this.tableName = tableName;
this.isExternal = isExternal;
this.isTemporary = isTemporary;
@@ -167,6 +173,16 @@ public class CreateTableDesc extends DDLDesc implements Serializable {
this.ifNotExists = ifNotExists;
this.skewedColNames = copyList(skewedColNames);
this.skewedColValues = copyList(skewedColValues);
+ if (primaryKeys == null) {
+ this.primaryKeys = new ArrayList<SQLPrimaryKey>();
+ } else {
+ this.primaryKeys = new ArrayList<SQLPrimaryKey>(primaryKeys);
+ }
+ if (foreignKeys == null) {
+ this.foreignKeys = new ArrayList<SQLForeignKey>();
+ } else {
+ this.foreignKeys = new ArrayList<SQLForeignKey>(foreignKeys);
+ }
}
private static <T> List<T> copyList(List<T> copy) {
@@ -221,6 +237,22 @@ public class CreateTableDesc extends DDLDesc implements Serializable {
this.partCols = partCols;
}
+ public List<SQLPrimaryKey> getPrimaryKeys() {
+ return primaryKeys;
+ }
+
+ public void setPrimaryKeys(ArrayList<SQLPrimaryKey> primaryKeys) {
+ this.primaryKeys = primaryKeys;
+ }
+
+ public List<SQLForeignKey> getForeignKeys() {
+ return foreignKeys;
+ }
+
+ public void setForeignKeys(ArrayList<SQLForeignKey> foreignKeys) {
+ this.foreignKeys = foreignKeys;
+ }
+
@Explain(displayName = "bucket columns")
public List<String> getBucketCols() {
return bucketCols;
@@ -634,6 +666,7 @@ public class CreateTableDesc extends DDLDesc implements Serializable {
if (getPartCols() != null) {
tbl.setPartCols(getPartCols());
}
+
if (getNumBuckets() != -1) {
tbl.setNumBuckets(getNumBuckets());
}
http://git-wip-us.apache.org/repos/asf/hive/blob/53249a35/ql/src/test/org/apache/hadoop/hive/ql/parse/TestHiveDecimalParse.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestHiveDecimalParse.java b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestHiveDecimalParse.java
index 7d5a414..013b3e8 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestHiveDecimalParse.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestHiveDecimalParse.java
@@ -105,7 +105,7 @@ public class TestHiveDecimalParse {
int rc = driver.compile(query);
Assert.assertTrue("Got " + rc + ", expected not zero", rc != 0);
Assert.assertTrue(driver.getErrorMsg(),
- driver.getErrorMsg().contains("missing ) at ',' near ',' in column specification"));
+ driver.getErrorMsg().contains("missing ) at ',' near ',' in column name or primary key or foreign key"));
}
@Test
http://git-wip-us.apache.org/repos/asf/hive/blob/53249a35/ql/src/test/queries/clientnegative/create_with_constraints_duplicate_name.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/create_with_constraints_duplicate_name.q b/ql/src/test/queries/clientnegative/create_with_constraints_duplicate_name.q
new file mode 100644
index 0000000..b6b30c5
--- /dev/null
+++ b/ql/src/test/queries/clientnegative/create_with_constraints_duplicate_name.q
@@ -0,0 +1,2 @@
+create table t1(x int, constraint pk1 primary key (x) disable novalidate);
+create table t2(x int, constraint pk1 primary key (x) disable novalidate);
http://git-wip-us.apache.org/repos/asf/hive/blob/53249a35/ql/src/test/queries/clientnegative/create_with_constraints_enable.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/create_with_constraints_enable.q b/ql/src/test/queries/clientnegative/create_with_constraints_enable.q
new file mode 100644
index 0000000..4ce3cbc
--- /dev/null
+++ b/ql/src/test/queries/clientnegative/create_with_constraints_enable.q
@@ -0,0 +1 @@
+CREATE TABLE table1 (a STRING, b STRING, primary key (a) enable novalidate);
http://git-wip-us.apache.org/repos/asf/hive/blob/53249a35/ql/src/test/queries/clientnegative/create_with_constraints_validate.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/create_with_constraints_validate.q b/ql/src/test/queries/clientnegative/create_with_constraints_validate.q
new file mode 100644
index 0000000..6601235
--- /dev/null
+++ b/ql/src/test/queries/clientnegative/create_with_constraints_validate.q
@@ -0,0 +1 @@
+CREATE TABLE table1 (a STRING, b STRING, primary key (a) disable validate);
http://git-wip-us.apache.org/repos/asf/hive/blob/53249a35/ql/src/test/queries/clientpositive/create_with_constraints.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/create_with_constraints.q b/ql/src/test/queries/clientpositive/create_with_constraints.q
new file mode 100644
index 0000000..eef0c64
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/create_with_constraints.q
@@ -0,0 +1,12 @@
+CREATE TABLE table1 (a STRING, b STRING, primary key (a) disable novalidate);
+CREATE TABLE table2 (a STRING, b STRING, constraint pk1 primary key (a) disable novalidate);
+CREATE TABLE table3 (x string, PRIMARY KEY (x) disable novalidate, CONSTRAINT fk1 FOREIGN KEY (x) REFERENCES table2(b) DISABLE NOVALIDATE);
+CREATE TABLE table4 (x string, y string, PRIMARY KEY (x) disable novalidate, CONSTRAINT fk2 FOREIGN KEY (x) REFERENCES table2(b) DISABLE NOVALIDATE,
+CONSTRAINT fk3 FOREIGN KEY (y) REFERENCES table2(a) DISABLE NOVALIDATE);
+CREATE TABLE table5 (x string, PRIMARY KEY (x) disable novalidate, FOREIGN KEY (x) REFERENCES table2(b) DISABLE NOVALIDATE);
+CREATE TABLE table6 (x string, y string, PRIMARY KEY (x) disable novalidate, FOREIGN KEY (x) REFERENCES table2(b) DISABLE NOVALIDATE,
+CONSTRAINT fk4 FOREIGN KEY (y) REFERENCES table1(a) DISABLE NOVALIDATE);
+CREATE TABLE table7 (a STRING, b STRING, primary key (a) disable novalidate rely);
+CREATE TABLE table8 (a STRING, b STRING, constraint pk8 primary key (a) disable novalidate norely);
+
+
http://git-wip-us.apache.org/repos/asf/hive/blob/53249a35/ql/src/test/results/clientnegative/create_with_constraints_duplicate_name.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientnegative/create_with_constraints_duplicate_name.q.out b/ql/src/test/results/clientnegative/create_with_constraints_duplicate_name.q.out
new file mode 100644
index 0000000..20f5d30
--- /dev/null
+++ b/ql/src/test/results/clientnegative/create_with_constraints_duplicate_name.q.out
@@ -0,0 +1,13 @@
+PREHOOK: query: create table t1(x int, constraint pk1 primary key (x) disable novalidate)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@t1
+POSTHOOK: query: create table t1(x int, constraint pk1 primary key (x) disable novalidate)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@t1
+PREHOOK: query: create table t2(x int, constraint pk1 primary key (x) disable novalidate)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@t2
+FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:For direct MetaStore DB connections, we don't support retries at the client level.)
http://git-wip-us.apache.org/repos/asf/hive/blob/53249a35/ql/src/test/results/clientnegative/create_with_constraints_enable.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientnegative/create_with_constraints_enable.q.out b/ql/src/test/results/clientnegative/create_with_constraints_enable.q.out
new file mode 100644
index 0000000..f5dcf85
--- /dev/null
+++ b/ql/src/test/results/clientnegative/create_with_constraints_enable.q.out
@@ -0,0 +1 @@
+FAILED: SemanticException [Error 10326]: Invalid Primary Key syntax ENABLE feature not supported yet
http://git-wip-us.apache.org/repos/asf/hive/blob/53249a35/ql/src/test/results/clientnegative/create_with_constraints_validate.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientnegative/create_with_constraints_validate.q.out b/ql/src/test/results/clientnegative/create_with_constraints_validate.q.out
new file mode 100644
index 0000000..307e8ec
--- /dev/null
+++ b/ql/src/test/results/clientnegative/create_with_constraints_validate.q.out
@@ -0,0 +1 @@
+FAILED: SemanticException [Error 10326]: Invalid Primary Key syntax VALIDATE feature not supported yet
http://git-wip-us.apache.org/repos/asf/hive/blob/53249a35/ql/src/test/results/clientpositive/create_with_constraints.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/create_with_constraints.q.out b/ql/src/test/results/clientpositive/create_with_constraints.q.out
new file mode 100644
index 0000000..5cf8d83
--- /dev/null
+++ b/ql/src/test/results/clientpositive/create_with_constraints.q.out
@@ -0,0 +1,68 @@
+PREHOOK: query: CREATE TABLE table1 (a STRING, b STRING, primary key (a) disable novalidate)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table1
+POSTHOOK: query: CREATE TABLE table1 (a STRING, b STRING, primary key (a) disable novalidate)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table1
+PREHOOK: query: CREATE TABLE table2 (a STRING, b STRING, constraint pk1 primary key (a) disable novalidate)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table2
+POSTHOOK: query: CREATE TABLE table2 (a STRING, b STRING, constraint pk1 primary key (a) disable novalidate)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table2
+PREHOOK: query: CREATE TABLE table3 (x string, PRIMARY KEY (x) disable novalidate, CONSTRAINT fk1 FOREIGN KEY (x) REFERENCES table2(b) DISABLE NOVALIDATE)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table3
+POSTHOOK: query: CREATE TABLE table3 (x string, PRIMARY KEY (x) disable novalidate, CONSTRAINT fk1 FOREIGN KEY (x) REFERENCES table2(b) DISABLE NOVALIDATE)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table3
+PREHOOK: query: CREATE TABLE table4 (x string, y string, PRIMARY KEY (x) disable novalidate, CONSTRAINT fk2 FOREIGN KEY (x) REFERENCES table2(b) DISABLE NOVALIDATE,
+CONSTRAINT fk3 FOREIGN KEY (y) REFERENCES table2(a) DISABLE NOVALIDATE)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table4
+POSTHOOK: query: CREATE TABLE table4 (x string, y string, PRIMARY KEY (x) disable novalidate, CONSTRAINT fk2 FOREIGN KEY (x) REFERENCES table2(b) DISABLE NOVALIDATE,
+CONSTRAINT fk3 FOREIGN KEY (y) REFERENCES table2(a) DISABLE NOVALIDATE)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table4
+PREHOOK: query: CREATE TABLE table5 (x string, PRIMARY KEY (x) disable novalidate, FOREIGN KEY (x) REFERENCES table2(b) DISABLE NOVALIDATE)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table5
+POSTHOOK: query: CREATE TABLE table5 (x string, PRIMARY KEY (x) disable novalidate, FOREIGN KEY (x) REFERENCES table2(b) DISABLE NOVALIDATE)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table5
+PREHOOK: query: CREATE TABLE table6 (x string, y string, PRIMARY KEY (x) disable novalidate, FOREIGN KEY (x) REFERENCES table2(b) DISABLE NOVALIDATE,
+CONSTRAINT fk4 FOREIGN KEY (y) REFERENCES table1(a) DISABLE NOVALIDATE)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table6
+POSTHOOK: query: CREATE TABLE table6 (x string, y string, PRIMARY KEY (x) disable novalidate, FOREIGN KEY (x) REFERENCES table2(b) DISABLE NOVALIDATE,
+CONSTRAINT fk4 FOREIGN KEY (y) REFERENCES table1(a) DISABLE NOVALIDATE)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table6
+PREHOOK: query: CREATE TABLE table7 (a STRING, b STRING, primary key (a) disable novalidate rely)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table7
+POSTHOOK: query: CREATE TABLE table7 (a STRING, b STRING, primary key (a) disable novalidate rely)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table7
+PREHOOK: query: CREATE TABLE table8 (a STRING, b STRING, constraint pk8 primary key (a) disable novalidate norely)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@table8
+POSTHOOK: query: CREATE TABLE table8 (a STRING, b STRING, constraint pk8 primary key (a) disable novalidate norely)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@table8
[08/50] [abbrv] hive git commit: HIVE-13570: Some queries with Union
all fail when CBO is off (Yongzhi Chen, reviewed by Chaoyu Tang)
Posted by jd...@apache.org.
HIVE-13570: Some queries with Union all fail when CBO is off (Yongzhi Chen, reviewed by Chaoyu Tang)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/413645d1
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/413645d1
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/413645d1
Branch: refs/heads/llap
Commit: 413645d1b7e5597aa882cc4a23e664693707ae21
Parents: a42bc67
Author: Yongzhi Chen <yc...@apache.org>
Authored: Wed Apr 20 20:52:18 2016 -0400
Committer: Yongzhi Chen <yc...@apache.org>
Committed: Sun Apr 24 19:54:47 2016 -0400
----------------------------------------------------------------------
.../hive/ql/optimizer/ColumnPrunerProcCtx.java | 2 +-
.../test/queries/clientpositive/union_offcbo.q | 483 +++++
.../results/clientpositive/union_offcbo.q.out | 1779 ++++++++++++++++++
3 files changed, 2263 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/413645d1/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcCtx.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcCtx.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcCtx.java
index 7befd3b..611a6b7 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcCtx.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcCtx.java
@@ -277,7 +277,7 @@ public class ColumnPrunerProcCtx implements NodeProcessorCtx {
for (Operator<? extends OperatorDesc> child : curOp.getChildOperators()) {
if (child instanceof UnionOperator) {
- prunList = genColLists(curOp, child);
+ prunList = genColLists(child);
if (prunList == null || prunList.size() == 0 || parentPrunList.size() == prunList.size()) {
continue;
}
http://git-wip-us.apache.org/repos/asf/hive/blob/413645d1/ql/src/test/queries/clientpositive/union_offcbo.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/union_offcbo.q b/ql/src/test/queries/clientpositive/union_offcbo.q
new file mode 100644
index 0000000..66d4bee
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/union_offcbo.q
@@ -0,0 +1,483 @@
+set hive.cbo.enable=false;
+set hive.ppd.remove.duplicatefilters=true;
+set hive.optimize.ppd=true;
+
+DROP TABLE IF EXISTS ttest1;
+DROP TABLE IF EXISTS ttest2;
+CREATE TABLE ttest1 (
+ `id1` bigint COMMENT 'from deserializer',
+ `ts1` string COMMENT 'from deserializer',
+ `dt1` string COMMENT 'from deserializer',
+ `dt2` string COMMENT 'from deserializer',
+ `ac1` string COMMENT 'from deserializer',
+ `kd1` string COMMENT 'from deserializer',
+ `sts` string COMMENT 'from deserializer',
+ `at1` bigint COMMENT 'from deserializer');
+
+CREATE TABLE ttest2 (
+ `id1` bigint,
+ `ts1` string,
+ `dt1` string,
+ `dt2` string,
+ `ac1` string,
+ `kd1` string,
+ `sts` string,
+ `at1` bigint,
+ `khash` string,
+ `rhash` string);
+
+explain SELECT
+ A2.id1, A2.sts,A2.at1,
+ CASE WHEN FLAG = 'A_INS' THEN date_add('2015-11-20', 1) ELSE '2015-11-20' END dt1
+ ,A2.dt2
+ ,A2.khash
+ ,A2.rhash
+ ,A2.FLAG
+ FROM (
+ SELECT
+ A2.id1, A2.sts,A2.at1
+ ,A2.dt1
+ ,A2.dt2
+ ,A2.khash
+ ,A2.rhash
+ ,CASE
+ WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.dt1 >= '2016-02-05'
+ THEN 'DEL'
+
+ WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.dt1 <= '2016-02-05'
+ THEN 'RET'
+
+ WHEN
+ (
+ A2.khash = A1.khash
+ AND A2.rhash <> A1.rhash
+ )
+ THEN 'A_INS'
+
+ ELSE 'NA'
+ END FLAG
+ FROM (
+ SELECT *
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(id1)) khash
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) rhash
+ FROM ttest1
+ WHERE ts1 = '2015-11-20'
+ ) A1
+ FULL OUTER JOIN (
+ SELECT *
+ FROM ttest2
+ WHERE '2015-11-20' BETWEEN dt1 AND dt2
+ ) A2
+ ON A1.khash = A2.khash
+ WHERE NOT (
+ NVL(A1.khash, - 1) = NVL(A2.khash, - 1)
+ AND NVL(A1.rhash, - 1) = NVL(A2.rhash, - 1)
+ )
+ AND A2.khash IS NOT NULL
+
+ UNION ALL
+
+ SELECT A1.id1, A1.sts,A1.at1
+ ,A1.dt1
+ , '2099-12-31' dt2
+ ,A1.khash
+ ,A1.rhash
+ ,CASE WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.ts1 <= A1.ts1
+ THEN 'DEL'
+
+ WHEN ( A2.khash IS NULL AND A1.khash IS NOT NULL )
+ OR ( A2.khash = A1.khash AND A2.rhash <> A1.rhash ) THEN 'INS' ELSE 'NA' END FLAG
+ FROM (
+ SELECT *
+ ,reflect('org.apache.commons.codec.digest.DigestUtils', 'sha256Hex',concat(id1)) khash
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) rhash
+ FROM ttest1
+ WHERE ts1 = '2015-11-20'
+ ) A1
+ FULL OUTER JOIN (
+ SELECT *
+ FROM ttest2
+ WHERE '2015-11-20' BETWEEN dt1
+ AND dt2
+ ) A2 ON A1.khash = A2.khash
+ WHERE NOT (
+ NVL(A1.khash, - 1) = NVL(A2.khash, - 1)
+ AND NVL(A1.rhash, - 1) = NVL(A2.rhash, - 1)
+ )
+ AND A1.khash IS NOT NULL
+ ) A2
+ where a2.flag <> 'RET';
+
+set hive.cbo.enable=true;
+set hive.ppd.remove.duplicatefilters=true;
+set hive.optimize.ppd=true;
+
+explain SELECT
+ A2.id1, A2.sts,A2.at1,
+ CASE WHEN FLAG = 'A_INS' THEN date_add('2015-11-20', 1) ELSE '2015-11-20' END dt1
+ ,A2.dt2
+ ,A2.khash
+ ,A2.rhash
+ ,A2.FLAG
+ FROM (
+ SELECT
+ A2.id1, A2.sts,A2.at1
+ ,A2.dt1
+ ,A2.dt2
+ ,A2.khash
+ ,A2.rhash
+ ,CASE
+ WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.dt1 >= '2016-02-05'
+ THEN 'DEL'
+
+ WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.dt1 <= '2016-02-05'
+ THEN 'RET'
+
+ WHEN
+ (
+ A2.khash = A1.khash
+ AND A2.rhash <> A1.rhash
+ )
+ THEN 'A_INS'
+
+ ELSE 'NA'
+ END FLAG
+ FROM (
+ SELECT *
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(id1)) khash
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) rhash
+ FROM ttest1
+ WHERE ts1 = '2015-11-20'
+ ) A1
+ FULL OUTER JOIN (
+ SELECT *
+ FROM ttest2
+ WHERE '2015-11-20' BETWEEN dt1 AND dt2
+ ) A2
+ ON A1.khash = A2.khash
+ WHERE NOT (
+ NVL(A1.khash, - 1) = NVL(A2.khash, - 1)
+ AND NVL(A1.rhash, - 1) = NVL(A2.rhash, - 1)
+ )
+ AND A2.khash IS NOT NULL
+
+ UNION ALL
+
+ SELECT A1.id1, A1.sts,A1.at1
+ ,A1.dt1
+ , '2099-12-31' dt2
+ ,A1.khash
+ ,A1.rhash
+ ,CASE WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.ts1 <= A1.ts1
+ THEN 'DEL'
+
+ WHEN ( A2.khash IS NULL AND A1.khash IS NOT NULL )
+ OR ( A2.khash = A1.khash AND A2.rhash <> A1.rhash ) THEN 'INS' ELSE 'NA' END FLAG
+ FROM (
+ SELECT *
+ ,reflect('org.apache.commons.codec.digest.DigestUtils', 'sha256Hex',concat(id1)) khash
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) rhash
+ FROM ttest1
+ WHERE ts1 = '2015-11-20'
+ ) A1
+ FULL OUTER JOIN (
+ SELECT *
+ FROM ttest2
+ WHERE '2015-11-20' BETWEEN dt1
+ AND dt2
+ ) A2 ON A1.khash = A2.khash
+ WHERE NOT (
+ NVL(A1.khash, - 1) = NVL(A2.khash, - 1)
+ AND NVL(A1.rhash, - 1) = NVL(A2.rhash, - 1)
+ )
+ AND A1.khash IS NOT NULL
+ ) A2
+ where a2.flag <> 'RET';
+
+set hive.cbo.enable=false;
+set hive.ppd.remove.duplicatefilters=false;
+set hive.optimize.ppd=true;
+
+explain SELECT
+ A2.id1, A2.sts,A2.at1,
+ CASE WHEN FLAG = 'A_INS' THEN date_add('2015-11-20', 1) ELSE '2015-11-20' END dt1
+ ,A2.dt2
+ ,A2.khash
+ ,A2.rhash
+ ,A2.FLAG
+ FROM (
+ SELECT
+ A2.id1, A2.sts,A2.at1
+ ,A2.dt1
+ ,A2.dt2
+ ,A2.khash
+ ,A2.rhash
+ ,CASE
+ WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.dt1 >= '2016-02-05'
+ THEN 'DEL'
+
+ WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.dt1 <= '2016-02-05'
+ THEN 'RET'
+
+ WHEN
+ (
+ A2.khash = A1.khash
+ AND A2.rhash <> A1.rhash
+ )
+ THEN 'A_INS'
+
+ ELSE 'NA'
+ END FLAG
+ FROM (
+ SELECT *
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(id1)) khash
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) rhash
+ FROM ttest1
+ WHERE ts1 = '2015-11-20'
+ ) A1
+ FULL OUTER JOIN (
+ SELECT *
+ FROM ttest2
+ WHERE '2015-11-20' BETWEEN dt1 AND dt2
+ ) A2
+ ON A1.khash = A2.khash
+ WHERE NOT (
+ NVL(A1.khash, - 1) = NVL(A2.khash, - 1)
+ AND NVL(A1.rhash, - 1) = NVL(A2.rhash, - 1)
+ )
+ AND A2.khash IS NOT NULL
+
+ UNION ALL
+
+ SELECT A1.id1, A1.sts,A1.at1
+ ,A1.dt1
+ , '2099-12-31' dt2
+ ,A1.khash
+ ,A1.rhash
+ ,CASE WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.ts1 <= A1.ts1
+ THEN 'DEL'
+
+ WHEN ( A2.khash IS NULL AND A1.khash IS NOT NULL )
+ OR ( A2.khash = A1.khash AND A2.rhash <> A1.rhash ) THEN 'INS' ELSE 'NA' END FLAG
+ FROM (
+ SELECT *
+ ,reflect('org.apache.commons.codec.digest.DigestUtils', 'sha256Hex',concat(id1)) khash
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) rhash
+ FROM ttest1
+ WHERE ts1 = '2015-11-20'
+ ) A1
+ FULL OUTER JOIN (
+ SELECT *
+ FROM ttest2
+ WHERE '2015-11-20' BETWEEN dt1
+ AND dt2
+ ) A2 ON A1.khash = A2.khash
+ WHERE NOT (
+ NVL(A1.khash, - 1) = NVL(A2.khash, - 1)
+ AND NVL(A1.rhash, - 1) = NVL(A2.rhash, - 1)
+ )
+ AND A1.khash IS NOT NULL
+ ) A2
+ where a2.flag <> 'RET';
+
+set hive.cbo.enable=false;
+set hive.optimize.ppd=false;
+explain SELECT
+ A2.id1, A2.sts,A2.at1,
+ CASE WHEN FLAG = 'A_INS' THEN date_add('2015-11-20', 1) ELSE '2015-11-20' END dt1
+ ,A2.dt2
+ ,A2.khash
+ ,A2.rhash
+ ,A2.FLAG
+ FROM (
+ SELECT
+ A2.id1, A2.sts,A2.at1
+ ,A2.dt1
+ ,A2.dt2
+ ,A2.khash
+ ,A2.rhash
+ ,CASE
+ WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.dt1 >= '2016-02-05'
+ THEN 'DEL'
+
+ WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.dt1 <= '2016-02-05'
+ THEN 'RET'
+
+ WHEN
+ (
+ A2.khash = A1.khash
+ AND A2.rhash <> A1.rhash
+ )
+ THEN 'A_INS'
+
+ ELSE 'NA'
+ END FLAG
+ FROM (
+ SELECT *
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(id1)) khash
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) rhash
+ FROM ttest1
+ WHERE ts1 = '2015-11-20'
+ ) A1
+ FULL OUTER JOIN (
+ SELECT *
+ FROM ttest2
+ WHERE '2015-11-20' BETWEEN dt1 AND dt2
+ ) A2
+ ON A1.khash = A2.khash
+ WHERE NOT (
+ NVL(A1.khash, - 1) = NVL(A2.khash, - 1)
+ AND NVL(A1.rhash, - 1) = NVL(A2.rhash, - 1)
+ )
+ AND A2.khash IS NOT NULL
+
+ UNION ALL
+
+ SELECT A1.id1, A1.sts,A1.at1
+ ,A1.dt1
+ , '2099-12-31' dt2
+ ,A1.khash
+ ,A1.rhash
+ ,CASE WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.ts1 <= A1.ts1
+ THEN 'DEL'
+
+ WHEN ( A2.khash IS NULL AND A1.khash IS NOT NULL )
+ OR ( A2.khash = A1.khash AND A2.rhash <> A1.rhash ) THEN 'INS' ELSE 'NA' END FLAG
+ FROM (
+ SELECT *
+ ,reflect('org.apache.commons.codec.digest.DigestUtils', 'sha256Hex',concat(id1)) khash
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) rhash
+ FROM ttest1
+ WHERE ts1 = '2015-11-20'
+ ) A1
+ FULL OUTER JOIN (
+ SELECT *
+ FROM ttest2
+ WHERE '2015-11-20' BETWEEN dt1
+ AND dt2
+ ) A2 ON A1.khash = A2.khash
+ WHERE NOT (
+ NVL(A1.khash, - 1) = NVL(A2.khash, - 1)
+ AND NVL(A1.rhash, - 1) = NVL(A2.rhash, - 1)
+ )
+ AND A1.khash IS NOT NULL
+ ) A2
+ where a2.flag <> 'RET';
+
+set hive.cbo.enable=true;
+set hive.optimize.ppd=false;
+explain SELECT
+ A2.id1, A2.sts,A2.at1,
+ CASE WHEN FLAG = 'A_INS' THEN date_add('2015-11-20', 1) ELSE '2015-11-20' END dt1
+ ,A2.dt2
+ ,A2.khash
+ ,A2.rhash
+ ,A2.FLAG
+ FROM (
+ SELECT
+ A2.id1, A2.sts,A2.at1
+ ,A2.dt1
+ ,A2.dt2
+ ,A2.khash
+ ,A2.rhash
+ ,CASE
+ WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.dt1 >= '2016-02-05'
+ THEN 'DEL'
+
+ WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.dt1 <= '2016-02-05'
+ THEN 'RET'
+
+ WHEN
+ (
+ A2.khash = A1.khash
+ AND A2.rhash <> A1.rhash
+ )
+ THEN 'A_INS'
+
+ ELSE 'NA'
+ END FLAG
+ FROM (
+ SELECT *
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(id1)) khash
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) rhash
+ FROM ttest1
+ WHERE ts1 = '2015-11-20'
+ ) A1
+ FULL OUTER JOIN (
+ SELECT *
+ FROM ttest2
+ WHERE '2015-11-20' BETWEEN dt1 AND dt2
+ ) A2
+ ON A1.khash = A2.khash
+ WHERE NOT (
+ NVL(A1.khash, - 1) = NVL(A2.khash, - 1)
+ AND NVL(A1.rhash, - 1) = NVL(A2.rhash, - 1)
+ )
+ AND A2.khash IS NOT NULL
+
+ UNION ALL
+
+ SELECT A1.id1, A1.sts,A1.at1
+ ,A1.dt1
+ , '2099-12-31' dt2
+ ,A1.khash
+ ,A1.rhash
+ ,CASE WHEN A2.khash IS NOT NULL
+ AND A1.khash IS NULL
+ AND A2.ts1 <= A1.ts1
+ THEN 'DEL'
+
+ WHEN ( A2.khash IS NULL AND A1.khash IS NOT NULL )
+ OR ( A2.khash = A1.khash AND A2.rhash <> A1.rhash ) THEN 'INS' ELSE 'NA' END FLAG
+ FROM (
+ SELECT *
+ ,reflect('org.apache.commons.codec.digest.DigestUtils', 'sha256Hex',concat(id1)) khash
+ ,reflect('org.apache.commons.codec.digest.DigestUtils','sha256Hex',concat(at1)) rhash
+ FROM ttest1
+ WHERE ts1 = '2015-11-20'
+ ) A1
+ FULL OUTER JOIN (
+ SELECT *
+ FROM ttest2
+ WHERE '2015-11-20' BETWEEN dt1
+ AND dt2
+ ) A2 ON A1.khash = A2.khash
+ WHERE NOT (
+ NVL(A1.khash, - 1) = NVL(A2.khash, - 1)
+ AND NVL(A1.rhash, - 1) = NVL(A2.rhash, - 1)
+ )
+ AND A1.khash IS NOT NULL
+ ) A2
+ where a2.flag <> 'RET';
+
+DROP TABLE ttest1;
+DROP TABLE ttest2;
+
[14/50] [abbrv] hive git commit: HIVE-13533: Remove AST dump (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/stats12.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/stats12.q.out b/ql/src/test/results/clientpositive/stats12.q.out
index 6a44d15..9f37359 100644
--- a/ql/src/test/results/clientpositive/stats12.q.out
+++ b/ql/src/test/results/clientpositive/stats12.q.out
@@ -39,20 +39,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
analyze table analyze_srcpart PARTITION(ds='2008-04-08',hr) compute statistics
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_ANALYZE
- TOK_TAB
- TOK_TABNAME
- analyze_srcpart
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2008-04-08'
- TOK_PARTVAL
- hr
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
Stage-1 depends on stages: Stage-0
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/stats13.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/stats13.q.out b/ql/src/test/results/clientpositive/stats13.q.out
index f98753e..6fcd353 100644
--- a/ql/src/test/results/clientpositive/stats13.q.out
+++ b/ql/src/test/results/clientpositive/stats13.q.out
@@ -39,21 +39,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
analyze table analyze_srcpart PARTITION(ds='2008-04-08',hr=11) compute statistics
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_ANALYZE
- TOK_TAB
- TOK_TABNAME
- analyze_srcpart
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2008-04-08'
- TOK_PARTVAL
- hr
- 11
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
Stage-1 depends on stages: Stage-0
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/stats3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/stats3.q.out b/ql/src/test/results/clientpositive/stats3.q.out
index 0d8cbbd..4dbda94 100644
--- a/ql/src/test/results/clientpositive/stats3.q.out
+++ b/ql/src/test/results/clientpositive/stats3.q.out
@@ -20,17 +20,6 @@ PREHOOK: type: LOAD
POSTHOOK: query: explain extended
load data local inpath '../../data/files/test.dat' overwrite into table hive_test_src
POSTHOOK: type: LOAD
-ABSTRACT SYNTAX TREE:
-
-TOK_LOAD
- '../../data/files/test.dat'
- TOK_TAB
- TOK_TABNAME
- hive_test_src
- local
- overwrite
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
Stage-1 depends on stages: Stage-0
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/temp_table_display_colstats_tbllvl.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/temp_table_display_colstats_tbllvl.q.out b/ql/src/test/results/clientpositive/temp_table_display_colstats_tbllvl.q.out
index 532e65a..e229dba 100644
--- a/ql/src/test/results/clientpositive/temp_table_display_colstats_tbllvl.q.out
+++ b/ql/src/test/results/clientpositive/temp_table_display_colstats_tbllvl.q.out
@@ -113,19 +113,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
analyze table UserVisits_web_text_none compute statistics for columns sourceIP, avgTimeOnSite, adRevenue
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_ANALYZE
- TOK_TAB
- TOK_TABNAME
- UserVisits_web_text_none
- columns
- TOK_TABCOLNAME
- sourceIP
- avgTimeOnSite
- adRevenue
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
Stage-1 depends on stages: Stage-0
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_1.q.out b/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_1.q.out
index bd6db7f..892539d 100644
--- a/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_1.q.out
+++ b/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_1.q.out
@@ -109,38 +109,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- Since size is being used to find the big table, the order of the tables in the join does not matter
explain extended select count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -418,38 +386,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -727,38 +663,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_11.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_11.q.out b/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_11.q.out
index 04b48a2..954fd96 100644
--- a/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_11.q.out
+++ b/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_11.q.out
@@ -105,38 +105,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_small a JOIN bucket
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -419,38 +387,6 @@ POSTHOOK: query: -- Since size is being used to find the big table, the order of
-- bucketized mapjoin is not done
explain extended select count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -727,43 +663,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- The join is converted to a bucketed mapjoin with a mapjoin hint
explain extended select /*+ mapjoin(a) */ count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1032,58 +931,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- HIVE-7023
explain extended select /* + MAPJOIN(a,b) */ count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key JOIN bucket_big c ON a.key = c.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- c
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- c
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_12.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_12.q.out b/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_12.q.out
index 8664435..578880d 100644
--- a/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_12.q.out
+++ b/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_12.q.out
@@ -143,66 +143,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_small a JOIN bucket
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_small a JOIN bucket_medium b ON a.key = b.key JOIN bucket_big c ON c.key = b.key JOIN bucket_medium d ON c.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_medium
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- c
- =
- .
- TOK_TABLE_OR_COL
- c
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_TABREF
- TOK_TABNAME
- bucket_medium
- d
- =
- .
- TOK_TABLE_OR_COL
- c
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_2.q.out b/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_2.q.out
index a0f2be1..c283738 100644
--- a/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_2.q.out
+++ b/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_2.q.out
@@ -89,38 +89,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- Since the leftmost table is assumed as the big table, arrange the tables in the join accordingly
explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -400,38 +368,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- The mapjoin should fail resulting in the sort-merge join
explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_3.q.out b/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_3.q.out
index e6fb5dc..351fd20 100644
--- a/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_3.q.out
+++ b/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_3.q.out
@@ -89,38 +89,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- Since size is being used to find the big table, the order of the tables in the join does not matter
explain extended select count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -398,38 +366,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -707,38 +643,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_4.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_4.q.out b/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_4.q.out
index b24c2769..2d9cdf8 100644
--- a/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_4.q.out
+++ b/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_4.q.out
@@ -105,38 +105,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- Since size is being used to find the big table, the order of the tables in the join does not matter
explain extended select count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -414,38 +382,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -723,38 +659,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_5.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_5.q.out b/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_5.q.out
index db7b805..8bc203a 100644
--- a/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_5.q.out
+++ b/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_5.q.out
@@ -76,38 +76,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- Since size is being used to find the big table, the order of the tables in the join does not matter
explain extended select count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -311,38 +279,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -546,38 +482,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_7.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_7.q.out b/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_7.q.out
index faf20fa..18fc95c 100644
--- a/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_7.q.out
+++ b/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_7.q.out
@@ -122,38 +122,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- Since size is being used to find the big table, the order of the tables in the join does not matter
explain extended select count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -479,38 +447,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -836,38 +772,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_8.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_8.q.out b/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_8.q.out
index 7b51ffc..9a1010c 100644
--- a/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_8.q.out
+++ b/ql/src/test/results/clientpositive/tez/auto_sortmerge_join_8.q.out
@@ -122,38 +122,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- Since size is being used to find the big table, the order of the tables in the join does not matter
explain extended select count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -479,38 +447,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -838,38 +774,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- The mapjoin should fail resulting in the sort-merge join
explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/tez/bucket2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/bucket2.q.out b/ql/src/test/results/clientpositive/tez/bucket2.q.out
index 151b0ce..e9432a8 100644
--- a/ql/src/test/results/clientpositive/tez/bucket2.q.out
+++ b/ql/src/test/results/clientpositive/tez/bucket2.q.out
@@ -18,23 +18,6 @@ POSTHOOK: query: explain extended
insert overwrite table bucket2_1
select * from src
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucket2_1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/tez/bucket3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/bucket3.q.out b/ql/src/test/results/clientpositive/tez/bucket3.q.out
index 3308a8a..1532edc 100644
--- a/ql/src/test/results/clientpositive/tez/bucket3.q.out
+++ b/ql/src/test/results/clientpositive/tez/bucket3.q.out
@@ -18,27 +18,6 @@ POSTHOOK: query: explain extended
insert overwrite table bucket3_1 partition (ds='1')
select * from src
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucket3_1
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '1'
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/tez/bucket4.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/bucket4.q.out b/ql/src/test/results/clientpositive/tez/bucket4.q.out
index f2030e8..a0f1177 100644
--- a/ql/src/test/results/clientpositive/tez/bucket4.q.out
+++ b/ql/src/test/results/clientpositive/tez/bucket4.q.out
@@ -14,23 +14,6 @@ POSTHOOK: query: explain extended
insert overwrite table bucket4_1
select * from src
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucket4_1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/tez/bucketpruning1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/bucketpruning1.q.out b/ql/src/test/results/clientpositive/tez/bucketpruning1.q.out
index 78df581..bb9d3bb 100644
--- a/ql/src/test/results/clientpositive/tez/bucketpruning1.q.out
+++ b/ql/src/test/results/clientpositive/tez/bucketpruning1.q.out
@@ -26,27 +26,6 @@ POSTHOOK: query: -- good cases
explain extended
select * from srcbucket_pruned where key = 1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket_pruned
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- key
- 1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -107,27 +86,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from srcbucket_pruned where key = 16
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket_pruned
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- key
- 16
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -188,27 +146,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from srcbucket_pruned where key = 17
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket_pruned
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- key
- 17
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -269,29 +206,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from srcbucket_pruned where key = 16+1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket_pruned
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- key
- +
- 16
- 1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -352,27 +266,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from srcbucket_pruned where key = '11'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket_pruned
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- key
- '11'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -433,32 +326,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from srcbucket_pruned where key = 1 and ds='2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket_pruned
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- key
- 1
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -519,37 +386,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from srcbucket_pruned where key = 1 and ds='2008-04-08' and value='One'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket_pruned
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- and
- =
- TOK_TABLE_OR_COL
- key
- 1
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
- =
- TOK_TABLE_OR_COL
- value
- 'One'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -610,37 +446,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from srcbucket_pruned where value='One' and key = 1 and ds='2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket_pruned
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- and
- =
- TOK_TABLE_OR_COL
- value
- 'One'
- =
- TOK_TABLE_OR_COL
- key
- 1
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -701,29 +506,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from srcbucket_pruned where key in (2,3)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket_pruned
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- TOK_FUNCTION
- in
- TOK_TABLE_OR_COL
- key
- 2
- 3
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -784,34 +566,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from srcbucket_pruned where key in (2,3) and ds='2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket_pruned
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- TOK_FUNCTION
- in
- TOK_TABLE_OR_COL
- key
- 2
- 3
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -872,39 +626,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from srcbucket_pruned where key in (2,3) and ds='2008-04-08' and value='One'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket_pruned
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- and
- TOK_FUNCTION
- in
- TOK_TABLE_OR_COL
- key
- 2
- 3
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
- =
- TOK_TABLE_OR_COL
- value
- 'One'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -965,39 +686,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from srcbucket_pruned where value='One' and key in (2,3) and ds='2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket_pruned
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- and
- =
- TOK_TABLE_OR_COL
- value
- 'One'
- TOK_FUNCTION
- in
- TOK_TABLE_OR_COL
- key
- 2
- 3
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1058,37 +746,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from srcbucket_pruned where (key=1 or key=2) and ds='2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket_pruned
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- or
- =
- TOK_TABLE_OR_COL
- key
- 1
- =
- TOK_TABLE_OR_COL
- key
- 2
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1148,42 +805,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from srcbucket_pruned where (key=1 or key=2) and value = 'One' and ds='2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket_pruned
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- and
- or
- =
- TOK_TABLE_OR_COL
- key
- 1
- =
- TOK_TABLE_OR_COL
- key
- 2
- =
- TOK_TABLE_OR_COL
- value
- 'One'
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1247,28 +868,6 @@ POSTHOOK: query: -- compat case (-15 = 1 & 15)
explain extended
select * from srcbucket_pruned where key = -15
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket_pruned
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- key
- -
- 15
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1333,44 +932,6 @@ POSTHOOK: query: -- valid but irrelevant case (all buckets selected)
explain extended
select * from srcbucket_pruned where key in (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket_pruned
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- TOK_FUNCTION
- in
- TOK_TABLE_OR_COL
- key
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1430,49 +991,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from srcbucket_pruned where key in (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17) and ds='2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket_pruned
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- TOK_FUNCTION
- in
- TOK_TABLE_OR_COL
- key
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1532,54 +1050,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from srcbucket_pruned where key in (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17) and ds='2008-04-08' and value='One'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket_pruned
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- and
- TOK_FUNCTION
- in
- TOK_TABLE_OR_COL
- key
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
- =
- TOK_TABLE_OR_COL
- value
- 'One'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1639,54 +1109,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from srcbucket_pruned where value='One' and key in (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17) and ds='2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket_pruned
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- and
- =
- TOK_TABLE_OR_COL
- value
- 'One'
- TOK_FUNCTION
- in
- TOK_TABLE_OR_COL
- key
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1750,37 +1172,6 @@ POSTHOOK: query: -- valid, but unimplemented cases
explain extended
select * from srcbucket_pruned where key = 1 and ds='2008-04-08' or key = 2
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket_pruned
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- or
- and
- =
- TOK_TABLE_OR_COL
- key
- 1
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
- =
- TOK_TABLE_OR_COL
- key
- 2
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1840,42 +1231,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from srcbucket_pruned where key = 1 and ds='2008-04-08' and (value='One' or value = 'Two')
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket_pruned
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- and
- =
- TOK_TABLE_OR_COL
- key
- 1
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
- or
- =
- TOK_TABLE_OR_COL
- value
- 'One'
- =
- TOK_TABLE_OR_COL
- value
- 'Two'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1935,42 +1290,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from srcbucket_pruned where key = 1 or value = "One" or key = 2 and value = "Two"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket_pruned
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- or
- or
- =
- TOK_TABLE_OR_COL
- key
- 1
- =
- TOK_TABLE_OR_COL
- value
- "One"
- and
- =
- TOK_TABLE_OR_COL
- key
- 2
- =
- TOK_TABLE_OR_COL
- value
- "Two"
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2034,27 +1353,6 @@ POSTHOOK: query: -- Invalid cases
explain extended
select * from srcbucket_pruned where key = 'x11'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket_pruned
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- key
- 'x11'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2113,32 +1411,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from srcbucket_pruned where key = 1 or value = "One"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket_pruned
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- or
- =
- TOK_TABLE_OR_COL
- key
- 1
- =
- TOK_TABLE_OR_COL
- value
- "One"
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2198,37 +1470,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from srcbucket_pruned where key = 1 or value = "One" or key = 2
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket_pruned
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- or
- or
- =
- TOK_TABLE_OR_COL
- key
- 1
- =
- TOK_TABLE_OR_COL
- value
- "One"
- =
- TOK_TABLE_OR_COL
- key
- 2
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2288,29 +1529,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from srcbucket_unpruned where key in (3, 5)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket_unpruned
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- TOK_FUNCTION
- in
- TOK_TABLE_OR_COL
- key
- 3
- 5
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2370,27 +1588,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from srcbucket_unpruned where key = 1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket_unpruned
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- key
- 1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/tez/ctas.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/ctas.q.out b/ql/src/test/results/clientpositive/tez/ctas.q.out
index 52ea981..d92a446 100644
--- a/ql/src/test/results/clientpositive/tez/ctas.q.out
+++ b/ql/src/test/results/clientpositive/tez/ctas.q.out
@@ -698,49 +698,6 @@ PREHOOK: query: explain extended create table nzhang_ctas5 row format delimited
PREHOOK: type: CREATETABLE_AS_SELECT
POSTHOOK: query: explain extended create table nzhang_ctas5 row format delimited fields terminated by ',' lines terminated by '\012' stored as textfile as select key, value from src sort by key, value limit 10
POSTHOOK: type: CREATETABLE_AS_SELECT
-ABSTRACT SYNTAX TREE:
-
-TOK_CREATETABLE
- TOK_TABNAME
- nzhang_ctas5
- TOK_LIKETABLE
- TOK_TABLEROWFORMAT
- TOK_SERDEPROPS
- TOK_TABLEROWFORMATFIELD
- ','
- TOK_TABLEROWFORMATLINES
- '\012'
- TOK_FILEFORMAT_GENERIC
- textfile
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
- TOK_LIMIT
- 10
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/tez/disable_merge_for_bucketing.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/disable_merge_for_bucketing.q.out b/ql/src/test/results/clientpositive/tez/disable_merge_for_bucketing.q.out
index 65f750b..bb62e1f 100644
--- a/ql/src/test/results/clientpositive/tez/disable_merge_for_bucketing.q.out
+++ b/ql/src/test/results/clientpositive/tez/disable_merge_for_bucketing.q.out
@@ -14,23 +14,6 @@ POSTHOOK: query: explain extended
insert overwrite table bucket2_1
select * from src
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucket2_1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/tez/filter_join_breaktask.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/filter_join_breaktask.q.out b/ql/src/test/results/clientpositive/tez/filter_join_breaktask.q.out
index 15cad97..2075b48 100644
--- a/ql/src/test/results/clientpositive/tez/filter_join_breaktask.q.out
+++ b/ql/src/test/results/clientpositive/tez/filter_join_breaktask.q.out
@@ -32,108 +32,6 @@ SELECT f.key, g.value
FROM filter_join_breaktask f JOIN filter_join_breaktask m ON( f.key = m.key AND f.ds='2008-04-08' AND m.ds='2008-04-08' AND f.key is not null)
JOIN filter_join_breaktask g ON(g.value = m.value AND g.ds='2008-04-08' AND m.ds='2008-04-08' AND m.value is not null AND m.value !='')
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- filter_join_breaktask
- f
- TOK_TABREF
- TOK_TABNAME
- filter_join_breaktask
- m
- AND
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- f
- key
- .
- TOK_TABLE_OR_COL
- m
- key
- =
- .
- TOK_TABLE_OR_COL
- f
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- m
- ds
- '2008-04-08'
- TOK_FUNCTION
- TOK_ISNOTNULL
- .
- TOK_TABLE_OR_COL
- f
- key
- TOK_TABREF
- TOK_TABNAME
- filter_join_breaktask
- g
- AND
- AND
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- g
- value
- .
- TOK_TABLE_OR_COL
- m
- value
- =
- .
- TOK_TABLE_OR_COL
- g
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- m
- ds
- '2008-04-08'
- TOK_FUNCTION
- TOK_ISNOTNULL
- .
- TOK_TABLE_OR_COL
- m
- value
- !=
- .
- TOK_TABLE_OR_COL
- m
- value
- ''
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- f
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- g
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/tez/llap_nullscan.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/llap_nullscan.q.out b/ql/src/test/results/clientpositive/tez/llap_nullscan.q.out
index 39f04ea..944a494 100644
--- a/ql/src/test/results/clientpositive/tez/llap_nullscan.q.out
+++ b/ql/src/test/results/clientpositive/tez/llap_nullscan.q.out
@@ -30,26 +30,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from src_orc where 1=2
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src_orc
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- =
- 1
- 2
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/tez/mapjoin_mapjoin.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/mapjoin_mapjoin.q.out b/ql/src/test/results/clientpositive/tez/mapjoin_mapjoin.q.out
index d03b1cc..316c914 100644
--- a/ql/src/test/results/clientpositive/tez/mapjoin_mapjoin.q.out
+++ b/ql/src/test/results/clientpositive/tez/mapjoin_mapjoin.q.out
@@ -10,51 +10,6 @@ POSTHOOK: query: -- Since the inputs are small, it should be automatically conve
explain extended select srcpart.key from srcpart join src on (srcpart.value=src.value) join src1 on (srcpart.key=src1.key)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_TABREF
- TOK_TABNAME
- src
- =
- .
- TOK_TABLE_OR_COL
- srcpart
- value
- .
- TOK_TABLE_OR_COL
- src
- value
- TOK_TABREF
- TOK_TABNAME
- src1
- =
- .
- TOK_TABLE_OR_COL
- srcpart
- key
- .
- TOK_TABLE_OR_COL
- src1
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/tez/metadataonly1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/metadataonly1.q.out b/ql/src/test/results/clientpositive/tez/metadataonly1.q.out
index 1961d1b..e43a7e4 100644
--- a/ql/src/test/results/clientpositive/tez/metadataonly1.q.out
+++ b/ql/src/test/results/clientpositive/tez/metadataonly1.q.out
@@ -10,25 +10,6 @@ PREHOOK: query: explain extended select max(ds) from TEST1
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select max(ds) from TEST1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- TEST1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- max
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -120,25 +101,6 @@ PREHOOK: query: explain extended select max(ds) from TEST1
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select max(ds) from TEST1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- TEST1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- max
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -269,25 +231,6 @@ PREHOOK: query: explain extended select count(distinct ds) from TEST1
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(distinct ds) from TEST1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- TEST1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONDI
- count
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -419,25 +362,6 @@ PREHOOK: query: explain extended select count(ds) from TEST1
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(ds) from TEST1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- TEST1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- count
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -578,52 +502,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select count(*) from TEST1 a2 join (select max(ds) m from TEST1) b on a2.ds=b.m
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- TEST1
- a2
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- TEST1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- max
- TOK_TABLE_OR_COL
- ds
- m
- b
- =
- .
- TOK_TABLE_OR_COL
- a2
- ds
- .
- TOK_TABLE_OR_COL
- b
- m
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -991,31 +869,6 @@ PREHOOK: query: explain extended select ds, count(distinct hr) from TEST2 group
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select ds, count(distinct hr) from TEST2 group by ds
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- TEST2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_SELEXPR
- TOK_FUNCTIONDI
- count
- TOK_TABLE_OR_COL
- hr
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1238,31 +1091,6 @@ PREHOOK: query: explain extended select ds, count(hr) from TEST2 group by ds
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select ds, count(hr) from TEST2 group by ds
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- TEST2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_SELEXPR
- TOK_FUNCTION
- count
- TOK_TABLE_OR_COL
- hr
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1486,25 +1314,6 @@ PREHOOK: query: explain extended select max(ds) from TEST1
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select max(ds) from TEST1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- TEST1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- max
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1729,31 +1538,6 @@ PREHOOK: query: explain extended select ds, count(distinct hr) from TEST2 group
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select ds, count(distinct hr) from TEST2 group by ds
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- TEST2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_SELEXPR
- TOK_FUNCTIONDI
- count
- TOK_TABLE_OR_COL
- hr
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/tez/optimize_nullscan.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/optimize_nullscan.q.out b/ql/src/test/results/clientpositive/tez/optimize_nullscan.q.out
index 336a5e9..2cae5ce 100644
--- a/ql/src/test/results/clientpositive/tez/optimize_nullscan.q.out
+++ b/ql/src/test/results/clientpositive/tez/optimize_nullscan.q.out
@@ -14,25 +14,6 @@ POSTHOOK: query: -- SORT_QUERY_RESULTS
explain extended
select key from src where false
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_WHERE
- false
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -66,32 +47,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select count(key) from srcpart where 1=2 group by key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- count
- TOK_TABLE_OR_COL
- key
- TOK_WHERE
- =
- 1
- 2
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -185,63 +140,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from (select key from src where false) a left outer join (select key from srcpart limit 0) b on a.key=b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_WHERE
- false
- a
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_LIMIT
- 0
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -619,54 +517,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select count(key) from src where false union all select count(key) from srcpart
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- count
- TOK_TABLE_OR_COL
- key
- TOK_WHERE
- false
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- count
- TOK_TABLE_OR_COL
- key
- _u1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1060,54 +910,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from (select key from src where false) a left outer join (select value from srcpart limit 0) b
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_WHERE
- false
- a
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_LIMIT
- 0
- b
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1484,65 +1286,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from (select key from src union all select src.key from src left outer join srcpart on src.key = srcpart.key) a where false
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_TABREF
- TOK_TABNAME
- srcpart
- =
- .
- TOK_TABLE_OR_COL
- src
- key
- .
- TOK_TABLE_OR_COL
- srcpart
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- src
- key
- a
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- false
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1784,40 +1527,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from src s1, src s2 where false and s1.value = s2.value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src
- s1
- TOK_TABREF
- TOK_TABNAME
- src
- s2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- false
- =
- .
- TOK_TABLE_OR_COL
- s1
- value
- .
- TOK_TABLE_OR_COL
- s2
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2023,28 +1732,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select count(1) from src where null = 1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_WHERE
- =
- TOK_NULL
- 1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/tez/sample1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/sample1.q.out b/ql/src/test/results/clientpositive/tez/sample1.q.out
index 9663218..009969e 100644
--- a/ql/src/test/results/clientpositive/tez/sample1.q.out
+++ b/ql/src/test/results/clientpositive/tez/sample1.q.out
@@ -18,45 +18,6 @@ INSERT OVERWRITE TABLE dest1 SELECT s.*
FROM srcpart TABLESAMPLE (BUCKET 1 OUT OF 1 ON rand()) s
WHERE s.ds='2008-04-08' and s.hr='11'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_TABLEBUCKETSAMPLE
- 1
- 1
- TOK_FUNCTION
- rand
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
- TOK_WHERE
- and
- =
- .
- TOK_TABLE_OR_COL
- s
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- s
- hr
- '11'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
[16/50] [abbrv] hive git commit: HIVE-13533: Remove AST dump (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/ppd_join_filter.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/ppd_join_filter.q.out b/ql/src/test/results/clientpositive/spark/ppd_join_filter.q.out
index 9f94f16..6b1cadf 100644
--- a/ql/src/test/results/clientpositive/spark/ppd_join_filter.q.out
+++ b/ql/src/test/results/clientpositive/spark/ppd_join_filter.q.out
@@ -24,101 +24,6 @@ group by key
) b
on a.key=b.key and b.k1 < 5
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src
- a
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- k
- TOK_SELEXPR
- +
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- 1
- k1
- TOK_SELEXPR
- +
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- 2
- k2
- TOK_SELEXPR
- +
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- 3
- k3
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- <
- .
- TOK_TABLE_OR_COL
- b
- k1
- 5
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- k2
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- k3
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -406,101 +311,6 @@ group by key
) b
on a.key=b.key and b.k1 < 5
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src
- a
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- k
- TOK_SELEXPR
- +
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- 1
- k1
- TOK_SELEXPR
- +
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- 2
- k2
- TOK_SELEXPR
- +
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- 3
- k3
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- <
- .
- TOK_TABLE_OR_COL
- b
- k1
- 5
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- k2
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- k3
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -788,101 +598,6 @@ group by key
) b
on a.key=b.key and b.k1 < 5
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src
- a
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- k
- TOK_SELEXPR
- +
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- 1
- k1
- TOK_SELEXPR
- +
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- 2
- k2
- TOK_SELEXPR
- +
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- 3
- k3
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- <
- .
- TOK_TABLE_OR_COL
- b
- k1
- 5
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- k2
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- k3
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1170,101 +885,6 @@ group by key
) b
on a.key=b.key and b.k1 < 5
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src
- a
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- k
- TOK_SELEXPR
- +
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- 1
- k1
- TOK_SELEXPR
- +
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- 2
- k2
- TOK_SELEXPR
- +
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- 3
- k3
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- <
- .
- TOK_TABLE_OR_COL
- b
- k1
- 5
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- k2
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- k3
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/reduce_deduplicate.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/reduce_deduplicate.q.out b/ql/src/test/results/clientpositive/spark/reduce_deduplicate.q.out
index 83988d3..3f5f649 100644
--- a/ql/src/test/results/clientpositive/spark/reduce_deduplicate.q.out
+++ b/ql/src/test/results/clientpositive/spark/reduce_deduplicate.q.out
@@ -14,26 +14,6 @@ POSTHOOK: query: explain extended
insert overwrite table bucket5_1
select * from src cluster by key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucket5_1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_CLUSTERBY
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -254,133 +234,6 @@ select s2.* from
)s
)s2
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- complex_tbl_2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TRANSFORM
- TOK_EXPLIST
- TOK_TABLE_OR_COL
- aet
- TOK_TABLE_OR_COL
- aes
- TOK_SERDE
- TOK_RECORDWRITER
- 'cat'
- TOK_SERDE
- TOK_RECORDREADER
- TOK_TABCOLLIST
- TOK_TABCOL
- aid
- TOK_STRING
- TOK_TABCOL
- bid
- TOK_STRING
- TOK_TABCOL
- t
- TOK_INT
- TOK_TABCOL
- ctime
- TOK_STRING
- TOK_TABCOL
- etime
- TOK_BIGINT
- TOK_TABCOL
- l
- TOK_STRING
- TOK_TABCOL
- et
- TOK_STRING
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- ds
- '2010-03-29'
- TOK_CLUSTERBY
- TOK_TABLE_OR_COL
- bid
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TRANSFORM
- TOK_EXPLIST
- TOK_TABLE_OR_COL
- aid
- TOK_TABLE_OR_COL
- bid
- TOK_TABLE_OR_COL
- t
- TOK_TABLE_OR_COL
- ctime
- TOK_TABLE_OR_COL
- etime
- TOK_TABLE_OR_COL
- l
- TOK_TABLE_OR_COL
- et
- TOK_SERDE
- TOK_RECORDWRITER
- 'cat'
- TOK_SERDE
- TOK_RECORDREADER
- TOK_TABCOLLIST
- TOK_TABCOL
- aid
- TOK_STRING
- TOK_TABCOL
- bid
- TOK_STRING
- TOK_TABCOL
- t
- TOK_INT
- TOK_TABCOL
- ctime
- TOK_STRING
- TOK_TABCOL
- etime
- TOK_BIGINT
- TOK_TABCOL
- l
- TOK_STRING
- TOK_TABCOL
- et
- TOK_STRING
- s2
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- complex_tbl_1
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2010-03-29'
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s2
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/router_join_ppr.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/router_join_ppr.q.out b/ql/src/test/results/clientpositive/spark/router_join_ppr.q.out
index 4efa206..1149f16 100644
--- a/ql/src/test/results/clientpositive/spark/router_join_ppr.q.out
+++ b/ql/src/test/results/clientpositive/spark/router_join_ppr.q.out
@@ -20,90 +20,6 @@ EXPLAIN EXTENDED
SELECT a.key, a.value, b.key, b.value
WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_RIGHTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- src
- a
- TOK_TABREF
- TOK_TABNAME
- srcpart
- b
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- '2008-04-08'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- AND
- AND
- AND
- >
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 20
- >
- .
- TOK_TABLE_OR_COL
- b
- key
- 15
- <
- .
- TOK_TABLE_OR_COL
- b
- key
- 25
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -511,90 +427,6 @@ POSTHOOK: query: EXPLAIN EXTENDED
SELECT a.key, a.value, b.key, b.value
WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_RIGHTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- srcpart
- a
- TOK_TABREF
- TOK_TABNAME
- src
- b
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '2008-04-08'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- AND
- AND
- AND
- >
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 20
- >
- .
- TOK_TABLE_OR_COL
- b
- key
- 15
- <
- .
- TOK_TABLE_OR_COL
- b
- key
- 25
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -903,90 +735,6 @@ POSTHOOK: query: EXPLAIN EXTENDED
SELECT a.key, a.value, b.key, b.value
WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 AND b.ds = '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_RIGHTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- src
- a
- TOK_TABREF
- TOK_TABNAME
- srcpart
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- AND
- AND
- AND
- AND
- >
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 20
- >
- .
- TOK_TABLE_OR_COL
- b
- key
- 15
- <
- .
- TOK_TABLE_OR_COL
- b
- key
- 25
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1291,90 +1039,6 @@ POSTHOOK: query: EXPLAIN EXTENDED
SELECT a.key, a.value, b.key, b.value
WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 AND a.ds = '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_RIGHTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- srcpart
- a
- TOK_TABREF
- TOK_TABNAME
- src
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- AND
- AND
- AND
- AND
- >
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 20
- >
- .
- TOK_TABLE_OR_COL
- b
- key
- 15
- <
- .
- TOK_TABLE_OR_COL
- b
- key
- 25
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/sample1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/sample1.q.out b/ql/src/test/results/clientpositive/spark/sample1.q.out
index 1d574cc..15b1016 100644
--- a/ql/src/test/results/clientpositive/spark/sample1.q.out
+++ b/ql/src/test/results/clientpositive/spark/sample1.q.out
@@ -18,45 +18,6 @@ INSERT OVERWRITE TABLE dest1 SELECT s.*
FROM srcpart TABLESAMPLE (BUCKET 1 OUT OF 1 ON rand()) s
WHERE s.ds='2008-04-08' and s.hr='11'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_TABLEBUCKETSAMPLE
- 1
- 1
- TOK_FUNCTION
- rand
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
- TOK_WHERE
- and
- =
- .
- TOK_TABLE_OR_COL
- s
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- s
- hr
- '11'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/sample10.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/sample10.q.out b/ql/src/test/results/clientpositive/spark/sample10.q.out
index 3130d69..386f512 100644
--- a/ql/src/test/results/clientpositive/spark/sample10.q.out
+++ b/ql/src/test/results/clientpositive/spark/sample10.q.out
@@ -43,45 +43,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select ds, count(1) from srcpartbucket tablesample (bucket 1 out of 4 on key) where ds is not null group by ds ORDER BY ds ASC
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpartbucket
- TOK_TABLEBUCKETSAMPLE
- 1
- 4
- TOK_TABLE_OR_COL
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_WHERE
- TOK_FUNCTION
- TOK_ISNOTNULL
- TOK_TABLE_OR_COL
- ds
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- ds
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/sample2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/sample2.q.out b/ql/src/test/results/clientpositive/spark/sample2.q.out
index 6c070f0..28108bb 100644
--- a/ql/src/test/results/clientpositive/spark/sample2.q.out
+++ b/ql/src/test/results/clientpositive/spark/sample2.q.out
@@ -18,29 +18,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE dest1 SELECT s.*
FROM srcbucket TABLESAMPLE (BUCKET 1 OUT OF 2) s
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket
- TOK_TABLEBUCKETSAMPLE
- 1
- 2
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/sample4.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/sample4.q.out b/ql/src/test/results/clientpositive/spark/sample4.q.out
index d6a0808..25f300d 100644
--- a/ql/src/test/results/clientpositive/spark/sample4.q.out
+++ b/ql/src/test/results/clientpositive/spark/sample4.q.out
@@ -18,31 +18,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE dest1 SELECT s.*
FROM srcbucket TABLESAMPLE (BUCKET 1 OUT OF 2 on key) s
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket
- TOK_TABLEBUCKETSAMPLE
- 1
- 2
- TOK_TABLE_OR_COL
- key
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/sample5.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/sample5.q.out b/ql/src/test/results/clientpositive/spark/sample5.q.out
index 928b673..8aebfe5 100644
--- a/ql/src/test/results/clientpositive/spark/sample5.q.out
+++ b/ql/src/test/results/clientpositive/spark/sample5.q.out
@@ -20,31 +20,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE dest1 SELECT s.* -- here's another test
FROM srcbucket TABLESAMPLE (BUCKET 1 OUT OF 5 on key) s
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket
- TOK_TABLEBUCKETSAMPLE
- 1
- 5
- TOK_TABLE_OR_COL
- key
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/sample6.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/sample6.q.out b/ql/src/test/results/clientpositive/spark/sample6.q.out
index 42dc25b..2b49712 100644
--- a/ql/src/test/results/clientpositive/spark/sample6.q.out
+++ b/ql/src/test/results/clientpositive/spark/sample6.q.out
@@ -16,31 +16,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE dest1 SELECT s.*
FROM srcbucket TABLESAMPLE (BUCKET 1 OUT OF 4 on key) s
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket
- TOK_TABLEBUCKETSAMPLE
- 1
- 4
- TOK_TABLE_OR_COL
- key
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -445,39 +420,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT s.* FROM srcbucket TABLESAMPLE (BUCKET 4 OUT OF 4 on key) s
ORDER BY key, value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket
- TOK_TABLEBUCKETSAMPLE
- 4
- 4
- TOK_TABLE_OR_COL
- key
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -853,39 +795,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT s.* FROM srcbucket TABLESAMPLE (BUCKET 1 OUT OF 2 on key) s
ORDER BY key, value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket
- TOK_TABLEBUCKETSAMPLE
- 1
- 2
- TOK_TABLE_OR_COL
- key
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1515,39 +1424,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT s.* FROM srcbucket TABLESAMPLE (BUCKET 1 OUT OF 3 on key) s
ORDER BY key, value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket
- TOK_TABLEBUCKETSAMPLE
- 1
- 3
- TOK_TABLE_OR_COL
- key
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2019,39 +1895,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT s.* FROM srcbucket TABLESAMPLE (BUCKET 2 OUT OF 3 on key) s
ORDER BY key, value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket
- TOK_TABLEBUCKETSAMPLE
- 2
- 3
- TOK_TABLE_OR_COL
- key
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2509,39 +2352,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT s.* FROM srcbucket2 TABLESAMPLE (BUCKET 1 OUT OF 2 on key) s
ORDER BY key, value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket2
- TOK_TABLEBUCKETSAMPLE
- 1
- 2
- TOK_TABLE_OR_COL
- key
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2847,39 +2657,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT s.* FROM srcbucket2 TABLESAMPLE (BUCKET 2 OUT OF 4 on key) s
ORDER BY key, value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket2
- TOK_TABLEBUCKETSAMPLE
- 2
- 4
- TOK_TABLE_OR_COL
- key
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -3062,39 +2839,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT s.* FROM empty_bucket TABLESAMPLE (BUCKET 1 OUT OF 2 on key) s
ORDER BY key, value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- empty_bucket
- TOK_TABLEBUCKETSAMPLE
- 1
- 2
- TOK_TABLE_OR_COL
- key
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/sample7.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/sample7.q.out b/ql/src/test/results/clientpositive/spark/sample7.q.out
index 4b87cbd..6c17ab1 100644
--- a/ql/src/test/results/clientpositive/spark/sample7.q.out
+++ b/ql/src/test/results/clientpositive/spark/sample7.q.out
@@ -18,38 +18,6 @@ INSERT OVERWRITE TABLE dest1 SELECT s.*
FROM srcbucket TABLESAMPLE (BUCKET 1 OUT OF 4 on key) s
WHERE s.key > 100
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket
- TOK_TABLEBUCKETSAMPLE
- 1
- 4
- TOK_TABLE_OR_COL
- key
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
- TOK_WHERE
- >
- .
- TOK_TABLE_OR_COL
- s
- key
- 100
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/sample8.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/sample8.q.out b/ql/src/test/results/clientpositive/spark/sample8.q.out
index ae145b2..e847fa5 100644
--- a/ql/src/test/results/clientpositive/spark/sample8.q.out
+++ b/ql/src/test/results/clientpositive/spark/sample8.q.out
@@ -16,74 +16,6 @@ FROM srcpart TABLESAMPLE (BUCKET 1 OUT OF 1 ON key) s
JOIN srcpart TABLESAMPLE (BUCKET 1 OUT OF 10 ON key) t
WHERE t.key = s.key and t.value = s.value and s.ds='2008-04-08' and s.hr='11'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_TABLEBUCKETSAMPLE
- 1
- 1
- TOK_TABLE_OR_COL
- key
- s
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_TABLEBUCKETSAMPLE
- 1
- 10
- TOK_TABLE_OR_COL
- key
- t
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
- TOK_WHERE
- and
- and
- and
- =
- .
- TOK_TABLE_OR_COL
- t
- key
- .
- TOK_TABLE_OR_COL
- s
- key
- =
- .
- TOK_TABLE_OR_COL
- t
- value
- .
- TOK_TABLE_OR_COL
- s
- value
- =
- .
- TOK_TABLE_OR_COL
- s
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- s
- hr
- '11'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/sample9.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/sample9.q.out b/ql/src/test/results/clientpositive/spark/sample9.q.out
index 1a84bd6..46974e5 100644
--- a/ql/src/test/results/clientpositive/spark/sample9.q.out
+++ b/ql/src/test/results/clientpositive/spark/sample9.q.out
@@ -6,43 +6,6 @@ POSTHOOK: query: EXPLAIN EXTENDED
SELECT s.*
FROM (SELECT a.* FROM srcbucket TABLESAMPLE (BUCKET 1 OUT OF 2 on key) a) s
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcbucket
- TOK_TABLEBUCKETSAMPLE
- 1
- 2
- TOK_TABLE_OR_COL
- key
- a
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- a
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- s
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/smb_mapjoin_11.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/smb_mapjoin_11.q.out b/ql/src/test/results/clientpositive/spark/smb_mapjoin_11.q.out
index a14ca28..bb2eac9 100644
--- a/ql/src/test/results/clientpositive/spark/smb_mapjoin_11.q.out
+++ b/ql/src/test/results/clientpositive/spark/smb_mapjoin_11.q.out
@@ -56,69 +56,6 @@ POSTHOOK: query: -- Insert data into the bucketed table by joining the two bucke
EXPLAIN EXTENDED
INSERT OVERWRITE TABLE test_table3 PARTITION (ds = '1') SELECT /*+ MAPJOIN(b) */ a.key, b.value FROM test_table1 a JOIN test_table2 b ON a.key = b.key AND a.ds = '1' AND b.ds = '1'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test_table1
- a
- TOK_TABREF
- TOK_TABNAME
- test_table2
- b
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '1'
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- '1'
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- test_table3
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '1'
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1853,25 +1790,6 @@ PREHOOK: query: EXPLAIN EXTENDED SELECT * FROM test_table1 TABLESAMPLE(BUCKET 2
PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT * FROM test_table1 TABLESAMPLE(BUCKET 2 OUT OF 16)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- test_table1
- TOK_TABLEBUCKETSAMPLE
- 2
- 16
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -1943,25 +1861,6 @@ PREHOOK: query: EXPLAIN EXTENDED SELECT * FROM test_table3 TABLESAMPLE(BUCKET 2
PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT * FROM test_table3 TABLESAMPLE(BUCKET 2 OUT OF 16)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- test_table3
- TOK_TABLEBUCKETSAMPLE
- 2
- 16
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/smb_mapjoin_12.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/smb_mapjoin_12.q.out b/ql/src/test/results/clientpositive/spark/smb_mapjoin_12.q.out
index 59ad406..d186987 100644
--- a/ql/src/test/results/clientpositive/spark/smb_mapjoin_12.q.out
+++ b/ql/src/test/results/clientpositive/spark/smb_mapjoin_12.q.out
@@ -68,69 +68,6 @@ POSTHOOK: query: -- Insert data into the bucketed table by joining the two bucke
EXPLAIN EXTENDED
INSERT OVERWRITE TABLE test_table3 PARTITION (ds = '1') SELECT /*+ MAPJOIN(b) */ a.key, b.value FROM test_table1 a JOIN test_table2 b ON a.key = b.key AND a.ds = '1' AND b.ds >= '1'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test_table1
- a
- TOK_TABREF
- TOK_TABNAME
- test_table2
- b
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '1'
- >=
- .
- TOK_TABLE_OR_COL
- b
- ds
- '1'
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- test_table3
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '1'
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -347,75 +284,6 @@ explain extended
INSERT OVERWRITE TABLE test_table3 PARTITION (ds = '2')
SELECT /*+mapjoin(b)*/ a.key, concat(a.value, b.value) FROM test_table3 a JOIN test_table1 b ON a.key = b.key AND a.ds = '1' AND b.ds='1'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test_table3
- a
- TOK_TABREF
- TOK_TABNAME
- test_table1
- b
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '1'
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- '1'
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- test_table3
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2'
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- TOK_FUNCTION
- concat
- .
- TOK_TABLE_OR_COL
- a
- value
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/smb_mapjoin_13.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/smb_mapjoin_13.q.out b/ql/src/test/results/clientpositive/spark/smb_mapjoin_13.q.out
index eee4ddb..7e6f225 100644
--- a/ql/src/test/results/clientpositive/spark/smb_mapjoin_13.q.out
+++ b/ql/src/test/results/clientpositive/spark/smb_mapjoin_13.q.out
@@ -76,51 +76,6 @@ POSTHOOK: query: -- Join data from 2 tables on their respective sorted columns (
EXPLAIN EXTENDED
SELECT /*+mapjoin(b)*/ * FROM test_table1 a JOIN test_table2 b ON a.key = b.value ORDER BY a.key LIMIT 10
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test_table1
- a
- TOK_TABREF
- TOK_TABNAME
- test_table2
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_LIMIT
- 10
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -288,51 +243,6 @@ POSTHOOK: query: -- Join data from 2 tables on their respective columns (two eac
EXPLAIN EXTENDED
SELECT /*+mapjoin(b)*/ * FROM test_table3 a JOIN test_table4 b ON a.key = b.value ORDER BY a.key LIMIT 10
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test_table3
- a
- TOK_TABREF
- TOK_TABNAME
- test_table4
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_LIMIT
- 10
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/smb_mapjoin_15.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/smb_mapjoin_15.q.out b/ql/src/test/results/clientpositive/spark/smb_mapjoin_15.q.out
index bafa636..4152280 100644
--- a/ql/src/test/results/clientpositive/spark/smb_mapjoin_15.q.out
+++ b/ql/src/test/results/clientpositive/spark/smb_mapjoin_15.q.out
@@ -48,51 +48,6 @@ POSTHOOK: query: -- it should be converted to a sort-merge join, since the first
EXPLAIN EXTENDED
SELECT /*+mapjoin(b)*/ * FROM test_table1 a JOIN test_table2 b ON a.key = b.key ORDER BY a.key LIMIT 10
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test_table1
- a
- TOK_TABREF
- TOK_TABNAME
- test_table2
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_LIMIT
- 10
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -312,61 +267,6 @@ POSTHOOK: query: -- it should be converted to a sort-merge join, since the first
EXPLAIN EXTENDED
SELECT /*+mapjoin(b)*/ * FROM test_table1 a JOIN test_table2 b ON a.key = b.key and a.key2 = b.key2 ORDER BY a.key LIMIT 10
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test_table1
- a
- TOK_TABREF
- TOK_TABNAME
- test_table2
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- key2
- .
- TOK_TABLE_OR_COL
- b
- key2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_LIMIT
- 10
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -534,61 +434,6 @@ POSTHOOK: query: -- it should be converted to a sort-merge join, since the first
EXPLAIN EXTENDED
SELECT /*+mapjoin(b)*/ * FROM test_table1 a JOIN test_table2 b ON a.key2 = b.key2 and a.key = b.key ORDER BY a.key LIMIT 10
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test_table1
- a
- TOK_TABREF
- TOK_TABNAME
- test_table2
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key2
- .
- TOK_TABLE_OR_COL
- b
- key2
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_LIMIT
- 10
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -756,61 +601,6 @@ POSTHOOK: query: -- it should not be converted to a sort-merge join, since the f
EXPLAIN EXTENDED
SELECT /*+mapjoin(b)*/ * FROM test_table1 a JOIN test_table2 b ON a.key = b.key and a.value = b.value ORDER BY a.key LIMIT 10
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test_table1
- a
- TOK_TABREF
- TOK_TABNAME
- test_table2
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- value
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_LIMIT
- 10
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/stats0.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/stats0.q.out b/ql/src/test/results/clientpositive/spark/stats0.q.out
index 6f881b4..e741320 100644
--- a/ql/src/test/results/clientpositive/spark/stats0.q.out
+++ b/ql/src/test/results/clientpositive/spark/stats0.q.out
@@ -14,23 +14,6 @@ POSTHOOK: query: explain extended
insert overwrite table stats_non_partitioned
select * from src
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- stats_non_partitioned
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1335,23 +1318,6 @@ POSTHOOK: query: explain extended
insert overwrite table stats_non_partitioned
select * from src
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- stats_non_partitioned
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/stats12.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/stats12.q.out b/ql/src/test/results/clientpositive/spark/stats12.q.out
index 64079ef..a321e3f 100644
--- a/ql/src/test/results/clientpositive/spark/stats12.q.out
+++ b/ql/src/test/results/clientpositive/spark/stats12.q.out
@@ -39,20 +39,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
analyze table analyze_srcpart PARTITION(ds='2008-04-08',hr) compute statistics
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_ANALYZE
- TOK_TAB
- TOK_TABNAME
- analyze_srcpart
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2008-04-08'
- TOK_PARTVAL
- hr
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
Stage-1 depends on stages: Stage-0
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/stats13.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/stats13.q.out b/ql/src/test/results/clientpositive/spark/stats13.q.out
index 9355b70..c4778c9 100644
--- a/ql/src/test/results/clientpositive/spark/stats13.q.out
+++ b/ql/src/test/results/clientpositive/spark/stats13.q.out
@@ -39,21 +39,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
analyze table analyze_srcpart PARTITION(ds='2008-04-08',hr=11) compute statistics
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_ANALYZE
- TOK_TAB
- TOK_TABNAME
- analyze_srcpart
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2008-04-08'
- TOK_PARTVAL
- hr
- 11
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
Stage-1 depends on stages: Stage-0
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/stats3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/stats3.q.out b/ql/src/test/results/clientpositive/spark/stats3.q.out
index 0d8cbbd..4dbda94 100644
--- a/ql/src/test/results/clientpositive/spark/stats3.q.out
+++ b/ql/src/test/results/clientpositive/spark/stats3.q.out
@@ -20,17 +20,6 @@ PREHOOK: type: LOAD
POSTHOOK: query: explain extended
load data local inpath '../../data/files/test.dat' overwrite into table hive_test_src
POSTHOOK: type: LOAD
-ABSTRACT SYNTAX TREE:
-
-TOK_LOAD
- '../../data/files/test.dat'
- TOK_TAB
- TOK_TABNAME
- hive_test_src
- local
- overwrite
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
Stage-1 depends on stages: Stage-0
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/transform_ppr1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/transform_ppr1.q.out b/ql/src/test/results/clientpositive/spark/transform_ppr1.q.out
index 8b8bff6..57cb338 100644
--- a/ql/src/test/results/clientpositive/spark/transform_ppr1.q.out
+++ b/ql/src/test/results/clientpositive/spark/transform_ppr1.q.out
@@ -20,81 +20,6 @@ FROM (
) tmap
SELECT tmap.tkey, tmap.tvalue WHERE tmap.tkey < 100 AND tmap.ds = '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TRANSFORM
- TOK_EXPLIST
- .
- TOK_TABLE_OR_COL
- src
- ds
- .
- TOK_TABLE_OR_COL
- src
- key
- .
- TOK_TABLE_OR_COL
- src
- value
- TOK_SERDE
- TOK_RECORDWRITER
- 'cat'
- TOK_SERDE
- TOK_RECORDREADER
- TOK_ALIASLIST
- ds
- tkey
- tvalue
- TOK_CLUSTERBY
- TOK_TABLE_OR_COL
- tkey
- tmap
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- tmap
- tkey
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- tmap
- tvalue
- TOK_WHERE
- AND
- <
- .
- TOK_TABLE_OR_COL
- tmap
- tkey
- 100
- =
- .
- TOK_TABLE_OR_COL
- tmap
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/transform_ppr2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/transform_ppr2.q.out b/ql/src/test/results/clientpositive/spark/transform_ppr2.q.out
index 33f0d3e..2dfbd1c 100644
--- a/ql/src/test/results/clientpositive/spark/transform_ppr2.q.out
+++ b/ql/src/test/results/clientpositive/spark/transform_ppr2.q.out
@@ -22,81 +22,6 @@ FROM (
) tmap
SELECT tmap.tkey, tmap.tvalue WHERE tmap.tkey < 100
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TRANSFORM
- TOK_EXPLIST
- .
- TOK_TABLE_OR_COL
- src
- ds
- .
- TOK_TABLE_OR_COL
- src
- key
- .
- TOK_TABLE_OR_COL
- src
- value
- TOK_SERDE
- TOK_RECORDWRITER
- 'cat'
- TOK_SERDE
- TOK_RECORDREADER
- TOK_ALIASLIST
- ds
- tkey
- tvalue
- TOK_WHERE
- =
- .
- TOK_TABLE_OR_COL
- src
- ds
- '2008-04-08'
- TOK_CLUSTERBY
- TOK_TABLE_OR_COL
- tkey
- tmap
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- tmap
- tkey
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- tmap
- tvalue
- TOK_WHERE
- <
- .
- TOK_TABLE_OR_COL
- tmap
- tkey
- 100
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/union22.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/union22.q.out b/ql/src/test/results/clientpositive/spark/union22.q.out
index cc3c557..e76d51e 100644
--- a/ql/src/test/results/clientpositive/spark/union22.q.out
+++ b/ql/src/test/results/clientpositive/spark/union22.q.out
@@ -78,146 +78,6 @@ where a.k1 > 20
)
subq
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- dst_union22_delta
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- k1
- k1
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- k2
- k2
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- k3
- k3
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- k4
- k4
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- ds
- '1'
- <=
- TOK_TABLE_OR_COL
- k0
- 50
- TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- dst_union22
- a
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- dst_union22_delta
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- ds
- '1'
- >
- TOK_TABLE_OR_COL
- k0
- 50
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- k1
- .
- TOK_TABLE_OR_COL
- b
- k1
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '1'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- k1
- k1
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- k2
- k2
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- k3
- k3
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- k4
- k4
- TOK_WHERE
- >
- .
- TOK_TABLE_OR_COL
- a
- k1
- 20
- subq
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dst_union22
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2'
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
[02/50] [abbrv] hive git commit: HIVE-13407 : Add more subtlety to
TezCompiler Perf Logging (Hari Sankar Subramaniyan via Ashutosh Chauhan)
Posted by jd...@apache.org.
HIVE-13407 : Add more subtlety to TezCompiler Perf Logging (Hari Sankar Subramaniyan via Ashutosh Chauhan)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/a2b7b4d9
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/a2b7b4d9
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/a2b7b4d9
Branch: refs/heads/llap
Commit: a2b7b4d9dca82aa599b4b15fa7927f1d6403da79
Parents: 0ef92b2
Author: Hari Subramaniyan <ha...@apache.org>
Authored: Thu Apr 21 13:57:00 2016 -0800
Committer: Ashutosh Chauhan <ha...@apache.org>
Committed: Fri Apr 22 17:57:20 2016 -0700
----------------------------------------------------------------------
.../apache/hadoop/hive/ql/log/PerfLogger.java | 1 +
.../apache/hadoop/hive/ql/parse/TezCompiler.java | 19 ++++++++++++++-----
2 files changed, 15 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/a2b7b4d9/common/src/java/org/apache/hadoop/hive/ql/log/PerfLogger.java
----------------------------------------------------------------------
diff --git a/common/src/java/org/apache/hadoop/hive/ql/log/PerfLogger.java b/common/src/java/org/apache/hadoop/hive/ql/log/PerfLogger.java
index 6f9347c..87b82f8 100644
--- a/common/src/java/org/apache/hadoop/hive/ql/log/PerfLogger.java
+++ b/common/src/java/org/apache/hadoop/hive/ql/log/PerfLogger.java
@@ -63,6 +63,7 @@ public class PerfLogger {
public static final String FAILURE_HOOK = "FailureHook.";
public static final String DRIVER_RUN = "Driver.run";
public static final String TIME_TO_SUBMIT = "TimeToSubmit";
+ public static final String TEZ_COMPILER = "TezCompiler";
public static final String TEZ_SUBMIT_TO_RUNNING = "TezSubmitToRunningDag";
public static final String TEZ_BUILD_DAG = "TezBuildDag";
public static final String TEZ_SUBMIT_DAG = "TezSubmitDag";
http://git-wip-us.apache.org/repos/asf/hive/blob/a2b7b4d9/ql/src/java/org/apache/hadoop/hive/ql/parse/TezCompiler.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/TezCompiler.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/TezCompiler.java
index ff971ac..8e67ce8 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/TezCompiler.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/TezCompiler.java
@@ -115,23 +115,28 @@ public class TezCompiler extends TaskCompiler {
protected void optimizeOperatorPlan(ParseContext pCtx, Set<ReadEntity> inputs,
Set<WriteEntity> outputs) throws SemanticException {
PerfLogger perfLogger = SessionState.getPerfLogger();
- perfLogger.PerfLogBegin(this.getClass().getName(), PerfLogger.OPTIMIZER);
// Create the context for the walker
OptimizeTezProcContext procCtx = new OptimizeTezProcContext(conf, pCtx, inputs, outputs);
-
+ perfLogger.PerfLogBegin(this.getClass().getName(), PerfLogger.TEZ_COMPILER);
// setup dynamic partition pruning where possible
runDynamicPartitionPruning(procCtx, inputs, outputs);
+ perfLogger.PerfLogEnd(this.getClass().getName(), PerfLogger.TEZ_COMPILER, "Setup dynamic partition pruning");
+ perfLogger.PerfLogBegin(this.getClass().getName(), PerfLogger.TEZ_COMPILER);
// setup stats in the operator plan
runStatsAnnotation(procCtx);
+ perfLogger.PerfLogEnd(this.getClass().getName(), PerfLogger.TEZ_COMPILER, "Setup stats in the operator plan");
+ perfLogger.PerfLogBegin(this.getClass().getName(), PerfLogger.TEZ_COMPILER);
// run the optimizations that use stats for optimization
runStatsDependentOptimizations(procCtx, inputs, outputs);
+ perfLogger.PerfLogEnd(this.getClass().getName(), PerfLogger.TEZ_COMPILER, "Run the optimizations that use stats for optimization");
+ perfLogger.PerfLogBegin(this.getClass().getName(), PerfLogger.TEZ_COMPILER);
// after the stats phase we might have some cyclic dependencies that we need
// to take care of.
runCycleAnalysisForPartitionPruning(procCtx, inputs, outputs);
- perfLogger.PerfLogEnd(this.getClass().getName(), PerfLogger.OPTIMIZER, "Tez compiler");
+ perfLogger.PerfLogEnd(this.getClass().getName(), PerfLogger.TEZ_COMPILER, "Run cycle analysis for partition pruning");
}
@@ -323,7 +328,8 @@ public class TezCompiler extends TaskCompiler {
List<Task<MoveWork>> mvTask, Set<ReadEntity> inputs, Set<WriteEntity> outputs)
throws SemanticException {
-
+ PerfLogger perfLogger = SessionState.getPerfLogger();
+ perfLogger.PerfLogBegin(this.getClass().getName(), PerfLogger.TEZ_COMPILER);
ParseContext tempParseContext = getParseContext(pCtx, rootTasks);
GenTezUtils utils = new GenTezUtils();
GenTezWork genTezWork = new GenTezWork(utils);
@@ -389,6 +395,7 @@ public class TezCompiler extends TaskCompiler {
LOG.debug("Handling AppMasterEventOperator: " + event);
GenTezUtils.processAppMasterEvent(procCtx, event);
}
+ perfLogger.PerfLogEnd(this.getClass().getName(), PerfLogger.TEZ_COMPILER, "generateTaskTree");
}
@Override
@@ -449,6 +456,8 @@ public class TezCompiler extends TaskCompiler {
@Override
protected void optimizeTaskPlan(List<Task<? extends Serializable>> rootTasks, ParseContext pCtx,
Context ctx) throws SemanticException {
+ PerfLogger perfLogger = SessionState.getPerfLogger();
+ perfLogger.PerfLogBegin(this.getClass().getName(), PerfLogger.TEZ_COMPILER);
PhysicalContext physicalCtx = new PhysicalContext(conf, pCtx, pCtx.getContext(), rootTasks,
pCtx.getFetchTask());
@@ -498,7 +507,7 @@ public class TezCompiler extends TaskCompiler {
// the backend. If you have a physical optimization that changes
// table scans or filters, you have to invoke it before this one.
physicalCtx = new SerializeFilter().resolve(physicalCtx);
-
+ perfLogger.PerfLogEnd(this.getClass().getName(), PerfLogger.TEZ_COMPILER, "optimizeTaskPlan");
return;
}
}
[17/50] [abbrv] hive git commit: HIVE-13533: Remove AST dump (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/join35.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/join35.q.out b/ql/src/test/results/clientpositive/spark/join35.q.out
index 60ceca0..7f9aa24 100644
--- a/ql/src/test/results/clientpositive/spark/join35.q.out
+++ b/ql/src/test/results/clientpositive/spark/join35.q.out
@@ -34,118 +34,6 @@ FROM
) subq1
JOIN src1 x ON (x.key = subq1.key)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- x
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- key
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- cnt
- TOK_WHERE
- <
- .
- TOK_TABLE_OR_COL
- x
- key
- 20
- TOK_GROUPBY
- .
- TOK_TABLE_OR_COL
- x
- key
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- x1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x1
- key
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- cnt
- TOK_WHERE
- >
- .
- TOK_TABLE_OR_COL
- x1
- key
- 100
- TOK_GROUPBY
- .
- TOK_TABLE_OR_COL
- x1
- key
- subq1
- TOK_TABREF
- TOK_TABNAME
- src1
- x
- =
- .
- TOK_TABLE_OR_COL
- x
- key
- .
- TOK_TABLE_OR_COL
- subq1
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest_j1
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- subq1
- cnt
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/join9.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/join9.q.out b/ql/src/test/results/clientpositive/spark/join9.q.out
index 5f26aaf..714302e 100644
--- a/ql/src/test/results/clientpositive/spark/join9.q.out
+++ b/ql/src/test/results/clientpositive/spark/join9.q.out
@@ -18,60 +18,6 @@ POSTHOOK: query: EXPLAIN EXTENDED
FROM srcpart src1 JOIN src src2 ON (src1.key = src2.key)
INSERT OVERWRITE TABLE dest1 SELECT src1.key, src2.value where src1.ds = '2008-04-08' and src1.hr = '12'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcpart
- src1
- TOK_TABREF
- TOK_TABNAME
- src
- src2
- =
- .
- TOK_TABLE_OR_COL
- src1
- key
- .
- TOK_TABLE_OR_COL
- src2
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest1
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- src1
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- src2
- value
- TOK_WHERE
- and
- =
- .
- TOK_TABLE_OR_COL
- src1
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- src1
- hr
- '12'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/join_filters_overlap.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/join_filters_overlap.q.out b/ql/src/test/results/clientpositive/spark/join_filters_overlap.q.out
index cde7213..2d5d7c1 100644
--- a/ql/src/test/results/clientpositive/spark/join_filters_overlap.q.out
+++ b/ql/src/test/results/clientpositive/spark/join_filters_overlap.q.out
@@ -22,78 +22,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- overlap on a
explain extended select * from a left outer join a b on (a.key=b.key AND a.value=50 AND b.value=50) left outer join a c on (a.key=c.key AND a.value=60 AND c.value=60)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_LEFTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- a
- TOK_TABREF
- TOK_TABNAME
- a
- b
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- value
- 50
- =
- .
- TOK_TABLE_OR_COL
- b
- value
- 50
- TOK_TABREF
- TOK_TABNAME
- a
- c
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- c
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- value
- 60
- =
- .
- TOK_TABLE_OR_COL
- c
- value
- 60
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -393,78 +321,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- overlap on b
explain extended select * from a right outer join a b on (a.key=b.key AND a.value=50 AND b.value=50) left outer join a c on (b.key=c.key AND b.value=60 AND c.value=60)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_RIGHTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- a
- TOK_TABREF
- TOK_TABNAME
- a
- b
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- value
- 50
- =
- .
- TOK_TABLE_OR_COL
- b
- value
- 50
- TOK_TABREF
- TOK_TABNAME
- a
- c
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- b
- key
- .
- TOK_TABLE_OR_COL
- c
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- value
- 60
- =
- .
- TOK_TABLE_OR_COL
- c
- value
- 60
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -764,92 +620,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- overlap on b with two filters for each
explain extended select * from a right outer join a b on (a.key=b.key AND a.value=50 AND b.value=50 AND b.value>10) left outer join a c on (b.key=c.key AND b.value=60 AND b.value>20 AND c.value=60)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_RIGHTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- a
- TOK_TABREF
- TOK_TABNAME
- a
- b
- AND
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- value
- 50
- =
- .
- TOK_TABLE_OR_COL
- b
- value
- 50
- >
- .
- TOK_TABLE_OR_COL
- b
- value
- 10
- TOK_TABREF
- TOK_TABNAME
- a
- c
- AND
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- b
- key
- .
- TOK_TABLE_OR_COL
- c
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- value
- 60
- >
- .
- TOK_TABLE_OR_COL
- b
- value
- 20
- =
- .
- TOK_TABLE_OR_COL
- c
- value
- 60
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1149,106 +919,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- overlap on a, b
explain extended select * from a full outer join a b on (a.key=b.key AND a.value=50 AND b.value=50) left outer join a c on (b.key=c.key AND b.value=60 AND c.value=60) left outer join a d on (a.key=d.key AND a.value=40 AND d.value=40)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_LEFTOUTERJOIN
- TOK_FULLOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- a
- TOK_TABREF
- TOK_TABNAME
- a
- b
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- value
- 50
- =
- .
- TOK_TABLE_OR_COL
- b
- value
- 50
- TOK_TABREF
- TOK_TABNAME
- a
- c
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- b
- key
- .
- TOK_TABLE_OR_COL
- c
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- value
- 60
- =
- .
- TOK_TABLE_OR_COL
- c
- value
- 60
- TOK_TABREF
- TOK_TABNAME
- a
- d
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- d
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- value
- 40
- =
- .
- TOK_TABLE_OR_COL
- d
- value
- 40
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1611,106 +1281,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- triple overlap on a
explain extended select * from a left outer join a b on (a.key=b.key AND a.value=50 AND b.value=50) left outer join a c on (a.key=c.key AND a.value=60 AND c.value=60) left outer join a d on (a.key=d.key AND a.value=40 AND d.value=40)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_LEFTOUTERJOIN
- TOK_LEFTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- a
- TOK_TABREF
- TOK_TABNAME
- a
- b
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- value
- 50
- =
- .
- TOK_TABLE_OR_COL
- b
- value
- 50
- TOK_TABREF
- TOK_TABNAME
- a
- c
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- c
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- value
- 60
- =
- .
- TOK_TABLE_OR_COL
- c
- value
- 60
- TOK_TABREF
- TOK_TABNAME
- a
- d
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- d
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- value
- 40
- =
- .
- TOK_TABLE_OR_COL
- d
- value
- 40
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/join_map_ppr.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/join_map_ppr.q.out b/ql/src/test/results/clientpositive/spark/join_map_ppr.q.out
index 8e28715..9341862 100644
--- a/ql/src/test/results/clientpositive/spark/join_map_ppr.q.out
+++ b/ql/src/test/results/clientpositive/spark/join_map_ppr.q.out
@@ -24,85 +24,6 @@ FROM src1 x JOIN src y ON (x.key = y.key)
JOIN srcpart z ON (x.key = z.key)
WHERE z.ds='2008-04-08' and z.hr=11
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src1
- x
- TOK_TABREF
- TOK_TABNAME
- src
- y
- =
- .
- TOK_TABLE_OR_COL
- x
- key
- .
- TOK_TABLE_OR_COL
- y
- key
- TOK_TABREF
- TOK_TABNAME
- srcpart
- z
- =
- .
- TOK_TABLE_OR_COL
- x
- key
- .
- TOK_TABLE_OR_COL
- z
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest_j1
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- x
- y
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- z
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- y
- value
- TOK_WHERE
- and
- =
- .
- TOK_TABLE_OR_COL
- z
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- z
- hr
- 11
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -577,85 +498,6 @@ FROM src1_copy x JOIN src_copy y ON (x.key = y.key)
JOIN srcpart z ON (x.key = z.key)
WHERE z.ds='2008-04-08' and z.hr=11
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src1_copy
- x
- TOK_TABREF
- TOK_TABNAME
- src_copy
- y
- =
- .
- TOK_TABLE_OR_COL
- x
- key
- .
- TOK_TABLE_OR_COL
- y
- key
- TOK_TABREF
- TOK_TABNAME
- srcpart
- z
- =
- .
- TOK_TABLE_OR_COL
- x
- key
- .
- TOK_TABLE_OR_COL
- z
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest_j1
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- x
- y
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- z
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- y
- value
- TOK_WHERE
- and
- =
- .
- TOK_TABLE_OR_COL
- z
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- z
- hr
- 11
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/list_bucket_dml_10.q.java1.7.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/list_bucket_dml_10.q.java1.7.out b/ql/src/test/results/clientpositive/spark/list_bucket_dml_10.q.java1.7.out
index 6b3c375..3040544 100644
--- a/ql/src/test/results/clientpositive/spark/list_bucket_dml_10.q.java1.7.out
+++ b/ql/src/test/results/clientpositive/spark/list_bucket_dml_10.q.java1.7.out
@@ -54,34 +54,6 @@ explain extended
insert overwrite table list_bucketing_static_part partition (ds = '2008-04-08', hr = '11')
select key, value from src
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- list_bucketing_static_part
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2008-04-08'
- TOK_PARTVAL
- hr
- '11'
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/list_bucket_dml_2.q.java1.7.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/list_bucket_dml_2.q.java1.7.out b/ql/src/test/results/clientpositive/spark/list_bucket_dml_2.q.java1.7.out
index ab218c3..d8da70c 100644
--- a/ql/src/test/results/clientpositive/spark/list_bucket_dml_2.q.java1.7.out
+++ b/ql/src/test/results/clientpositive/spark/list_bucket_dml_2.q.java1.7.out
@@ -56,39 +56,6 @@ explain extended
insert overwrite table list_bucketing_static_part partition (ds = '2008-04-08', hr = '11')
select key, value from srcpart where ds = '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- list_bucketing_static_part
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2008-04-08'
- TOK_PARTVAL
- hr
- '11'
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -368,42 +335,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from list_bucketing_static_part where ds = '2008-04-08' and hr = '11' and key = '484' and value = 'val_484'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- list_bucketing_static_part
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- and
- and
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
- =
- TOK_TABLE_OR_COL
- hr
- '11'
- =
- TOK_TABLE_OR_COL
- key
- '484'
- =
- TOK_TABLE_OR_COL
- value
- 'val_484'
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/load_dyn_part8.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/load_dyn_part8.q.out b/ql/src/test/results/clientpositive/spark/load_dyn_part8.q.out
index 8d6fe33..b528357 100644
--- a/ql/src/test/results/clientpositive/spark/load_dyn_part8.q.out
+++ b/ql/src/test/results/clientpositive/spark/load_dyn_part8.q.out
@@ -48,69 +48,6 @@ from srcpart
insert overwrite table nzhang_part8 partition (ds, hr) select key, value, ds, hr where ds <= '2008-04-08'
insert overwrite table nzhang_part8 partition(ds='2008-12-31', hr) select key, value, hr where ds > '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- nzhang_part8
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- TOK_PARTVAL
- hr
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- hr
- TOK_WHERE
- <=
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- nzhang_part8
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2008-12-31'
- TOK_PARTVAL
- hr
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- hr
- TOK_WHERE
- >
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-0 depends on stages: Stage-2
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/louter_join_ppr.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/louter_join_ppr.q.out b/ql/src/test/results/clientpositive/spark/louter_join_ppr.q.out
index f9225d7..3d90dc4 100644
--- a/ql/src/test/results/clientpositive/spark/louter_join_ppr.q.out
+++ b/ql/src/test/results/clientpositive/spark/louter_join_ppr.q.out
@@ -20,90 +20,6 @@ EXPLAIN EXTENDED
SELECT a.key, a.value, b.key, b.value
WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- src
- a
- TOK_TABREF
- TOK_TABNAME
- srcpart
- b
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- '2008-04-08'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- AND
- AND
- AND
- >
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 20
- >
- .
- TOK_TABLE_OR_COL
- b
- key
- 15
- <
- .
- TOK_TABLE_OR_COL
- b
- key
- 25
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -408,90 +324,6 @@ POSTHOOK: query: EXPLAIN EXTENDED
SELECT a.key, a.value, b.key, b.value
WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- srcpart
- a
- TOK_TABREF
- TOK_TABNAME
- src
- b
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '2008-04-08'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- AND
- AND
- AND
- >
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 20
- >
- .
- TOK_TABLE_OR_COL
- b
- key
- 15
- <
- .
- TOK_TABLE_OR_COL
- b
- key
- 25
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -903,90 +735,6 @@ POSTHOOK: query: EXPLAIN EXTENDED
SELECT a.key, a.value, b.key, b.value
WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 AND b.ds = '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- src
- a
- TOK_TABREF
- TOK_TABNAME
- srcpart
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- AND
- AND
- AND
- AND
- >
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 20
- >
- .
- TOK_TABLE_OR_COL
- b
- key
- 15
- <
- .
- TOK_TABLE_OR_COL
- b
- key
- 25
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1287,90 +1035,6 @@ POSTHOOK: query: EXPLAIN EXTENDED
SELECT a.key, a.value, b.key, b.value
WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 AND a.ds = '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- srcpart
- a
- TOK_TABREF
- TOK_TABNAME
- src
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- AND
- AND
- AND
- AND
- >
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 20
- >
- .
- TOK_TABLE_OR_COL
- b
- key
- 15
- <
- .
- TOK_TABLE_OR_COL
- b
- key
- 25
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/mapjoin_mapjoin.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/mapjoin_mapjoin.q.out b/ql/src/test/results/clientpositive/spark/mapjoin_mapjoin.q.out
index fcc1dc2..aea47f7 100644
--- a/ql/src/test/results/clientpositive/spark/mapjoin_mapjoin.q.out
+++ b/ql/src/test/results/clientpositive/spark/mapjoin_mapjoin.q.out
@@ -10,51 +10,6 @@ POSTHOOK: query: -- Since the inputs are small, it should be automatically conve
explain extended select srcpart.key from srcpart join src on (srcpart.value=src.value) join src1 on (srcpart.key=src1.key)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_TABREF
- TOK_TABNAME
- src
- =
- .
- TOK_TABLE_OR_COL
- srcpart
- value
- .
- TOK_TABLE_OR_COL
- src
- value
- TOK_TABREF
- TOK_TABNAME
- src1
- =
- .
- TOK_TABLE_OR_COL
- srcpart
- key
- .
- TOK_TABLE_OR_COL
- src1
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- key
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/optimize_nullscan.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/optimize_nullscan.q.out b/ql/src/test/results/clientpositive/spark/optimize_nullscan.q.out
index 2d15f65..4aecb73 100644
--- a/ql/src/test/results/clientpositive/spark/optimize_nullscan.q.out
+++ b/ql/src/test/results/clientpositive/spark/optimize_nullscan.q.out
@@ -14,25 +14,6 @@ POSTHOOK: query: -- SORT_QUERY_RESULTS
explain extended
select key from src where false
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_WHERE
- false
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -66,32 +47,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select count(key) from srcpart where 1=2 group by key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- count
- TOK_TABLE_OR_COL
- key
- TOK_WHERE
- =
- 1
- 2
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -184,63 +139,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from (select key from src where false) a left outer join (select key from srcpart limit 0) b on a.key=b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_WHERE
- false
- a
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_LIMIT
- 0
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -616,54 +514,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select count(key) from src where false union all select count(key) from srcpart
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- count
- TOK_TABLE_OR_COL
- key
- TOK_WHERE
- false
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- count
- TOK_TABLE_OR_COL
- key
- _u1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1054,54 +904,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from (select key from src where false) a left outer join (select value from srcpart limit 0) b
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_WHERE
- false
- a
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_LIMIT
- 0
- b
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1476,65 +1278,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from (select key from src union all select src.key from src left outer join srcpart on src.key = srcpart.key) a where false
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_TABREF
- TOK_TABNAME
- srcpart
- =
- .
- TOK_TABLE_OR_COL
- src
- key
- .
- TOK_TABLE_OR_COL
- srcpart
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- src
- key
- a
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- false
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1768,40 +1511,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from src s1, src s2 where false and s1.value = s2.value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src
- s1
- TOK_TABREF
- TOK_TABNAME
- src
- s2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- false
- =
- .
- TOK_TABLE_OR_COL
- s1
- value
- .
- TOK_TABLE_OR_COL
- s2
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2005,28 +1714,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select count(1) from src where null = 1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_WHERE
- =
- TOK_NULL
- 1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/outer_join_ppr.q.java1.7.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/outer_join_ppr.q.java1.7.out b/ql/src/test/results/clientpositive/spark/outer_join_ppr.q.java1.7.out
index 9b1a503..68943e1 100644
--- a/ql/src/test/results/clientpositive/spark/outer_join_ppr.q.java1.7.out
+++ b/ql/src/test/results/clientpositive/spark/outer_join_ppr.q.java1.7.out
@@ -22,90 +22,6 @@ EXPLAIN EXTENDED
SELECT a.key, a.value, b.key, b.value
WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_FULLOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- src
- a
- TOK_TABREF
- TOK_TABNAME
- srcpart
- b
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- '2008-04-08'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- AND
- AND
- AND
- >
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 20
- >
- .
- TOK_TABLE_OR_COL
- b
- key
- 15
- <
- .
- TOK_TABLE_OR_COL
- b
- key
- 25
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -505,90 +421,6 @@ POSTHOOK: query: EXPLAIN EXTENDED
SELECT a.key, a.value, b.key, b.value
WHERE a.key > 10 AND a.key < 20 AND b.key > 15 AND b.key < 25 AND b.ds = '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_FULLOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- src
- a
- TOK_TABREF
- TOK_TABNAME
- srcpart
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- AND
- AND
- AND
- AND
- >
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 20
- >
- .
- TOK_TABLE_OR_COL
- b
- key
- 15
- <
- .
- TOK_TABLE_OR_COL
- b
- key
- 25
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/pcr.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/pcr.q.out b/ql/src/test/results/clientpositive/spark/pcr.q.out
index 6345eff..3dd2147 100644
--- a/ql/src/test/results/clientpositive/spark/pcr.q.out
+++ b/ql/src/test/results/clientpositive/spark/pcr.q.out
@@ -52,48 +52,6 @@ PREHOOK: query: explain extended select key, value, ds from pcr_t1 where ds<='20
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select key, value, ds from pcr_t1 where ds<='2000-04-09' and key<5 order by key, ds
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_WHERE
- and
- <=
- TOK_TABLE_OR_COL
- ds
- '2000-04-09'
- <
- TOK_TABLE_OR_COL
- key
- 5
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -285,41 +243,6 @@ PREHOOK: query: explain extended select key, value from pcr_t1 where ds<='2000-0
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select key, value from pcr_t1 where ds<='2000-04-09' or key<5 order by key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- or
- <=
- TOK_TABLE_OR_COL
- ds
- '2000-04-09'
- <
- TOK_TABLE_OR_COL
- key
- 5
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -594,53 +517,6 @@ PREHOOK: query: explain extended select key, value, ds from pcr_t1 where ds<='20
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select key, value, ds from pcr_t1 where ds<='2000-04-09' and key<5 and value != 'val_2' order by key, ds
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_WHERE
- and
- and
- <=
- TOK_TABLE_OR_COL
- ds
- '2000-04-09'
- <
- TOK_TABLE_OR_COL
- key
- 5
- !=
- TOK_TABLE_OR_COL
- value
- 'val_2'
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -834,58 +710,6 @@ POSTHOOK: query: explain extended
select key, value, ds from pcr_t1
where (ds < '2000-04-09' and key < 5) or (ds > '2000-04-09' and value == 'val_5') order by key, ds
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_WHERE
- or
- and
- <
- TOK_TABLE_OR_COL
- ds
- '2000-04-09'
- <
- TOK_TABLE_OR_COL
- key
- 5
- and
- >
- TOK_TABLE_OR_COL
- ds
- '2000-04-09'
- ==
- TOK_TABLE_OR_COL
- value
- 'val_5'
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1081,58 +905,6 @@ POSTHOOK: query: explain extended
select key, value, ds from pcr_t1
where (ds < '2000-04-10' and key < 5) or (ds > '2000-04-08' and value == 'val_5') order by key, ds
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_WHERE
- or
- and
- <
- TOK_TABLE_OR_COL
- ds
- '2000-04-10'
- <
- TOK_TABLE_OR_COL
- key
- 5
- and
- >
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
- ==
- TOK_TABLE_OR_COL
- value
- 'val_5'
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1384,58 +1156,6 @@ POSTHOOK: query: explain extended
select key, value, ds from pcr_t1
where (ds < '2000-04-10' or key < 5) and (ds > '2000-04-08' or value == 'val_5') order by key, ds
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_WHERE
- and
- or
- <
- TOK_TABLE_OR_COL
- ds
- '2000-04-10'
- <
- TOK_TABLE_OR_COL
- key
- 5
- or
- >
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
- ==
- TOK_TABLE_OR_COL
- value
- 'val_5'
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1695,50 +1415,6 @@ PREHOOK: query: explain extended select key, value from pcr_t1 where (ds='2000-0
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select key, value from pcr_t1 where (ds='2000-04-08' or ds='2000-04-09') and key=14 order by key, value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- and
- or
- =
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
- =
- TOK_TABLE_OR_COL
- ds
- '2000-04-09'
- =
- TOK_TABLE_OR_COL
- key
- 14
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1919,45 +1595,6 @@ PREHOOK: query: explain extended select key, value from pcr_t1 where ds='2000-04
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select key, value from pcr_t1 where ds='2000-04-08' or ds='2000-04-09' order by key, value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- or
- =
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
- =
- TOK_TABLE_OR_COL
- ds
- '2000-04-09'
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2174,45 +1811,6 @@ PREHOOK: query: explain extended select key, value from pcr_t1 where ds>='2000-0
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select key, value from pcr_t1 where ds>='2000-04-08' or ds<'2000-04-10' order by key, value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- or
- >=
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
- <
- TOK_TABLE_OR_COL
- ds
- '2000-04-10'
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2497,62 +2095,6 @@ PREHOOK: query: explain extended select key, value, ds from pcr_t1 where (ds='20
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select key, value, ds from pcr_t1 where (ds='2000-04-08' and key=1) or (ds='2000-04-09' and key=2) order by key, value, ds
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_WHERE
- or
- and
- =
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
- =
- TOK_TABLE_OR_COL
- key
- 1
- and
- =
- TOK_TABLE_OR_COL
- ds
- '2000-04-09'
- =
- TOK_TABLE_OR_COL
- key
- 2
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2734,58 +2276,6 @@ PREHOOK: query: explain extended select * from pcr_t1 t1 join pcr_t1 t2 on t1.ke
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select * from pcr_t1 t1 join pcr_t1 t2 on t1.key=t2.key and t1.ds='2000-04-08' and t2.ds='2000-04-08' order by t1.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- t1
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- t2
- and
- and
- =
- .
- TOK_TABLE_OR_COL
- t1
- key
- .
- TOK_TABLE_OR_COL
- t2
- key
- =
- .
- TOK_TABLE_OR_COL
- t1
- ds
- '2000-04-08'
- =
- .
- TOK_TABLE_OR_COL
- t2
- ds
- '2000-04-08'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- t1
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -3051,58 +2541,6 @@ PREHOOK: query: explain extended select * from pcr_t1 t1 join pcr_t1 t2 on t1.ke
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select * from pcr_t1 t1 join pcr_t1 t2 on t1.key=t2.key and t1.ds='2000-04-08' and t2.ds='2000-04-09' order by t1.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- t1
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- t2
- and
- and
- =
- .
- TOK_TABLE_OR_COL
- t1
- key
- .
- TOK_TABLE_OR_COL
- t2
- key
- =
- .
- TOK_TABLE_OR_COL
- t1
- ds
- '2000-04-08'
- =
- .
- TOK_TABLE_OR_COL
- t2
- ds
- '2000-04-09'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- t1
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -3380,67 +2818,6 @@ PREHOOK: query: explain extended select key, value, ds from pcr_t1 where (ds>'20
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select key, value, ds from pcr_t1 where (ds>'2000-04-08' and ds<'2000-04-11') or (ds>='2000-04-08' and ds<='2000-04-11' and key=2) order by key, value, ds
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_WHERE
- or
- and
- >
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
- <
- TOK_TABLE_OR_COL
- ds
- '2000-04-11'
- and
- and
- >=
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
- <=
- TOK_TABLE_OR_COL
- ds
- '2000-04-11'
- =
- TOK_TABLE_OR_COL
- key
- 2
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -3759,62 +3136,6 @@ PREHOOK: query: explain extended select key, value, ds from pcr_t1 where (ds>'20
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select key, value, ds from pcr_t1 where (ds>'2000-04-08' and ds<'2000-04-11') or (ds<='2000-04-09' and key=2) order by key, value, ds
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_WHERE
- or
- and
- >
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
- <
- TOK_TABLE_OR_COL
- ds
- '2000-04-11'
- and
- <=
- TOK_TABLE_OR_COL
- ds
- '2000-04-09'
- =
- TOK_TABLE_OR_COL
- key
- 2
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -4106,49 +3427,6 @@ from pcr_t1
insert overwrite table pcr_t2 select key, value where ds='2000-04-08'
insert overwrite table pcr_t3 select key, value where ds='2000-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- pcr_t2
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- pcr_t3
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-0 depends on stages: Stage-2
@@ -4360,59 +3638,6 @@ from pcr_t1
insert overwrite table pcr_t2 select key, value where ds='2000-04-08' and key=2
insert overwrite table pcr_t3 select key, value where ds='2000-04-08' and key=3
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- pcr_t2
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
- =
- TOK_TABLE_OR_COL
- key
- 2
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- pcr_t3
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
- =
- TOK_TABLE_OR_COL
- key
- 3
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-0 depends on stages: Stage-2
@@ -4646,43 +3871,6 @@ PREHOOK: query: explain extended select key, value from srcpart where ds='2008-0
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select key, value from srcpart where ds='2008-04-08' and hr=11 order by key limit 10
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
- =
- TOK_TABLE_OR_COL
- hr
- 11
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_LIMIT
- 10
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -4816,65 +4004,6 @@ PREHOOK: query: explain extended select key, value, ds, hr from srcpart where ds
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select key, value, ds, hr from srcpart where ds='2008-04-08' and (hr='11' or hr='12') and key=11 order by key, ds, hr
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- hr
- TOK_WHERE
- and
- and
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
- or
- =
- TOK_TABLE_OR_COL
- hr
- '11'
- =
- TOK_TABLE_OR_COL
- hr
- '12'
- =
- TOK_TABLE_OR_COL
- key
- 11
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- hr
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -5060,55 +4189,6 @@ PREHOOK: query: explain extended select key, value, ds, hr from srcpart where hr
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select key, value, ds, hr from srcpart where hr='11' and key=11 order by key, ds, hr
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- hr
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- hr
- '11'
- =
- TOK_TABLE_OR_COL
- key
- 11
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- hr
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
[12/50] [abbrv] hive git commit: HIVE-13533: Remove AST dump (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/tez/vectorized_ptf.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/tez/vectorized_ptf.q.out b/ql/src/test/results/clientpositive/tez/vectorized_ptf.q.out
index 3d1f22f..1365626 100644
--- a/ql/src/test/results/clientpositive/tez/vectorized_ptf.q.out
+++ b/ql/src/test/results/clientpositive/tez/vectorized_ptf.q.out
@@ -142,88 +142,6 @@ from noop(on part_orc
order by p_name
)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_retailprice
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -472,94 +390,6 @@ from noop (on (select p1.* from part_orc p1 join part_orc p2 on p1.p_partkey = p
distribute by j.p_mfgr
sort by j.p_name)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- part_orc
- p1
- TOK_TABREF
- TOK_TABNAME
- part_orc
- p2
- =
- .
- TOK_TABLE_OR_COL
- p1
- p_partkey
- .
- TOK_TABLE_OR_COL
- p2
- p_partkey
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- p1
- j
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- .
- TOK_TABLE_OR_COL
- j
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- j
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- -
- TOK_TABLE_OR_COL
- p_size
- TOK_FUNCTION
- lag
- TOK_TABLE_OR_COL
- p_size
- 1
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- deltaSz
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -883,40 +713,6 @@ from noop(on part_orc
partition by p_mfgr
order by p_name)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1112,89 +908,6 @@ from noop(on part_orc
order by p_name
) abc
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- abc
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_retailprice
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1449,93 +1162,6 @@ from noop(on part_orc
order by p_name
)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- -
- TOK_TABLE_OR_COL
- p_size
- TOK_FUNCTION
- lag
- TOK_TABLE_OR_COL
- p_size
- 1
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- deltaSz
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1793,100 +1419,6 @@ from noop(on part_orc
)
group by p_mfgr, p_name, p_size
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- -
- TOK_TABLE_OR_COL
- p_size
- TOK_FUNCTION
- lag
- TOK_TABLE_OR_COL
- p_size
- 1
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- deltaSz
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_TABLE_OR_COL
- p_size
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2146,50 +1678,6 @@ partition by p_mfgr
order by p_name
) abc join part_orc p1 on abc.p_partkey = p1.p_partkey
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_PTBLFUNCTION
- noop
- abc
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_TABREF
- TOK_TABNAME
- part_orc
- p1
- =
- .
- TOK_TABLE_OR_COL
- abc
- p_partkey
- .
- TOK_TABLE_OR_COL
- p1
- p_partkey
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- abc
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2473,50 +1961,6 @@ partition by p_mfgr
order by p_name
) abc on abc.p_partkey = p1.p_partkey
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- part_orc
- p1
- TOK_PTBLFUNCTION
- noop
- abc
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- =
- .
- TOK_TABLE_OR_COL
- abc
- p_partkey
- .
- TOK_TABLE_OR_COL
- p1
- p_partkey
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- abc
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2804,62 +2248,6 @@ from noopwithmap(on part_orc
partition by p_mfgr
order by p_name, p_size desc)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noopwithmap
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_TABSORTCOLNAMEDESC
- TOK_NULLS_LAST
- TOK_TABLE_OR_COL
- p_size
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_TABSORTCOLNAMEDESC
- TOK_NULLS_LAST
- TOK_TABLE_OR_COL
- p_size
- r
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -3107,88 +2495,6 @@ from noopwithmap(on part_orc
partition by p_mfgr
order by p_name)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noopwithmap
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_retailprice
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -3455,88 +2761,6 @@ from noop(on part_orc
partition by p_mfgr
order by p_name)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_retailprice
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -3789,96 +3013,6 @@ partition by p_mfgr
order by p_mfgr, p_name
)))
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noopwithmap
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_retailprice
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -4201,107 +3335,6 @@ order by p_name)
window w1 as (partition by p_mfgr order by p_name rows between 2 preceding and 2 following)
) sub1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_FUNCTION
- count
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- cd
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_retailprice
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_retailprice
- TOK_WINDOWSPEC
- w1
- s1
- window
- TOK_WINDOWDEF
- w1
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- 2
- following
- 2
- sub1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- sub1
- cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- sub1
- s1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -4558,182 +3591,6 @@ partition by p_mfgr
order by p_name
) abc join part_orc p1 on abc.p_partkey = p1.p_partkey
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_PTBLFUNCTION
- noop
- abc
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_TABREF
- TOK_TABNAME
- part_orc
- p1
- =
- .
- TOK_TABLE_OR_COL
- abc
- p_partkey
- .
- TOK_TABLE_OR_COL
- p1
- p_partkey
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- abc
- p_mfgr
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- abc
- p_name
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- .
- TOK_TABLE_OR_COL
- abc
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- abc
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- .
- TOK_TABLE_OR_COL
- abc
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- abc
- p_name
- dr
- TOK_SELEXPR
- TOK_FUNCTION
- count
- .
- TOK_TABLE_OR_COL
- abc
- p_name
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- .
- TOK_TABLE_OR_COL
- abc
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- abc
- p_name
- cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- abc
- p_retailprice
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- .
- TOK_TABLE_OR_COL
- abc
- p_retailprice
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- .
- TOK_TABLE_OR_COL
- abc
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- abc
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s1
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- abc
- p_size
- TOK_SELEXPR
- -
- .
- TOK_TABLE_OR_COL
- abc
- p_size
- TOK_FUNCTION
- lag
- .
- TOK_TABLE_OR_COL
- abc
- p_size
- 1
- .
- TOK_TABLE_OR_COL
- abc
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- .
- TOK_TABLE_OR_COL
- abc
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- abc
- p_name
- deltaSz
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -5093,40 +3950,6 @@ from noop(on part_orc
partition by p_mfgr
order by p_name)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECTDI
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -5356,65 +4179,6 @@ partition by p_mfgr
order by p_mfgr)
window w1 as ( partition by p_mfgr order by p_brand rows between 2 preceding and current row)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- mfgr_price_view
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_brand
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- s
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- s
- TOK_WINDOWSPEC
- w1
- s1
- window
- TOK_WINDOWDEF
- w1
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_brand
- TOK_WINDOWRANGE
- preceding
- 2
- current
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -5709,212 +4473,6 @@ cume_dist() over (distribute by p_mfgr sort by p_mfgr, p_name) as cud,
first_value(p_size, true) over w1 as fv1
window w1 as (distribute by p_mfgr sort by p_mfgr, p_name rows between 2 preceding and 2 following)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- part_4
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_retailprice
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- part_5
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- round
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWVALUES
- preceding
- 5
- current
- 1
- s2
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_FUNCTION
- cume_dist
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- cud
- TOK_SELEXPR
- TOK_FUNCTION
- first_value
- TOK_TABLE_OR_COL
- p_size
- true
- TOK_WINDOWSPEC
- w1
- fv1
- window
- TOK_WINDOWDEF
- w1
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- 2
- following
- 2
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-3 depends on stages: Stage-2
@@ -6439,115 +4997,6 @@ from noop(on
partition by p_mfgr,p_name
order by p_mfgr,p_name)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noopwithmap
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -6899,118 +5348,6 @@ from noop(on
partition by p_mfgr
order by p_mfgr )
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -7358,105 +5695,6 @@ from noop(on
partition by p_mfgr
order by p_mfgr))
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- s1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -7780,115 +6018,6 @@ from noopwithmap(on
partition by p_mfgr,p_name
order by p_mfgr,p_name)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noopwithmap
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -8255,151 +6384,6 @@ from noop(on
order by p_mfgr
))
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noopwithmap
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s1
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s2
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -8736,118 +6720,6 @@ from noopwithmap(on
order by p_mfgr, p_name)
))
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noopwithmap
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWVALUES
- preceding
- unbounded
- current
- s1
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWVALUES
- preceding
- unbounded
- current
- s2
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/transform_ppr1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/transform_ppr1.q.out b/ql/src/test/results/clientpositive/transform_ppr1.q.out
index a5c5dbe..8c58139 100644
--- a/ql/src/test/results/clientpositive/transform_ppr1.q.out
+++ b/ql/src/test/results/clientpositive/transform_ppr1.q.out
@@ -20,81 +20,6 @@ FROM (
) tmap
SELECT tmap.tkey, tmap.tvalue WHERE tmap.tkey < 100 AND tmap.ds = '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TRANSFORM
- TOK_EXPLIST
- .
- TOK_TABLE_OR_COL
- src
- ds
- .
- TOK_TABLE_OR_COL
- src
- key
- .
- TOK_TABLE_OR_COL
- src
- value
- TOK_SERDE
- TOK_RECORDWRITER
- 'cat'
- TOK_SERDE
- TOK_RECORDREADER
- TOK_ALIASLIST
- ds
- tkey
- tvalue
- TOK_CLUSTERBY
- TOK_TABLE_OR_COL
- tkey
- tmap
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- tmap
- tkey
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- tmap
- tvalue
- TOK_WHERE
- AND
- <
- .
- TOK_TABLE_OR_COL
- tmap
- tkey
- 100
- =
- .
- TOK_TABLE_OR_COL
- tmap
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/transform_ppr2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/transform_ppr2.q.out b/ql/src/test/results/clientpositive/transform_ppr2.q.out
index 5224787..8e36abd 100644
--- a/ql/src/test/results/clientpositive/transform_ppr2.q.out
+++ b/ql/src/test/results/clientpositive/transform_ppr2.q.out
@@ -22,81 +22,6 @@ FROM (
) tmap
SELECT tmap.tkey, tmap.tvalue WHERE tmap.tkey < 100
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TRANSFORM
- TOK_EXPLIST
- .
- TOK_TABLE_OR_COL
- src
- ds
- .
- TOK_TABLE_OR_COL
- src
- key
- .
- TOK_TABLE_OR_COL
- src
- value
- TOK_SERDE
- TOK_RECORDWRITER
- 'cat'
- TOK_SERDE
- TOK_RECORDREADER
- TOK_ALIASLIST
- ds
- tkey
- tvalue
- TOK_WHERE
- =
- .
- TOK_TABLE_OR_COL
- src
- ds
- '2008-04-08'
- TOK_CLUSTERBY
- TOK_TABLE_OR_COL
- tkey
- tmap
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- tmap
- tkey
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- tmap
- tvalue
- TOK_WHERE
- <
- .
- TOK_TABLE_OR_COL
- tmap
- tkey
- 100
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/truncate_column_list_bucket.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/truncate_column_list_bucket.q.out b/ql/src/test/results/clientpositive/truncate_column_list_bucket.q.out
index 1fa437b..39ffc6c 100644
--- a/ql/src/test/results/clientpositive/truncate_column_list_bucket.q.out
+++ b/ql/src/test/results/clientpositive/truncate_column_list_bucket.q.out
@@ -67,32 +67,6 @@ POSTHOOK: query: -- In the following select statements the list bucketing optimi
EXPLAIN EXTENDED SELECT * FROM test_tab WHERE part = '1' AND key = '484'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- test_tab
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- AND
- =
- TOK_TABLE_OR_COL
- part
- '1'
- =
- TOK_TABLE_OR_COL
- key
- '484'
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -171,32 +145,6 @@ PREHOOK: query: EXPLAIN EXTENDED SELECT * FROM test_tab WHERE part = '1' AND key
PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT * FROM test_tab WHERE part = '1' AND key = '0'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- test_tab
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- AND
- =
- TOK_TABLE_OR_COL
- part
- '1'
- =
- TOK_TABLE_OR_COL
- key
- '0'
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/udf_explode.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/udf_explode.q.out b/ql/src/test/results/clientpositive/udf_explode.q.out
index 91b9bbe..8db4375 100644
--- a/ql/src/test/results/clientpositive/udf_explode.q.out
+++ b/ql/src/test/results/clientpositive/udf_explode.q.out
@@ -12,32 +12,6 @@ PREHOOK: query: EXPLAIN EXTENDED SELECT explode(array(1,2,3)) AS myCol FROM src
PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT explode(array(1,2,3)) AS myCol FROM src tablesample (1 rows)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_TABLESPLITSAMPLE
- TOK_ROWCOUNT
- 1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- explode
- TOK_FUNCTION
- array
- 1
- 2
- 3
- myCol
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -140,55 +114,6 @@ PREHOOK: query: EXPLAIN EXTENDED SELECT a.myCol, count(1) FROM (SELECT explode(a
PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT a.myCol, count(1) FROM (SELECT explode(array(1,2,3)) AS myCol FROM src tablesample (1 rows)) a GROUP BY a.myCol
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_TABLESPLITSAMPLE
- TOK_ROWCOUNT
- 1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- explode
- TOK_FUNCTION
- array
- 1
- 2
- 3
- myCol
- a
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- myCol
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- .
- TOK_TABLE_OR_COL
- a
- myCol
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -347,36 +272,6 @@ PREHOOK: query: EXPLAIN EXTENDED SELECT explode(map(1,'one',2,'two',3,'three'))
PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT explode(map(1,'one',2,'two',3,'three')) AS (key,val) FROM src tablesample (1 rows)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_TABLESPLITSAMPLE
- TOK_ROWCOUNT
- 1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- explode
- TOK_FUNCTION
- map
- 1
- 'one'
- 2
- 'two'
- 3
- 'three'
- key
- val
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -479,68 +374,6 @@ PREHOOK: query: EXPLAIN EXTENDED SELECT a.key, a.val, count(1) FROM (SELECT expl
PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT a.key, a.val, count(1) FROM (SELECT explode(map(1,'one',2,'two',3,'three')) AS (key,val) FROM src tablesample (1 rows)) a GROUP BY a.key, a.val
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_TABLESPLITSAMPLE
- TOK_ROWCOUNT
- 1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- explode
- TOK_FUNCTION
- map
- 1
- 'one'
- 2
- 'two'
- 3
- 'three'
- key
- val
- a
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- val
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- a
- val
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/udf_java_method.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/udf_java_method.q.out b/ql/src/test/results/clientpositive/udf_java_method.q.out
index 2d2a57d..2c66a8f 100644
--- a/ql/src/test/results/clientpositive/udf_java_method.q.out
+++ b/ql/src/test/results/clientpositive/udf_java_method.q.out
@@ -35,69 +35,6 @@ SELECT java_method("java.lang.String", "valueOf", 1),
java_method("java.lang.Math", "floor", 1.9)
FROM src tablesample (1 rows)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_TABLESPLITSAMPLE
- TOK_ROWCOUNT
- 1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- java_method
- "java.lang.String"
- "valueOf"
- 1
- TOK_SELEXPR
- TOK_FUNCTION
- java_method
- "java.lang.String"
- "isEmpty"
- TOK_SELEXPR
- TOK_FUNCTION
- java_method
- "java.lang.Math"
- "max"
- 2
- 3
- TOK_SELEXPR
- TOK_FUNCTION
- java_method
- "java.lang.Math"
- "min"
- 2
- 3
- TOK_SELEXPR
- TOK_FUNCTION
- java_method
- "java.lang.Math"
- "round"
- 2.5
- TOK_SELEXPR
- TOK_FUNCTION
- round
- TOK_FUNCTION
- java_method
- "java.lang.Math"
- "exp"
- 1.0
- 6
- TOK_SELEXPR
- TOK_FUNCTION
- java_method
- "java.lang.Math"
- "floor"
- 1.9
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/udf_reflect.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/udf_reflect.q.out b/ql/src/test/results/clientpositive/udf_reflect.q.out
index b65d1cd..4c31977 100644
--- a/ql/src/test/results/clientpositive/udf_reflect.q.out
+++ b/ql/src/test/results/clientpositive/udf_reflect.q.out
@@ -33,77 +33,6 @@ SELECT reflect("java.lang.String", "valueOf", 1),
reflect("java.lang.Integer", "valueOf", key, 16)
FROM src tablesample (1 rows)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_TABLESPLITSAMPLE
- TOK_ROWCOUNT
- 1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- reflect
- "java.lang.String"
- "valueOf"
- 1
- TOK_SELEXPR
- TOK_FUNCTION
- reflect
- "java.lang.String"
- "isEmpty"
- TOK_SELEXPR
- TOK_FUNCTION
- reflect
- "java.lang.Math"
- "max"
- 2
- 3
- TOK_SELEXPR
- TOK_FUNCTION
- reflect
- "java.lang.Math"
- "min"
- 2
- 3
- TOK_SELEXPR
- TOK_FUNCTION
- reflect
- "java.lang.Math"
- "round"
- 2.5
- TOK_SELEXPR
- TOK_FUNCTION
- round
- TOK_FUNCTION
- reflect
- "java.lang.Math"
- "exp"
- 1.0
- 6
- TOK_SELEXPR
- TOK_FUNCTION
- reflect
- "java.lang.Math"
- "floor"
- 1.9
- TOK_SELEXPR
- TOK_FUNCTION
- reflect
- "java.lang.Integer"
- "valueOf"
- TOK_TABLE_OR_COL
- key
- 16
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
[41/50] [abbrv] hive git commit: HIVE-13184. LLAP: DAG credentials
(e.g. HBase tokens) are not passed to the tasks in Tez plugin. (Sergey
Shelukhin, reviewed by Siddharth Seth)
Posted by jd...@apache.org.
HIVE-13184. LLAP: DAG credentials (e.g. HBase tokens) are not passed to the tasks in Tez plugin. (Sergey Shelukhin, reviewed by Siddharth Seth)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/0cf2244c
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/0cf2244c
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/0cf2244c
Branch: refs/heads/llap
Commit: 0cf2244cbe7200a1497de05d3b928b6c457d46c3
Parents: b18a0f5
Author: Siddharth Seth <ss...@apache.org>
Authored: Mon Apr 25 23:17:58 2016 -0700
Committer: Siddharth Seth <ss...@apache.org>
Committed: Mon Apr 25 23:17:58 2016 -0700
----------------------------------------------------------------------
.../hadoop/hive/llap/tezplugins/LlapTaskCommunicator.java | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/0cf2244c/llap-tez/src/java/org/apache/hadoop/hive/llap/tezplugins/LlapTaskCommunicator.java
----------------------------------------------------------------------
diff --git a/llap-tez/src/java/org/apache/hadoop/hive/llap/tezplugins/LlapTaskCommunicator.java b/llap-tez/src/java/org/apache/hadoop/hive/llap/tezplugins/LlapTaskCommunicator.java
index 799367b..bc9a209 100644
--- a/llap-tez/src/java/org/apache/hadoop/hive/llap/tezplugins/LlapTaskCommunicator.java
+++ b/llap-tez/src/java/org/apache/hadoop/hive/llap/tezplugins/LlapTaskCommunicator.java
@@ -548,15 +548,12 @@ public class LlapTaskCommunicator extends TezTaskCommunicatorImpl {
builder.setContainerIdString(containerId.toString());
builder.setAmHost(getAddress().getHostName());
builder.setAmPort(getAddress().getPort());
- Credentials taskCredentials = new Credentials();
- // Credentials can change across DAGs. Ideally construct only once per DAG.
- taskCredentials.addAll(getContext().getCredentials());
Preconditions.checkState(currentQueryIdentifierProto.getDagIdentifier() ==
taskSpec.getTaskAttemptID().getTaskID().getVertexID().getDAGId().getId());
ByteBuffer credentialsBinary = credentialMap.get(currentQueryIdentifierProto);
if (credentialsBinary == null) {
- credentialsBinary = serializeCredentials(getContext().getCredentials());
+ credentialsBinary = serializeCredentials(getContext().getCurrentDagInfo().getCredentials());
credentialMap.putIfAbsent(currentQueryIdentifierProto, credentialsBinary.duplicate());
} else {
credentialsBinary = credentialsBinary.duplicate();
[39/50] [abbrv] hive git commit: HIVE-13241 : LLAP: Incremental
Caching marks some small chunks as "incomplete CB" (Sergey Shelukhin,
reviewed by Prasanth Jayachandran)
Posted by jd...@apache.org.
HIVE-13241 : LLAP: Incremental Caching marks some small chunks as "incomplete CB" (Sergey Shelukhin, reviewed by Prasanth Jayachandran)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/eead54c9
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/eead54c9
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/eead54c9
Branch: refs/heads/llap
Commit: eead54c981984d946ef0d9f932667ea48650a2c3
Parents: 53249a3
Author: Sergey Shelukhin <se...@apache.org>
Authored: Mon Apr 25 18:20:53 2016 -0700
Committer: Sergey Shelukhin <se...@apache.org>
Committed: Mon Apr 25 18:20:53 2016 -0700
----------------------------------------------------------------------
.../org/apache/hadoop/hive/conf/HiveConf.java | 4 +
.../hive/llap/cache/EvictionDispatcher.java | 5 +
.../hive/llap/io/api/impl/LlapIoImpl.java | 4 +-
.../llap/io/encoded/OrcEncodedDataReader.java | 16 ++-
.../llap/io/metadata/OrcFileEstimateErrors.java | 121 +++++++++++++++++++
.../hive/llap/io/metadata/OrcMetadataCache.java | 58 ++++++++-
.../hive/llap/cache/TestOrcMetadataCache.java | 2 +-
.../ql/io/orc/encoded/EncodedReaderImpl.java | 98 ++++++++-------
8 files changed, 256 insertions(+), 52 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/eead54c9/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
----------------------------------------------------------------------
diff --git a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
index 8ccc262..bae3999 100644
--- a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
+++ b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
@@ -2603,6 +2603,10 @@ public class HiveConf extends Configuration {
"modification time, which is almost certain to identify file uniquely. However, if you\n" +
"use a FS without file IDs and rewrite files a lot (or are paranoid), you might want\n" +
"to avoid this setting."),
+ LLAP_CACHE_ENABLE_ORC_GAP_CACHE("hive.llap.orc.gap.cache", true,
+ "Whether LLAP cache for ORC should remember gaps in ORC RG read estimates, to avoid\n" +
+ "re-reading the data that was read once and discarded because it is unneeded. This is\n" +
+ "only necessary for ORC files written before HIVE-9660 (Hive 2.1?)."),
LLAP_IO_USE_FILEID_PATH("hive.llap.io.use.fileid.path", true,
"Whether LLAP should use fileId (inode)-based path to ensure better consistency for the\n" +
"cases of file overwrites. This is supported on HDFS."),
http://git-wip-us.apache.org/repos/asf/hive/blob/eead54c9/llap-server/src/java/org/apache/hadoop/hive/llap/cache/EvictionDispatcher.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/cache/EvictionDispatcher.java b/llap-server/src/java/org/apache/hadoop/hive/llap/cache/EvictionDispatcher.java
index bae571e..91932e2 100644
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/cache/EvictionDispatcher.java
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/cache/EvictionDispatcher.java
@@ -17,6 +17,7 @@
*/
package org.apache.hadoop.hive.llap.cache;
+import org.apache.hadoop.hive.llap.io.metadata.OrcFileEstimateErrors;
import org.apache.hadoop.hive.llap.io.metadata.OrcFileMetadata;
import org.apache.hadoop.hive.llap.io.metadata.OrcMetadataCache;
import org.apache.hadoop.hive.llap.io.metadata.OrcStripeMetadata;
@@ -49,4 +50,8 @@ public final class EvictionDispatcher implements EvictionListener {
public void notifyEvicted(OrcStripeMetadata buffer) {
metadataCache.notifyEvicted(buffer);
}
+
+ public void notifyEvicted(OrcFileEstimateErrors buffer) {
+ metadataCache.notifyEvicted(buffer);
+ }
}
http://git-wip-us.apache.org/repos/asf/hive/blob/eead54c9/llap-server/src/java/org/apache/hadoop/hive/llap/io/api/impl/LlapIoImpl.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/io/api/impl/LlapIoImpl.java b/llap-server/src/java/org/apache/hadoop/hive/llap/io/api/impl/LlapIoImpl.java
index d43ff15..6a72b4c 100644
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/io/api/impl/LlapIoImpl.java
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/io/api/impl/LlapIoImpl.java
@@ -31,6 +31,7 @@ import org.slf4j.LoggerFactory;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hive.common.io.Allocator;
import org.apache.hadoop.hive.conf.HiveConf;
+import org.apache.hadoop.hive.conf.HiveConf.ConfVars;
import org.apache.hadoop.hive.llap.cache.BuddyAllocator;
import org.apache.hadoop.hive.llap.cache.BufferUsageManager;
import org.apache.hadoop.hive.llap.cache.EvictionAwareAllocator;
@@ -117,7 +118,8 @@ public class LlapIoImpl implements LlapIo<VectorizedRowBatch> {
EvictionAwareAllocator allocator = new BuddyAllocator(conf, memManager, cacheMetrics);
this.allocator = allocator;
orcCache = new LowLevelCacheImpl(cacheMetrics, cachePolicy, allocator, true);
- metadataCache = new OrcMetadataCache(memManager, cachePolicy);
+ boolean useGapCache = HiveConf.getBoolVar(conf, ConfVars.LLAP_CACHE_ENABLE_ORC_GAP_CACHE);
+ metadataCache = new OrcMetadataCache(memManager, cachePolicy, useGapCache);
// And finally cache policy uses cache to notify it of eviction. The cycle is complete!
cachePolicy.setEvictionListener(new EvictionDispatcher(orcCache, metadataCache));
cachePolicy.setParentDebugDumper(orcCache);
http://git-wip-us.apache.org/repos/asf/hive/blob/eead54c9/llap-server/src/java/org/apache/hadoop/hive/llap/io/encoded/OrcEncodedDataReader.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/io/encoded/OrcEncodedDataReader.java b/llap-server/src/java/org/apache/hadoop/hive/llap/io/encoded/OrcEncodedDataReader.java
index eb953c7..406f8f6 100644
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/io/encoded/OrcEncodedDataReader.java
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/io/encoded/OrcEncodedDataReader.java
@@ -817,15 +817,23 @@ public class OrcEncodedDataReader extends CallableWithNdc<Void>
@Override
public DiskRangeList getFileData(Object fileKey, DiskRangeList range,
long baseOffset, DiskRangeListFactory factory, BooleanRef gotAllData) {
- return (lowLevelCache == null) ? range : lowLevelCache.getFileData(
- fileKey, range, baseOffset, factory, counters, gotAllData);
+ DiskRangeList result = (lowLevelCache == null) ? range
+ : lowLevelCache.getFileData(fileKey, range, baseOffset, factory, counters, gotAllData);
+ if (gotAllData.value) return result;
+ return (metadataCache == null) ? range
+ : metadataCache.getIncompleteCbs(fileKey, range, baseOffset, factory, gotAllData);
}
@Override
public long[] putFileData(Object fileKey, DiskRange[] ranges,
MemoryBuffer[] data, long baseOffset) {
- return (lowLevelCache == null) ? null : lowLevelCache.putFileData(
- fileKey, ranges, data, baseOffset, Priority.NORMAL, counters);
+ if (data != null) {
+ return (lowLevelCache == null) ? null : lowLevelCache.putFileData(
+ fileKey, ranges, data, baseOffset, Priority.NORMAL, counters);
+ } else if (metadataCache != null) {
+ metadataCache.putIncompleteCbs(fileKey, ranges, baseOffset);
+ }
+ return null;
}
@Override
http://git-wip-us.apache.org/repos/asf/hive/blob/eead54c9/llap-server/src/java/org/apache/hadoop/hive/llap/io/metadata/OrcFileEstimateErrors.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/io/metadata/OrcFileEstimateErrors.java b/llap-server/src/java/org/apache/hadoop/hive/llap/io/metadata/OrcFileEstimateErrors.java
new file mode 100644
index 0000000..ad88b98
--- /dev/null
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/io/metadata/OrcFileEstimateErrors.java
@@ -0,0 +1,121 @@
+/**
+ * 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.llap.io.metadata;
+
+import java.util.HashMap;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hive.common.io.DiskRangeList;
+import org.apache.hadoop.hive.common.io.DataCache.BooleanRef;
+import org.apache.hadoop.hive.common.io.DataCache.DiskRangeListFactory;
+import org.apache.hadoop.hive.common.io.DiskRangeList.MutateHelper;
+import org.apache.hadoop.hive.llap.IncrementalObjectSizeEstimator;
+import org.apache.hadoop.hive.llap.IncrementalObjectSizeEstimator.ObjectEstimator;
+import org.apache.hadoop.hive.llap.cache.EvictionDispatcher;
+import org.apache.hadoop.hive.llap.cache.LlapCacheableBuffer;
+import org.apache.hadoop.hive.ql.io.SyntheticFileId;
+
+public class OrcFileEstimateErrors extends LlapCacheableBuffer {
+ private final Object fileKey;
+ private int estimatedMemUsage;
+ private final ConcurrentHashMap<Long, Integer> cache = new ConcurrentHashMap<>();
+
+ private final static HashMap<Class<?>, ObjectEstimator> SIZE_ESTIMATORS;
+ private final static ObjectEstimator SIZE_ESTIMATOR;
+ static {
+ SIZE_ESTIMATORS = IncrementalObjectSizeEstimator.createEstimators(createDummy(
+ new SyntheticFileId(new Path("/"), 0, 0)));
+ SIZE_ESTIMATOR = SIZE_ESTIMATORS.get(OrcFileEstimateErrors.class);
+ }
+
+ public OrcFileEstimateErrors(Object fileKey) {
+ this.fileKey = fileKey;
+ }
+
+ public void addError(long offset, int length, long baseOffset) {
+ Long key = Long.valueOf(offset + baseOffset);
+ Integer existingLength = cache.get(key);
+ if (existingLength != null && existingLength >= length) return;
+ Integer value = Integer.valueOf(length);
+ while (true) {
+ existingLength = cache.putIfAbsent(key, value);
+ if (existingLength == null || existingLength >= length) return;
+ cache.remove(key, existingLength);
+ }
+ }
+
+ public DiskRangeList getIncompleteCbs(DiskRangeList ranges, long baseOffset,
+ DiskRangeListFactory factory, BooleanRef gotAllData) {
+ DiskRangeList prev = ranges.prev;
+ if (prev == null) {
+ prev = new MutateHelper(ranges);
+ }
+ DiskRangeList current = ranges;
+ while (current != null) {
+ // We assume ranges in "ranges" are non-overlapping; thus, we will save next in advance.
+ DiskRangeList check = current;
+ current = current.next;
+ if (check.hasData()) continue;
+ Integer badLength = cache.get(Long.valueOf(check.getOffset() + baseOffset));
+ if (badLength == null || badLength < check.getLength()) {
+ gotAllData.value = false;
+ continue;
+ }
+ check.removeSelf();
+ }
+ return prev.next;
+ }
+
+ public Object getFileKey() {
+ return fileKey;
+ }
+
+ public long estimateMemoryUsage() {
+ // Since we won't be able to update this as we add, for now, estimate 10x usage.
+ // This shouldn't be much and this cache should be remove later anyway.
+ estimatedMemUsage = 10 * SIZE_ESTIMATOR.estimate(this, SIZE_ESTIMATORS);
+ return estimatedMemUsage;
+ }
+
+ private static OrcFileEstimateErrors createDummy(Object fileKey) {
+ OrcFileEstimateErrors dummy = new OrcFileEstimateErrors(fileKey);
+ dummy.addError(0L, 0, 0L);
+ return dummy;
+ }
+
+ @Override
+ protected boolean invalidate() {
+ return true;
+ }
+
+ @Override
+ public long getMemoryUsage() {
+ return estimatedMemUsage;
+ }
+
+ @Override
+ public void notifyEvicted(EvictionDispatcher evictionDispatcher) {
+ evictionDispatcher.notifyEvicted(this);
+ }
+
+ @Override
+ protected boolean isLocked() {
+ return false;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/eead54c9/llap-server/src/java/org/apache/hadoop/hive/llap/io/metadata/OrcMetadataCache.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/io/metadata/OrcMetadataCache.java b/llap-server/src/java/org/apache/hadoop/hive/llap/io/metadata/OrcMetadataCache.java
index e970137..66713d3 100644
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/io/metadata/OrcMetadataCache.java
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/io/metadata/OrcMetadataCache.java
@@ -21,22 +21,29 @@ package org.apache.hadoop.hive.llap.io.metadata;
import java.io.IOException;
import java.util.concurrent.ConcurrentHashMap;
+import org.apache.hadoop.hive.common.io.DiskRange;
+import org.apache.hadoop.hive.common.io.DiskRangeList;
+import org.apache.hadoop.hive.common.io.DataCache.BooleanRef;
+import org.apache.hadoop.hive.common.io.DataCache.DiskRangeListFactory;
import org.apache.hadoop.hive.llap.cache.LowLevelCachePolicy;
import org.apache.hadoop.hive.llap.cache.MemoryManager;
import org.apache.hadoop.hive.llap.cache.LowLevelCache.Priority;
import org.apache.hadoop.hive.ql.io.orc.encoded.OrcBatchKey;
public class OrcMetadataCache {
- private final ConcurrentHashMap<Object, OrcFileMetadata> metadata =
- new ConcurrentHashMap<Object, OrcFileMetadata>();
+ private final ConcurrentHashMap<Object, OrcFileMetadata> metadata = new ConcurrentHashMap<>();
private final ConcurrentHashMap<OrcBatchKey, OrcStripeMetadata> stripeMetadata =
- new ConcurrentHashMap<OrcBatchKey, OrcStripeMetadata>();
+ new ConcurrentHashMap<>();
+ private final ConcurrentHashMap<Object, OrcFileEstimateErrors> estimateErrors;
private final MemoryManager memoryManager;
private final LowLevelCachePolicy policy;
- public OrcMetadataCache(MemoryManager memoryManager, LowLevelCachePolicy policy) {
+ public OrcMetadataCache(MemoryManager memoryManager, LowLevelCachePolicy policy,
+ boolean useEstimateCache) {
this.memoryManager = memoryManager;
this.policy = policy;
+ this.estimateErrors = useEstimateCache
+ ? new ConcurrentHashMap<Object, OrcFileEstimateErrors>() : null;
}
public OrcFileMetadata putFileMetadata(OrcFileMetadata metaData) {
@@ -71,6 +78,37 @@ public class OrcMetadataCache {
return val;
}
+ public void putIncompleteCbs(Object fileKey, DiskRange[] ranges, long baseOffset) {
+ if (estimateErrors == null) return;
+ OrcFileEstimateErrors errorData = estimateErrors.get(fileKey);
+ boolean isNew = false;
+ // We should technically update memory usage if updating the old object, but we don't do it
+ // for now; there is no mechanism to properly notify the cache policy/etc. wrt parallel evicts.
+ if (errorData == null) {
+ errorData = new OrcFileEstimateErrors(fileKey);
+ for (DiskRange range : ranges) {
+ errorData.addError(range.getOffset(), range.getLength(), baseOffset);
+ }
+ long memUsage = errorData.estimateMemoryUsage();
+ memoryManager.reserveMemory(memUsage, false);
+ OrcFileEstimateErrors old = estimateErrors.putIfAbsent(fileKey, errorData);
+ if (old != null) {
+ errorData = old;
+ memoryManager.releaseMemory(memUsage);
+ policy.notifyLock(errorData);
+ } else {
+ isNew = true;
+ policy.cache(errorData, Priority.NORMAL);
+ }
+ }
+ if (!isNew) {
+ for (DiskRange range : ranges) {
+ errorData.addError(range.getOffset(), range.getLength(), baseOffset);
+ }
+ }
+ policy.notifyUnlock(errorData);
+ }
+
public OrcStripeMetadata getStripeMetadata(OrcBatchKey stripeKey) throws IOException {
return stripeMetadata.get(stripeKey);
}
@@ -79,6 +117,14 @@ public class OrcMetadataCache {
return metadata.get(fileKey);
}
+ public DiskRangeList getIncompleteCbs(Object fileKey, DiskRangeList ranges, long baseOffset,
+ DiskRangeListFactory factory, BooleanRef gotAllData) {
+ if (estimateErrors == null) return ranges;
+ OrcFileEstimateErrors errors = estimateErrors.get(fileKey);
+ if (errors == null) return ranges;
+ return errors.getIncompleteCbs(ranges, baseOffset, factory, gotAllData);
+ }
+
public void notifyEvicted(OrcFileMetadata buffer) {
metadata.remove(buffer.getFileKey());
// See OrcFileMetadata - we don't clear the object, it will be GCed when released by users.
@@ -88,4 +134,8 @@ public class OrcMetadataCache {
stripeMetadata.remove(buffer.getKey());
// See OrcStripeMetadata - we don't clear the object, it will be GCed when released by users.
}
+
+ public void notifyEvicted(OrcFileEstimateErrors buffer) {
+ estimateErrors.remove(buffer.getFileKey());
+ }
}
http://git-wip-us.apache.org/repos/asf/hive/blob/eead54c9/llap-server/src/test/org/apache/hadoop/hive/llap/cache/TestOrcMetadataCache.java
----------------------------------------------------------------------
diff --git a/llap-server/src/test/org/apache/hadoop/hive/llap/cache/TestOrcMetadataCache.java b/llap-server/src/test/org/apache/hadoop/hive/llap/cache/TestOrcMetadataCache.java
index 901e58a..3f2e750 100644
--- a/llap-server/src/test/org/apache/hadoop/hive/llap/cache/TestOrcMetadataCache.java
+++ b/llap-server/src/test/org/apache/hadoop/hive/llap/cache/TestOrcMetadataCache.java
@@ -88,7 +88,7 @@ public class TestOrcMetadataCache {
public void testGetPut() throws Exception {
DummyMemoryManager mm = new DummyMemoryManager();
DummyCachePolicy cp = new DummyCachePolicy();
- OrcMetadataCache cache = new OrcMetadataCache(mm, cp);
+ OrcMetadataCache cache = new OrcMetadataCache(mm, cp, false);
OrcFileMetadata ofm1 = OrcFileMetadata.createDummy(1), ofm2 = OrcFileMetadata.createDummy(2);
assertSame(ofm1, cache.putFileMetadata(ofm1));
assertEquals(1, mm.allocs);
http://git-wip-us.apache.org/repos/asf/hive/blob/eead54c9/ql/src/java/org/apache/hadoop/hive/ql/io/orc/encoded/EncodedReaderImpl.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/encoded/EncodedReaderImpl.java b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/encoded/EncodedReaderImpl.java
index 8ccedb7..40cc86f 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/encoded/EncodedReaderImpl.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/encoded/EncodedReaderImpl.java
@@ -101,18 +101,18 @@ class EncodedReaderImpl implements EncodedReader {
private final int bufferSize;
private final List<OrcProto.Type> types;
private final long rowIndexStride;
- private final DataCache cache;
+ private final DataCache cacheWrapper;
private boolean isTracingEnabled;
public EncodedReaderImpl(Object fileKey, List<OrcProto.Type> types, CompressionCodec codec,
- int bufferSize, long strideRate, DataCache cache, DataReader dataReader, PoolFactory pf)
- throws IOException {
+ int bufferSize, long strideRate, DataCache cacheWrapper, DataReader dataReader,
+ PoolFactory pf) throws IOException {
this.fileKey = fileKey;
this.codec = codec;
this.types = types;
this.bufferSize = bufferSize;
this.rowIndexStride = strideRate;
- this.cache = cache;
+ this.cacheWrapper = cacheWrapper;
this.dataReader = dataReader;
if (POOLS != null) return;
if (pf == null) {
@@ -291,7 +291,7 @@ class EncodedReaderImpl implements EncodedReader {
}
BooleanRef isAllInCache = new BooleanRef();
if (hasFileId) {
- cache.getFileData(fileKey, toRead.next, stripeOffset, CC_FACTORY, isAllInCache);
+ cacheWrapper.getFileData(fileKey, toRead.next, stripeOffset, CC_FACTORY, isAllInCache);
if (isTracingEnabled && LOG.isInfoEnabled()) {
LOG.trace("Disk ranges after cache (file " + fileKey + ", base offset " + stripeOffset
+ "): " + RecordReaderUtils.stringifyDiskRanges(toRead.next));
@@ -303,7 +303,7 @@ class EncodedReaderImpl implements EncodedReader {
this.dataReader.open();
isDataReaderOpen = true;
}
- dataReader.readFileData(toRead.next, stripeOffset, cache.getAllocator().isDirectAlloc());
+ dataReader.readFileData(toRead.next, stripeOffset, cacheWrapper.getAllocator().isDirectAlloc());
}
// 3. For uncompressed case, we need some special processing before read.
@@ -452,7 +452,7 @@ class EncodedReaderImpl implements EncodedReader {
CacheChunk cc = (CacheChunk)toFree;
if (cc.getBuffer() == null) continue;
MemoryBuffer buffer = cc.getBuffer();
- cache.releaseBuffer(buffer);
+ cacheWrapper.releaseBuffer(buffer);
cc.setBuffer(null);
}
}
@@ -501,11 +501,11 @@ class EncodedReaderImpl implements EncodedReader {
}
@Override
- public void handleCacheCollision(DataCache cache,
+ public void handleCacheCollision(DataCache cacheWrapper,
MemoryBuffer replacementBuffer, List<MemoryBuffer> cacheBuffers) {
assert cacheBuffers == null;
// This is done at pre-read stage where there's nothing special w/refcounts. Just release.
- cache.getAllocator().deallocate(getBuffer());
+ cacheWrapper.getAllocator().deallocate(getBuffer());
// Replace the buffer in our big range list, as well as in current results.
this.setBuffer(replacementBuffer);
}
@@ -544,14 +544,14 @@ class EncodedReaderImpl implements EncodedReader {
}
@Override
- public void handleCacheCollision(DataCache cache, MemoryBuffer replacementBuffer,
+ public void handleCacheCollision(DataCache cacheWrapper, MemoryBuffer replacementBuffer,
List<MemoryBuffer> cacheBuffers) {
assert originalCbIndex >= 0;
// Had the put succeeded for our new buffer, it would have refcount of 2 - 1 from put,
// and 1 from notifyReused call above. "Old" buffer now has the 1 from put; new buffer
// is not in cache.
- cache.getAllocator().deallocate(getBuffer());
- cache.reuseBuffer(replacementBuffer);
+ cacheWrapper.getAllocator().deallocate(getBuffer());
+ cacheWrapper.reuseBuffer(replacementBuffer);
// Replace the buffer in our big range list, as well as in current results.
this.buffer = replacementBuffer;
cacheBuffers.set(originalCbIndex, replacementBuffer);
@@ -594,9 +594,11 @@ class EncodedReaderImpl implements EncodedReader {
boolean isCompressed = codec != null;
List<ProcCacheChunk> toDecompress = null;
List<ByteBuffer> toRelease = null;
+ List<IncompleteCb> badEstimates = null;
if (isCompressed) {
toRelease = !dataReader.isTrackingDiskRanges() ? null : new ArrayList<ByteBuffer>();
- toDecompress = new ArrayList<ProcCacheChunk>();
+ toDecompress = new ArrayList<>();
+ badEstimates = new ArrayList<>();
}
// 1. Find our bearings in the stream. Normally, iter will already point either to where we
@@ -612,17 +614,25 @@ class EncodedReaderImpl implements EncodedReader {
// 2. Go thru the blocks; add stuff to results and prepare the decompression work (see below).
lastUncompressed = isCompressed ?
prepareRangesForCompressedRead(cOffset, endCOffset, streamOffset,
- unlockUntilCOffset, current, csd, toRelease, toDecompress)
+ unlockUntilCOffset, current, csd, toRelease, toDecompress, badEstimates)
: prepareRangesForUncompressedRead(
cOffset, endCOffset, streamOffset, unlockUntilCOffset, current, csd);
+ // 2.5. Remember the bad estimates for future reference.
+ if (badEstimates != null && !badEstimates.isEmpty()) {
+ // Relies on the fact that cache does not actually store these.
+ DiskRange[] cacheKeys = badEstimates.toArray(new DiskRange[badEstimates.size()]);
+ long[] result = cacheWrapper.putFileData(fileKey, cacheKeys, null, baseOffset);
+ assert result == null; // We don't expect conflicts from bad estimates.
+ }
+
+ if (toDecompress == null || toDecompress.isEmpty()) return lastUncompressed; // Nothing to do.
+
// 3. Allocate the buffers, prepare cache keys.
// At this point, we have read all the CBs we need to read. cacheBuffers contains some cache
// data and some unallocated membufs for decompression. toDecompress contains all the work we
// need to do, and each item points to one of the membufs in cacheBuffers as target. The iter
// has also been adjusted to point to these buffers instead of compressed data for the ranges.
- if (toDecompress == null) return lastUncompressed; // Nothing to decompress.
-
MemoryBuffer[] targetBuffers = new MemoryBuffer[toDecompress.size()];
DiskRange[] cacheKeys = new DiskRange[toDecompress.size()];
int ix = 0;
@@ -631,7 +641,7 @@ class EncodedReaderImpl implements EncodedReader {
targetBuffers[ix] = chunk.getBuffer();
++ix;
}
- cache.getAllocator().allocateMultiple(targetBuffers, bufferSize);
+ cacheWrapper.getAllocator().allocateMultiple(targetBuffers, bufferSize);
// 4. Now decompress (or copy) the data into cache buffers.
for (ProcCacheChunk chunk : toDecompress) {
@@ -646,7 +656,7 @@ class EncodedReaderImpl implements EncodedReader {
if (isTracingEnabled) {
LOG.trace("Locking " + chunk.getBuffer() + " due to reuse (after decompression)");
}
- cache.reuseBuffer(chunk.getBuffer());
+ cacheWrapper.reuseBuffer(chunk.getBuffer());
}
// 5. Release original compressed buffers to zero-copy reader if needed.
@@ -658,8 +668,9 @@ class EncodedReaderImpl implements EncodedReader {
}
// 6. Finally, put uncompressed data to cache.
+
if (fileKey != null) {
- long[] collisionMask = cache.putFileData(fileKey, cacheKeys, targetBuffers, baseOffset);
+ long[] collisionMask = cacheWrapper.putFileData(fileKey, cacheKeys, targetBuffers, baseOffset);
processCacheCollisions(collisionMask, toDecompress, targetBuffers, csd.getCacheBuffers());
}
@@ -674,7 +685,8 @@ class EncodedReaderImpl implements EncodedReader {
private CacheChunk prepareRangesForCompressedRead(long cOffset, long endCOffset,
long streamOffset, long unlockUntilCOffset, DiskRangeList current, ColumnStreamData columnStreamData,
- List<ByteBuffer> toRelease, List<ProcCacheChunk> toDecompress) throws IOException {
+ List<ByteBuffer> toRelease, List<ProcCacheChunk> toDecompress,
+ List<IncompleteCb> badEstimates) throws IOException {
if (cOffset > current.getOffset()) {
// Target compression block is in the middle of the range; slice the range in two.
current = current.split(cOffset).next;
@@ -689,7 +701,7 @@ class EncodedReaderImpl implements EncodedReader {
if (isTracingEnabled) {
LOG.trace("Locking " + cc.getBuffer() + " due to reuse");
}
- cache.reuseBuffer(cc.getBuffer());
+ cacheWrapper.reuseBuffer(cc.getBuffer());
columnStreamData.getCacheBuffers().add(cc.getBuffer());
currentOffset = cc.getEnd();
if (isTracingEnabled) {
@@ -710,7 +722,7 @@ class EncodedReaderImpl implements EncodedReader {
// several disk ranges, so we might need to combine them.
BufferChunk bc = (BufferChunk)current;
ProcCacheChunk newCached = addOneCompressionBuffer(
- bc, columnStreamData.getCacheBuffers(), toDecompress, toRelease);
+ bc, columnStreamData.getCacheBuffers(), toDecompress, toRelease, badEstimates);
lastUncompressed = (newCached == null) ? lastUncompressed : newCached;
next = (newCached != null) ? newCached.next : null;
currentOffset = (next != null) ? next.getOffset() : -1;
@@ -737,7 +749,7 @@ class EncodedReaderImpl implements EncodedReader {
if (isTracingEnabled) {
LOG.trace("Locking " + lastUncompressed.getBuffer() + " due to reuse");
}
- cache.reuseBuffer(lastUncompressed.getBuffer());
+ cacheWrapper.reuseBuffer(lastUncompressed.getBuffer());
if (isFirst) {
columnStreamData.setIndexBaseOffset((int)(lastUncompressed.getOffset() - streamOffset));
isFirst = false;
@@ -818,7 +830,7 @@ class EncodedReaderImpl implements EncodedReader {
if (noMoreDataForPart && hasEntirePartTo < partEnd && candidateCached != null) {
// We are missing a section at the end of the part... copy the start to non-cached.
lastUncompressed = copyAndReplaceCandidateToNonCached(
- candidateCached, partOffset, hasEntirePartTo, cache, singleAlloc);
+ candidateCached, partOffset, hasEntirePartTo, cacheWrapper, singleAlloc);
candidateCached = null;
}
current = next;
@@ -850,10 +862,10 @@ class EncodedReaderImpl implements EncodedReader {
if (candidateCached != null) {
assert hadEntirePartTo != -1;
copyAndReplaceCandidateToNonCached(
- candidateCached, partOffset, hadEntirePartTo, cache, singleAlloc);
+ candidateCached, partOffset, hadEntirePartTo, cacheWrapper, singleAlloc);
candidateCached = null;
}
- lastUncompressed = copyAndReplaceUncompressedToNonCached(curBc, cache, singleAlloc);
+ lastUncompressed = copyAndReplaceUncompressedToNonCached(curBc, cacheWrapper, singleAlloc);
next = lastUncompressed.next; // There may be more data after the gap.
} else {
// So far we have all the data from the beginning of the part.
@@ -885,7 +897,7 @@ class EncodedReaderImpl implements EncodedReader {
cacheKeys[ix] = chunk; // Relies on the fact that cache does not actually store these.
++ix;
}
- cache.getAllocator().allocateMultiple(
+ cacheWrapper.getAllocator().allocateMultiple(
targetBuffers, (int)(partCount == 1 ? streamLen : partSize));
// 4. Now copy the data into cache buffers.
@@ -909,7 +921,7 @@ class EncodedReaderImpl implements EncodedReader {
// 6. Finally, put uncompressed data to cache.
if (fileKey != null) {
- long[] collisionMask = cache.putFileData(fileKey, cacheKeys, targetBuffers, baseOffset);
+ long[] collisionMask = cacheWrapper.putFileData(fileKey, cacheKeys, targetBuffers, baseOffset);
processCacheCollisions(collisionMask, toCache, targetBuffers, null);
}
@@ -922,7 +934,7 @@ class EncodedReaderImpl implements EncodedReader {
// of the prevalent ORC compression buffer (the default), or maximum allocation (since we
// cannot allocate bigger chunks), whichever is less.
long orcCbSizeDefault = ((Number)OrcConf.BUFFER_SIZE.getDefaultValue()).longValue();
- int maxAllocSize = cache.getAllocator().getMaxAllocation();
+ int maxAllocSize = cacheWrapper.getAllocator().getMaxAllocation();
return (int)Math.min(maxAllocSize, orcCbSizeDefault);
}
@@ -942,14 +954,14 @@ class EncodedReaderImpl implements EncodedReader {
private static CacheChunk copyAndReplaceCandidateToNonCached(
UncompressedCacheChunk candidateCached, long partOffset,
- long candidateEnd, DataCache cache, MemoryBuffer[] singleAlloc) {
+ long candidateEnd, DataCache cacheWrapper, MemoryBuffer[] singleAlloc) {
// We thought we had the entire part to cache, but we don't; convert start to
// non-cached. Since we are at the first gap, the previous stuff must be contiguous.
singleAlloc[0] = null;
- cache.getAllocator().allocateMultiple(singleAlloc, (int)(candidateEnd - partOffset));
+ cacheWrapper.getAllocator().allocateMultiple(singleAlloc, (int)(candidateEnd - partOffset));
MemoryBuffer buffer = singleAlloc[0];
- cache.reuseBuffer(buffer);
+ cacheWrapper.reuseBuffer(buffer);
ByteBuffer dest = buffer.getByteBufferRaw();
CacheChunk tcc = POOLS.tccPool.take();
tcc.init(buffer, partOffset, candidateEnd);
@@ -958,11 +970,11 @@ class EncodedReaderImpl implements EncodedReader {
}
private static CacheChunk copyAndReplaceUncompressedToNonCached(
- BufferChunk bc, DataCache cache, MemoryBuffer[] singleAlloc) {
+ BufferChunk bc, DataCache cacheWrapper, MemoryBuffer[] singleAlloc) {
singleAlloc[0] = null;
- cache.getAllocator().allocateMultiple(singleAlloc, bc.getLength());
+ cacheWrapper.getAllocator().allocateMultiple(singleAlloc, bc.getLength());
MemoryBuffer buffer = singleAlloc[0];
- cache.reuseBuffer(buffer);
+ cacheWrapper.reuseBuffer(buffer);
ByteBuffer dest = buffer.getByteBufferRaw();
CacheChunk tcc = POOLS.tccPool.take();
tcc.init(buffer, bc.getOffset(), bc.getEnd());
@@ -1056,7 +1068,7 @@ class EncodedReaderImpl implements EncodedReader {
LOG.trace("Unlocking " + cc.getBuffer() + " for the fetching thread"
+ (isBacktracking ? "; backtracking" : ""));
}
- cache.releaseBuffer(cc.getBuffer());
+ cacheWrapper.releaseBuffer(cc.getBuffer());
cc.setBuffer(null);
}
@@ -1081,7 +1093,7 @@ class EncodedReaderImpl implements EncodedReader {
}
assert replacedChunk.getBuffer() != replacementBuffer : i + " was not replaced in the results "
+ "even though mask is [" + Long.toBinaryString(maskVal) + "]";
- replacedChunk.handleCacheCollision(cache, replacementBuffer, cacheBuffers);
+ replacedChunk.handleCacheCollision(cacheWrapper, replacementBuffer, cacheBuffers);
}
maskVal >>= 1;
}
@@ -1131,11 +1143,12 @@ class EncodedReaderImpl implements EncodedReader {
* @param toDecompress The list of work to decompress - pairs of compressed buffers and the
* target buffers (same as the ones added to cacheBuffers).
* @param toRelease The list of buffers to release to zcr because they are no longer in use.
+ * @param badEstimates The list of bad estimates that cannot be decompressed.
* @return The resulting cache chunk.
*/
private ProcCacheChunk addOneCompressionBuffer(BufferChunk current,
List<MemoryBuffer> cacheBuffers, List<ProcCacheChunk> toDecompress,
- List<ByteBuffer> toRelease) throws IOException {
+ List<ByteBuffer> toRelease, List<IncompleteCb> badEstimates) throws IOException {
ByteBuffer slice = null;
ByteBuffer compressed = current.getChunk();
long cbStartOffset = current.getOffset();
@@ -1166,7 +1179,7 @@ class EncodedReaderImpl implements EncodedReader {
return cc;
}
if (current.getEnd() < cbEndOffset && !current.hasContiguousNext()) {
- addIncompleteCompressionBuffer(cbStartOffset, current, 0);
+ badEstimates.add(addIncompleteCompressionBuffer(cbStartOffset, current, 0));
return null; // This is impossible to read from this chunk.
}
@@ -1221,13 +1234,13 @@ class EncodedReaderImpl implements EncodedReader {
}
tmp.removeSelf();
} else {
- addIncompleteCompressionBuffer(cbStartOffset, tmp, extraChunkCount);
+ badEstimates.add(addIncompleteCompressionBuffer(cbStartOffset, tmp, extraChunkCount));
return null; // This is impossible to read from this chunk.
}
}
}
- private void addIncompleteCompressionBuffer(
+ private IncompleteCb addIncompleteCompressionBuffer(
long cbStartOffset, DiskRangeList target, int extraChunkCount) {
IncompleteCb icb = new IncompleteCb(cbStartOffset, target.getEnd());
if (isTracingEnabled) {
@@ -1235,6 +1248,7 @@ class EncodedReaderImpl implements EncodedReader {
+ icb + " in the buffers");
}
target.replaceSelfWith(icb);
+ return icb;
}
/**
@@ -1253,7 +1267,7 @@ class EncodedReaderImpl implements EncodedReader {
boolean isUncompressed, long cbStartOffset, long cbEndOffset, int lastChunkLength,
BufferChunk lastChunk, List<ProcCacheChunk> toDecompress, List<MemoryBuffer> cacheBuffers) {
// Prepare future cache buffer.
- MemoryBuffer futureAlloc = cache.getAllocator().createUnallocated();
+ MemoryBuffer futureAlloc = cacheWrapper.getAllocator().createUnallocated();
// Add it to result in order we are processing.
cacheBuffers.add(futureAlloc);
// Add it to the list of work to decompress.
[44/50] [abbrv] hive git commit: HIVE-12079: Add units tests for
HiveServer2 LDAP filters added in HIVE-7193 (Naveen Gangam via Aihua Xu)
Posted by jd...@apache.org.
HIVE-12079: Add units tests for HiveServer2 LDAP filters added in HIVE-7193 (Naveen Gangam via Aihua Xu)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/bf44f3ee
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/bf44f3ee
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/bf44f3ee
Branch: refs/heads/llap
Commit: bf44f3ee369d25a7358bb2503abb4c666ff6bcda
Parents: 5d4b9c9
Author: Aihua Xu <ax...@cloudera.com>
Authored: Tue Apr 26 09:41:03 2016 -0400
Committer: Aihua Xu <ax...@cloudera.com>
Committed: Tue Apr 26 09:41:03 2016 -0400
----------------------------------------------------------------------
.../auth/TestLdapAtnProviderWithMiniDS.java | 474 ++++++++++++++-----
1 file changed, 359 insertions(+), 115 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/bf44f3ee/service/src/test/org/apache/hive/service/auth/TestLdapAtnProviderWithMiniDS.java
----------------------------------------------------------------------
diff --git a/service/src/test/org/apache/hive/service/auth/TestLdapAtnProviderWithMiniDS.java b/service/src/test/org/apache/hive/service/auth/TestLdapAtnProviderWithMiniDS.java
index ee9262a..40430c4 100644
--- a/service/src/test/org/apache/hive/service/auth/TestLdapAtnProviderWithMiniDS.java
+++ b/service/src/test/org/apache/hive/service/auth/TestLdapAtnProviderWithMiniDS.java
@@ -127,6 +127,26 @@ partitions = {
"sn: group1",
"member: uid=user2,ou=People,dc=example,dc=com",
+ "dn: cn=group3,ou=Groups,dc=example,dc=com",
+ "distinguishedName: cn=group3,ou=Groups,dc=example,dc=com",
+ "objectClass: top",
+ "objectClass: groupOfNames",
+ "objectClass: ExtensibleObject",
+ "cn: group3",
+ "ou: Groups",
+ "sn: group3",
+ "member: cn=user3,ou=People,dc=example,dc=com",
+
+ "dn: cn=group4,ou=Groups,dc=example,dc=com",
+ "distinguishedName: cn=group4,ou=Groups,dc=example,dc=com",
+ "objectClass: top",
+ "objectClass: groupOfUniqueNames",
+ "objectClass: ExtensibleObject",
+ "ou: Groups",
+ "cn: group4",
+ "sn: group4",
+ "uniqueMember: cn=user4,ou=People,dc=example,dc=com",
+
"dn: uid=user1,ou=People,dc=example,dc=com",
"distinguishedName: uid=user1,ou=People,dc=example,dc=com",
"objectClass: inetOrgPerson",
@@ -149,7 +169,32 @@ partitions = {
"cn: Test User2",
"sn: user2",
"uid: user2",
- "userPassword: user2"
+ "userPassword: user2",
+
+ "dn: cn=user3,ou=People,dc=example,dc=com",
+ "distinguishedName: cn=user3,ou=People,dc=example,dc=com",
+ "objectClass: inetOrgPerson",
+ "objectClass: person",
+ "objectClass: top",
+ "objectClass: ExtensibleObject",
+ "givenName: Test1",
+ "cn: Test User3",
+ "sn: user3",
+ "uid: user3",
+ "userPassword: user3",
+
+ "dn: cn=user4,ou=People,dc=example,dc=com",
+ "distinguishedName: cn=user4,ou=People,dc=example,dc=com",
+ "objectClass: inetOrgPerson",
+ "objectClass: person",
+ "objectClass: top",
+ "objectClass: ExtensibleObject",
+ "givenName: Test4",
+ "cn: Test User4",
+ "sn: user4",
+ "uid: user4",
+ "userPassword: user4"
+
})
public class TestLdapAtnProviderWithMiniDS extends AbstractLdapTestUnit {
@@ -161,6 +206,11 @@ public class TestLdapAtnProviderWithMiniDS extends AbstractLdapTestUnit {
private static LdapContext ctx;
private static LdapAuthenticationProviderImpl ldapProvider;
+ static final User USER1 = new User("user1", "user1", "uid=user1,ou=People,dc=example,dc=com");
+ static final User USER2 = new User("user2", "user2", "uid=user2,ou=People,dc=example,dc=com");
+ static final User USER3 = new User("user3", "user3", "cn=user3,ou=People,dc=example,dc=com");
+ static final User USER4 = new User("user4", "user4", "cn=user4,ou=People,dc=example,dc=com");
+
@Before
public void setup() throws Exception {
ctx = ( LdapContext ) getWiredContext( ldapServer, null ).lookup( "dc=example,dc=com" );
@@ -227,20 +277,22 @@ public class TestLdapAtnProviderWithMiniDS extends AbstractLdapTestUnit {
initLdapAtn(ldapProperties);
String user;
- user = "user1";
+ user = USER1.getUID();
try {
- ldapProvider.Authenticate(user, "user1");
- assertTrue("testUserBindPositive: Authentication succeeded for user1 as expected", true);
+ ldapProvider.Authenticate(user, USER1.getPassword());
+ assertTrue("testUserBindPositive: Authentication succeeded for " + user + " as expected", true);
} catch (AuthenticationException e) {
- Assert.fail("testUserBindPositive: Authentication failed for user:" + user + " with password user1, expected to succeed");
+ Assert.fail("testUserBindPositive: Authentication failed for user:" + user + " with password "
+ + USER1.getPassword() + ", expected to succeed");
}
- user = "user2";
+ user = USER2.getUID();
try {
- ldapProvider.Authenticate(user, "user2");
- assertTrue("testUserBindPositive: Authentication succeeded for user2 as expected", true);
+ ldapProvider.Authenticate(user, USER2.getPassword());
+ assertTrue("testUserBindPositive: Authentication succeeded for " + USER2.getUID() + " as expected", true);
} catch (AuthenticationException e) {
- Assert.fail("testUserBindPositive: Authentication failed for user:" + user + " with password user2, expected to succeed");
+ Assert.fail("testUserBindPositive: Authentication failed for user:" + user + " with password "
+ + USER2.getPassword() + ", expected to succeed");
}
}
@@ -251,20 +303,22 @@ public class TestLdapAtnProviderWithMiniDS extends AbstractLdapTestUnit {
initLdapAtn(ldapProperties);
String user;
- user = "user1";
+ user = USER1.getUID();
try {
- ldapProvider.Authenticate(user, "user1");
- assertTrue("testUserBindPositive: Authentication succeeded for user1 as expected", true);
+ ldapProvider.Authenticate(user, USER1.getPassword());
+ assertTrue("testUserBindPositive: Authentication succeeded for " + user + " as expected", true);
} catch (AuthenticationException e) {
- Assert.fail("testUserBindPositive: Authentication failed for user:" + user + " with password user1, expected to succeed");
+ Assert.fail("testUserBindPositive: Authentication failed for user:" + user + " with password "
+ + USER1.getPassword() + ", expected to succeed");
}
- user = "user2";
+ user = USER2.getUID();
try {
- ldapProvider.Authenticate(user, "user2");
- assertTrue("testUserBindPositive: Authentication succeeded for user2 as expected", true);
+ ldapProvider.Authenticate(user, USER2.getPassword());
+ assertTrue("testUserBindPositive: Authentication succeeded for " + USER2.getUID() + " as expected", true);
} catch (AuthenticationException e) {
- Assert.fail("testUserBindPositive: Authentication failed for user:" + user + " with password user2, expected to succeed");
+ Assert.fail("testUserBindPositive: Authentication failed for user:" + user + " with password "
+ + USER2.getPassword() + ", expected to succeed");
}
}
@@ -276,17 +330,18 @@ public class TestLdapAtnProviderWithMiniDS extends AbstractLdapTestUnit {
initLdapAtn(ldapProperties);
try {
- ldapProvider.Authenticate("user1", "user2");
- Assert.fail("testUserBindNegative: Authentication succeeded for user1 with password user2, expected to fail");
+ ldapProvider.Authenticate(USER1.getUID(), USER2.getPassword());
+ Assert.fail("testUserBindNegative: Authentication succeeded for " + USER1.getUID() + " with password "
+ + USER2.getPassword() + ", expected to fail");
} catch (AuthenticationException e) {
- assertTrue("testUserBindNegative: Authentication failed for user1 as expected", true);
+ assertTrue("testUserBindNegative: Authentication failed for " + USER1.getUID() + " as expected", true);
}
try {
- ldapProvider.Authenticate("user2", "user");
- Assert.fail("testUserBindNegative: Authentication failed for user2 with password user, expected to fail");
+ ldapProvider.Authenticate(USER2.getUID(), "user");
+ Assert.fail("testUserBindNegative: Authentication failed for " + USER2.getUID() + " with password user, expected to fail");
} catch (AuthenticationException e) {
- assertTrue("testUserBindNegative: Authentication failed for user2 as expected", true);
+ assertTrue("testUserBindNegative: Authentication failed for " + USER2.getUID() + " as expected", true);
}
}
@@ -297,17 +352,18 @@ public class TestLdapAtnProviderWithMiniDS extends AbstractLdapTestUnit {
initLdapAtn(ldapProperties);
try {
- ldapProvider.Authenticate("user1", "user2");
- Assert.fail("testUserBindNegative: Authentication succeeded for user1 with password user2, expected to fail");
+ ldapProvider.Authenticate(USER1.getUID(), USER2.getPassword());
+ Assert.fail("testUserBindNegative: Authentication succeeded for " + USER1.getUID() + " with password "
+ + USER2.getPassword() + ", expected to fail");
} catch (AuthenticationException e) {
- assertTrue("testUserBindNegative: Authentication failed for user1 as expected", true);
+ assertTrue("testUserBindNegative: Authentication failed for " + USER1.getUID() + " as expected", true);
}
try {
- ldapProvider.Authenticate("user2", "user");
- Assert.fail("testUserBindNegative: Authentication failed for user2 with password user, expected to fail");
+ ldapProvider.Authenticate(USER2.getUID(), "user");
+ Assert.fail("testUserBindNegative: Authentication failed for " + USER2.getUID() + " with password user, expected to fail");
} catch (AuthenticationException e) {
- assertTrue("testUserBindNegative: Authentication failed for user2 as expected", true);
+ assertTrue("testUserBindNegative: Authentication failed for " + USER2.getUID() + " as expected", true);
}
}
@@ -321,22 +377,22 @@ public class TestLdapAtnProviderWithMiniDS extends AbstractLdapTestUnit {
initLdapAtn(ldapProperties);
assertTrue(ldapServer.getPort() > 0);
- user = "uid=user1,ou=People,dc=example,dc=com";
+ user = USER1.getDN();
try {
- ldapProvider.Authenticate(user, "user1");
+ ldapProvider.Authenticate(user, USER1.getPassword());
assertTrue("testUserBindPositive: Authentication succeeded for " + user + " as expected", true);
} catch (AuthenticationException e) {
Assert.fail("testUserBindPositive: Authentication failed for user:" + user +
- " with password user1, expected to succeed:" + e.getMessage());
+ " with password " + USER1.getPassword() + ", expected to succeed:" + e.getMessage());
}
- user = "uid=user2,ou=People,dc=example,dc=com";
+ user = USER2.getDN();
try {
- ldapProvider.Authenticate(user, "user2");
+ ldapProvider.Authenticate(user, USER2.getPassword());
assertTrue("testUserBindPositive: Authentication succeeded for " + user + " user as expected", true);
} catch (AuthenticationException e) {
Assert.fail("testUserBindPositive: Authentication failed for user:" + user +
- " with password user2, expected to succeed:" + e.getMessage());
+ " with password " + USER2.getPassword() + ", expected to succeed:" + e.getMessage());
}
}
@@ -349,22 +405,22 @@ public class TestLdapAtnProviderWithMiniDS extends AbstractLdapTestUnit {
initLdapAtn(ldapProperties);
assertTrue(ldapServer.getPort() > 0);
- user = "uid=user1,ou=People,dc=example,dc=com";
+ user = USER1.getDN();
try {
- ldapProvider.Authenticate(user, "user1");
+ ldapProvider.Authenticate(user, USER1.getPassword());
assertTrue("testUserBindPositive: Authentication succeeded for " + user + " as expected", true);
} catch (AuthenticationException e) {
Assert.fail("testUserBindPositive: Authentication failed for user:" + user +
- " with password user1, expected to succeed");
+ " with password " + USER1.getPassword() + ", expected to succeed");
}
- user = "uid=user2,ou=People,dc=example,dc=com";
+ user = USER2.getDN();
try {
- ldapProvider.Authenticate(user, "user2");
+ ldapProvider.Authenticate(user, USER2.getPassword());
assertTrue("testUserBindPositive: Authentication succeeded for " + user + " as expected", true);
} catch (AuthenticationException e) {
Assert.fail("testUserBindPositive: Authentication failed for user:" + user +
- " with password user2, expected to succeed");
+ " with password " + USER2.getPassword() + ", expected to succeed");
}
}
@@ -377,22 +433,23 @@ public class TestLdapAtnProviderWithMiniDS extends AbstractLdapTestUnit {
initLdapAtn(ldapProperties);
assertTrue(ldapServer.getPort() > 0);
- user = "uid=user1,ou=People,dc=example,dc=com";
+ user = USER1.getDN();
try {
- ldapProvider.Authenticate(user, "user1");
+ ldapProvider.Authenticate(user, USER1.getPassword());
assertTrue("testUserBindPositive: Authentication succeeded for " + user + " as expected", true);
} catch (AuthenticationException e) {
Assert.fail("testUserBindPositive: Authentication failed for user:" + user +
- " with password user1, expected to succeed");
+ " with password " + USER1.getPassword() + ", expected to succeed");
}
- user = "uid=user2,ou=People,dc=example,dc=com";
+ user = USER2.getDN();
try {
- ldapProvider.Authenticate(user, "user2");
+ ldapProvider.Authenticate(user, USER2.getPassword());
assertTrue("testUserBindPositive: Authentication succeeded for " + user + " as expected", true);
} catch (AuthenticationException e) {
Assert.fail("testUserBindPositive: Authentication failed for user:" + user +
- " with password user2, expected to succeed");
+ " with password "
+ + USER2.getPassword() + ", expected to succeed");
}
}
@@ -406,22 +463,22 @@ public class TestLdapAtnProviderWithMiniDS extends AbstractLdapTestUnit {
initLdapAtn(ldapProperties);
assertTrue(ldapServer.getPort() > 0);
- user = "uid=user1,ou=People,dc=example,dc=com";
+ user = USER1.getDN();
try {
- ldapProvider.Authenticate(user, "user1");
+ ldapProvider.Authenticate(user, USER1.getPassword());
assertTrue("testUserBindPositive: Authentication succeeded for " + user + " as expected", true);
} catch (AuthenticationException e) {
Assert.fail("testUserBindPositive: Authentication failed for user:" + user +
- " with password user1, expected to succeed");
+ " with password " + USER1.getPassword() + ", expected to succeed");
}
- user = "uid=user2,ou=People,dc=example,dc=com";
+ user = USER2.getDN();
try {
- ldapProvider.Authenticate(user, "user2");
+ ldapProvider.Authenticate(user, USER2.getPassword());
assertTrue("testUserBindPositive: Authentication succeeded for " + user + " as expected", true);
} catch (AuthenticationException e) {
Assert.fail("testUserBindPositive: Authentication failed for user:" + user +
- " with password user2, expected to succeed");
+ " with password " + USER2.getPassword() + ", expected to succeed");
}
}
@@ -435,22 +492,22 @@ public class TestLdapAtnProviderWithMiniDS extends AbstractLdapTestUnit {
initLdapAtn(ldapProperties);
assertTrue(ldapServer.getPort() > 0);
- user = "uid=user1,ou=People,dc=example,dc=com";
+ user = USER1.getDN();
try {
- ldapProvider.Authenticate(user, "user1");
+ ldapProvider.Authenticate(user, USER1.getPassword());
assertTrue("testUserBindPositive: Authentication succeeded for " + user + " as expected", true);
} catch (AuthenticationException e) {
Assert.fail("testUserBindPositive: Authentication failed for user:" + user +
- " with password user1, expected to succeed");
+ " with password " + USER1.getPassword() + ", expected to succeed");
}
- user = "uid=user2,ou=People,dc=example,dc=com";
+ user = USER2.getDN();
try {
- ldapProvider.Authenticate(user, "user2");
+ ldapProvider.Authenticate(user, USER2.getPassword());
assertTrue("testUserBindPositive: Authentication succeeded for " + user + " as expected", true);
} catch (AuthenticationException e) {
Assert.fail("testUserBindPositive: Authentication failed for user:" + user +
- " with password user2, expected to succeed");
+ " with password " + USER2.getPassword() + ", expected to succeed");
}
}
@@ -463,22 +520,22 @@ public class TestLdapAtnProviderWithMiniDS extends AbstractLdapTestUnit {
initLdapAtn(ldapProperties);
assertTrue(ldapServer.getPort() > 0);
- user = "uid=user1,ou=People,dc=example,dc=com";
+ user = USER1.getDN();
try {
- ldapProvider.Authenticate(user, "user1");
+ ldapProvider.Authenticate(user, USER1.getPassword());
assertTrue("testUserBindPositive: Authentication succeeded for " + user + " as expected", true);
} catch (AuthenticationException e) {
Assert.fail("testUserBindPositive: Authentication failed for user:" + user +
- " with password user1, expected to succeed");
+ " with password " + USER1.getPassword() + ", expected to succeed");
}
- user = "uid=user2,ou=People,dc=example,dc=com";
+ user = USER2.getDN();
try {
- ldapProvider.Authenticate(user, "user2");
+ ldapProvider.Authenticate(user, USER2.getPassword());
assertTrue("testUserBindPositive: Authentication succeeded for " + user + " as expected", true);
} catch (AuthenticationException e) {
Assert.fail("testUserBindPositive: Authentication failed for user:" + user +
- " with password user2, expected to succeed");
+ " with password " + USER2.getPassword() + ", expected to succeed");
}
}
@@ -491,16 +548,16 @@ public class TestLdapAtnProviderWithMiniDS extends AbstractLdapTestUnit {
initLdapAtn(ldapProperties);
assertTrue(ldapServer.getPort() > 0);
- user = "uid=user1,ou=People,dc=example,dc=com";
+ user = USER1.getDN();
try {
- ldapProvider.Authenticate(user, "user2");
+ ldapProvider.Authenticate(user, USER2.getPassword());
Assert.fail("testUserBindNegative: Authentication succeeded for " + user + " with password " +
- "user2, expected to fail");
+ USER2.getPassword() + ", expected to fail");
} catch (AuthenticationException e) {
assertTrue("testUserBindNegative: Authentication failed for " + user + " as expected", true);
}
- user = "uid=user2,ou=People,dc=example,dc=com";
+ user = USER2.getDN();
try {
ldapProvider.Authenticate(user, "user");
Assert.fail("testUserBindNegative: Authentication failed for " + user + " with password user, " +
@@ -518,16 +575,16 @@ public class TestLdapAtnProviderWithMiniDS extends AbstractLdapTestUnit {
initLdapAtn(ldapProperties);
assertTrue(ldapServer.getPort() > 0);
- user = "uid=user1,ou=People,dc=example,dc=com";
+ user = USER1.getDN();
try {
- ldapProvider.Authenticate(user, "user2");
+ ldapProvider.Authenticate(user, USER2.getPassword());
Assert.fail("testUserBindNegative: Authentication succeeded for " + user + " with password " +
- "user2, expected to fail");
+ USER2.getPassword() + ", expected to fail");
} catch (AuthenticationException e) {
assertTrue("testUserBindNegative: Authentication failed for " + user + " as expected", true);
}
- user = "uid=user2,ou=People,dc=example,dc=com";
+ user = USER2.getDN();
try {
ldapProvider.Authenticate(user, "user");
Assert.fail("testUserBindNegative: Authentication failed for " + user + " with password user, " +
@@ -542,16 +599,16 @@ public class TestLdapAtnProviderWithMiniDS extends AbstractLdapTestUnit {
String user;
Map<String, String> ldapProperties = new HashMap<String, String>();
ldapProperties.put("hive.server2.authentication.ldap.userDNPattern", "uid=%s,ou=People,dc=example,dc=com");
- ldapProperties.put("hive.server2.authentication.ldap.userFilter", "user2");
+ ldapProperties.put("hive.server2.authentication.ldap.userFilter", USER2.getUID());
initLdapAtn(ldapProperties);
- user = "uid=user2,ou=People,dc=example,dc=com";
+ user = USER2.getDN();
try {
- ldapProvider.Authenticate(user, "user2");
+ ldapProvider.Authenticate(user, USER2.getPassword());
assertTrue("testUserFilterPositive: Authentication succeeded for " + user + " as expected", true);
- user = "user2";
- ldapProvider.Authenticate(user, "user2");
+ user = USER2.getUID();
+ ldapProvider.Authenticate(user, USER2.getPassword());
assertTrue("testUserFilterPositive: Authentication succeeded for " + user + " as expected", true);
} catch (AuthenticationException e) {
Assert.fail("testUserFilterPositive: Authentication failed for " + user + ",user expected to pass userfilter");
@@ -559,16 +616,16 @@ public class TestLdapAtnProviderWithMiniDS extends AbstractLdapTestUnit {
ldapProperties = new HashMap<String, String>();
ldapProperties.put("hive.server2.authentication.ldap.userDNPattern", "uid=%s,ou=People,dc=example,dc=com");
- ldapProperties.put("hive.server2.authentication.ldap.userFilter", "user1");
+ ldapProperties.put("hive.server2.authentication.ldap.userFilter", USER1.getUID());
initLdapAtn(ldapProperties);
try {
- user = "uid=user1,ou=People,dc=example,dc=com";
- ldapProvider.Authenticate(user, "user1");
+ user = USER1.getDN();
+ ldapProvider.Authenticate(user, USER1.getPassword());
assertTrue("testUserFilterPositive: Authentication succeeded for " + user + " as expected", true);
- user = "user1";
- ldapProvider.Authenticate(user, "user1");
+ user = USER1.getUID();
+ ldapProvider.Authenticate(user, USER1.getPassword());
assertTrue("testUserFilterPositive: Authentication succeeded for " + user + " as expected", true);
} catch (AuthenticationException e) {
Assert.fail("testUserFilterPositive: Authentication failed for " + user + ",user expected to pass userfilter");
@@ -576,16 +633,16 @@ public class TestLdapAtnProviderWithMiniDS extends AbstractLdapTestUnit {
ldapProperties = new HashMap<String, String>();
ldapProperties.put("hive.server2.authentication.ldap.userDNPattern", "uid=%s,ou=People,dc=example,dc=com");
- ldapProperties.put("hive.server2.authentication.ldap.userFilter", "user2,user1");
+ ldapProperties.put("hive.server2.authentication.ldap.userFilter", USER2.getUID() + "," + USER1.getUID());
initLdapAtn(ldapProperties);
try {
- user = "uid=user1,ou=People,dc=example,dc=com";
- ldapProvider.Authenticate(user, "user1");
+ user = USER1.getDN();
+ ldapProvider.Authenticate(user, USER1.getPassword());
assertTrue("testUserFilterPositive: Authentication succeeded for " + user + " as expected", true);
- user = "user2";
- ldapProvider.Authenticate(user, "user2");
+ user = USER2.getUID();
+ ldapProvider.Authenticate(user, USER2.getPassword());
assertTrue("testUserFilterPositive: Authentication succeeded for " + user + " as expected", true);
} catch (AuthenticationException e) {
@@ -598,20 +655,20 @@ public class TestLdapAtnProviderWithMiniDS extends AbstractLdapTestUnit {
String user;
Map<String, String> ldapProperties = new HashMap<String, String>();
ldapProperties.put("hive.server2.authentication.ldap.userDNPattern", "uid=%s,ou=People,dc=example,dc=com");
- ldapProperties.put("hive.server2.authentication.ldap.userFilter", "user2");
+ ldapProperties.put("hive.server2.authentication.ldap.userFilter", USER2.getUID());
initLdapAtn(ldapProperties);
- user = "uid=user1,ou=People,dc=example,dc=com";
+ user = USER1.getDN();
try {
- ldapProvider.Authenticate(user, "user1");
+ ldapProvider.Authenticate(user, USER1.getPassword());
Assert.fail("testUserFilterNegative: Authentication succeeded for " + user + ",user is expected to fail userfilter");
} catch (AuthenticationException e) {
assertTrue("testUserFilterNegative: Authentication failed for " + user + " as expected", true);
}
- user = "user1";
+ user = USER1.getUID();
try {
- ldapProvider.Authenticate(user, "user1");
+ ldapProvider.Authenticate(user, USER1.getPassword());
Assert.fail("testUserFilterNegative: Authentication succeeded for " + user + ",user is expected to fail userfilter");
} catch (AuthenticationException e) {
assertTrue("testUserFilterNegative: Authentication failed for " + user + " as expected", true);
@@ -619,20 +676,20 @@ public class TestLdapAtnProviderWithMiniDS extends AbstractLdapTestUnit {
ldapProperties = new HashMap<String, String>();
ldapProperties.put("hive.server2.authentication.ldap.userDNPattern", "uid=%s,ou=People,dc=example,dc=com");
- ldapProperties.put("hive.server2.authentication.ldap.userFilter", "user1");
+ ldapProperties.put("hive.server2.authentication.ldap.userFilter", USER1.getUID());
initLdapAtn(ldapProperties);
- user = "uid=user2,ou=People,dc=example,dc=com";
+ user = USER2.getDN();
try {
- ldapProvider.Authenticate(user, "user2");
+ ldapProvider.Authenticate(user, USER2.getPassword());
Assert.fail("testUserFilterNegative: Authentication succeeded for " + user + ",user is expected to fail userfilter");
} catch (AuthenticationException e) {
assertTrue("testUserFilterNegative: Authentication failed for " + user + " as expected", true);
}
- user = "user2";
+ user = USER2.getUID();
try {
- ldapProvider.Authenticate(user, "user2");
+ ldapProvider.Authenticate(user, USER2.getPassword());
Assert.fail("testUserFilterNegative: Authentication succeeded for " + user + ",user is expected to fail userfilter");
} catch (AuthenticationException e) {
assertTrue("testUserFilterNegative: Authentication failed for " + user + " as expected", true);
@@ -640,20 +697,20 @@ public class TestLdapAtnProviderWithMiniDS extends AbstractLdapTestUnit {
ldapProperties = new HashMap<String, String>();
ldapProperties.put("hive.server2.authentication.ldap.userDNPattern", "uid=%s,ou=People,dc=example,dc=com");
- ldapProperties.put("hive.server2.authentication.ldap.userFilter", "user3");
+ ldapProperties.put("hive.server2.authentication.ldap.userFilter", USER3.getUID());
initLdapAtn(ldapProperties);
- user = "user1";
+ user = USER1.getUID();
try {
- ldapProvider.Authenticate(user, "user1");
+ ldapProvider.Authenticate(user, USER1.getPassword());
Assert.fail("testUserFilterNegative: Authentication succeeded for " + user + ",user expected to fail userfilter");
} catch (AuthenticationException e) {
assertTrue("testUserFilterNegative: Authentication failed for " + user + " as expected", true);
}
- user = "uid=user2,ou=People,dc=example,dc=com";
+ user = USER2.getDN();
try {
- ldapProvider.Authenticate(user, "user2");
+ ldapProvider.Authenticate(user, USER2.getPassword());
Assert.fail("testUserFilterNegative: Authentication succeeded for " + user + ",user expected to fail userfilter");
} catch (AuthenticationException e) {
assertTrue("testUserFilterNegative: Authentication failed for " + user + " as expected", true);
@@ -669,17 +726,17 @@ public class TestLdapAtnProviderWithMiniDS extends AbstractLdapTestUnit {
ldapProperties.put("hive.server2.authentication.ldap.groupFilter", "group1,group2");
initLdapAtn(ldapProperties);
- user = "uid=user1,ou=People,dc=example,dc=com";
+ user = USER1.getDN();
try {
- ldapProvider.Authenticate(user, "user1");
+ ldapProvider.Authenticate(user, USER1.getPassword());
assertTrue("testGroupFilterPositive: Authentication succeeded for " + user + " as expected", true);
- user = "user1";
- ldapProvider.Authenticate(user, "user1");
+ user = USER1.getUID();
+ ldapProvider.Authenticate(user, USER1.getPassword());
assertTrue("testGroupFilterPositive: Authentication succeeded for " + user + " as expected", true);
- user = "uid=user2,ou=People,dc=example,dc=com";
- ldapProvider.Authenticate(user, "user2");
+ user = USER2.getDN();
+ ldapProvider.Authenticate(user, USER2.getPassword());
assertTrue("testGroupFilterPositive: Authentication succeeded for " + user + " as expected", true);
} catch (AuthenticationException e) {
Assert.fail("testGroupFilterPositive: Authentication failed for " + user + ",user expected to pass groupfilter");
@@ -691,9 +748,9 @@ public class TestLdapAtnProviderWithMiniDS extends AbstractLdapTestUnit {
ldapProperties.put("hive.server2.authentication.ldap.groupFilter", "group2");
initLdapAtn(ldapProperties);
- user = "uid=user2,ou=People,dc=example,dc=com";
+ user = USER2.getDN();
try {
- ldapProvider.Authenticate(user, "user2");
+ ldapProvider.Authenticate(user, USER2.getPassword());
assertTrue("testGroupFilterPositive: Authentication succeeded for " + user + " as expected", true);
} catch (AuthenticationException e) {
Assert.fail("testGroupFilterPositive: Authentication failed for " + user + ",user expected to pass groupfilter");
@@ -709,9 +766,9 @@ public class TestLdapAtnProviderWithMiniDS extends AbstractLdapTestUnit {
ldapProperties.put("hive.server2.authentication.ldap.groupFilter", "group1");
initLdapAtn(ldapProperties);
- user = "uid=user2,ou=People,dc=example,dc=com";
+ user = USER2.getDN();
try {
- ldapProvider.Authenticate(user, "user2");
+ ldapProvider.Authenticate(user, USER2.getPassword());
Assert.fail("testGroupFilterNegative: Authentication succeeded for " + user + ",user expected to fail groupfilter");
} catch (AuthenticationException e) {
assertTrue("testGroupFilterNegative: Authentication failed for " + user + " as expected", true);
@@ -723,12 +780,199 @@ public class TestLdapAtnProviderWithMiniDS extends AbstractLdapTestUnit {
ldapProperties.put("hive.server2.authentication.ldap.groupFilter", "group2");
initLdapAtn(ldapProperties);
- user = "uid=user1,ou=People,dc=example,dc=com";
+ user = USER1.getDN();
try {
- ldapProvider.Authenticate(user, "user1");
+ ldapProvider.Authenticate(user, USER1.getPassword());
Assert.fail("testGroupFilterNegative: Authentication succeeded for " + user + ",user expected to fail groupfilter");
} catch (AuthenticationException e) {
assertTrue("testGroupFilterNegative: Authentication failed for " + user + " as expected", true);
}
}
+
+ @Test
+ public void testUserAndGroupFilterPositive() throws Exception {
+ String user;
+ Map<String, String> ldapProperties = new HashMap<String, String>();
+ ldapProperties.put("hive.server2.authentication.ldap.userDNPattern", "uid=%s,ou=People,dc=example,dc=com");
+ ldapProperties.put("hive.server2.authentication.ldap.groupDNPattern", "uid=%s,ou=Groups,dc=example,dc=com");
+ ldapProperties.put("hive.server2.authentication.ldap.userFilter", USER1.getUID() + "," + USER2.getUID());
+ ldapProperties.put("hive.server2.authentication.ldap.groupFilter", "group1,group2");
+ initLdapAtn(ldapProperties);
+
+ user = USER1.getDN();
+ try {
+ ldapProvider.Authenticate(user, USER1.getPassword());
+ assertTrue("testUserAndGroupFilterPositive: Authentication succeeded for " + user + " as expected", true);
+
+ user = USER1.getUID();
+ ldapProvider.Authenticate(user, USER1.getPassword());
+ assertTrue("testUserAndGroupFilterPositive: Authentication succeeded for " + user + " as expected", true);
+
+ } catch (AuthenticationException e) {
+ Assert.fail("testUserAndGroupFilterPositive: Authentication failed for " + user + ",user expected to pass groupfilter");
+ }
+
+ user = USER2.getUID();
+ try {
+ ldapProvider.Authenticate(user, USER2.getPassword());
+ assertTrue("testUserAndGroupFilterPositive: Authentication succeeded for " + user + " as expected", true);
+ } catch (AuthenticationException e) {
+ Assert.fail("testUserAndGroupFilterPositive: Authentication failed for " + user + ",user expected to pass groupfilter");
+ }
+ }
+
+ @Test
+ public void testUserAndGroupFilterNegative() throws Exception {
+ String user;
+ Map<String, String> ldapProperties = new HashMap<String, String>();
+ ldapProperties.put("hive.server2.authentication.ldap.userDNPattern", "uid=%s,ou=People,dc=example,dc=com");
+ ldapProperties.put("hive.server2.authentication.ldap.groupDNPattern", "uid=%s,ou=Groups,dc=example,dc=com");
+ ldapProperties.put("hive.server2.authentication.ldap.userFilter", USER1.getUID() + "," + USER2.getUID());
+ ldapProperties.put("hive.server2.authentication.ldap.groupFilter", "group1");
+ initLdapAtn(ldapProperties);
+
+ user = USER2.getDN();
+ try {
+ ldapProvider.Authenticate(user, USER2.getPassword());
+ Assert.fail("testUserAndGroupFilterNegative: Authentication succeeded for " + user + ",user expected to fail groupfilter");
+
+ user = USER2.getUID();
+ ldapProvider.Authenticate(user, USER2.getPassword());
+ Assert.fail("testUserAndGroupFilterNegative: Authentication succeeded for " + user + ",user expected to fail groupfilter");
+
+ user = USER3.getUID();
+ ldapProvider.Authenticate(user, USER3.getPassword());
+ Assert.fail("testUserAndGroupFilterNegative: Authentication succeeded for " + user + ",user expected to fail groupfilter");
+ } catch (AuthenticationException e) {
+ assertTrue("testUserAndGroupFilterNegative: Authentication failed for " + user + " as expected", true);
+ }
+ }
+
+ @Test
+ public void testCustomQueryPositive() throws Exception {
+ String user;
+ Map<String, String> ldapProperties = new HashMap<String, String>();
+ ldapProperties.put("hive.server2.authentication.ldap.baseDN", "ou=People,dc=example,dc=com");
+ ldapProperties.put("hive.server2.authentication.ldap.userDNPattern", "cn=%s,ou=People,dc=example,dc=com:uid=%s,ou=People,dc=example,dc=com");
+ ldapProperties.put("hive.server2.authentication.ldap.groupDNPattern", "cn=%s,ou=People,dc=example,dc=com");
+ ldapProperties.put("hive.server2.authentication.ldap.customLDAPQuery", "(&(objectClass=person)(|(uid="
+ + USER1.getUID() + ")(uid=" + USER4.getUID() + ")))");
+ initLdapAtn(ldapProperties);
+
+ user = USER1.getDN();
+ try {
+ ldapProvider.Authenticate(user, USER1.getPassword());
+ assertTrue("testCustomQueryPositive: Authentication succeeded for " + user + " as expected", true);
+
+ user = USER1.getUID();
+ ldapProvider.Authenticate(user, USER1.getPassword());
+ assertTrue("testCustomQueryPositive: Authentication succeeded for " + user + " as expected", true);
+
+ user = USER4.getDN();
+ ldapProvider.Authenticate(user, USER4.getPassword());
+ assertTrue("testCustomQueryPositive: Authentication succeeded for " + user + " as expected", true);
+ } catch (AuthenticationException e) {
+ Assert.fail("testCustomQueryPositive: Authentication failed for " + user + ",user expected to pass custom LDAP Query");
+ }
+ }
+
+ @Test
+ public void testCustomQueryNegative() throws Exception {
+ String user;
+ Map<String, String> ldapProperties = new HashMap<String, String>();
+ ldapProperties.put("hive.server2.authentication.ldap.baseDN", "ou=People,dc=example,dc=com");
+ // ldap query will only return user1
+ ldapProperties.put("hive.server2.authentication.ldap.customLDAPQuery", "(&(objectClass=person)(uid="
+ + USER1.getUID() + "))");
+ initLdapAtn(ldapProperties);
+
+ user = USER2.getDN();
+ try {
+ ldapProvider.Authenticate(user, USER2.getPassword());
+ Assert.fail("testCustomQueryNegative: Authentication succeeded for " + user + ",user expected to fail custom LDAP Query");
+ } catch (AuthenticationException e) {
+ assertTrue("testCustomQueryNegative: Authentication failed for " + user + " as expected", true);
+ }
+
+ try {
+ user = USER2.getUID();
+ ldapProvider.Authenticate(user, USER2.getPassword());
+ Assert.fail("testCustomQueryNegative: Authentication succeeded for " + user + ",user expected to fail custom LDAP Query");
+ } catch (AuthenticationException e) {
+ assertTrue("testCustomQueryNegative: Authentication failed for " + user + " as expected", true);
+ }
+ }
+
+ @Test
+ public void testGroupFilterPositiveWithCustomGUID() throws Exception {
+ String user;
+ Map<String, String> ldapProperties = new HashMap<String, String>();
+ ldapProperties.put("hive.server2.authentication.ldap.userDNPattern", "cn=%s,ou=People,dc=example,dc=com");
+ ldapProperties.put("hive.server2.authentication.ldap.groupDNPattern", "cn=%s,ou=Groups,dc=example,dc=com");
+ ldapProperties.put("hive.server2.authentication.ldap.guidKey", "cn");
+ ldapProperties.put("hive.server2.authentication.ldap.groupFilter", "group3");
+ initLdapAtn(ldapProperties);
+
+ user = USER3.getDN();
+ try {
+ ldapProvider.Authenticate(user, USER3.getPassword());
+ assertTrue("testGroupFilterPositive: Authentication succeeded for " + user + " as expected", true);
+
+ user = USER3.getUID();
+ ldapProvider.Authenticate(user, USER3.getPassword());
+ assertTrue("testGroupFilterPositive: Authentication succeeded for " + user + " as expected", true);
+ } catch (AuthenticationException e) {
+ Assert.fail("testGroupFilterPositive: Authentication failed for " + user + ",user expected to pass groupfilter");
+ }
+ }
+
+ @Test
+ public void testGroupFilterPositiveWithCustomAttributes() throws Exception {
+ String user;
+ Map<String, String> ldapProperties = new HashMap<String, String>();
+ ldapProperties.put("hive.server2.authentication.ldap.userDNPattern", "cn=%s,ou=People,dc=example,dc=com");
+ ldapProperties.put("hive.server2.authentication.ldap.groupDNPattern", "cn=%s,ou=Groups,dc=example,dc=com");
+ ldapProperties.put("hive.server2.authentication.ldap.groupFilter", "group4");
+ ldapProperties.put("hive.server2.authentication.ldap.guidKey", "cn");
+ ldapProperties.put("hive.server2.authentication.ldap.groupMembershipKey", "uniqueMember");
+ ldapProperties.put("hive.server2.authentication.ldap.groupClassKey", "groupOfUniqueNames");
+ initLdapAtn(ldapProperties);
+
+ user = USER4.getDN();
+ try {
+ ldapProvider.Authenticate(user, USER4.getPassword());
+ assertTrue("testGroupFilterPositive: Authentication succeeded for " + user + " as expected", true);
+
+ user = USER4.getUID();
+ ldapProvider.Authenticate(user, USER4.getPassword());
+ assertTrue("testGroupFilterPositive: Authentication succeeded for " + user + " as expected", true);
+ } catch (AuthenticationException e) {
+ Assert.fail("testGroupFilterPositive: Authentication failed for " + user + ",user expected to pass groupfilter");
+ }
+
+ }
+}
+
+class User {
+ String uid;
+ String pwd;
+ String ldapDN;
+
+ User(String uid, String password, String ldapDN) {
+ this.uid = uid;
+ this.pwd = password;
+ this.ldapDN = ldapDN;
+ }
+
+ public String getUID() {
+ return uid;
+ }
+
+ public String getPassword() {
+ return pwd;
+ }
+
+ public String getDN() {
+ return ldapDN;
+ }
}
[10/50] [abbrv] hive git commit: HIVE-13533: Remove AST dump (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/vectorized_ptf.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/vectorized_ptf.q.out b/ql/src/test/results/clientpositive/vectorized_ptf.q.out
index 3b17591..fc4351d 100644
--- a/ql/src/test/results/clientpositive/vectorized_ptf.q.out
+++ b/ql/src/test/results/clientpositive/vectorized_ptf.q.out
@@ -142,88 +142,6 @@ from noop(on part_orc
order by p_name
)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_retailprice
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -512,94 +430,6 @@ from noop (on (select p1.* from part_orc p1 join part_orc p2 on p1.p_partkey = p
distribute by j.p_mfgr
sort by j.p_name)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- part_orc
- p1
- TOK_TABREF
- TOK_TABNAME
- part_orc
- p2
- =
- .
- TOK_TABLE_OR_COL
- p1
- p_partkey
- .
- TOK_TABLE_OR_COL
- p2
- p_partkey
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- p1
- j
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- .
- TOK_TABLE_OR_COL
- j
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- j
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- -
- TOK_TABLE_OR_COL
- p_size
- TOK_FUNCTION
- lag
- TOK_TABLE_OR_COL
- p_size
- 1
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- deltaSz
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -956,40 +786,6 @@ from noop(on part_orc
partition by p_mfgr
order by p_name)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1178,89 +974,6 @@ from noop(on part_orc
order by p_name
) abc
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- abc
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_retailprice
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -1555,93 +1268,6 @@ from noop(on part_orc
order by p_name
)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- -
- TOK_TABLE_OR_COL
- p_size
- TOK_FUNCTION
- lag
- TOK_TABLE_OR_COL
- p_size
- 1
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- deltaSz
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -1939,100 +1565,6 @@ from noop(on part_orc
)
group by p_mfgr, p_name, p_size
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- -
- TOK_TABLE_OR_COL
- p_size
- TOK_FUNCTION
- lag
- TOK_TABLE_OR_COL
- p_size
- 1
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- deltaSz
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_TABLE_OR_COL
- p_size
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -2332,50 +1864,6 @@ partition by p_mfgr
order by p_name
) abc join part_orc p1 on abc.p_partkey = p1.p_partkey
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_PTBLFUNCTION
- noop
- abc
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_TABREF
- TOK_TABNAME
- part_orc
- p1
- =
- .
- TOK_TABLE_OR_COL
- abc
- p_partkey
- .
- TOK_TABLE_OR_COL
- p1
- p_partkey
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- abc
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -2691,50 +2179,6 @@ partition by p_mfgr
order by p_name
) abc on abc.p_partkey = p1.p_partkey
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- part_orc
- p1
- TOK_PTBLFUNCTION
- noop
- abc
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- =
- .
- TOK_TABLE_OR_COL
- abc
- p_partkey
- .
- TOK_TABLE_OR_COL
- p1
- p_partkey
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- abc
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
@@ -3054,62 +2498,6 @@ from noopwithmap(on part_orc
partition by p_mfgr
order by p_name, p_size desc)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noopwithmap
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_TABSORTCOLNAMEDESC
- TOK_NULLS_LAST
- TOK_TABLE_OR_COL
- p_size
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_TABSORTCOLNAMEDESC
- TOK_NULLS_LAST
- TOK_TABLE_OR_COL
- p_size
- r
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -3397,88 +2785,6 @@ from noopwithmap(on part_orc
partition by p_mfgr
order by p_name)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noopwithmap
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_retailprice
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -3785,88 +3091,6 @@ from noop(on part_orc
partition by p_mfgr
order by p_name)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_retailprice
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -4159,96 +3383,6 @@ partition by p_mfgr
order by p_mfgr, p_name
)))
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noopwithmap
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_retailprice
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -4658,107 +3792,6 @@ order by p_name)
window w1 as (partition by p_mfgr order by p_name rows between 2 preceding and 2 following)
) sub1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_FUNCTION
- count
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- cd
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_retailprice
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_retailprice
- TOK_WINDOWSPEC
- w1
- s1
- window
- TOK_WINDOWDEF
- w1
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- 2
- following
- 2
- sub1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- sub1
- cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- sub1
- s1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -5055,182 +4088,6 @@ partition by p_mfgr
order by p_name
) abc join part_orc p1 on abc.p_partkey = p1.p_partkey
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_PTBLFUNCTION
- noop
- abc
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_TABREF
- TOK_TABNAME
- part_orc
- p1
- =
- .
- TOK_TABLE_OR_COL
- abc
- p_partkey
- .
- TOK_TABLE_OR_COL
- p1
- p_partkey
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- abc
- p_mfgr
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- abc
- p_name
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- .
- TOK_TABLE_OR_COL
- abc
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- abc
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- .
- TOK_TABLE_OR_COL
- abc
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- abc
- p_name
- dr
- TOK_SELEXPR
- TOK_FUNCTION
- count
- .
- TOK_TABLE_OR_COL
- abc
- p_name
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- .
- TOK_TABLE_OR_COL
- abc
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- abc
- p_name
- cd
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- abc
- p_retailprice
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- .
- TOK_TABLE_OR_COL
- abc
- p_retailprice
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- .
- TOK_TABLE_OR_COL
- abc
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- abc
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s1
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- abc
- p_size
- TOK_SELEXPR
- -
- .
- TOK_TABLE_OR_COL
- abc
- p_size
- TOK_FUNCTION
- lag
- .
- TOK_TABLE_OR_COL
- abc
- p_size
- 1
- .
- TOK_TABLE_OR_COL
- abc
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- .
- TOK_TABLE_OR_COL
- abc
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- abc
- p_name
- deltaSz
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -5669,40 +4526,6 @@ from noop(on part_orc
partition by p_mfgr
order by p_name)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECTDI
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -5971,65 +4794,6 @@ partition by p_mfgr
order by p_mfgr)
window w1 as ( partition by p_mfgr order by p_brand rows between 2 preceding and current row)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- mfgr_price_view
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_brand
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- s
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- s
- TOK_WINDOWSPEC
- w1
- s1
- window
- TOK_WINDOWDEF
- w1
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_brand
- TOK_WINDOWRANGE
- preceding
- 2
- current
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -6364,212 +5128,6 @@ cume_dist() over (distribute by p_mfgr sort by p_mfgr, p_name) as cud,
first_value(p_size, true) over w1 as fv1
window w1 as (distribute by p_mfgr sort by p_mfgr, p_name rows between 2 preceding and 2 following)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- part_4
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_retailprice
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- part_5
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- round
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWVALUES
- preceding
- 5
- current
- 1
- s2
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_FUNCTION
- cume_dist
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- cud
- TOK_SELEXPR
- TOK_FUNCTION
- first_value
- TOK_TABLE_OR_COL
- p_size
- true
- TOK_WINDOWSPEC
- w1
- fv1
- window
- TOK_WINDOWDEF
- w1
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- 2
- following
- 2
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-3 depends on stages: Stage-2
@@ -7224,115 +5782,6 @@ from noop(on
partition by p_mfgr,p_name
order by p_mfgr,p_name)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noopwithmap
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -7771,118 +6220,6 @@ from noop(on
partition by p_mfgr
order by p_mfgr )
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -8364,105 +6701,6 @@ from noop(on
partition by p_mfgr
order by p_mfgr))
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- s1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -8873,115 +7111,6 @@ from noopwithmap(on
partition by p_mfgr,p_name
order by p_mfgr,p_name)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noopwithmap
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -9482,151 +7611,6 @@ from noop(on
order by p_mfgr
))
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noopwithmap
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s1
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWRANGE
- preceding
- unbounded
- current
- s2
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -10050,118 +8034,6 @@ from noopwithmap(on
order by p_mfgr, p_name)
))
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_PTBLFUNCTION
- noopwithmap
- TOK_PTBLFUNCTION
- noop
- TOK_PTBLFUNCTION
- noop
- TOK_TABREF
- TOK_TABNAME
- part_orc
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABLE_OR_COL
- p_name
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_name
- TOK_SELEXPR
- TOK_FUNCTION
- rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- r
- TOK_SELEXPR
- TOK_FUNCTION
- dense_rank
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- dr
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- p_size
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWVALUES
- preceding
- unbounded
- current
- s1
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- p_size
- TOK_WINDOWSPEC
- TOK_PARTITIONINGSPEC
- TOK_DISTRIBUTEBY
- TOK_TABLE_OR_COL
- p_mfgr
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- p_name
- TOK_WINDOWVALUES
- preceding
- unbounded
- current
- s2
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
[36/50] [abbrv] hive git commit: HIVE-13424: Refactoring the code to
pass a QueryState object rather than HiveConf object (Reviewed by Sergey
Shelukhin)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/parse/ProcessAnalyzeTable.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/ProcessAnalyzeTable.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/ProcessAnalyzeTable.java
index 93b7a66..c13a404 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/ProcessAnalyzeTable.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/ProcessAnalyzeTable.java
@@ -190,7 +190,7 @@ public class ProcessAnalyzeTable implements NodeProcessor {
// partial scan task
DriverContext driverCxt = new DriverContext();
Task<PartialScanWork> partialScanTask = TaskFactory.get(scanWork, parseContext.getConf());
- partialScanTask.initialize(parseContext.getConf(), null, driverCxt,
+ partialScanTask.initialize(parseContext.getQueryState(), null, driverCxt,
tableScan.getCompilationOpContext());
partialScanTask.setWork(scanWork);
statsWork.setSourceTask(partialScanTask);
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/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 9af7749..11fd2c7 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
@@ -72,6 +72,7 @@ import org.apache.hadoop.hive.ql.CompilationOpContext;
import org.apache.hadoop.hive.ql.Context;
import org.apache.hadoop.hive.ql.ErrorMsg;
import org.apache.hadoop.hive.ql.QueryProperties;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.AbstractMapJoinOperator;
import org.apache.hadoop.hive.ql.exec.ArchiveUtils;
import org.apache.hadoop.hive.ql.exec.ColumnInfo;
@@ -340,8 +341,8 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
int nextNum;
}
- public SemanticAnalyzer(HiveConf conf) throws SemanticException {
- super(conf);
+ public SemanticAnalyzer(QueryState queryState) throws SemanticException {
+ super(queryState);
opToPartPruner = new HashMap<TableScanOperator, ExprNodeDesc>();
opToPartList = new HashMap<TableScanOperator, PrunedPartitionList>();
opToSamplePruner = new HashMap<TableScanOperator, SampleDesc>();
@@ -442,7 +443,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
public ParseContext getParseContext() {
// Make sure the basic query properties are initialized
copyInfoToQueryProperties(queryProperties);
- return new ParseContext(conf, opToPartPruner, opToPartList, topOps,
+ return new ParseContext(queryState, opToPartPruner, opToPartList, topOps,
new HashSet<JoinOperator>(joinContext.keySet()),
new HashSet<SMBMapJoinOperator>(smbMapJoinContext.keySet()),
loadTableWork, loadFileWork, ctx, idToTableNameMap, destTableId, uCtx,
@@ -1197,18 +1198,18 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
createTable.addChild(temporary);
createTable.addChild(cte.cteNode);
- SemanticAnalyzer analyzer = new SemanticAnalyzer(conf);
+ SemanticAnalyzer analyzer = new SemanticAnalyzer(queryState);
analyzer.initCtx(ctx);
analyzer.init(false);
// should share cte contexts
analyzer.aliasToCTEs.putAll(aliasToCTEs);
- HiveOperation operation = SessionState.get().getHiveOperation();
+ HiveOperation operation = queryState.getHiveOperation();
try {
analyzer.analyzeInternal(createTable);
} finally {
- SessionState.get().setCommandType(operation);
+ queryState.setCommandType(operation);
}
Table table = analyzer.tableDesc.toTable(conf);
@@ -6977,7 +6978,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
if (ltd != null && SessionState.get() != null) {
SessionState.get().getLineageState()
.mapDirToFop(ltd.getSourcePath(), (FileSinkOperator) output);
- } else if ( SessionState.get().getCommandType().equals(HiveOperation.CREATETABLE_AS_SELECT.getOperationName())) {
+ } else if ( queryState.getCommandType().equals(HiveOperation.CREATETABLE_AS_SELECT.getOperationName())) {
Path tlocation = null;
String tName = Utilities.getDbTableName(tableDesc.getTableName())[1];
@@ -9340,7 +9341,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
limit.intValue(), extraMRStep);
qb.getParseInfo().setOuterQueryLimit(limit.intValue());
}
- if (!SessionState.get().getHiveOperation().equals(HiveOperation.CREATEVIEW)) {
+ if (!queryState.getHiveOperation().equals(HiveOperation.CREATEVIEW)) {
curr = genFileSinkPlan(dest, qb, curr);
}
}
@@ -10345,7 +10346,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
return true;
}
} else {
- SessionState.get().setCommandType(HiveOperation.QUERY);
+ queryState.setCommandType(HiveOperation.QUERY);
}
return false;
@@ -10543,14 +10544,14 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
return false;
}
} else {
- SessionState.get().setCommandType(HiveOperation.QUERY);
+ queryState.setCommandType(HiveOperation.QUERY);
}
// 3. analyze create view command
if (ast.getToken().getType() == HiveParser.TOK_CREATEVIEW
|| (ast.getToken().getType() == HiveParser.TOK_ALTERVIEW && ast.getChild(1).getType() == HiveParser.TOK_QUERY)) {
child = analyzeCreateView(ast, qb);
- SessionState.get().setCommandType(HiveOperation.CREATEVIEW);
+ queryState.setCommandType(HiveOperation.CREATEVIEW);
if (child == null) {
return false;
}
@@ -10579,7 +10580,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
throw new IllegalStateException(SemanticAnalyzerFactory.getOperation(ast.getToken().getType()) +
" is not supported yet.");
}
- SessionState.get().setCommandType(SemanticAnalyzerFactory.getOperation(ast.getToken().getType()));
+ queryState.setCommandType(SemanticAnalyzerFactory.getOperation(ast.getToken().getType()));
return false;
}
@@ -10677,7 +10678,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
// 4. Generate Parse Context for Optimizer & Physical compiler
copyInfoToQueryProperties(queryProperties);
- ParseContext pCtx = new ParseContext(conf, opToPartPruner, opToPartList, topOps,
+ ParseContext pCtx = new ParseContext(queryState, opToPartPruner, opToPartList, topOps,
new HashSet<JoinOperator>(joinContext.keySet()),
new HashSet<SMBMapJoinOperator>(smbMapJoinContext.keySet()),
loadTableWork, loadFileWork, ctx, idToTableNameMap, destTableId, uCtx,
@@ -10757,7 +10758,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
// TEZ..)
if (!ctx.getExplainLogical()) {
TaskCompiler compiler = TaskCompilerFactory.getCompiler(conf, pCtx);
- compiler.init(conf, console, db);
+ compiler.init(queryState, console, db);
compiler.compile(pCtx, rootTasks, inputs, outputs);
fetchTask = pCtx.getFetchTask();
}
@@ -11520,7 +11521,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
crtTblDesc.validate(conf);
// outputs is empty, which means this create table happens in the current
// database.
- SessionState.get().setCommandType(HiveOperation.CREATETABLE);
+ queryState.setCommandType(HiveOperation.CREATETABLE);
rootTasks.add(TaskFactory.get(new DDLWork(getInputs(), getOutputs(),
crtTblDesc), conf));
break;
@@ -11539,7 +11540,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
storageFormat.getInputFormat(), storageFormat.getOutputFormat(), location,
storageFormat.getSerde(), storageFormat.getSerdeProps(), tblProps, ifNotExists,
likeTableName, isUserStorageFormat);
- SessionState.get().setCommandType(HiveOperation.CREATETABLE);
+ queryState.setCommandType(HiveOperation.CREATETABLE);
rootTasks.add(TaskFactory.get(new DDLWork(getInputs(), getOutputs(),
crtTblLikeDesc), conf));
break;
@@ -11613,7 +11614,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
tableDesc.setNullFormat(rowFormatParams.nullFormat);
qb.setTableDesc(tableDesc);
- SessionState.get().setCommandType(HiveOperation.CREATETABLE_AS_SELECT);
+ queryState.setCommandType(HiveOperation.CREATETABLE_AS_SELECT);
return selectStmt;
default:
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzerFactory.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzerFactory.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzerFactory.java
index 07ca409..fb8a33c 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzerFactory.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzerFactory.java
@@ -20,6 +20,8 @@ package org.apache.hadoop.hive.ql.parse;
import org.antlr.runtime.tree.Tree;
import org.apache.hadoop.hive.conf.HiveConf;
+import org.apache.hadoop.hive.ql.QueryState;
+import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.ql.plan.HiveOperation;
import org.apache.hadoop.hive.ql.session.SessionState;
@@ -158,24 +160,24 @@ public final class SemanticAnalyzerFactory {
HiveOperation.ALTERTABLE_UPDATEPARTSTATS});
}
- public static BaseSemanticAnalyzer get(HiveConf conf, ASTNode tree)
+ public static BaseSemanticAnalyzer get(QueryState queryState, ASTNode tree)
throws SemanticException {
if (tree.getToken() == null) {
throw new RuntimeException("Empty Syntax Tree");
} else {
- setSessionCommandType(commandType.get(tree.getType()));
-
+ HiveOperation opType = commandType.get(tree.getType());
+ queryState.setCommandType(opType);
switch (tree.getType()) {
case HiveParser.TOK_EXPLAIN:
- return new ExplainSemanticAnalyzer(conf);
+ return new ExplainSemanticAnalyzer(queryState);
case HiveParser.TOK_EXPLAIN_SQ_REWRITE:
- return new ExplainSQRewriteSemanticAnalyzer(conf);
+ return new ExplainSQRewriteSemanticAnalyzer(queryState);
case HiveParser.TOK_LOAD:
- return new LoadSemanticAnalyzer(conf);
+ return new LoadSemanticAnalyzer(queryState);
case HiveParser.TOK_EXPORT:
- return new ExportSemanticAnalyzer(conf);
+ return new ExportSemanticAnalyzer(queryState);
case HiveParser.TOK_IMPORT:
- return new ImportSemanticAnalyzer(conf);
+ return new ImportSemanticAnalyzer(queryState);
case HiveParser.TOK_ALTERTABLE: {
Tree child = tree.getChild(1);
switch (child.getType()) {
@@ -193,13 +195,13 @@ public final class SemanticAnalyzerFactory {
case HiveParser.TOK_ALTERTABLE_DROPPROPERTIES:
case HiveParser.TOK_ALTERTABLE_EXCHANGEPARTITION:
case HiveParser.TOK_ALTERTABLE_SKEWED:
- setSessionCommandType(commandType.get(child.getType()));
- return new DDLSemanticAnalyzer(conf);
+ queryState.setCommandType(commandType.get(child.getType()));
+ return new DDLSemanticAnalyzer(queryState);
}
- HiveOperation commandType =
+ opType =
tablePartitionCommandType.get(child.getType())[tree.getChildCount() > 2 ? 1 : 0];
- setSessionCommandType(commandType);
- return new DDLSemanticAnalyzer(conf);
+ queryState.setCommandType(opType);
+ return new DDLSemanticAnalyzer(queryState);
}
case HiveParser.TOK_ALTERVIEW: {
Tree child = tree.getChild(1);
@@ -209,13 +211,14 @@ public final class SemanticAnalyzerFactory {
case HiveParser.TOK_ALTERVIEW_ADDPARTS:
case HiveParser.TOK_ALTERVIEW_DROPPARTS:
case HiveParser.TOK_ALTERVIEW_RENAME:
- setSessionCommandType(commandType.get(child.getType()));
- return new DDLSemanticAnalyzer(conf);
+ opType = commandType.get(child.getType());
+ queryState.setCommandType(opType);
+ return new DDLSemanticAnalyzer(queryState);
}
// TOK_ALTERVIEW_AS
assert child.getType() == HiveParser.TOK_QUERY;
- setSessionCommandType(HiveOperation.ALTERVIEW_AS);
- return new SemanticAnalyzer(conf);
+ queryState.setCommandType(HiveOperation.ALTERVIEW_AS);
+ return new SemanticAnalyzer(queryState);
}
case HiveParser.TOK_CREATEDATABASE:
case HiveParser.TOK_DROPDATABASE:
@@ -265,23 +268,23 @@ public final class SemanticAnalyzerFactory {
case HiveParser.TOK_TRUNCATETABLE:
case HiveParser.TOK_SHOW_SET_ROLE:
case HiveParser.TOK_CACHE_METADATA:
- return new DDLSemanticAnalyzer(conf);
+ return new DDLSemanticAnalyzer(queryState);
case HiveParser.TOK_CREATEFUNCTION:
case HiveParser.TOK_DROPFUNCTION:
case HiveParser.TOK_RELOADFUNCTION:
- return new FunctionSemanticAnalyzer(conf);
+ return new FunctionSemanticAnalyzer(queryState);
case HiveParser.TOK_ANALYZE:
- return new ColumnStatsSemanticAnalyzer(conf);
+ return new ColumnStatsSemanticAnalyzer(queryState);
case HiveParser.TOK_CREATEMACRO:
case HiveParser.TOK_DROPMACRO:
- return new MacroSemanticAnalyzer(conf);
+ return new MacroSemanticAnalyzer(queryState);
case HiveParser.TOK_UPDATE_TABLE:
case HiveParser.TOK_DELETE_FROM:
- return new UpdateDeleteSemanticAnalyzer(conf);
+ return new UpdateDeleteSemanticAnalyzer(queryState);
case HiveParser.TOK_START_TRANSACTION:
case HiveParser.TOK_COMMIT:
@@ -289,20 +292,14 @@ public final class SemanticAnalyzerFactory {
case HiveParser.TOK_SET_AUTOCOMMIT:
default: {
SemanticAnalyzer semAnalyzer = HiveConf
- .getBoolVar(conf, HiveConf.ConfVars.HIVE_CBO_ENABLED) ? new CalcitePlanner(conf)
- : new SemanticAnalyzer(conf);
+ .getBoolVar(queryState.getConf(), HiveConf.ConfVars.HIVE_CBO_ENABLED) ?
+ new CalcitePlanner(queryState) : new SemanticAnalyzer(queryState);
return semAnalyzer;
}
}
}
}
- private static void setSessionCommandType(HiveOperation commandType) {
- if (SessionState.get() != null) {
- SessionState.get().setCommandType(commandType);
- }
- }
-
private SemanticAnalyzerFactory() {
// prevent instantiation
}
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/parse/TaskCompiler.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/TaskCompiler.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/TaskCompiler.java
index 75ca5f9..7efc987 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/TaskCompiler.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/TaskCompiler.java
@@ -34,6 +34,7 @@ import org.apache.hadoop.hive.metastore.Warehouse;
import org.apache.hadoop.hive.metastore.api.MetaException;
import org.apache.hadoop.hive.ql.Context;
import org.apache.hadoop.hive.ql.ErrorMsg;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.ColumnStatsTask;
import org.apache.hadoop.hive.ql.exec.FetchTask;
import org.apache.hadoop.hive.ql.exec.StatsTask;
@@ -82,10 +83,12 @@ public abstract class TaskCompiler {
// Assumes one instance of this + single-threaded compilation for each query.
protected Hive db;
protected LogHelper console;
+ protected QueryState queryState;
protected HiveConf conf;
- public void init(HiveConf conf, LogHelper console, Hive db) {
- this.conf = conf;
+ public void init(QueryState queryState, LogHelper console, Hive db) {
+ this.queryState = queryState;
+ this.conf = queryState.getConf();
this.db = db;
this.console = console;
}
@@ -447,7 +450,7 @@ public abstract class TaskCompiler {
* Create a clone of the parse context
*/
public ParseContext getParseContext(ParseContext pCtx, List<Task<? extends Serializable>> rootTasks) {
- ParseContext clone = new ParseContext(conf,
+ ParseContext clone = new ParseContext(queryState,
pCtx.getOpToPartPruner(), pCtx.getOpToPartList(), pCtx.getTopOps(),
pCtx.getJoinOps(), pCtx.getSmbMapJoinOps(),
pCtx.getLoadTableWork(), pCtx.getLoadFileWork(), pCtx.getContext(),
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/parse/TezCompiler.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/TezCompiler.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/TezCompiler.java
index 8e67ce8..cf7a875 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/TezCompiler.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/TezCompiler.java
@@ -35,6 +35,7 @@ import org.slf4j.LoggerFactory;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.conf.HiveConf.ConfVars;
import org.apache.hadoop.hive.ql.Context;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.AppMasterEventOperator;
import org.apache.hadoop.hive.ql.exec.CommonMergeJoinOperator;
import org.apache.hadoop.hive.ql.exec.ConditionalTask;
@@ -101,8 +102,8 @@ public class TezCompiler extends TaskCompiler {
}
@Override
- public void init(HiveConf conf, LogHelper console, Hive db) {
- super.init(conf, console, db);
+ public void init(QueryState queryState, LogHelper console, Hive db) {
+ super.init(queryState, console, db);
// Tez requires us to use RPC for the query plan
HiveConf.setBoolVar(conf, ConfVars.HIVE_RPC_QUERY_PLAN, true);
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/parse/UpdateDeleteSemanticAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/UpdateDeleteSemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/UpdateDeleteSemanticAnalyzer.java
index 5b4365c..b8771d2 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/UpdateDeleteSemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/UpdateDeleteSemanticAnalyzer.java
@@ -29,6 +29,7 @@ import org.apache.hadoop.hive.conf.HiveConf;
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.QueryState;
import org.apache.hadoop.hive.ql.hooks.Entity;
import org.apache.hadoop.hive.ql.hooks.ReadEntity;
import org.apache.hadoop.hive.ql.hooks.WriteEntity;
@@ -52,8 +53,8 @@ public class UpdateDeleteSemanticAnalyzer extends SemanticAnalyzer {
boolean useSuper = false;
- public UpdateDeleteSemanticAnalyzer(HiveConf conf) throws SemanticException {
- super(conf);
+ public UpdateDeleteSemanticAnalyzer(QueryState queryState) throws SemanticException {
+ super(queryState);
}
@Override
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/parse/spark/SparkProcessAnalyzeTable.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/spark/SparkProcessAnalyzeTable.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/spark/SparkProcessAnalyzeTable.java
index 80ccb28..52186b4 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/spark/SparkProcessAnalyzeTable.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/spark/SparkProcessAnalyzeTable.java
@@ -187,7 +187,7 @@ public class SparkProcessAnalyzeTable implements NodeProcessor {
@SuppressWarnings("unchecked")
Task<PartialScanWork> partialScanTask = TaskFactory.get(scanWork, parseContext.getConf());
- partialScanTask.initialize(parseContext.getConf(), null, driverCxt,
+ partialScanTask.initialize(parseContext.getQueryState(), null, driverCxt,
tableScan.getCompilationOpContext());
partialScanTask.setWork(scanWork);
statsWork.setSourceTask(partialScanTask);
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/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 344dd34..672df63 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
@@ -122,7 +122,7 @@ public class SessionState {
/**
* current configuration.
*/
- private final HiveConf conf;
+ private final HiveConf sessionConf;
/**
* silent mode.
@@ -135,7 +135,7 @@ public class SessionState {
protected boolean isVerbose;
/**
- * Is the query served from HiveServer2
+ * The flag to indicate if the session serves the queries from HiveServer2 or not.
*/
private boolean isHiveServerQuery = false;
@@ -171,11 +171,6 @@ public class SessionState {
*/
protected File tmpErrOutputFile;
- /**
- * type of the command.
- */
- private HiveOperation commandType;
-
private String lastCommand;
private HiveAuthorizationProvider authorizer;
@@ -287,7 +282,7 @@ public class SessionState {
}
public HiveConf getConf() {
- return conf;
+ return sessionConf;
}
@@ -316,8 +311,8 @@ public class SessionState {
}
public boolean getIsSilent() {
- if(conf != null) {
- return conf.getBoolVar(HiveConf.ConfVars.HIVESESSIONSILENT);
+ if(sessionConf != null) {
+ return sessionConf.getBoolVar(HiveConf.ConfVars.HIVESESSIONSILENT);
} else {
return isSilent;
}
@@ -328,8 +323,8 @@ public class SessionState {
}
public void setIsSilent(boolean isSilent) {
- if(conf != null) {
- conf.setBoolVar(HiveConf.ConfVars.HIVESESSIONSILENT, isSilent);
+ if(sessionConf != null) {
+ sessionConf.setBoolVar(HiveConf.ConfVars.HIVESESSIONSILENT, isSilent);
}
this.isSilent = isSilent;
}
@@ -355,7 +350,7 @@ public class SessionState {
}
public SessionState(HiveConf conf, String userName) {
- this.conf = conf;
+ this.sessionConf = conf;
this.userName = userName;
if (LOG.isDebugEnabled()) {
LOG.debug("SessionState user: " + userName);
@@ -375,23 +370,11 @@ public class SessionState {
parentLoader = SessionState.class.getClassLoader();
// Make sure that each session has its own UDFClassloader. For details see {@link UDFClassLoader}
final ClassLoader currentLoader = Utilities.createUDFClassLoader((URLClassLoader) parentLoader, new String[]{});
- this.conf.setClassLoader(currentLoader);
+ this.sessionConf.setClassLoader(currentLoader);
resourceDownloader = new ResourceDownloader(conf,
HiveConf.getVar(conf, ConfVars.DOWNLOADED_RESOURCES_DIR));
}
- public void setCmd(String cmdString) {
- conf.setQueryString(cmdString);
- }
-
- public String getCmd() {
- return (conf.getQueryString());
- }
-
- public String getQueryId() {
- return (conf.getVar(HiveConf.ConfVars.HIVEQUERYID));
- }
-
public Map<String, String> getHiveVariables() {
if (hiveVariables == null) {
hiveVariables = new HashMap<String, String>();
@@ -404,7 +387,7 @@ public class SessionState {
}
public String getSessionId() {
- return (conf.getVar(HiveConf.ConfVars.HIVESESSIONID));
+ return (sessionConf.getVar(HiveConf.ConfVars.HIVESESSIONID));
}
public void updateThreadName() {
@@ -457,9 +440,9 @@ public class SessionState {
public HadoopShims.HdfsEncryptionShim getHdfsEncryptionShim() throws HiveException {
if (hdfsEncryptionShim == null) {
try {
- FileSystem fs = FileSystem.get(conf);
+ FileSystem fs = FileSystem.get(sessionConf);
if ("hdfs".equals(fs.getUri().getScheme())) {
- hdfsEncryptionShim = ShimLoader.getHadoopShims().createHdfsEncryptionShim(fs, conf);
+ hdfsEncryptionShim = ShimLoader.getHadoopShims().createHdfsEncryptionShim(fs, sessionConf);
} else {
LOG.info("Could not get hdfsEncryptionShim, it is only applicable to hdfs filesystem.");
}
@@ -557,9 +540,9 @@ public class SessionState {
// Hive object instance should be created with a copy of the conf object. If the conf is
// shared with SessionState, other parts of the code might update the config, but
// Hive.get(HiveConf) would not recognize the case when it needs refreshing
- Hive.get(new HiveConf(startSs.conf)).getMSC();
+ Hive.get(new HiveConf(startSs.sessionConf)).getMSC();
UserGroupInformation sessionUGI = Utils.getUGI();
- FileSystem.get(startSs.conf);
+ FileSystem.get(startSs.sessionConf);
// Create scratch dirs for this session
startSs.createSessionDirs(sessionUGI.getShortUserName());
@@ -611,9 +594,9 @@ public class SessionState {
}
// Neither open nor opening.
if (!isAsync) {
- startSs.tezSessionState.open(startSs.conf); // should use conf on session start-up
+ startSs.tezSessionState.open(startSs.sessionConf); // should use conf on session start-up
} else {
- startSs.tezSessionState.beginOpen(startSs.conf, null, console);
+ startSs.tezSessionState.beginOpen(startSs.sessionConf, null, console);
}
} catch (Exception e) {
throw new RuntimeException(e);
@@ -717,7 +700,7 @@ public class SessionState {
* @return
* @throws IOException
*/
- private void createPath(HiveConf conf, Path path, String permission, boolean isLocal,
+ private static void createPath(HiveConf conf, Path path, String permission, boolean isLocal,
boolean isCleanUp) throws IOException {
FsPermission fsPermission = new FsPermission(permission);
FileSystem fs;
@@ -817,18 +800,18 @@ public class SessionState {
}
try {
- authenticator = HiveUtils.getAuthenticator(conf,
+ authenticator = HiveUtils.getAuthenticator(sessionConf,
HiveConf.ConfVars.HIVE_AUTHENTICATOR_MANAGER);
authenticator.setSessionState(this);
- String clsStr = HiveConf.getVar(conf, HiveConf.ConfVars.HIVE_AUTHORIZATION_MANAGER);
- authorizer = HiveUtils.getAuthorizeProviderManager(conf,
+ String clsStr = HiveConf.getVar(sessionConf, HiveConf.ConfVars.HIVE_AUTHORIZATION_MANAGER);
+ authorizer = HiveUtils.getAuthorizeProviderManager(sessionConf,
clsStr, authenticator, true);
if (authorizer == null) {
// if it was null, the new (V2) authorization plugin must be specified in
// config
- HiveAuthorizerFactory authorizerFactory = HiveUtils.getAuthorizerFactory(conf,
+ HiveAuthorizerFactory authorizerFactory = HiveUtils.getAuthorizerFactory(sessionConf,
HiveConf.ConfVars.HIVE_AUTHORIZATION_MANAGER);
HiveAuthzSessionContext.Builder authzContextBuilder = new HiveAuthzSessionContext.Builder();
@@ -837,12 +820,12 @@ public class SessionState {
authzContextBuilder.setSessionString(getSessionId());
authorizerV2 = authorizerFactory.createHiveAuthorizer(new HiveMetastoreClientFactoryImpl(),
- conf, authenticator, authzContextBuilder.build());
+ sessionConf, authenticator, authzContextBuilder.build());
setAuthorizerV2Config();
}
// create the create table grants with new config
- createTableGrants = CreateTableAutomaticGrant.create(conf);
+ createTableGrants = CreateTableAutomaticGrant.create(sessionConf);
} catch (HiveException e) {
LOG.error("Error setting up authorization: " + e.getMessage(), e);
@@ -858,23 +841,23 @@ public class SessionState {
private void setAuthorizerV2Config() throws HiveException {
// avoid processing the same config multiple times, check marker
- if (conf.get(CONFIG_AUTHZ_SETTINGS_APPLIED_MARKER, "").equals(Boolean.TRUE.toString())) {
+ if (sessionConf.get(CONFIG_AUTHZ_SETTINGS_APPLIED_MARKER, "").equals(Boolean.TRUE.toString())) {
return;
}
- String metastoreHook = conf.get(ConfVars.METASTORE_FILTER_HOOK.name());
+ String metastoreHook = sessionConf.get(ConfVars.METASTORE_FILTER_HOOK.name());
if (!ConfVars.METASTORE_FILTER_HOOK.getDefaultValue().equals(metastoreHook) &&
!AuthorizationMetaStoreFilterHook.class.getName().equals(metastoreHook)) {
LOG.warn(ConfVars.METASTORE_FILTER_HOOK.name() +
" will be ignored, since hive.security.authorization.manager" +
" is set to instance of HiveAuthorizerFactory.");
}
- conf.setVar(ConfVars.METASTORE_FILTER_HOOK,
+ sessionConf.setVar(ConfVars.METASTORE_FILTER_HOOK,
AuthorizationMetaStoreFilterHook.class.getName());
- authorizerV2.applyAuthorizationConfigPolicy(conf);
+ authorizerV2.applyAuthorizationConfigPolicy(sessionConf);
// update config in Hive thread local as well and init the metastore client
try {
- Hive.get(conf).getMSC();
+ Hive.get(sessionConf).getMSC();
} catch (Exception e) {
// catch-all due to some exec time dependencies on session state
// that would cause ClassNoFoundException otherwise
@@ -882,7 +865,7 @@ public class SessionState {
}
// set a marker that this conf has been processed.
- conf.set(CONFIG_AUTHZ_SETTINGS_APPLIED_MARKER, Boolean.TRUE.toString());
+ sessionConf.set(CONFIG_AUTHZ_SETTINGS_APPLIED_MARKER, Boolean.TRUE.toString());
}
public Object getActiveAuthorizer() {
@@ -1124,7 +1107,7 @@ public class SessionState {
public void reloadAuxJars() throws IOException {
final Set<String> reloadedAuxJars = new HashSet<String>();
- final String renewableJarPath = conf.getVar(ConfVars.HIVERELOADABLEJARS);
+ final String renewableJarPath = sessionConf.getVar(ConfVars.HIVERELOADABLEJARS);
// do nothing if this property is not specified or empty
if (renewableJarPath == null || renewableJarPath.isEmpty()) {
return;
@@ -1154,7 +1137,7 @@ public class SessionState {
currentCLoader =
(URLClassLoader) Utilities.addToClassPath(currentCLoader,
reloadedAuxJars.toArray(new String[0]));
- conf.setClassLoader(currentCLoader);
+ sessionConf.setClassLoader(currentCLoader);
Thread.currentThread().setContextClassLoader(currentCLoader);
}
preReloadableAuxJars.clear();
@@ -1394,21 +1377,6 @@ public class SessionState {
}
}
- public String getCommandType() {
- if (commandType == null) {
- return null;
- }
- return commandType.getOperationName();
- }
-
- public HiveOperation getHiveOperation() {
- return commandType;
- }
-
- public void setCommandType(HiveOperation commandType) {
- this.commandType = commandType;
- }
-
public HiveAuthorizationProvider getAuthorizer() {
setupAuth();
return authorizer;
@@ -1499,7 +1467,7 @@ public class SessionState {
public void close() throws IOException {
registry.clear();
if (txnMgr != null) txnMgr.closeTxnManager();
- JavaUtils.closeClassLoadersTo(conf.getClassLoader(), parentLoader);
+ JavaUtils.closeClassLoadersTo(sessionConf.getClassLoader(), parentLoader);
File resourceDir =
new File(getConf().getVar(HiveConf.ConfVars.DOWNLOADED_RESOURCES_DIR));
LOG.debug("Removing resource dir " + resourceDir);
@@ -1526,7 +1494,7 @@ public class SessionState {
try {
closeSparkSession();
registry.closeCUDFLoaders();
- dropSessionPaths(conf);
+ dropSessionPaths(sessionConf);
unCacheDataNucleusClassLoaders();
} finally {
// removes the threadlocal variables, closes underlying HMS connection
@@ -1536,10 +1504,10 @@ public class SessionState {
private void unCacheDataNucleusClassLoaders() {
try {
- Hive threadLocalHive = Hive.get(conf);
+ Hive threadLocalHive = Hive.get(sessionConf);
if ((threadLocalHive != null) && (threadLocalHive.getMSC() != null)
&& (threadLocalHive.getMSC().isLocalMetaStore())) {
- if (conf.getVar(ConfVars.METASTORE_RAW_STORE_IMPL).equals(ObjectStore.class.getName())) {
+ if (sessionConf.getVar(ConfVars.METASTORE_RAW_STORE_IMPL).equals(ObjectStore.class.getName())) {
ObjectStore.unCacheDataNucleusClassLoaders();
}
}
@@ -1667,9 +1635,9 @@ public class SessionState {
queryCurrentTimestamp = new Timestamp(System.currentTimeMillis());
// Provide a facility to set current timestamp during tests
- if (conf.getBoolVar(ConfVars.HIVE_IN_TEST)) {
+ if (sessionConf.getBoolVar(ConfVars.HIVE_IN_TEST)) {
String overrideTimestampString =
- HiveConf.getVar(conf, HiveConf.ConfVars.HIVETESTCURRENTTIMESTAMP, (String)null);
+ HiveConf.getVar(sessionConf, HiveConf.ConfVars.HIVETESTCURRENTTIMESTAMP, (String)null);
if (overrideTimestampString != null && overrideTimestampString.length() > 0) {
queryCurrentTimestamp = Timestamp.valueOf(overrideTimestampString);
}
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/test/org/apache/hadoop/hive/ql/exec/TestExecDriver.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/exec/TestExecDriver.java b/ql/src/test/org/apache/hadoop/hive/ql/exec/TestExecDriver.java
index eaeb66b..667d5c2 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/exec/TestExecDriver.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/exec/TestExecDriver.java
@@ -35,6 +35,7 @@ import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.metastore.MetaStoreUtils;
import org.apache.hadoop.hive.ql.CompilationOpContext;
import org.apache.hadoop.hive.ql.DriverContext;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.WindowsPathUtil;
import org.apache.hadoop.hive.ql.exec.mr.ExecDriver;
import org.apache.hadoop.hive.ql.exec.mr.MapRedTask;
@@ -71,6 +72,7 @@ import org.apache.hadoop.util.Shell;
*/
public class TestExecDriver extends TestCase {
+ static QueryState queryState;
static HiveConf conf;
private static final String tmpdir;
@@ -82,7 +84,8 @@ public class TestExecDriver extends TestCase {
static {
try {
- conf = new HiveConf(ExecDriver.class);
+ queryState = new QueryState(new HiveConf(ExecDriver.class));
+ conf = queryState.getConf();
conf.setBoolVar(HiveConf.ConfVars.SUBMITVIACHILD, true);
conf.setBoolVar(HiveConf.ConfVars.SUBMITLOCALTASKVIACHILD, true);
@@ -480,7 +483,7 @@ public class TestExecDriver extends TestCase {
MapRedTask mrtask = new MapRedTask();
DriverContext dctx = new DriverContext ();
mrtask.setWork(mr);
- mrtask.initialize(conf, null, dctx, null);
+ mrtask.initialize(queryState, null, dctx, null);
int exitVal = mrtask.execute(dctx);
if (exitVal != 0) {
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/test/org/apache/hadoop/hive/ql/parse/TestMacroSemanticAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestMacroSemanticAnalyzer.java b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestMacroSemanticAnalyzer.java
index 9d7166c..c659806 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestMacroSemanticAnalyzer.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestMacroSemanticAnalyzer.java
@@ -25,6 +25,7 @@ import junit.framework.Assert;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.conf.HiveConf.ConfVars;
import org.apache.hadoop.hive.ql.Context;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.FunctionRegistry;
import org.apache.hadoop.hive.ql.exec.Task;
import org.apache.hadoop.hive.ql.session.SessionState;
@@ -36,16 +37,18 @@ public class TestMacroSemanticAnalyzer {
private ParseDriver parseDriver;
private MacroSemanticAnalyzer analyzer;
+ private QueryState queryState;
private HiveConf conf;
private Context context;
@Before
public void setup() throws Exception {
- conf = new HiveConf();
+ queryState = new QueryState(null);
+ conf = queryState.getConf();
SessionState.start(conf);
context = new Context(conf);
parseDriver = new ParseDriver();
- analyzer = new MacroSemanticAnalyzer(conf);
+ analyzer = new MacroSemanticAnalyzer(queryState);
}
private ASTNode parse(String command) throws Exception {
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/test/org/apache/hadoop/hive/ql/parse/TestQBCompact.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestQBCompact.java b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestQBCompact.java
index ccdf272..8fe4d02 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestQBCompact.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestQBCompact.java
@@ -18,9 +18,11 @@
package org.apache.hadoop.hive.ql.parse;
import junit.framework.Assert;
+
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.ql.Context;
import org.apache.hadoop.hive.ql.ErrorMsg;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.Task;
import org.apache.hadoop.hive.ql.io.orc.OrcInputFormat;
import org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat;
@@ -42,11 +44,13 @@ import java.util.Map;
* Tests for parsing and semantic analysis of ALTER TABLE ... compact.
*/
public class TestQBCompact {
+ static QueryState queryState;
static HiveConf conf;
@BeforeClass
public static void init() throws Exception {
- conf = new HiveConf();
+ queryState = new QueryState(null);
+ conf = queryState.getConf();
SessionState.start(conf);
// Create a table so we can work against it
@@ -65,7 +69,7 @@ public class TestQBCompact {
private AlterTableSimpleDesc parseAndAnalyze(String query) throws Exception {
ParseDriver hd = new ParseDriver();
ASTNode head = (ASTNode)hd.parse(query).getChild(0);
- BaseSemanticAnalyzer a = SemanticAnalyzerFactory.get(conf, head);
+ BaseSemanticAnalyzer a = SemanticAnalyzerFactory.get(queryState, head);
a.analyze(head, new Context(conf));
List<Task<? extends Serializable>> roots = a.getRootTasks();
Assert.assertEquals(1, roots.size());
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/test/org/apache/hadoop/hive/ql/parse/TestQBJoinTreeApplyPredicate.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestQBJoinTreeApplyPredicate.java b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestQBJoinTreeApplyPredicate.java
index 70d86c1..e607f10 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestQBJoinTreeApplyPredicate.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestQBJoinTreeApplyPredicate.java
@@ -23,6 +23,7 @@ import java.util.List;
import junit.framework.Assert;
import org.apache.hadoop.hive.conf.HiveConf;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.session.SessionState;
import org.junit.Before;
import org.junit.BeforeClass;
@@ -30,19 +31,21 @@ import org.junit.Test;
public class TestQBJoinTreeApplyPredicate {
+ static QueryState queryState;
static HiveConf conf;
SemanticAnalyzer sA;
@BeforeClass
public static void initialize() {
- conf = new HiveConf(SemanticAnalyzer.class);
+ queryState = new QueryState(new HiveConf(SemanticAnalyzer.class));
+ conf = queryState.getConf();
SessionState.start(conf);
}
@Before
public void setup() throws SemanticException {
- sA = new CalcitePlanner(conf);
+ sA = new CalcitePlanner(queryState);
}
static ASTNode constructIdentifier(String nm) {
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/test/org/apache/hadoop/hive/ql/parse/TestQBSubQuery.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestQBSubQuery.java b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestQBSubQuery.java
index f6f0abb..f9db2c8 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestQBSubQuery.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestQBSubQuery.java
@@ -22,6 +22,7 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.hadoop.hive.conf.HiveConf;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.session.SessionState;
import org.junit.Assert;
import org.junit.Before;
@@ -29,6 +30,7 @@ import org.junit.BeforeClass;
import org.junit.Test;
public class TestQBSubQuery {
+ static QueryState queryState;
static HiveConf conf;
private static String IN_QUERY = " select * " +
@@ -46,14 +48,15 @@ public class TestQBSubQuery {
@BeforeClass
public static void initialize() {
- conf = new HiveConf(SemanticAnalyzer.class);
+ queryState = new QueryState(new HiveConf(SemanticAnalyzer.class));
+ conf = queryState.getConf();
SessionState.start(conf);
}
@Before
public void setup() throws SemanticException {
pd = new ParseDriver();
- sA = new CalcitePlanner(conf);
+ sA = new CalcitePlanner(queryState);
}
ASTNode parse(String query) throws ParseException {
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/test/org/apache/hadoop/hive/ql/parse/TestSemanticAnalyzerFactory.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestSemanticAnalyzerFactory.java b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestSemanticAnalyzerFactory.java
index 4a52efb..5849950 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestSemanticAnalyzerFactory.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestSemanticAnalyzerFactory.java
@@ -21,27 +21,30 @@ import junit.framework.Assert;
import org.antlr.runtime.CommonToken;
import org.apache.hadoop.hive.conf.HiveConf;
+import org.apache.hadoop.hive.ql.QueryState;
import org.junit.Before;
import org.junit.Test;
public class TestSemanticAnalyzerFactory {
+ private QueryState queryState;
private HiveConf conf;
@Before
public void setup() throws Exception {
- conf = new HiveConf();
+ queryState = new QueryState(null);
+ conf = queryState.getConf();
}
@Test
public void testCreate() throws Exception {
BaseSemanticAnalyzer analyzer = SemanticAnalyzerFactory.
- get(conf, new ASTNode(new CommonToken(HiveParser.TOK_CREATEMACRO)));
+ get(queryState, new ASTNode(new CommonToken(HiveParser.TOK_CREATEMACRO)));
Assert.assertTrue(analyzer.getClass().getSimpleName(), analyzer instanceof MacroSemanticAnalyzer);
}
@Test
public void testDrop() throws Exception {
BaseSemanticAnalyzer analyzer = SemanticAnalyzerFactory.
- get(conf, new ASTNode(new CommonToken(HiveParser.TOK_DROPMACRO)));
+ get(queryState, new ASTNode(new CommonToken(HiveParser.TOK_DROPMACRO)));
Assert.assertTrue(analyzer.getClass().getSimpleName(), analyzer instanceof MacroSemanticAnalyzer);
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/test/org/apache/hadoop/hive/ql/parse/TestUpdateDeleteSemanticAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestUpdateDeleteSemanticAnalyzer.java b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestUpdateDeleteSemanticAnalyzer.java
index 8614d40..78f5ea9 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestUpdateDeleteSemanticAnalyzer.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestUpdateDeleteSemanticAnalyzer.java
@@ -30,6 +30,7 @@ import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.metastore.api.hive_metastoreConstants;
import org.apache.hadoop.hive.ql.Context;
import org.apache.hadoop.hive.ql.QueryPlan;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.ExplainTask;
import org.apache.hadoop.hive.ql.io.orc.OrcInputFormat;
import org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat;
@@ -47,6 +48,7 @@ public class TestUpdateDeleteSemanticAnalyzer {
static final private Logger LOG = LoggerFactory.getLogger(TestUpdateDeleteSemanticAnalyzer.class.getName());
+ private QueryState queryState;
private HiveConf conf;
private Hive db;
@@ -221,7 +223,8 @@ public class TestUpdateDeleteSemanticAnalyzer {
@Before
public void setup() {
- conf = new HiveConf();
+ queryState = new QueryState(null);
+ conf = queryState.getConf();
conf.setVar(HiveConf.ConfVars.DYNAMICPARTITIONINGMODE, "nonstrict");
conf.setVar(HiveConf.ConfVars.HIVEMAPREDMODE, "nonstrict");
conf.setVar(HiveConf.ConfVars.HIVE_TXN_MANAGER, "org.apache.hadoop.hive.ql.lockmgr.DbTxnManager");
@@ -256,7 +259,7 @@ public class TestUpdateDeleteSemanticAnalyzer {
ASTNode tree = pd.parse(query, ctx);
tree = ParseUtils.findRootNonNullToken(tree);
- BaseSemanticAnalyzer sem = SemanticAnalyzerFactory.get(conf, tree);
+ BaseSemanticAnalyzer sem = SemanticAnalyzerFactory.get(queryState, tree);
SessionState.get().initTxnMgr(conf);
db = sem.getDb();
@@ -295,7 +298,7 @@ public class TestUpdateDeleteSemanticAnalyzer {
sem.getFetchTask(), sem, true, false, false, false, false, false, null);
ExplainTask task = new ExplainTask();
task.setWork(work);
- task.initialize(conf, plan, null, null);
+ task.initialize(queryState, plan, null, null);
task.execute(null);
FSDataInputStream in = fs.open(tmp);
StringBuilder builder = new StringBuilder();
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/test/org/apache/hadoop/hive/ql/parse/authorization/AuthorizationTestUtil.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/parse/authorization/AuthorizationTestUtil.java b/ql/src/test/org/apache/hadoop/hive/ql/parse/authorization/AuthorizationTestUtil.java
index 2e85a2a..e8e29ee 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/parse/authorization/AuthorizationTestUtil.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/parse/authorization/AuthorizationTestUtil.java
@@ -22,8 +22,8 @@ import java.util.List;
import junit.framework.Assert;
-import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.ql.Context;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.Task;
import org.apache.hadoop.hive.ql.metadata.Hive;
import org.apache.hadoop.hive.ql.parse.ASTNode;
@@ -46,10 +46,10 @@ public class AuthorizationTestUtil {
* @return
* @throws Exception
*/
- public static DDLWork analyze(ASTNode ast, HiveConf conf, Hive db) throws Exception {
- DDLSemanticAnalyzer analyzer = new DDLSemanticAnalyzer(conf, db);
- SessionState.start(conf);
- analyzer.analyze(ast, new Context(conf));
+ public static DDLWork analyze(ASTNode ast, QueryState queryState, Hive db) throws Exception {
+ DDLSemanticAnalyzer analyzer = new DDLSemanticAnalyzer(queryState, db);
+ SessionState.start(queryState.getConf());
+ analyzer.analyze(ast, new Context(queryState.getConf()));
List<Task<? extends Serializable>> rootTasks = analyzer.getRootTasks();
return (DDLWork) inList(rootTasks).ofSize(1).get(0).getWork();
}
@@ -62,8 +62,8 @@ public class AuthorizationTestUtil {
* @return
* @throws Exception
*/
- public static DDLWork analyze(String command, HiveConf conf, Hive db) throws Exception {
- return analyze(parse(command), conf, db);
+ public static DDLWork analyze(String command, QueryState queryState, Hive db) throws Exception {
+ return analyze(parse(command), queryState, db);
}
private static ASTNode parse(String command) throws Exception {
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/test/org/apache/hadoop/hive/ql/parse/authorization/PrivilegesTestBase.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/parse/authorization/PrivilegesTestBase.java b/ql/src/test/org/apache/hadoop/hive/ql/parse/authorization/PrivilegesTestBase.java
index e3b82f3..b324dfd 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/parse/authorization/PrivilegesTestBase.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/parse/authorization/PrivilegesTestBase.java
@@ -21,6 +21,7 @@ import junit.framework.Assert;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.metastore.api.PrincipalType;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.metadata.Hive;
import org.apache.hadoop.hive.ql.plan.DDLWork;
import org.apache.hadoop.hive.ql.plan.GrantDesc;
@@ -34,9 +35,9 @@ public class PrivilegesTestBase {
protected static final String TABLE_QNAME = DB + "." + TABLE;
protected static final String USER = "user1";
- public static void grantUserTable(String privStr, PrivilegeType privType, HiveConf conf, Hive db)
+ public static void grantUserTable(String privStr, PrivilegeType privType, QueryState queryState, Hive db)
throws Exception {
- DDLWork work = AuthorizationTestUtil.analyze("GRANT " + privStr + " ON TABLE " + TABLE + " TO USER " + USER, conf, db);
+ DDLWork work = AuthorizationTestUtil.analyze("GRANT " + privStr + " ON TABLE " + TABLE + " TO USER " + USER, queryState, db);
GrantDesc grantDesc = work.getGrantDesc();
Assert.assertNotNull("Grant should not be null", grantDesc);
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/test/org/apache/hadoop/hive/ql/parse/authorization/TestHiveAuthorizationTaskFactory.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/parse/authorization/TestHiveAuthorizationTaskFactory.java b/ql/src/test/org/apache/hadoop/hive/ql/parse/authorization/TestHiveAuthorizationTaskFactory.java
index 038e5fd..bfacbd0 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/parse/authorization/TestHiveAuthorizationTaskFactory.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/parse/authorization/TestHiveAuthorizationTaskFactory.java
@@ -19,12 +19,13 @@ package org.apache.hadoop.hive.ql.parse.authorization;
import java.util.HashMap;
-import junit.framework.Assert;
+import org.junit.Assert;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.conf.HiveConf.ConfVars;
import org.apache.hadoop.hive.metastore.api.PrincipalType;
import org.apache.hadoop.hive.ql.Context;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.metadata.Hive;
import org.apache.hadoop.hive.ql.metadata.Partition;
import org.apache.hadoop.hive.ql.metadata.Table;
@@ -89,7 +90,7 @@ public class TestHiveAuthorizationTaskFactory {
private ParseDriver parseDriver;
private DDLSemanticAnalyzer analyzer;
- private HiveConf conf;
+ private QueryState queryState;
private Context context;
private String currentUser;
private Hive db;
@@ -98,7 +99,8 @@ public class TestHiveAuthorizationTaskFactory {
@Before
public void setup() throws Exception {
- conf = new HiveConf();
+ queryState = new QueryState(null);
+ HiveConf conf = queryState.getConf();
conf.setVar(ConfVars.HIVE_AUTHORIZATION_TASK_FACTORY,
TestHiveAuthorizationTaskFactory.DummyHiveAuthorizationTaskFactoryImpl.class.getName());
db = Mockito.mock(Hive.class);
@@ -107,7 +109,7 @@ public class TestHiveAuthorizationTaskFactory {
SessionState.start(conf);
context = new Context(conf);
parseDriver = new ParseDriver();
- analyzer = new DDLSemanticAnalyzer(conf, db);
+ analyzer = new DDLSemanticAnalyzer(queryState, db);
Mockito.when(db.getTable(DB, TABLE, false)).thenReturn(table);
Mockito.when(db.getTable(TABLE_QNAME, false)).thenReturn(table);
Mockito.when(db.getPartition(table, new HashMap<String, String>(), false))
@@ -478,7 +480,7 @@ public class TestHiveAuthorizationTaskFactory {
}
private DDLWork analyze(String command) throws Exception {
- return AuthorizationTestUtil.analyze(command, conf, db);
+ return AuthorizationTestUtil.analyze(command, queryState, db);
}
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/test/org/apache/hadoop/hive/ql/parse/authorization/TestPrivilegesV1.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/parse/authorization/TestPrivilegesV1.java b/ql/src/test/org/apache/hadoop/hive/ql/parse/authorization/TestPrivilegesV1.java
index c614630..41584af 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/parse/authorization/TestPrivilegesV1.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/parse/authorization/TestPrivilegesV1.java
@@ -22,6 +22,7 @@ import java.util.HashMap;
import junit.framework.Assert;
import org.apache.hadoop.hive.conf.HiveConf;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.metadata.Hive;
import org.apache.hadoop.hive.ql.metadata.Partition;
import org.apache.hadoop.hive.ql.metadata.Table;
@@ -33,18 +34,18 @@ import org.mockito.Mockito;
public class TestPrivilegesV1 extends PrivilegesTestBase{
- private HiveConf conf;
+ private QueryState queryState;
private Hive db;
private Table table;
private Partition partition;
@Before
public void setup() throws Exception {
- conf = new HiveConf();
+ queryState = new QueryState(null);
db = Mockito.mock(Hive.class);
table = new Table(DB, TABLE);
partition = new Partition(table);
- SessionState.start(conf);
+ SessionState.start(queryState.getConf());
Mockito.when(db.getTable(DB, TABLE, false)).thenReturn(table);
Mockito.when(db.getTable(TABLE_QNAME, false)).thenReturn(table);
Mockito.when(db.getPartition(table, new HashMap<String, String>(), false))
@@ -81,6 +82,6 @@ public class TestPrivilegesV1 extends PrivilegesTestBase{
}
private void grantUserTable(String privName, PrivilegeType privType) throws Exception {
- grantUserTable(privName, privType, conf, db);
+ grantUserTable(privName, privType, queryState, db);
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/test/org/apache/hadoop/hive/ql/parse/authorization/TestPrivilegesV2.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/parse/authorization/TestPrivilegesV2.java b/ql/src/test/org/apache/hadoop/hive/ql/parse/authorization/TestPrivilegesV2.java
index 7b28375..c552ba7 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/parse/authorization/TestPrivilegesV2.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/parse/authorization/TestPrivilegesV2.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.hive.ql.parse.authorization;
import java.util.HashMap;
import org.apache.hadoop.hive.conf.HiveConf;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.metadata.Hive;
import org.apache.hadoop.hive.ql.metadata.Partition;
import org.apache.hadoop.hive.ql.metadata.Table;
@@ -32,15 +33,16 @@ import org.mockito.Mockito;
public class TestPrivilegesV2 extends PrivilegesTestBase{
- private HiveConf conf;
+ private QueryState queryState;
private Hive db;
private Table table;
private Partition partition;
@Before
public void setup() throws Exception {
- conf = new HiveConf();
+ queryState = new QueryState(null);
//set authorization mode to V2
+ HiveConf conf = queryState.getConf();
conf.setVar(HiveConf.ConfVars.HIVE_AUTHORIZATION_MANAGER,
SQLStdHiveAuthorizerFactory.class.getName());
db = Mockito.mock(Hive.class);
@@ -67,7 +69,7 @@ public class TestPrivilegesV2 extends PrivilegesTestBase{
}
private void grantUserTable(String privName, PrivilegeType privType) throws Exception {
- grantUserTable(privName, privType, conf, db);
+ grantUserTable(privName, privType, queryState, db);
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/service/src/java/org/apache/hive/service/cli/operation/Operation.java
----------------------------------------------------------------------
diff --git a/service/src/java/org/apache/hive/service/cli/operation/Operation.java b/service/src/java/org/apache/hive/service/cli/operation/Operation.java
index 4f3e9c2..63b1a48 100644
--- a/service/src/java/org/apache/hive/service/cli/operation/Operation.java
+++ b/service/src/java/org/apache/hive/service/cli/operation/Operation.java
@@ -33,7 +33,7 @@ import org.apache.hadoop.hive.common.metrics.common.MetricsConstant;
import org.apache.hadoop.hive.common.metrics.common.MetricsFactory;
import org.apache.hadoop.hive.common.metrics.common.MetricsScope;
import org.apache.hadoop.hive.conf.HiveConf;
-import org.apache.hadoop.hive.ql.QueryPlan;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.processors.CommandProcessorResponse;
import org.apache.hadoop.hive.ql.session.OperationLog;
import org.apache.hadoop.hive.ql.session.SessionState;
@@ -62,7 +62,6 @@ public abstract class Operation {
private volatile OperationState state = OperationState.INITIALIZED;
private volatile MetricsScope currentStateScope;
private final OperationHandle opHandle;
- private HiveConf configuration;
public static final FetchOrientation DEFAULT_FETCH_ORIENTATION = FetchOrientation.FETCH_NEXT;
public static final Logger LOG = LoggerFactory.getLogger(Operation.class.getName());
public static final long DEFAULT_FETCH_MAX_ROWS = 100;
@@ -81,13 +80,13 @@ public abstract class Operation {
protected long operationStart;
protected long operationComplete;
+ protected final QueryState queryState;
+
protected static final EnumSet<FetchOrientation> DEFAULT_FETCH_ORIENTATION_SET =
EnumSet.of(FetchOrientation.FETCH_NEXT,FetchOrientation.FETCH_FIRST);
protected Operation(HiveSession parentSession, OperationType opType, boolean runInBackground) {
this(parentSession, null, opType, runInBackground);
- // Generate a queryId for the operation if no queryId is provided
- confOverlay.put(HiveConf.ConfVars.HIVEQUERYID.varname, QueryPlan.makeQueryId());
}
protected Operation(HiveSession parentSession, Map<String, String> confOverlay, OperationType opType, boolean runInBackground) {
@@ -102,6 +101,11 @@ public abstract class Operation {
operationTimeout = HiveConf.getTimeVar(parentSession.getHiveConf(),
HiveConf.ConfVars.HIVE_SERVER2_IDLE_OPERATION_TIMEOUT, TimeUnit.MILLISECONDS);
setMetrics(state);
+ queryState = new QueryState(parentSession.getHiveConf(), confOverlay, runAsync);
+ }
+
+ public QueryState getQueryState() {
+ return queryState;
}
public Future<?> getBackgroundHandle() {
@@ -116,13 +120,6 @@ public abstract class Operation {
return runAsync;
}
- public void setConfiguration(HiveConf configuration) {
- this.configuration = new HiveConf(configuration);
- }
-
- public HiveConf getConfiguration() {
- return new HiveConf(configuration);
- }
public HiveSession getParentSession() {
return parentSession;
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/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 b921e6e..01dd48c 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
@@ -38,6 +38,7 @@ import org.apache.hadoop.hive.metastore.api.Schema;
import org.apache.hadoop.hive.ql.CommandNeedRetryException;
import org.apache.hadoop.hive.ql.Driver;
import org.apache.hadoop.hive.ql.QueryDisplay;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.ExplainTask;
import org.apache.hadoop.hive.ql.exec.FetchTask;
import org.apache.hadoop.hive.ql.exec.Task;
@@ -125,10 +126,10 @@ public class SQLOperation extends ExecuteStatementOperation {
* @param sqlOperationConf
* @throws HiveSQLException
*/
- public void prepare(HiveConf sqlOperationConf) throws HiveSQLException {
+ public void prepare(QueryState queryState) throws HiveSQLException {
setState(OperationState.RUNNING);
try {
- driver = new Driver(sqlOperationConf, getParentSession().getUserName());
+ driver = new Driver(queryState, getParentSession().getUserName());
sqlOpDisplay.setQueryDisplay(driver.getQueryDisplay());
// set the operation handle information in Driver, so that thrift API users
@@ -181,7 +182,7 @@ public class SQLOperation extends ExecuteStatementOperation {
}
}
- private void runQuery(HiveConf sqlOperationConf) throws HiveSQLException {
+ private void runQuery() throws HiveSQLException {
try {
// In Hive server mode, we are not able to retry in the FetchTask
// case, when calling fetch queries since execute() has returned.
@@ -213,11 +214,10 @@ public class SQLOperation extends ExecuteStatementOperation {
@Override
public void runInternal() throws HiveSQLException {
setState(OperationState.PENDING);
- final HiveConf opConfig = getConfigForOperation();
- prepare(opConfig);
+ prepare(queryState);
if (!shouldRunAsync()) {
- runQuery(opConfig);
+ runQuery();
} else {
// We'll pass ThreadLocals in the background thread from the foreground (handler) thread
final SessionState parentSessionState = SessionState.get();
@@ -226,7 +226,7 @@ public class SQLOperation extends ExecuteStatementOperation {
final Hive parentHive = parentSession.getSessionHive();
// Current UGI will get used by metastore when metsatore is in embedded mode
// So this needs to get passed to the new background thread
- final UserGroupInformation currentUGI = getCurrentUGI(opConfig);
+ final UserGroupInformation currentUGI = getCurrentUGI();
// Runnable impl to call runInternal asynchronously,
// from a different thread
Runnable backgroundOperation = new Runnable() {
@@ -241,7 +241,7 @@ public class SQLOperation extends ExecuteStatementOperation {
registerCurrentOperationLog();
registerLoggingContext();
try {
- runQuery(opConfig);
+ runQuery();
} catch (HiveSQLException e) {
setOperationException(e);
LOG.error("Error running hive query: ", e);
@@ -292,7 +292,7 @@ public class SQLOperation extends ExecuteStatementOperation {
* @return UserGroupInformation
* @throws HiveSQLException
*/
- private UserGroupInformation getCurrentUGI(HiveConf opConfig) throws HiveSQLException {
+ private UserGroupInformation getCurrentUGI() throws HiveSQLException {
try {
return Utils.getUGI();
} catch (Exception e) {
@@ -361,14 +361,13 @@ public class SQLOperation extends ExecuteStatementOperation {
public RowSet getNextRowSet(FetchOrientation orientation, long maxRows)
throws HiveSQLException {
- HiveConf hiveConf = getConfigForOperation();
validateDefaultFetchOrientation(orientation);
assertState(new ArrayList<OperationState>(Arrays.asList(OperationState.FINISHED)));
FetchTask fetchTask = driver.getFetchTask();
boolean isBlobBased = false;
- if (fetchTask != null && fetchTask.getWork().isHiveServerQuery() && HiveConf.getBoolVar(hiveConf,
+ if (fetchTask != null && fetchTask.getWork().isHiveServerQuery() && HiveConf.getBoolVar(queryState.getConf(),
HiveConf.ConfVars.HIVE_SERVER2_THRIFT_RESULTSET_SERIALIZE_IN_TASKS)
&& (fetchTask.getTblDesc().getSerdeClassName().equalsIgnoreCase(ThriftJDBCBinarySerDe.class
.getName()))) {
@@ -519,34 +518,6 @@ public class SQLOperation extends ExecuteStatementOperation {
}
/**
- * If there are query specific settings to overlay, then create a copy of config
- * There are two cases we need to clone the session config that's being passed to hive driver
- * 1. Async query -
- * If the client changes a config setting, that shouldn't reflect in the execution already underway
- * 2. confOverlay -
- * The query specific settings should only be applied to the query config and not session
- * @return new configuration
- * @throws HiveSQLException
- */
- public HiveConf getConfigForOperation() throws HiveSQLException {
- HiveConf sqlOperationConf = getParentSession().getHiveConf();
- if (!confOverlay.isEmpty() || shouldRunAsync()) {
- // clone the partent session config for this query
- sqlOperationConf = new HiveConf(sqlOperationConf);
-
- // apply overlay query specific settings, if any
- for (Map.Entry<String, String> confEntry : confOverlay.entrySet()) {
- try {
- sqlOperationConf.verifyAndSet(confEntry.getKey(), confEntry.getValue());
- } catch (IllegalArgumentException e) {
- throw new HiveSQLException("Error applying statement specific settings", e);
- }
- }
- }
- return sqlOperationConf;
- }
-
- /**
* Get summary information of this SQLOperation for display in WebUI.
*/
public SQLOperationDisplay getSQLOperationDisplay() {
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/service/src/java/org/apache/hive/service/cli/operation/SQLOperationDisplay.java
----------------------------------------------------------------------
diff --git a/service/src/java/org/apache/hive/service/cli/operation/SQLOperationDisplay.java b/service/src/java/org/apache/hive/service/cli/operation/SQLOperationDisplay.java
index fe93426..c521706 100644
--- a/service/src/java/org/apache/hive/service/cli/operation/SQLOperationDisplay.java
+++ b/service/src/java/org/apache/hive/service/cli/operation/SQLOperationDisplay.java
@@ -41,7 +41,7 @@ public class SQLOperationDisplay {
public SQLOperationDisplay(SQLOperation sqlOperation) throws HiveSQLException {
this.state = sqlOperation.getState();
this.userName = sqlOperation.getParentSession().getUserName();
- this.executionEngine = sqlOperation.getConfigForOperation().getVar(HiveConf.ConfVars.HIVE_EXECUTION_ENGINE);
+ this.executionEngine = sqlOperation.getQueryState().getConf().getVar(HiveConf.ConfVars.HIVE_EXECUTION_ENGINE);
this.beginTime = System.currentTimeMillis();
this.operationId = sqlOperation.getHandle().getHandleIdentifier().toString();
}
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java
----------------------------------------------------------------------
diff --git a/service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java b/service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java
index c24f162..0cfec7a 100644
--- a/service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java
+++ b/service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java
@@ -87,7 +87,7 @@ public class HiveSessionImpl implements HiveSession {
private final SessionHandle sessionHandle;
private String username;
private final String password;
- private final HiveConf hiveConf;
+ private final HiveConf sessionConf;
private final long creationTime;
// TODO: some SessionState internals are not thread safe. The compile-time internals are synced
// via session-scope or global compile lock. The run-time internals work by magic!
@@ -121,24 +121,24 @@ public class HiveSessionImpl implements HiveSession {
this.password = password;
creationTime = System.currentTimeMillis();
this.sessionHandle = sessionHandle != null ? sessionHandle : new SessionHandle(protocol);
- this.hiveConf = new HiveConf(serverhiveConf);
+ this.sessionConf = new HiveConf(serverhiveConf);
this.ipAddress = ipAddress;
try {
// In non-impersonation mode, map scheduler queue to current user
// if fair scheduler is configured.
- if (! hiveConf.getBoolVar(ConfVars.HIVE_SERVER2_ENABLE_DOAS) &&
- hiveConf.getBoolVar(ConfVars.HIVE_SERVER2_MAP_FAIR_SCHEDULER_QUEUE)) {
- ShimLoader.getHadoopShims().refreshDefaultQueue(hiveConf, username);
+ if (! sessionConf.getBoolVar(ConfVars.HIVE_SERVER2_ENABLE_DOAS) &&
+ sessionConf.getBoolVar(ConfVars.HIVE_SERVER2_MAP_FAIR_SCHEDULER_QUEUE)) {
+ ShimLoader.getHadoopShims().refreshDefaultQueue(sessionConf, username);
}
} catch (IOException e) {
LOG.warn("Error setting scheduler queue: " + e, e);
}
// Set an explicit session name to control the download directory name
- hiveConf.set(ConfVars.HIVESESSIONID.varname,
+ sessionConf.set(ConfVars.HIVESESSIONID.varname,
this.sessionHandle.getHandleIdentifier().toString());
// Use thrift transportable formatter
- hiveConf.set(SerDeUtils.LIST_SINK_OUTPUT_FORMATTER, ThriftFormatter.class.getName());
- hiveConf.setInt(SerDeUtils.LIST_SINK_OUTPUT_PROTOCOL, protocol.getValue());
+ sessionConf.set(SerDeUtils.LIST_SINK_OUTPUT_FORMATTER, ThriftFormatter.class.getName());
+ sessionConf.setInt(SerDeUtils.LIST_SINK_OUTPUT_PROTOCOL, protocol.getValue());
}
public HiveSessionImpl(TProtocolVersion protocol, String username, String password,
@@ -158,7 +158,7 @@ public class HiveSessionImpl implements HiveSession {
* That's why it is important to create SessionState here rather than in the constructor.
*/
public void open(Map<String, String> sessionConfMap) throws HiveSQLException {
- sessionState = new SessionState(hiveConf, username);
+ sessionState = new SessionState(sessionConf, username);
sessionState.setUserIpAddress(ipAddress);
sessionState.setIsHiveServerQuery(true);
sessionState.setForwardedAddresses(SessionManager.getForwardedAddresses());
@@ -224,7 +224,7 @@ public class HiveSessionImpl implements HiveSession {
IHiveFileProcessor processor = new GlobalHivercFileProcessor();
try {
- String hiverc = hiveConf.getVar(ConfVars.HIVE_SERVER2_GLOBAL_INIT_FILE_LOCATION);
+ String hiverc = sessionConf.getVar(ConfVars.HIVE_SERVER2_GLOBAL_INIT_FILE_LOCATION);
if (hiverc != null) {
File hivercFile = new File(hiverc);
if (hivercFile.isDirectory()) {
@@ -258,7 +258,7 @@ public class HiveSessionImpl implements HiveSession {
} else if (key.startsWith("use:")) {
SessionState.get().setCurrentDatabase(entry.getValue());
} else {
- hiveConf.verifyAndSet(key, entry.getValue());
+ sessionConf.verifyAndSet(key, entry.getValue());
}
}
}
@@ -380,8 +380,8 @@ public class HiveSessionImpl implements HiveSession {
@Override
public HiveConf getHiveConf() {
- hiveConf.setVar(HiveConf.ConfVars.HIVEFETCHOUTPUTSERDE, FETCH_WORK_SERDE_CLASS);
- return hiveConf;
+ sessionConf.setVar(HiveConf.ConfVars.HIVEFETCHOUTPUTSERDE, FETCH_WORK_SERDE_CLASS);
+ return sessionConf;
}
@Override
@@ -442,16 +442,6 @@ public class HiveSessionImpl implements HiveSession {
throws HiveSQLException {
acquire(true);
- // Make a copy of confOverlay
- if (confOverlay == null) {
- confOverlay = new HashMap<String, String>();
- } else {
- Map<String, String> conf = new HashMap<String, String>();
- conf.putAll(confOverlay);
- confOverlay = conf;
- }
- confOverlay.put(HiveConf.ConfVars.HIVEQUERYID.varname, QueryPlan.makeQueryId());
-
OperationManager operationManager = getOperationManager();
ExecuteStatementOperation operation = operationManager
.newExecuteStatementOperation(getSession(), statement, confOverlay, runAsync);
@@ -578,7 +568,7 @@ public class HiveSessionImpl implements HiveSession {
public OperationHandle getColumns(String catalogName, String schemaName,
String tableName, String columnName) throws HiveSQLException {
acquire(true);
- String addedJars = Utilities.getResourceFiles(hiveConf, SessionState.ResourceType.JAR);
+ String addedJars = Utilities.getResourceFiles(sessionConf, SessionState.ResourceType.JAR);
if (StringUtils.isNotBlank(addedJars)) {
IMetaStoreClient metastoreClient = getSession().getMetaStoreClient();
metastoreClient.setHiveAddedJars(addedJars);
@@ -788,7 +778,7 @@ public class HiveSessionImpl implements HiveSession {
if (fetchType == FetchType.QUERY_OUTPUT) {
return operationManager.getOperationNextRowSet(opHandle, orientation, maxRows);
}
- return operationManager.getOperationLogRowSet(opHandle, orientation, maxRows, hiveConf);
+ return operationManager.getOperationLogRowSet(opHandle, orientation, maxRows, sessionConf);
} finally {
release(true);
}
[19/50] [abbrv] hive git commit: HIVE-13533: Remove AST dump (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_7.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_7.q.out b/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_7.q.out
index dd01e69..00c601f 100644
--- a/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_7.q.out
+++ b/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_7.q.out
@@ -122,38 +122,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- Since size is being used to find the big table, the order of the tables in the join does not matter
explain extended select count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -356,38 +324,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -590,38 +526,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_8.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_8.q.out b/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_8.q.out
index f0f27f0..5564ceb 100644
--- a/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_8.q.out
+++ b/ql/src/test/results/clientpositive/spark/auto_sortmerge_join_8.q.out
@@ -122,38 +122,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- Since size is being used to find the big table, the order of the tables in the join does not matter
explain extended select count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -356,38 +324,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -592,38 +528,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- The mapjoin should fail resulting in the sort-merge join
explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/bucket2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/bucket2.q.out b/ql/src/test/results/clientpositive/spark/bucket2.q.out
index f4f87c2..aa47459 100644
--- a/ql/src/test/results/clientpositive/spark/bucket2.q.out
+++ b/ql/src/test/results/clientpositive/spark/bucket2.q.out
@@ -18,23 +18,6 @@ POSTHOOK: query: explain extended
insert overwrite table bucket2_1
select * from src
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucket2_1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/bucket3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/bucket3.q.out b/ql/src/test/results/clientpositive/spark/bucket3.q.out
index 96b2818..39d9c33 100644
--- a/ql/src/test/results/clientpositive/spark/bucket3.q.out
+++ b/ql/src/test/results/clientpositive/spark/bucket3.q.out
@@ -18,27 +18,6 @@ POSTHOOK: query: explain extended
insert overwrite table bucket3_1 partition (ds='1')
select * from src
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucket3_1
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '1'
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/bucket4.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/bucket4.q.out b/ql/src/test/results/clientpositive/spark/bucket4.q.out
index 4049f22..680cee7 100644
--- a/ql/src/test/results/clientpositive/spark/bucket4.q.out
+++ b/ql/src/test/results/clientpositive/spark/bucket4.q.out
@@ -14,23 +14,6 @@ POSTHOOK: query: explain extended
insert overwrite table bucket4_1
select * from src
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucket4_1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/bucket5.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/bucket5.q.out b/ql/src/test/results/clientpositive/spark/bucket5.q.out
index 5baf054..0504eac 100644
--- a/ql/src/test/results/clientpositive/spark/bucket5.q.out
+++ b/ql/src/test/results/clientpositive/spark/bucket5.q.out
@@ -30,42 +30,6 @@ FROM src
INSERT OVERWRITE TABLE bucketed_table SELECT key, value
INSERT OVERWRITE TABLE unbucketed_table SELECT key, value cluster by key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketed_table
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- unbucketed_table
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_CLUSTERBY
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-0 depends on stages: Stage-2
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/bucket_map_join_1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/bucket_map_join_1.q.out b/ql/src/test/results/clientpositive/spark/bucket_map_join_1.q.out
index fd17425..299cedf 100644
--- a/ql/src/test/results/clientpositive/spark/bucket_map_join_1.q.out
+++ b/ql/src/test/results/clientpositive/spark/bucket_map_join_1.q.out
@@ -56,53 +56,6 @@ POSTHOOK: query: -- The tables are bucketed in same columns in different order,
explain extended
select /*+ mapjoin(b) */ count(*) from table1 a join table2 b on a.key=b.key and a.value=b.value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- table1
- a
- TOK_TABREF
- TOK_TABNAME
- table2
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- value
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/bucket_map_join_2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/bucket_map_join_2.q.out b/ql/src/test/results/clientpositive/spark/bucket_map_join_2.q.out
index 4884907..f330bf2 100644
--- a/ql/src/test/results/clientpositive/spark/bucket_map_join_2.q.out
+++ b/ql/src/test/results/clientpositive/spark/bucket_map_join_2.q.out
@@ -56,53 +56,6 @@ POSTHOOK: query: -- The tables are bucketed in same columns in different order,
explain extended
select /*+ mapjoin(b) */ count(*) from table1 a join table2 b on a.key=b.key and a.value=b.value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- table1
- a
- TOK_TABREF
- TOK_TABNAME
- table2
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- value
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/bucket_map_join_spark1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/bucket_map_join_spark1.q.out b/ql/src/test/results/clientpositive/spark/bucket_map_join_spark1.q.out
index 3dbfddd..b32528c 100644
--- a/ql/src/test/results/clientpositive/spark/bucket_map_join_spark1.q.out
+++ b/ql/src/test/results/clientpositive/spark/bucket_map_join_spark1.q.out
@@ -116,58 +116,6 @@ select a.key, a.value, b.value
from srcbucket_mapjoin_part a join srcbucket_mapjoin_part_2 b
on a.key=b.key and b.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -455,58 +403,6 @@ select a.key, a.value, b.value
from srcbucket_mapjoin_part a join srcbucket_mapjoin_part_2 b
on a.key=b.key and b.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/bucket_map_join_spark2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/bucket_map_join_spark2.q.out b/ql/src/test/results/clientpositive/spark/bucket_map_join_spark2.q.out
index 216c0bd..7b304c5 100644
--- a/ql/src/test/results/clientpositive/spark/bucket_map_join_spark2.q.out
+++ b/ql/src/test/results/clientpositive/spark/bucket_map_join_spark2.q.out
@@ -100,58 +100,6 @@ select a.key, a.value, b.value
from srcbucket_mapjoin_part a join srcbucket_mapjoin_part_2 b
on a.key=b.key and b.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -439,58 +387,6 @@ select a.key, a.value, b.value
from srcbucket_mapjoin_part a join srcbucket_mapjoin_part_2 b
on a.key=b.key and b.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/bucket_map_join_spark3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/bucket_map_join_spark3.q.out b/ql/src/test/results/clientpositive/spark/bucket_map_join_spark3.q.out
index 5bc2ec4..4265d1a 100644
--- a/ql/src/test/results/clientpositive/spark/bucket_map_join_spark3.q.out
+++ b/ql/src/test/results/clientpositive/spark/bucket_map_join_spark3.q.out
@@ -100,58 +100,6 @@ select a.key, a.value, b.value
from srcbucket_mapjoin_part a join srcbucket_mapjoin_part_2 b
on a.key=b.key and b.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -439,58 +387,6 @@ select a.key, a.value, b.value
from srcbucket_mapjoin_part a join srcbucket_mapjoin_part_2 b
on a.key=b.key and b.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/bucket_map_join_spark4.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/bucket_map_join_spark4.q.out b/ql/src/test/results/clientpositive/spark/bucket_map_join_spark4.q.out
index d8746cd..9cd87d2 100644
--- a/ql/src/test/results/clientpositive/spark/bucket_map_join_spark4.q.out
+++ b/ql/src/test/results/clientpositive/spark/bucket_map_join_spark4.q.out
@@ -70,73 +70,6 @@ POSTHOOK: query: explain extended
select a.key as key, a.value as val1, b.value as val2, c.value as val3
from tbl1 a join tbl2 b on a.key = b.key join tbl3 c on a.value = c.value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- tbl1
- a
- TOK_TABREF
- TOK_TABNAME
- tbl2
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_TABREF
- TOK_TABNAME
- tbl3
- c
- =
- .
- TOK_TABLE_OR_COL
- a
- value
- .
- TOK_TABLE_OR_COL
- c
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- val1
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- val2
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- c
- value
- val3
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
@@ -515,73 +448,6 @@ POSTHOOK: query: explain extended
select a.key as key, a.value as val1, b.value as val2, c.value as val3
from tbl1 a join tbl2 b on a.key = b.key join tbl3 c on a.value = c.value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- tbl1
- a
- TOK_TABREF
- TOK_TABNAME
- tbl2
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_TABREF
- TOK_TABNAME
- tbl3
- c
- =
- .
- TOK_TABLE_OR_COL
- a
- value
- .
- TOK_TABLE_OR_COL
- c
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- val1
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- val2
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- c
- value
- val3
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/bucketmapjoin1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/bucketmapjoin1.q.out b/ql/src/test/results/clientpositive/spark/bucketmapjoin1.q.out
index cee6601..c6a7f0e 100644
--- a/ql/src/test/results/clientpositive/spark/bucketmapjoin1.q.out
+++ b/ql/src/test/results/clientpositive/spark/bucketmapjoin1.q.out
@@ -34,62 +34,6 @@ select /*+mapjoin(b)*/ a.key, a.value, b.value
from srcbucket_mapjoin_part a join srcbucket_mapjoin_part_2 b
on a.key=b.key where b.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
@@ -209,62 +153,6 @@ select /*+mapjoin(a)*/ a.key, a.value, b.value
from srcbucket_mapjoin_part a join srcbucket_mapjoin_part_2 b
on a.key=b.key where b.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
@@ -476,63 +364,6 @@ select /*+mapjoin(b)*/ a.key, a.value, b.value
from srcbucket_mapjoin a join srcbucket_mapjoin_part b
on a.key=b.key where b.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -864,63 +695,6 @@ select /*+mapjoin(a)*/ a.key, a.value, b.value
from srcbucket_mapjoin a join srcbucket_mapjoin_part b
on a.key=b.key where b.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/bucketmapjoin10.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/bucketmapjoin10.q.out b/ql/src/test/results/clientpositive/spark/bucketmapjoin10.q.out
index 8764bc3..0e3b5c7 100644
--- a/ql/src/test/results/clientpositive/spark/bucketmapjoin10.q.out
+++ b/ql/src/test/results/clientpositive/spark/bucketmapjoin10.q.out
@@ -140,57 +140,6 @@ SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_2 b
ON a.key = b.key AND a.part IS NOT NULL AND b.part IS NOT NULL
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_FUNCTION
- TOK_ISNOTNULL
- .
- TOK_TABLE_OR_COL
- a
- part
- TOK_FUNCTION
- TOK_ISNOTNULL
- .
- TOK_TABLE_OR_COL
- b
- part
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/bucketmapjoin11.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/bucketmapjoin11.q.out b/ql/src/test/results/clientpositive/spark/bucketmapjoin11.q.out
index 58ac20c..38f9785 100644
--- a/ql/src/test/results/clientpositive/spark/bucketmapjoin11.q.out
+++ b/ql/src/test/results/clientpositive/spark/bucketmapjoin11.q.out
@@ -150,57 +150,6 @@ SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_2 b
ON a.key = b.key AND a.part IS NOT NULL AND b.part IS NOT NULL
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_FUNCTION
- TOK_ISNOTNULL
- .
- TOK_TABLE_OR_COL
- a
- part
- TOK_FUNCTION
- TOK_ISNOTNULL
- .
- TOK_TABLE_OR_COL
- b
- part
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
@@ -538,67 +487,6 @@ SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_2 b
ON a.key = b.key AND a.part = b.part AND a.part IS NOT NULL AND b.part IS NOT NULL
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- AND
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- part
- .
- TOK_TABLE_OR_COL
- b
- part
- TOK_FUNCTION
- TOK_ISNOTNULL
- .
- TOK_TABLE_OR_COL
- a
- part
- TOK_FUNCTION
- TOK_ISNOTNULL
- .
- TOK_TABLE_OR_COL
- b
- part
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/bucketmapjoin12.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/bucketmapjoin12.q.out b/ql/src/test/results/clientpositive/spark/bucketmapjoin12.q.out
index bde9085..55ded7d 100644
--- a/ql/src/test/results/clientpositive/spark/bucketmapjoin12.q.out
+++ b/ql/src/test/results/clientpositive/spark/bucketmapjoin12.q.out
@@ -109,57 +109,6 @@ SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_2 b
ON a.key = b.key AND a.part = '1' and b.part = '1'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- and
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- part
- '1'
- =
- .
- TOK_TABLE_OR_COL
- b
- part
- '1'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
@@ -406,57 +355,6 @@ SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_3 b
ON a.key = b.key AND a.part = '1' and b.part = '1'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_3
- b
- and
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- part
- '1'
- =
- .
- TOK_TABLE_OR_COL
- b
- part
- '1'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/bucketmapjoin13.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/bucketmapjoin13.q.out b/ql/src/test/results/clientpositive/spark/bucketmapjoin13.q.out
index 7a4d32a..b4f4949 100644
--- a/ql/src/test/results/clientpositive/spark/bucketmapjoin13.q.out
+++ b/ql/src/test/results/clientpositive/spark/bucketmapjoin13.q.out
@@ -82,43 +82,6 @@ SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_2 b
ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
@@ -411,50 +374,6 @@ SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_2 b
ON a.key = b.key and a.part = '2'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- part
- '2'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
@@ -716,43 +635,6 @@ SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_2 b
ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
@@ -1016,43 +898,6 @@ SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_2 b
ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/bucketmapjoin2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/bucketmapjoin2.q.out b/ql/src/test/results/clientpositive/spark/bucketmapjoin2.q.out
index cbcca57..48ff95f 100644
--- a/ql/src/test/results/clientpositive/spark/bucketmapjoin2.q.out
+++ b/ql/src/test/results/clientpositive/spark/bucketmapjoin2.q.out
@@ -100,63 +100,6 @@ select /*+mapjoin(b)*/ a.key, a.value, b.value
from srcbucket_mapjoin_part a join srcbucket_mapjoin_part_2 b
on a.key=b.key and b.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -496,63 +439,6 @@ select /*+mapjoin(a)*/ a.key, a.value, b.value
from srcbucket_mapjoin_part a join srcbucket_mapjoin_part_2 b
on a.key=b.key and b.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -921,56 +807,6 @@ select /*+mapjoin(b)*/ a.key, a.value, b.value
from srcbucket_mapjoin_part a join srcbucket_mapjoin_part_2 b
on a.key=b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/bucketmapjoin3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/bucketmapjoin3.q.out b/ql/src/test/results/clientpositive/spark/bucketmapjoin3.q.out
index 3b306db..95589ca 100644
--- a/ql/src/test/results/clientpositive/spark/bucketmapjoin3.q.out
+++ b/ql/src/test/results/clientpositive/spark/bucketmapjoin3.q.out
@@ -124,70 +124,6 @@ select /*+mapjoin(b)*/ a.key, a.value, b.value
from srcbucket_mapjoin_part_2 a join srcbucket_mapjoin_part b
on a.key=b.key and b.ds="2008-04-08" and a.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- b
- and
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- "2008-04-08"
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -527,70 +463,6 @@ select /*+mapjoin(a)*/ a.key, a.value, b.value
from srcbucket_mapjoin_part_2 a join srcbucket_mapjoin_part b
on a.key=b.key and b.ds="2008-04-08" and a.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- b
- and
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- "2008-04-08"
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/bucketmapjoin4.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/bucketmapjoin4.q.out b/ql/src/test/results/clientpositive/spark/bucketmapjoin4.q.out
index 11a7d3a..fba617c 100644
--- a/ql/src/test/results/clientpositive/spark/bucketmapjoin4.q.out
+++ b/ql/src/test/results/clientpositive/spark/bucketmapjoin4.q.out
@@ -124,56 +124,6 @@ select /*+mapjoin(b)*/ a.key, a.value, b.value
from srcbucket_mapjoin a join srcbucket_mapjoin b
on a.key=b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -493,56 +443,6 @@ select /*+mapjoin(a)*/ a.key, a.value, b.value
from srcbucket_mapjoin a join srcbucket_mapjoin b
on a.key=b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/bucketmapjoin5.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/bucketmapjoin5.q.out b/ql/src/test/results/clientpositive/spark/bucketmapjoin5.q.out
index 188e4e7..7214b42 100644
--- a/ql/src/test/results/clientpositive/spark/bucketmapjoin5.q.out
+++ b/ql/src/test/results/clientpositive/spark/bucketmapjoin5.q.out
@@ -174,56 +174,6 @@ select /*+mapjoin(a)*/ a.key, a.value, b.value
from srcbucket_mapjoin a join srcbucket_mapjoin_part b
on a.key=b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -604,56 +554,6 @@ select /*+mapjoin(a)*/ a.key, a.value, b.value
from srcbucket_mapjoin a join srcbucket_mapjoin_part_2 b
on a.key=b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/bucketmapjoin7.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/bucketmapjoin7.q.out b/ql/src/test/results/clientpositive/spark/bucketmapjoin7.q.out
index d89bd58..d344070 100644
--- a/ql/src/test/results/clientpositive/spark/bucketmapjoin7.q.out
+++ b/ql/src/test/results/clientpositive/spark/bucketmapjoin7.q.out
@@ -68,79 +68,6 @@ FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_2 b
ON a.key = b.key AND a.ds = '2008-04-08' AND b.ds = '2008-04-08'
ORDER BY a.key, b.value LIMIT 1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- '2008-04-08'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_LIMIT
- 1
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/bucketmapjoin8.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/bucketmapjoin8.q.out b/ql/src/test/results/clientpositive/spark/bucketmapjoin8.q.out
index 80dd175..a7ad6de 100644
--- a/ql/src/test/results/clientpositive/spark/bucketmapjoin8.q.out
+++ b/ql/src/test/results/clientpositive/spark/bucketmapjoin8.q.out
@@ -74,57 +74,6 @@ SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_2 b
ON a.key = b.key AND a.part = '1' and b.part = '1'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- and
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- part
- '1'
- =
- .
- TOK_TABLE_OR_COL
- b
- part
- '1'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
@@ -380,57 +329,6 @@ SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_2 b
ON a.key = b.key AND a.part = '1' and b.part = '1'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- and
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- part
- '1'
- =
- .
- TOK_TABLE_OR_COL
- b
- part
- '1'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/bucketmapjoin9.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/bucketmapjoin9.q.out b/ql/src/test/results/clientpositive/spark/bucketmapjoin9.q.out
index 2c3dd41..6e4c536 100644
--- a/ql/src/test/results/clientpositive/spark/bucketmapjoin9.q.out
+++ b/ql/src/test/results/clientpositive/spark/bucketmapjoin9.q.out
@@ -82,57 +82,6 @@ SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_2 b
ON a.key = b.key AND a.part = '1' and b.part = '1'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- and
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- part
- '1'
- =
- .
- TOK_TABLE_OR_COL
- b
- part
- '1'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
@@ -410,57 +359,6 @@ SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_2 b
ON a.key = b.key AND a.part = '1' AND b.part = '1'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- part
- '1'
- =
- .
- TOK_TABLE_OR_COL
- b
- part
- '1'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/bucketmapjoin_negative.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/bucketmapjoin_negative.q.out b/ql/src/test/results/clientpositive/spark/bucketmapjoin_negative.q.out
index b07af54..9fff7b2 100644
--- a/ql/src/test/results/clientpositive/spark/bucketmapjoin_negative.q.out
+++ b/ql/src/test/results/clientpositive/spark/bucketmapjoin_negative.q.out
@@ -75,63 +75,6 @@ select /*+mapjoin(b)*/ a.key, a.value, b.value
from srcbucket_mapjoin a join srcbucket_mapjoin_part b
on a.key=b.key where b.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/bucketmapjoin_negative2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/bucketmapjoin_negative2.q.out b/ql/src/test/results/clientpositive/spark/bucketmapjoin_negative2.q.out
index 98c19b4..b199ad9 100644
--- a/ql/src/test/results/clientpositive/spark/bucketmapjoin_negative2.q.out
+++ b/ql/src/test/results/clientpositive/spark/bucketmapjoin_negative2.q.out
@@ -84,56 +84,6 @@ select /*+mapjoin(b)*/ a.key, a.value, b.value
from srcbucket_mapjoin a join srcbucket_mapjoin_part_2 b
on a.key=b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/spark/bucketmapjoin_negative3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/bucketmapjoin_negative3.q.out b/ql/src/test/results/clientpositive/spark/bucketmapjoin_negative3.q.out
index dd59399..845e450 100644
--- a/ql/src/test/results/clientpositive/spark/bucketmapjoin_negative3.q.out
+++ b/ql/src/test/results/clientpositive/spark/bucketmapjoin_negative3.q.out
@@ -148,52 +148,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- should be allowed
explain extended select /* + MAPJOIN(R) */ * from test1 L join test1 R on L.key=R.key AND L.value=R.value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test1
- L
- TOK_TABREF
- TOK_TABNAME
- test1
- R
- AND
- =
- .
- TOK_TABLE_OR_COL
- L
- key
- .
- TOK_TABLE_OR_COL
- R
- key
- =
- .
- TOK_TABLE_OR_COL
- L
- value
- .
- TOK_TABLE_OR_COL
- R
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- R
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
@@ -391,52 +345,6 @@ PREHOOK: query: explain extended select /* + MAPJOIN(R) */ * from test2 L join t
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /* + MAPJOIN(R) */ * from test2 L join test2 R on L.key=R.key AND L.value=R.value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test2
- L
- TOK_TABREF
- TOK_TABNAME
- test2
- R
- AND
- =
- .
- TOK_TABLE_OR_COL
- L
- key
- .
- TOK_TABLE_OR_COL
- R
- key
- =
- .
- TOK_TABLE_OR_COL
- L
- value
- .
- TOK_TABLE_OR_COL
- R
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- R
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
@@ -636,47 +544,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- should not apply bucket mapjoin
explain extended select /* + MAPJOIN(R) */ * from test1 L join test1 R on L.key+L.key=R.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test1
- L
- TOK_TABREF
- TOK_TABNAME
- test1
- R
- =
- +
- .
- TOK_TABLE_OR_COL
- L
- key
- .
- TOK_TABLE_OR_COL
- L
- key
- .
- TOK_TABLE_OR_COL
- R
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- R
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
@@ -863,52 +730,6 @@ PREHOOK: query: explain extended select /* + MAPJOIN(R) */ * from test1 L join t
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /* + MAPJOIN(R) */ * from test1 L join test2 R on L.key=R.key AND L.value=R.value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test1
- L
- TOK_TABREF
- TOK_TABNAME
- test2
- R
- AND
- =
- .
- TOK_TABLE_OR_COL
- L
- key
- .
- TOK_TABLE_OR_COL
- R
- key
- =
- .
- TOK_TABLE_OR_COL
- L
- value
- .
- TOK_TABLE_OR_COL
- R
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- R
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
@@ -1095,52 +916,6 @@ PREHOOK: query: explain extended select /* + MAPJOIN(R) */ * from test1 L join t
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /* + MAPJOIN(R) */ * from test1 L join test3 R on L.key=R.key AND L.value=R.value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test1
- L
- TOK_TABREF
- TOK_TABNAME
- test3
- R
- AND
- =
- .
- TOK_TABLE_OR_COL
- L
- key
- .
- TOK_TABLE_OR_COL
- R
- key
- =
- .
- TOK_TABLE_OR_COL
- L
- value
- .
- TOK_TABLE_OR_COL
- R
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- R
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
@@ -1327,52 +1102,6 @@ PREHOOK: query: explain extended select /* + MAPJOIN(R) */ * from test1 L join t
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /* + MAPJOIN(R) */ * from test1 L join test4 R on L.key=R.key AND L.value=R.value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test1
- L
- TOK_TABREF
- TOK_TABNAME
- test4
- R
- AND
- =
- .
- TOK_TABLE_OR_COL
- L
- key
- .
- TOK_TABLE_OR_COL
- R
- key
- =
- .
- TOK_TABLE_OR_COL
- L
- value
- .
- TOK_TABLE_OR_COL
- R
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- R
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
@@ -1559,52 +1288,6 @@ PREHOOK: query: explain extended select /* + MAPJOIN(R) */ * from test2 L join t
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /* + MAPJOIN(R) */ * from test2 L join test3 R on L.key=R.key AND L.value=R.value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test2
- L
- TOK_TABREF
- TOK_TABNAME
- test3
- R
- AND
- =
- .
- TOK_TABLE_OR_COL
- L
- key
- .
- TOK_TABLE_OR_COL
- R
- key
- =
- .
- TOK_TABLE_OR_COL
- L
- value
- .
- TOK_TABLE_OR_COL
- R
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- R
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
@@ -1791,52 +1474,6 @@ PREHOOK: query: explain extended select /* + MAPJOIN(R) */ * from test2 L join t
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /* + MAPJOIN(R) */ * from test2 L join test4 R on L.key=R.key AND L.value=R.value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test2
- L
- TOK_TABREF
- TOK_TABNAME
- test4
- R
- AND
- =
- .
- TOK_TABLE_OR_COL
- L
- key
- .
- TOK_TABLE_OR_COL
- R
- key
- =
- .
- TOK_TABLE_OR_COL
- L
- value
- .
- TOK_TABLE_OR_COL
- R
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- R
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
@@ -2023,52 +1660,6 @@ PREHOOK: query: explain extended select /* + MAPJOIN(R) */ * from test3 L join t
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /* + MAPJOIN(R) */ * from test3 L join test4 R on L.key=R.key AND L.value=R.value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- test3
- L
- TOK_TABREF
- TOK_TABNAME
- test4
- R
- AND
- =
- .
- TOK_TABLE_OR_COL
- L
- key
- .
- TOK_TABLE_OR_COL
- R
- key
- =
- .
- TOK_TABLE_OR_COL
- L
- value
- .
- TOK_TABLE_OR_COL
- R
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- R
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
[40/50] [abbrv] hive git commit: HIVE-13097. Update Tez dependency to
version 0.8.3. (Siddharth Seth, reviewed by Prasanth Jayachandran)
Posted by jd...@apache.org.
HIVE-13097. Update Tez dependency to version 0.8.3. (Siddharth Seth, reviewed by Prasanth Jayachandran)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/b18a0f5b
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/b18a0f5b
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/b18a0f5b
Branch: refs/heads/llap
Commit: b18a0f5be92139b8ed5cd986e65fecc9c2f1c98e
Parents: eead54c
Author: Siddharth Seth <ss...@apache.org>
Authored: Mon Apr 25 23:16:37 2016 -0700
Committer: Siddharth Seth <ss...@apache.org>
Committed: Mon Apr 25 23:16:37 2016 -0700
----------------------------------------------------------------------
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/b18a0f5b/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 5de35c8..a108c96 100644
--- a/pom.xml
+++ b/pom.xml
@@ -170,7 +170,7 @@
<stax.version>1.0.1</stax.version>
<slf4j.version>1.7.5</slf4j.version>
<ST4.version>4.0.4</ST4.version>
- <tez.version>0.8.2</tez.version>
+ <tez.version>0.8.3</tez.version>
<slider.version>0.90.2-incubating</slider.version>
<super-csv.version>2.2.0</super-csv.version>
<spark.version>1.6.0</spark.version>
[33/50] [abbrv] hive git commit: HIVE-13130: HS2 changes : API calls
for retrieving primary keys and foreign keys information (Hari Subramaniyan,
reviewed by Ashutosh Chauhan)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/service-rpc/src/gen/thrift/gen-cpp/TCLIService_types.cpp
----------------------------------------------------------------------
diff --git a/service-rpc/src/gen/thrift/gen-cpp/TCLIService_types.cpp b/service-rpc/src/gen/thrift/gen-cpp/TCLIService_types.cpp
index 395af2c..66f5e8c 100644
--- a/service-rpc/src/gen/thrift/gen-cpp/TCLIService_types.cpp
+++ b/service-rpc/src/gen/thrift/gen-cpp/TCLIService_types.cpp
@@ -7542,6 +7542,604 @@ void TGetFunctionsResp::printTo(std::ostream& out) const {
}
+TGetPrimaryKeysReq::~TGetPrimaryKeysReq() throw() {
+}
+
+
+void TGetPrimaryKeysReq::__set_sessionHandle(const TSessionHandle& val) {
+ this->sessionHandle = val;
+}
+
+void TGetPrimaryKeysReq::__set_catalogName(const TIdentifier& val) {
+ this->catalogName = val;
+__isset.catalogName = true;
+}
+
+void TGetPrimaryKeysReq::__set_schemaName(const TIdentifier& val) {
+ this->schemaName = val;
+__isset.schemaName = true;
+}
+
+void TGetPrimaryKeysReq::__set_tableName(const TIdentifier& val) {
+ this->tableName = val;
+__isset.tableName = true;
+}
+
+uint32_t TGetPrimaryKeysReq::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+ apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+ uint32_t xfer = 0;
+ std::string fname;
+ ::apache::thrift::protocol::TType ftype;
+ int16_t fid;
+
+ xfer += iprot->readStructBegin(fname);
+
+ using ::apache::thrift::protocol::TProtocolException;
+
+ bool isset_sessionHandle = false;
+
+ while (true)
+ {
+ xfer += iprot->readFieldBegin(fname, ftype, fid);
+ if (ftype == ::apache::thrift::protocol::T_STOP) {
+ break;
+ }
+ switch (fid)
+ {
+ case 1:
+ if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+ xfer += this->sessionHandle.read(iprot);
+ isset_sessionHandle = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ case 2:
+ if (ftype == ::apache::thrift::protocol::T_STRING) {
+ xfer += iprot->readString(this->catalogName);
+ this->__isset.catalogName = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ case 3:
+ if (ftype == ::apache::thrift::protocol::T_STRING) {
+ xfer += iprot->readString(this->schemaName);
+ this->__isset.schemaName = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ case 4:
+ if (ftype == ::apache::thrift::protocol::T_STRING) {
+ xfer += iprot->readString(this->tableName);
+ this->__isset.tableName = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ default:
+ xfer += iprot->skip(ftype);
+ break;
+ }
+ xfer += iprot->readFieldEnd();
+ }
+
+ xfer += iprot->readStructEnd();
+
+ if (!isset_sessionHandle)
+ throw TProtocolException(TProtocolException::INVALID_DATA);
+ return xfer;
+}
+
+uint32_t TGetPrimaryKeysReq::write(::apache::thrift::protocol::TProtocol* oprot) const {
+ uint32_t xfer = 0;
+ apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+ xfer += oprot->writeStructBegin("TGetPrimaryKeysReq");
+
+ xfer += oprot->writeFieldBegin("sessionHandle", ::apache::thrift::protocol::T_STRUCT, 1);
+ xfer += this->sessionHandle.write(oprot);
+ xfer += oprot->writeFieldEnd();
+
+ if (this->__isset.catalogName) {
+ xfer += oprot->writeFieldBegin("catalogName", ::apache::thrift::protocol::T_STRING, 2);
+ xfer += oprot->writeString(this->catalogName);
+ xfer += oprot->writeFieldEnd();
+ }
+ if (this->__isset.schemaName) {
+ xfer += oprot->writeFieldBegin("schemaName", ::apache::thrift::protocol::T_STRING, 3);
+ xfer += oprot->writeString(this->schemaName);
+ xfer += oprot->writeFieldEnd();
+ }
+ if (this->__isset.tableName) {
+ xfer += oprot->writeFieldBegin("tableName", ::apache::thrift::protocol::T_STRING, 4);
+ xfer += oprot->writeString(this->tableName);
+ xfer += oprot->writeFieldEnd();
+ }
+ xfer += oprot->writeFieldStop();
+ xfer += oprot->writeStructEnd();
+ return xfer;
+}
+
+void swap(TGetPrimaryKeysReq &a, TGetPrimaryKeysReq &b) {
+ using ::std::swap;
+ swap(a.sessionHandle, b.sessionHandle);
+ swap(a.catalogName, b.catalogName);
+ swap(a.schemaName, b.schemaName);
+ swap(a.tableName, b.tableName);
+ swap(a.__isset, b.__isset);
+}
+
+TGetPrimaryKeysReq::TGetPrimaryKeysReq(const TGetPrimaryKeysReq& other260) {
+ sessionHandle = other260.sessionHandle;
+ catalogName = other260.catalogName;
+ schemaName = other260.schemaName;
+ tableName = other260.tableName;
+ __isset = other260.__isset;
+}
+TGetPrimaryKeysReq& TGetPrimaryKeysReq::operator=(const TGetPrimaryKeysReq& other261) {
+ sessionHandle = other261.sessionHandle;
+ catalogName = other261.catalogName;
+ schemaName = other261.schemaName;
+ tableName = other261.tableName;
+ __isset = other261.__isset;
+ return *this;
+}
+void TGetPrimaryKeysReq::printTo(std::ostream& out) const {
+ using ::apache::thrift::to_string;
+ out << "TGetPrimaryKeysReq(";
+ out << "sessionHandle=" << to_string(sessionHandle);
+ out << ", " << "catalogName="; (__isset.catalogName ? (out << to_string(catalogName)) : (out << "<null>"));
+ out << ", " << "schemaName="; (__isset.schemaName ? (out << to_string(schemaName)) : (out << "<null>"));
+ out << ", " << "tableName="; (__isset.tableName ? (out << to_string(tableName)) : (out << "<null>"));
+ out << ")";
+}
+
+
+TGetPrimaryKeysResp::~TGetPrimaryKeysResp() throw() {
+}
+
+
+void TGetPrimaryKeysResp::__set_status(const TStatus& val) {
+ this->status = val;
+}
+
+void TGetPrimaryKeysResp::__set_operationHandle(const TOperationHandle& val) {
+ this->operationHandle = val;
+__isset.operationHandle = true;
+}
+
+uint32_t TGetPrimaryKeysResp::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+ apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+ uint32_t xfer = 0;
+ std::string fname;
+ ::apache::thrift::protocol::TType ftype;
+ int16_t fid;
+
+ xfer += iprot->readStructBegin(fname);
+
+ using ::apache::thrift::protocol::TProtocolException;
+
+ bool isset_status = false;
+
+ while (true)
+ {
+ xfer += iprot->readFieldBegin(fname, ftype, fid);
+ if (ftype == ::apache::thrift::protocol::T_STOP) {
+ break;
+ }
+ switch (fid)
+ {
+ case 1:
+ if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+ xfer += this->status.read(iprot);
+ isset_status = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ case 2:
+ if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+ xfer += this->operationHandle.read(iprot);
+ this->__isset.operationHandle = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ default:
+ xfer += iprot->skip(ftype);
+ break;
+ }
+ xfer += iprot->readFieldEnd();
+ }
+
+ xfer += iprot->readStructEnd();
+
+ if (!isset_status)
+ throw TProtocolException(TProtocolException::INVALID_DATA);
+ return xfer;
+}
+
+uint32_t TGetPrimaryKeysResp::write(::apache::thrift::protocol::TProtocol* oprot) const {
+ uint32_t xfer = 0;
+ apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+ xfer += oprot->writeStructBegin("TGetPrimaryKeysResp");
+
+ xfer += oprot->writeFieldBegin("status", ::apache::thrift::protocol::T_STRUCT, 1);
+ xfer += this->status.write(oprot);
+ xfer += oprot->writeFieldEnd();
+
+ if (this->__isset.operationHandle) {
+ xfer += oprot->writeFieldBegin("operationHandle", ::apache::thrift::protocol::T_STRUCT, 2);
+ xfer += this->operationHandle.write(oprot);
+ xfer += oprot->writeFieldEnd();
+ }
+ xfer += oprot->writeFieldStop();
+ xfer += oprot->writeStructEnd();
+ return xfer;
+}
+
+void swap(TGetPrimaryKeysResp &a, TGetPrimaryKeysResp &b) {
+ using ::std::swap;
+ swap(a.status, b.status);
+ swap(a.operationHandle, b.operationHandle);
+ swap(a.__isset, b.__isset);
+}
+
+TGetPrimaryKeysResp::TGetPrimaryKeysResp(const TGetPrimaryKeysResp& other262) {
+ status = other262.status;
+ operationHandle = other262.operationHandle;
+ __isset = other262.__isset;
+}
+TGetPrimaryKeysResp& TGetPrimaryKeysResp::operator=(const TGetPrimaryKeysResp& other263) {
+ status = other263.status;
+ operationHandle = other263.operationHandle;
+ __isset = other263.__isset;
+ return *this;
+}
+void TGetPrimaryKeysResp::printTo(std::ostream& out) const {
+ using ::apache::thrift::to_string;
+ out << "TGetPrimaryKeysResp(";
+ out << "status=" << to_string(status);
+ out << ", " << "operationHandle="; (__isset.operationHandle ? (out << to_string(operationHandle)) : (out << "<null>"));
+ out << ")";
+}
+
+
+TGetCrossReferenceReq::~TGetCrossReferenceReq() throw() {
+}
+
+
+void TGetCrossReferenceReq::__set_sessionHandle(const TSessionHandle& val) {
+ this->sessionHandle = val;
+}
+
+void TGetCrossReferenceReq::__set_parentCatalogName(const TIdentifier& val) {
+ this->parentCatalogName = val;
+__isset.parentCatalogName = true;
+}
+
+void TGetCrossReferenceReq::__set_parentSchemaName(const TIdentifier& val) {
+ this->parentSchemaName = val;
+__isset.parentSchemaName = true;
+}
+
+void TGetCrossReferenceReq::__set_parentTableName(const TIdentifier& val) {
+ this->parentTableName = val;
+__isset.parentTableName = true;
+}
+
+void TGetCrossReferenceReq::__set_foreignCatalogName(const TIdentifier& val) {
+ this->foreignCatalogName = val;
+__isset.foreignCatalogName = true;
+}
+
+void TGetCrossReferenceReq::__set_foreignSchemaName(const TIdentifier& val) {
+ this->foreignSchemaName = val;
+__isset.foreignSchemaName = true;
+}
+
+void TGetCrossReferenceReq::__set_foreignTableName(const TIdentifier& val) {
+ this->foreignTableName = val;
+__isset.foreignTableName = true;
+}
+
+uint32_t TGetCrossReferenceReq::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+ apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+ uint32_t xfer = 0;
+ std::string fname;
+ ::apache::thrift::protocol::TType ftype;
+ int16_t fid;
+
+ xfer += iprot->readStructBegin(fname);
+
+ using ::apache::thrift::protocol::TProtocolException;
+
+ bool isset_sessionHandle = false;
+
+ while (true)
+ {
+ xfer += iprot->readFieldBegin(fname, ftype, fid);
+ if (ftype == ::apache::thrift::protocol::T_STOP) {
+ break;
+ }
+ switch (fid)
+ {
+ case 1:
+ if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+ xfer += this->sessionHandle.read(iprot);
+ isset_sessionHandle = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ case 2:
+ if (ftype == ::apache::thrift::protocol::T_STRING) {
+ xfer += iprot->readString(this->parentCatalogName);
+ this->__isset.parentCatalogName = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ case 3:
+ if (ftype == ::apache::thrift::protocol::T_STRING) {
+ xfer += iprot->readString(this->parentSchemaName);
+ this->__isset.parentSchemaName = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ case 4:
+ if (ftype == ::apache::thrift::protocol::T_STRING) {
+ xfer += iprot->readString(this->parentTableName);
+ this->__isset.parentTableName = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ case 5:
+ if (ftype == ::apache::thrift::protocol::T_STRING) {
+ xfer += iprot->readString(this->foreignCatalogName);
+ this->__isset.foreignCatalogName = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ case 6:
+ if (ftype == ::apache::thrift::protocol::T_STRING) {
+ xfer += iprot->readString(this->foreignSchemaName);
+ this->__isset.foreignSchemaName = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ case 7:
+ if (ftype == ::apache::thrift::protocol::T_STRING) {
+ xfer += iprot->readString(this->foreignTableName);
+ this->__isset.foreignTableName = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ default:
+ xfer += iprot->skip(ftype);
+ break;
+ }
+ xfer += iprot->readFieldEnd();
+ }
+
+ xfer += iprot->readStructEnd();
+
+ if (!isset_sessionHandle)
+ throw TProtocolException(TProtocolException::INVALID_DATA);
+ return xfer;
+}
+
+uint32_t TGetCrossReferenceReq::write(::apache::thrift::protocol::TProtocol* oprot) const {
+ uint32_t xfer = 0;
+ apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+ xfer += oprot->writeStructBegin("TGetCrossReferenceReq");
+
+ xfer += oprot->writeFieldBegin("sessionHandle", ::apache::thrift::protocol::T_STRUCT, 1);
+ xfer += this->sessionHandle.write(oprot);
+ xfer += oprot->writeFieldEnd();
+
+ if (this->__isset.parentCatalogName) {
+ xfer += oprot->writeFieldBegin("parentCatalogName", ::apache::thrift::protocol::T_STRING, 2);
+ xfer += oprot->writeString(this->parentCatalogName);
+ xfer += oprot->writeFieldEnd();
+ }
+ if (this->__isset.parentSchemaName) {
+ xfer += oprot->writeFieldBegin("parentSchemaName", ::apache::thrift::protocol::T_STRING, 3);
+ xfer += oprot->writeString(this->parentSchemaName);
+ xfer += oprot->writeFieldEnd();
+ }
+ if (this->__isset.parentTableName) {
+ xfer += oprot->writeFieldBegin("parentTableName", ::apache::thrift::protocol::T_STRING, 4);
+ xfer += oprot->writeString(this->parentTableName);
+ xfer += oprot->writeFieldEnd();
+ }
+ if (this->__isset.foreignCatalogName) {
+ xfer += oprot->writeFieldBegin("foreignCatalogName", ::apache::thrift::protocol::T_STRING, 5);
+ xfer += oprot->writeString(this->foreignCatalogName);
+ xfer += oprot->writeFieldEnd();
+ }
+ if (this->__isset.foreignSchemaName) {
+ xfer += oprot->writeFieldBegin("foreignSchemaName", ::apache::thrift::protocol::T_STRING, 6);
+ xfer += oprot->writeString(this->foreignSchemaName);
+ xfer += oprot->writeFieldEnd();
+ }
+ if (this->__isset.foreignTableName) {
+ xfer += oprot->writeFieldBegin("foreignTableName", ::apache::thrift::protocol::T_STRING, 7);
+ xfer += oprot->writeString(this->foreignTableName);
+ xfer += oprot->writeFieldEnd();
+ }
+ xfer += oprot->writeFieldStop();
+ xfer += oprot->writeStructEnd();
+ return xfer;
+}
+
+void swap(TGetCrossReferenceReq &a, TGetCrossReferenceReq &b) {
+ using ::std::swap;
+ swap(a.sessionHandle, b.sessionHandle);
+ swap(a.parentCatalogName, b.parentCatalogName);
+ swap(a.parentSchemaName, b.parentSchemaName);
+ swap(a.parentTableName, b.parentTableName);
+ swap(a.foreignCatalogName, b.foreignCatalogName);
+ swap(a.foreignSchemaName, b.foreignSchemaName);
+ swap(a.foreignTableName, b.foreignTableName);
+ swap(a.__isset, b.__isset);
+}
+
+TGetCrossReferenceReq::TGetCrossReferenceReq(const TGetCrossReferenceReq& other264) {
+ sessionHandle = other264.sessionHandle;
+ parentCatalogName = other264.parentCatalogName;
+ parentSchemaName = other264.parentSchemaName;
+ parentTableName = other264.parentTableName;
+ foreignCatalogName = other264.foreignCatalogName;
+ foreignSchemaName = other264.foreignSchemaName;
+ foreignTableName = other264.foreignTableName;
+ __isset = other264.__isset;
+}
+TGetCrossReferenceReq& TGetCrossReferenceReq::operator=(const TGetCrossReferenceReq& other265) {
+ sessionHandle = other265.sessionHandle;
+ parentCatalogName = other265.parentCatalogName;
+ parentSchemaName = other265.parentSchemaName;
+ parentTableName = other265.parentTableName;
+ foreignCatalogName = other265.foreignCatalogName;
+ foreignSchemaName = other265.foreignSchemaName;
+ foreignTableName = other265.foreignTableName;
+ __isset = other265.__isset;
+ return *this;
+}
+void TGetCrossReferenceReq::printTo(std::ostream& out) const {
+ using ::apache::thrift::to_string;
+ out << "TGetCrossReferenceReq(";
+ out << "sessionHandle=" << to_string(sessionHandle);
+ out << ", " << "parentCatalogName="; (__isset.parentCatalogName ? (out << to_string(parentCatalogName)) : (out << "<null>"));
+ out << ", " << "parentSchemaName="; (__isset.parentSchemaName ? (out << to_string(parentSchemaName)) : (out << "<null>"));
+ out << ", " << "parentTableName="; (__isset.parentTableName ? (out << to_string(parentTableName)) : (out << "<null>"));
+ out << ", " << "foreignCatalogName="; (__isset.foreignCatalogName ? (out << to_string(foreignCatalogName)) : (out << "<null>"));
+ out << ", " << "foreignSchemaName="; (__isset.foreignSchemaName ? (out << to_string(foreignSchemaName)) : (out << "<null>"));
+ out << ", " << "foreignTableName="; (__isset.foreignTableName ? (out << to_string(foreignTableName)) : (out << "<null>"));
+ out << ")";
+}
+
+
+TGetCrossReferenceResp::~TGetCrossReferenceResp() throw() {
+}
+
+
+void TGetCrossReferenceResp::__set_status(const TStatus& val) {
+ this->status = val;
+}
+
+void TGetCrossReferenceResp::__set_operationHandle(const TOperationHandle& val) {
+ this->operationHandle = val;
+__isset.operationHandle = true;
+}
+
+uint32_t TGetCrossReferenceResp::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+ apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
+ uint32_t xfer = 0;
+ std::string fname;
+ ::apache::thrift::protocol::TType ftype;
+ int16_t fid;
+
+ xfer += iprot->readStructBegin(fname);
+
+ using ::apache::thrift::protocol::TProtocolException;
+
+ bool isset_status = false;
+
+ while (true)
+ {
+ xfer += iprot->readFieldBegin(fname, ftype, fid);
+ if (ftype == ::apache::thrift::protocol::T_STOP) {
+ break;
+ }
+ switch (fid)
+ {
+ case 1:
+ if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+ xfer += this->status.read(iprot);
+ isset_status = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ case 2:
+ if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+ xfer += this->operationHandle.read(iprot);
+ this->__isset.operationHandle = true;
+ } else {
+ xfer += iprot->skip(ftype);
+ }
+ break;
+ default:
+ xfer += iprot->skip(ftype);
+ break;
+ }
+ xfer += iprot->readFieldEnd();
+ }
+
+ xfer += iprot->readStructEnd();
+
+ if (!isset_status)
+ throw TProtocolException(TProtocolException::INVALID_DATA);
+ return xfer;
+}
+
+uint32_t TGetCrossReferenceResp::write(::apache::thrift::protocol::TProtocol* oprot) const {
+ uint32_t xfer = 0;
+ apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+ xfer += oprot->writeStructBegin("TGetCrossReferenceResp");
+
+ xfer += oprot->writeFieldBegin("status", ::apache::thrift::protocol::T_STRUCT, 1);
+ xfer += this->status.write(oprot);
+ xfer += oprot->writeFieldEnd();
+
+ if (this->__isset.operationHandle) {
+ xfer += oprot->writeFieldBegin("operationHandle", ::apache::thrift::protocol::T_STRUCT, 2);
+ xfer += this->operationHandle.write(oprot);
+ xfer += oprot->writeFieldEnd();
+ }
+ xfer += oprot->writeFieldStop();
+ xfer += oprot->writeStructEnd();
+ return xfer;
+}
+
+void swap(TGetCrossReferenceResp &a, TGetCrossReferenceResp &b) {
+ using ::std::swap;
+ swap(a.status, b.status);
+ swap(a.operationHandle, b.operationHandle);
+ swap(a.__isset, b.__isset);
+}
+
+TGetCrossReferenceResp::TGetCrossReferenceResp(const TGetCrossReferenceResp& other266) {
+ status = other266.status;
+ operationHandle = other266.operationHandle;
+ __isset = other266.__isset;
+}
+TGetCrossReferenceResp& TGetCrossReferenceResp::operator=(const TGetCrossReferenceResp& other267) {
+ status = other267.status;
+ operationHandle = other267.operationHandle;
+ __isset = other267.__isset;
+ return *this;
+}
+void TGetCrossReferenceResp::printTo(std::ostream& out) const {
+ using ::apache::thrift::to_string;
+ out << "TGetCrossReferenceResp(";
+ out << "status=" << to_string(status);
+ out << ", " << "operationHandle="; (__isset.operationHandle ? (out << to_string(operationHandle)) : (out << "<null>"));
+ out << ")";
+}
+
+
TGetOperationStatusReq::~TGetOperationStatusReq() throw() {
}
@@ -7613,11 +8211,11 @@ void swap(TGetOperationStatusReq &a, TGetOperationStatusReq &b) {
swap(a.operationHandle, b.operationHandle);
}
-TGetOperationStatusReq::TGetOperationStatusReq(const TGetOperationStatusReq& other260) {
- operationHandle = other260.operationHandle;
+TGetOperationStatusReq::TGetOperationStatusReq(const TGetOperationStatusReq& other268) {
+ operationHandle = other268.operationHandle;
}
-TGetOperationStatusReq& TGetOperationStatusReq::operator=(const TGetOperationStatusReq& other261) {
- operationHandle = other261.operationHandle;
+TGetOperationStatusReq& TGetOperationStatusReq::operator=(const TGetOperationStatusReq& other269) {
+ operationHandle = other269.operationHandle;
return *this;
}
void TGetOperationStatusReq::printTo(std::ostream& out) const {
@@ -7703,9 +8301,9 @@ uint32_t TGetOperationStatusResp::read(::apache::thrift::protocol::TProtocol* ip
break;
case 2:
if (ftype == ::apache::thrift::protocol::T_I32) {
- int32_t ecast262;
- xfer += iprot->readI32(ecast262);
- this->operationState = (TOperationState::type)ecast262;
+ int32_t ecast270;
+ xfer += iprot->readI32(ecast270);
+ this->operationState = (TOperationState::type)ecast270;
this->__isset.operationState = true;
} else {
xfer += iprot->skip(ftype);
@@ -7835,27 +8433,27 @@ void swap(TGetOperationStatusResp &a, TGetOperationStatusResp &b) {
swap(a.__isset, b.__isset);
}
-TGetOperationStatusResp::TGetOperationStatusResp(const TGetOperationStatusResp& other263) {
- status = other263.status;
- operationState = other263.operationState;
- sqlState = other263.sqlState;
- errorCode = other263.errorCode;
- errorMessage = other263.errorMessage;
- taskStatus = other263.taskStatus;
- operationStarted = other263.operationStarted;
- operationCompleted = other263.operationCompleted;
- __isset = other263.__isset;
-}
-TGetOperationStatusResp& TGetOperationStatusResp::operator=(const TGetOperationStatusResp& other264) {
- status = other264.status;
- operationState = other264.operationState;
- sqlState = other264.sqlState;
- errorCode = other264.errorCode;
- errorMessage = other264.errorMessage;
- taskStatus = other264.taskStatus;
- operationStarted = other264.operationStarted;
- operationCompleted = other264.operationCompleted;
- __isset = other264.__isset;
+TGetOperationStatusResp::TGetOperationStatusResp(const TGetOperationStatusResp& other271) {
+ status = other271.status;
+ operationState = other271.operationState;
+ sqlState = other271.sqlState;
+ errorCode = other271.errorCode;
+ errorMessage = other271.errorMessage;
+ taskStatus = other271.taskStatus;
+ operationStarted = other271.operationStarted;
+ operationCompleted = other271.operationCompleted;
+ __isset = other271.__isset;
+}
+TGetOperationStatusResp& TGetOperationStatusResp::operator=(const TGetOperationStatusResp& other272) {
+ status = other272.status;
+ operationState = other272.operationState;
+ sqlState = other272.sqlState;
+ errorCode = other272.errorCode;
+ errorMessage = other272.errorMessage;
+ taskStatus = other272.taskStatus;
+ operationStarted = other272.operationStarted;
+ operationCompleted = other272.operationCompleted;
+ __isset = other272.__isset;
return *this;
}
void TGetOperationStatusResp::printTo(std::ostream& out) const {
@@ -7944,11 +8542,11 @@ void swap(TCancelOperationReq &a, TCancelOperationReq &b) {
swap(a.operationHandle, b.operationHandle);
}
-TCancelOperationReq::TCancelOperationReq(const TCancelOperationReq& other265) {
- operationHandle = other265.operationHandle;
+TCancelOperationReq::TCancelOperationReq(const TCancelOperationReq& other273) {
+ operationHandle = other273.operationHandle;
}
-TCancelOperationReq& TCancelOperationReq::operator=(const TCancelOperationReq& other266) {
- operationHandle = other266.operationHandle;
+TCancelOperationReq& TCancelOperationReq::operator=(const TCancelOperationReq& other274) {
+ operationHandle = other274.operationHandle;
return *this;
}
void TCancelOperationReq::printTo(std::ostream& out) const {
@@ -8030,11 +8628,11 @@ void swap(TCancelOperationResp &a, TCancelOperationResp &b) {
swap(a.status, b.status);
}
-TCancelOperationResp::TCancelOperationResp(const TCancelOperationResp& other267) {
- status = other267.status;
+TCancelOperationResp::TCancelOperationResp(const TCancelOperationResp& other275) {
+ status = other275.status;
}
-TCancelOperationResp& TCancelOperationResp::operator=(const TCancelOperationResp& other268) {
- status = other268.status;
+TCancelOperationResp& TCancelOperationResp::operator=(const TCancelOperationResp& other276) {
+ status = other276.status;
return *this;
}
void TCancelOperationResp::printTo(std::ostream& out) const {
@@ -8116,11 +8714,11 @@ void swap(TCloseOperationReq &a, TCloseOperationReq &b) {
swap(a.operationHandle, b.operationHandle);
}
-TCloseOperationReq::TCloseOperationReq(const TCloseOperationReq& other269) {
- operationHandle = other269.operationHandle;
+TCloseOperationReq::TCloseOperationReq(const TCloseOperationReq& other277) {
+ operationHandle = other277.operationHandle;
}
-TCloseOperationReq& TCloseOperationReq::operator=(const TCloseOperationReq& other270) {
- operationHandle = other270.operationHandle;
+TCloseOperationReq& TCloseOperationReq::operator=(const TCloseOperationReq& other278) {
+ operationHandle = other278.operationHandle;
return *this;
}
void TCloseOperationReq::printTo(std::ostream& out) const {
@@ -8202,11 +8800,11 @@ void swap(TCloseOperationResp &a, TCloseOperationResp &b) {
swap(a.status, b.status);
}
-TCloseOperationResp::TCloseOperationResp(const TCloseOperationResp& other271) {
- status = other271.status;
+TCloseOperationResp::TCloseOperationResp(const TCloseOperationResp& other279) {
+ status = other279.status;
}
-TCloseOperationResp& TCloseOperationResp::operator=(const TCloseOperationResp& other272) {
- status = other272.status;
+TCloseOperationResp& TCloseOperationResp::operator=(const TCloseOperationResp& other280) {
+ status = other280.status;
return *this;
}
void TCloseOperationResp::printTo(std::ostream& out) const {
@@ -8288,11 +8886,11 @@ void swap(TGetResultSetMetadataReq &a, TGetResultSetMetadataReq &b) {
swap(a.operationHandle, b.operationHandle);
}
-TGetResultSetMetadataReq::TGetResultSetMetadataReq(const TGetResultSetMetadataReq& other273) {
- operationHandle = other273.operationHandle;
+TGetResultSetMetadataReq::TGetResultSetMetadataReq(const TGetResultSetMetadataReq& other281) {
+ operationHandle = other281.operationHandle;
}
-TGetResultSetMetadataReq& TGetResultSetMetadataReq::operator=(const TGetResultSetMetadataReq& other274) {
- operationHandle = other274.operationHandle;
+TGetResultSetMetadataReq& TGetResultSetMetadataReq::operator=(const TGetResultSetMetadataReq& other282) {
+ operationHandle = other282.operationHandle;
return *this;
}
void TGetResultSetMetadataReq::printTo(std::ostream& out) const {
@@ -8394,15 +8992,15 @@ void swap(TGetResultSetMetadataResp &a, TGetResultSetMetadataResp &b) {
swap(a.__isset, b.__isset);
}
-TGetResultSetMetadataResp::TGetResultSetMetadataResp(const TGetResultSetMetadataResp& other275) {
- status = other275.status;
- schema = other275.schema;
- __isset = other275.__isset;
+TGetResultSetMetadataResp::TGetResultSetMetadataResp(const TGetResultSetMetadataResp& other283) {
+ status = other283.status;
+ schema = other283.schema;
+ __isset = other283.__isset;
}
-TGetResultSetMetadataResp& TGetResultSetMetadataResp::operator=(const TGetResultSetMetadataResp& other276) {
- status = other276.status;
- schema = other276.schema;
- __isset = other276.__isset;
+TGetResultSetMetadataResp& TGetResultSetMetadataResp::operator=(const TGetResultSetMetadataResp& other284) {
+ status = other284.status;
+ schema = other284.schema;
+ __isset = other284.__isset;
return *this;
}
void TGetResultSetMetadataResp::printTo(std::ostream& out) const {
@@ -8469,9 +9067,9 @@ uint32_t TFetchResultsReq::read(::apache::thrift::protocol::TProtocol* iprot) {
break;
case 2:
if (ftype == ::apache::thrift::protocol::T_I32) {
- int32_t ecast277;
- xfer += iprot->readI32(ecast277);
- this->orientation = (TFetchOrientation::type)ecast277;
+ int32_t ecast285;
+ xfer += iprot->readI32(ecast285);
+ this->orientation = (TFetchOrientation::type)ecast285;
isset_orientation = true;
} else {
xfer += iprot->skip(ftype);
@@ -8547,19 +9145,19 @@ void swap(TFetchResultsReq &a, TFetchResultsReq &b) {
swap(a.__isset, b.__isset);
}
-TFetchResultsReq::TFetchResultsReq(const TFetchResultsReq& other278) {
- operationHandle = other278.operationHandle;
- orientation = other278.orientation;
- maxRows = other278.maxRows;
- fetchType = other278.fetchType;
- __isset = other278.__isset;
-}
-TFetchResultsReq& TFetchResultsReq::operator=(const TFetchResultsReq& other279) {
- operationHandle = other279.operationHandle;
- orientation = other279.orientation;
- maxRows = other279.maxRows;
- fetchType = other279.fetchType;
- __isset = other279.__isset;
+TFetchResultsReq::TFetchResultsReq(const TFetchResultsReq& other286) {
+ operationHandle = other286.operationHandle;
+ orientation = other286.orientation;
+ maxRows = other286.maxRows;
+ fetchType = other286.fetchType;
+ __isset = other286.__isset;
+}
+TFetchResultsReq& TFetchResultsReq::operator=(const TFetchResultsReq& other287) {
+ operationHandle = other287.operationHandle;
+ orientation = other287.orientation;
+ maxRows = other287.maxRows;
+ fetchType = other287.fetchType;
+ __isset = other287.__isset;
return *this;
}
void TFetchResultsReq::printTo(std::ostream& out) const {
@@ -8683,17 +9281,17 @@ void swap(TFetchResultsResp &a, TFetchResultsResp &b) {
swap(a.__isset, b.__isset);
}
-TFetchResultsResp::TFetchResultsResp(const TFetchResultsResp& other280) {
- status = other280.status;
- hasMoreRows = other280.hasMoreRows;
- results = other280.results;
- __isset = other280.__isset;
-}
-TFetchResultsResp& TFetchResultsResp::operator=(const TFetchResultsResp& other281) {
- status = other281.status;
- hasMoreRows = other281.hasMoreRows;
- results = other281.results;
- __isset = other281.__isset;
+TFetchResultsResp::TFetchResultsResp(const TFetchResultsResp& other288) {
+ status = other288.status;
+ hasMoreRows = other288.hasMoreRows;
+ results = other288.results;
+ __isset = other288.__isset;
+}
+TFetchResultsResp& TFetchResultsResp::operator=(const TFetchResultsResp& other289) {
+ status = other289.status;
+ hasMoreRows = other289.hasMoreRows;
+ results = other289.results;
+ __isset = other289.__isset;
return *this;
}
void TFetchResultsResp::printTo(std::ostream& out) const {
@@ -8817,15 +9415,15 @@ void swap(TGetDelegationTokenReq &a, TGetDelegationTokenReq &b) {
swap(a.renewer, b.renewer);
}
-TGetDelegationTokenReq::TGetDelegationTokenReq(const TGetDelegationTokenReq& other282) {
- sessionHandle = other282.sessionHandle;
- owner = other282.owner;
- renewer = other282.renewer;
+TGetDelegationTokenReq::TGetDelegationTokenReq(const TGetDelegationTokenReq& other290) {
+ sessionHandle = other290.sessionHandle;
+ owner = other290.owner;
+ renewer = other290.renewer;
}
-TGetDelegationTokenReq& TGetDelegationTokenReq::operator=(const TGetDelegationTokenReq& other283) {
- sessionHandle = other283.sessionHandle;
- owner = other283.owner;
- renewer = other283.renewer;
+TGetDelegationTokenReq& TGetDelegationTokenReq::operator=(const TGetDelegationTokenReq& other291) {
+ sessionHandle = other291.sessionHandle;
+ owner = other291.owner;
+ renewer = other291.renewer;
return *this;
}
void TGetDelegationTokenReq::printTo(std::ostream& out) const {
@@ -8929,15 +9527,15 @@ void swap(TGetDelegationTokenResp &a, TGetDelegationTokenResp &b) {
swap(a.__isset, b.__isset);
}
-TGetDelegationTokenResp::TGetDelegationTokenResp(const TGetDelegationTokenResp& other284) {
- status = other284.status;
- delegationToken = other284.delegationToken;
- __isset = other284.__isset;
+TGetDelegationTokenResp::TGetDelegationTokenResp(const TGetDelegationTokenResp& other292) {
+ status = other292.status;
+ delegationToken = other292.delegationToken;
+ __isset = other292.__isset;
}
-TGetDelegationTokenResp& TGetDelegationTokenResp::operator=(const TGetDelegationTokenResp& other285) {
- status = other285.status;
- delegationToken = other285.delegationToken;
- __isset = other285.__isset;
+TGetDelegationTokenResp& TGetDelegationTokenResp::operator=(const TGetDelegationTokenResp& other293) {
+ status = other293.status;
+ delegationToken = other293.delegationToken;
+ __isset = other293.__isset;
return *this;
}
void TGetDelegationTokenResp::printTo(std::ostream& out) const {
@@ -9040,13 +9638,13 @@ void swap(TCancelDelegationTokenReq &a, TCancelDelegationTokenReq &b) {
swap(a.delegationToken, b.delegationToken);
}
-TCancelDelegationTokenReq::TCancelDelegationTokenReq(const TCancelDelegationTokenReq& other286) {
- sessionHandle = other286.sessionHandle;
- delegationToken = other286.delegationToken;
+TCancelDelegationTokenReq::TCancelDelegationTokenReq(const TCancelDelegationTokenReq& other294) {
+ sessionHandle = other294.sessionHandle;
+ delegationToken = other294.delegationToken;
}
-TCancelDelegationTokenReq& TCancelDelegationTokenReq::operator=(const TCancelDelegationTokenReq& other287) {
- sessionHandle = other287.sessionHandle;
- delegationToken = other287.delegationToken;
+TCancelDelegationTokenReq& TCancelDelegationTokenReq::operator=(const TCancelDelegationTokenReq& other295) {
+ sessionHandle = other295.sessionHandle;
+ delegationToken = other295.delegationToken;
return *this;
}
void TCancelDelegationTokenReq::printTo(std::ostream& out) const {
@@ -9129,11 +9727,11 @@ void swap(TCancelDelegationTokenResp &a, TCancelDelegationTokenResp &b) {
swap(a.status, b.status);
}
-TCancelDelegationTokenResp::TCancelDelegationTokenResp(const TCancelDelegationTokenResp& other288) {
- status = other288.status;
+TCancelDelegationTokenResp::TCancelDelegationTokenResp(const TCancelDelegationTokenResp& other296) {
+ status = other296.status;
}
-TCancelDelegationTokenResp& TCancelDelegationTokenResp::operator=(const TCancelDelegationTokenResp& other289) {
- status = other289.status;
+TCancelDelegationTokenResp& TCancelDelegationTokenResp::operator=(const TCancelDelegationTokenResp& other297) {
+ status = other297.status;
return *this;
}
void TCancelDelegationTokenResp::printTo(std::ostream& out) const {
@@ -9235,13 +9833,13 @@ void swap(TRenewDelegationTokenReq &a, TRenewDelegationTokenReq &b) {
swap(a.delegationToken, b.delegationToken);
}
-TRenewDelegationTokenReq::TRenewDelegationTokenReq(const TRenewDelegationTokenReq& other290) {
- sessionHandle = other290.sessionHandle;
- delegationToken = other290.delegationToken;
+TRenewDelegationTokenReq::TRenewDelegationTokenReq(const TRenewDelegationTokenReq& other298) {
+ sessionHandle = other298.sessionHandle;
+ delegationToken = other298.delegationToken;
}
-TRenewDelegationTokenReq& TRenewDelegationTokenReq::operator=(const TRenewDelegationTokenReq& other291) {
- sessionHandle = other291.sessionHandle;
- delegationToken = other291.delegationToken;
+TRenewDelegationTokenReq& TRenewDelegationTokenReq::operator=(const TRenewDelegationTokenReq& other299) {
+ sessionHandle = other299.sessionHandle;
+ delegationToken = other299.delegationToken;
return *this;
}
void TRenewDelegationTokenReq::printTo(std::ostream& out) const {
@@ -9324,11 +9922,11 @@ void swap(TRenewDelegationTokenResp &a, TRenewDelegationTokenResp &b) {
swap(a.status, b.status);
}
-TRenewDelegationTokenResp::TRenewDelegationTokenResp(const TRenewDelegationTokenResp& other292) {
- status = other292.status;
+TRenewDelegationTokenResp::TRenewDelegationTokenResp(const TRenewDelegationTokenResp& other300) {
+ status = other300.status;
}
-TRenewDelegationTokenResp& TRenewDelegationTokenResp::operator=(const TRenewDelegationTokenResp& other293) {
- status = other293.status;
+TRenewDelegationTokenResp& TRenewDelegationTokenResp::operator=(const TRenewDelegationTokenResp& other301) {
+ status = other301.status;
return *this;
}
void TRenewDelegationTokenResp::printTo(std::ostream& out) const {
http://git-wip-us.apache.org/repos/asf/hive/blob/f13ee089/service-rpc/src/gen/thrift/gen-cpp/TCLIService_types.h
----------------------------------------------------------------------
diff --git a/service-rpc/src/gen/thrift/gen-cpp/TCLIService_types.h b/service-rpc/src/gen/thrift/gen-cpp/TCLIService_types.h
index d4b401c..9f937ca 100644
--- a/service-rpc/src/gen/thrift/gen-cpp/TCLIService_types.h
+++ b/service-rpc/src/gen/thrift/gen-cpp/TCLIService_types.h
@@ -297,6 +297,14 @@ class TGetFunctionsReq;
class TGetFunctionsResp;
+class TGetPrimaryKeysReq;
+
+class TGetPrimaryKeysResp;
+
+class TGetCrossReferenceReq;
+
+class TGetCrossReferenceResp;
+
class TGetOperationStatusReq;
class TGetOperationStatusResp;
@@ -3383,6 +3391,274 @@ inline std::ostream& operator<<(std::ostream& out, const TGetFunctionsResp& obj)
return out;
}
+typedef struct _TGetPrimaryKeysReq__isset {
+ _TGetPrimaryKeysReq__isset() : catalogName(false), schemaName(false), tableName(false) {}
+ bool catalogName :1;
+ bool schemaName :1;
+ bool tableName :1;
+} _TGetPrimaryKeysReq__isset;
+
+class TGetPrimaryKeysReq {
+ public:
+
+ TGetPrimaryKeysReq(const TGetPrimaryKeysReq&);
+ TGetPrimaryKeysReq& operator=(const TGetPrimaryKeysReq&);
+ TGetPrimaryKeysReq() : catalogName(), schemaName(), tableName() {
+ }
+
+ virtual ~TGetPrimaryKeysReq() throw();
+ TSessionHandle sessionHandle;
+ TIdentifier catalogName;
+ TIdentifier schemaName;
+ TIdentifier tableName;
+
+ _TGetPrimaryKeysReq__isset __isset;
+
+ void __set_sessionHandle(const TSessionHandle& val);
+
+ void __set_catalogName(const TIdentifier& val);
+
+ void __set_schemaName(const TIdentifier& val);
+
+ void __set_tableName(const TIdentifier& val);
+
+ bool operator == (const TGetPrimaryKeysReq & rhs) const
+ {
+ if (!(sessionHandle == rhs.sessionHandle))
+ return false;
+ if (__isset.catalogName != rhs.__isset.catalogName)
+ return false;
+ else if (__isset.catalogName && !(catalogName == rhs.catalogName))
+ return false;
+ if (__isset.schemaName != rhs.__isset.schemaName)
+ return false;
+ else if (__isset.schemaName && !(schemaName == rhs.schemaName))
+ return false;
+ if (__isset.tableName != rhs.__isset.tableName)
+ return false;
+ else if (__isset.tableName && !(tableName == rhs.tableName))
+ return false;
+ return true;
+ }
+ bool operator != (const TGetPrimaryKeysReq &rhs) const {
+ return !(*this == rhs);
+ }
+
+ bool operator < (const TGetPrimaryKeysReq & ) const;
+
+ uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+ uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+ virtual void printTo(std::ostream& out) const;
+};
+
+void swap(TGetPrimaryKeysReq &a, TGetPrimaryKeysReq &b);
+
+inline std::ostream& operator<<(std::ostream& out, const TGetPrimaryKeysReq& obj)
+{
+ obj.printTo(out);
+ return out;
+}
+
+typedef struct _TGetPrimaryKeysResp__isset {
+ _TGetPrimaryKeysResp__isset() : operationHandle(false) {}
+ bool operationHandle :1;
+} _TGetPrimaryKeysResp__isset;
+
+class TGetPrimaryKeysResp {
+ public:
+
+ TGetPrimaryKeysResp(const TGetPrimaryKeysResp&);
+ TGetPrimaryKeysResp& operator=(const TGetPrimaryKeysResp&);
+ TGetPrimaryKeysResp() {
+ }
+
+ virtual ~TGetPrimaryKeysResp() throw();
+ TStatus status;
+ TOperationHandle operationHandle;
+
+ _TGetPrimaryKeysResp__isset __isset;
+
+ void __set_status(const TStatus& val);
+
+ void __set_operationHandle(const TOperationHandle& val);
+
+ bool operator == (const TGetPrimaryKeysResp & rhs) const
+ {
+ if (!(status == rhs.status))
+ return false;
+ if (__isset.operationHandle != rhs.__isset.operationHandle)
+ return false;
+ else if (__isset.operationHandle && !(operationHandle == rhs.operationHandle))
+ return false;
+ return true;
+ }
+ bool operator != (const TGetPrimaryKeysResp &rhs) const {
+ return !(*this == rhs);
+ }
+
+ bool operator < (const TGetPrimaryKeysResp & ) const;
+
+ uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+ uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+ virtual void printTo(std::ostream& out) const;
+};
+
+void swap(TGetPrimaryKeysResp &a, TGetPrimaryKeysResp &b);
+
+inline std::ostream& operator<<(std::ostream& out, const TGetPrimaryKeysResp& obj)
+{
+ obj.printTo(out);
+ return out;
+}
+
+typedef struct _TGetCrossReferenceReq__isset {
+ _TGetCrossReferenceReq__isset() : parentCatalogName(false), parentSchemaName(false), parentTableName(false), foreignCatalogName(false), foreignSchemaName(false), foreignTableName(false) {}
+ bool parentCatalogName :1;
+ bool parentSchemaName :1;
+ bool parentTableName :1;
+ bool foreignCatalogName :1;
+ bool foreignSchemaName :1;
+ bool foreignTableName :1;
+} _TGetCrossReferenceReq__isset;
+
+class TGetCrossReferenceReq {
+ public:
+
+ TGetCrossReferenceReq(const TGetCrossReferenceReq&);
+ TGetCrossReferenceReq& operator=(const TGetCrossReferenceReq&);
+ TGetCrossReferenceReq() : parentCatalogName(), parentSchemaName(), parentTableName(), foreignCatalogName(), foreignSchemaName(), foreignTableName() {
+ }
+
+ virtual ~TGetCrossReferenceReq() throw();
+ TSessionHandle sessionHandle;
+ TIdentifier parentCatalogName;
+ TIdentifier parentSchemaName;
+ TIdentifier parentTableName;
+ TIdentifier foreignCatalogName;
+ TIdentifier foreignSchemaName;
+ TIdentifier foreignTableName;
+
+ _TGetCrossReferenceReq__isset __isset;
+
+ void __set_sessionHandle(const TSessionHandle& val);
+
+ void __set_parentCatalogName(const TIdentifier& val);
+
+ void __set_parentSchemaName(const TIdentifier& val);
+
+ void __set_parentTableName(const TIdentifier& val);
+
+ void __set_foreignCatalogName(const TIdentifier& val);
+
+ void __set_foreignSchemaName(const TIdentifier& val);
+
+ void __set_foreignTableName(const TIdentifier& val);
+
+ bool operator == (const TGetCrossReferenceReq & rhs) const
+ {
+ if (!(sessionHandle == rhs.sessionHandle))
+ return false;
+ if (__isset.parentCatalogName != rhs.__isset.parentCatalogName)
+ return false;
+ else if (__isset.parentCatalogName && !(parentCatalogName == rhs.parentCatalogName))
+ return false;
+ if (__isset.parentSchemaName != rhs.__isset.parentSchemaName)
+ return false;
+ else if (__isset.parentSchemaName && !(parentSchemaName == rhs.parentSchemaName))
+ return false;
+ if (__isset.parentTableName != rhs.__isset.parentTableName)
+ return false;
+ else if (__isset.parentTableName && !(parentTableName == rhs.parentTableName))
+ return false;
+ if (__isset.foreignCatalogName != rhs.__isset.foreignCatalogName)
+ return false;
+ else if (__isset.foreignCatalogName && !(foreignCatalogName == rhs.foreignCatalogName))
+ return false;
+ if (__isset.foreignSchemaName != rhs.__isset.foreignSchemaName)
+ return false;
+ else if (__isset.foreignSchemaName && !(foreignSchemaName == rhs.foreignSchemaName))
+ return false;
+ if (__isset.foreignTableName != rhs.__isset.foreignTableName)
+ return false;
+ else if (__isset.foreignTableName && !(foreignTableName == rhs.foreignTableName))
+ return false;
+ return true;
+ }
+ bool operator != (const TGetCrossReferenceReq &rhs) const {
+ return !(*this == rhs);
+ }
+
+ bool operator < (const TGetCrossReferenceReq & ) const;
+
+ uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+ uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+ virtual void printTo(std::ostream& out) const;
+};
+
+void swap(TGetCrossReferenceReq &a, TGetCrossReferenceReq &b);
+
+inline std::ostream& operator<<(std::ostream& out, const TGetCrossReferenceReq& obj)
+{
+ obj.printTo(out);
+ return out;
+}
+
+typedef struct _TGetCrossReferenceResp__isset {
+ _TGetCrossReferenceResp__isset() : operationHandle(false) {}
+ bool operationHandle :1;
+} _TGetCrossReferenceResp__isset;
+
+class TGetCrossReferenceResp {
+ public:
+
+ TGetCrossReferenceResp(const TGetCrossReferenceResp&);
+ TGetCrossReferenceResp& operator=(const TGetCrossReferenceResp&);
+ TGetCrossReferenceResp() {
+ }
+
+ virtual ~TGetCrossReferenceResp() throw();
+ TStatus status;
+ TOperationHandle operationHandle;
+
+ _TGetCrossReferenceResp__isset __isset;
+
+ void __set_status(const TStatus& val);
+
+ void __set_operationHandle(const TOperationHandle& val);
+
+ bool operator == (const TGetCrossReferenceResp & rhs) const
+ {
+ if (!(status == rhs.status))
+ return false;
+ if (__isset.operationHandle != rhs.__isset.operationHandle)
+ return false;
+ else if (__isset.operationHandle && !(operationHandle == rhs.operationHandle))
+ return false;
+ return true;
+ }
+ bool operator != (const TGetCrossReferenceResp &rhs) const {
+ return !(*this == rhs);
+ }
+
+ bool operator < (const TGetCrossReferenceResp & ) const;
+
+ uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+ uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+ virtual void printTo(std::ostream& out) const;
+};
+
+void swap(TGetCrossReferenceResp &a, TGetCrossReferenceResp &b);
+
+inline std::ostream& operator<<(std::ostream& out, const TGetCrossReferenceResp& obj)
+{
+ obj.printTo(out);
+ return out;
+}
+
class TGetOperationStatusReq {
public:
[24/50] [abbrv] hive git commit: HIVE-13533: Remove AST dump (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/groupby_sort_1_23.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby_sort_1_23.q.out b/ql/src/test/results/clientpositive/groupby_sort_1_23.q.out
index efb13a7..a6e15ba 100644
--- a/ql/src/test/results/clientpositive/groupby_sort_1_23.q.out
+++ b/ql/src/test/results/clientpositive/groupby_sort_1_23.q.out
@@ -54,31 +54,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl1
SELECT key, count(1) FROM T1 GROUP BY key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
@@ -413,36 +388,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl2
SELECT key, val, count(1) FROM T1 GROUP BY key, val
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl2
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- val
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -630,46 +575,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl1
SELECT key, count(1) FROM (SELECT key, val FROM T1) subq1 GROUP BY key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- subq1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
@@ -1036,48 +941,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl1
SELECT k, count(1) FROM (SELECT key as k, val as v FROM T1) subq1 GROUP BY k
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- k
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- v
- subq1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- k
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- k
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
@@ -1454,34 +1317,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl3
SELECT 1, key, count(1) FROM T1 GROUP BY 1, key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl3
- TOK_SELECT
- TOK_SELEXPR
- 1
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- 1
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
@@ -1817,39 +1652,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl4
SELECT key, 1, val, count(1) FROM T1 GROUP BY key, 1, val
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl4
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- 1
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- 1
- TOK_TABLE_OR_COL
- val
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2038,40 +1840,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl3
SELECT key, key + 1, count(1) FROM T1 GROUP BY key, key + 1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl3
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- +
- TOK_TABLE_OR_COL
- key
- 1
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- +
- TOK_TABLE_OR_COL
- key
- 1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2278,58 +2046,6 @@ SELECT key + key, sum(cnt) from
(SELECT key, count(1) as cnt FROM T1 GROUP BY key) subq1
group by key + key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- cnt
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- subq1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- +
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- cnt
- TOK_GROUPBY
- +
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2547,63 +2263,6 @@ SELECT key, count(1) FROM T1 GROUP BY key
SELECT key, count(1) FROM T1 GROUP BY key
) subq1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- subq1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
@@ -3044,70 +2703,6 @@ SELECT key, count(1) FROM T1 GROUP BY key
SELECT key + key as key, count(1) FROM T1 GROUP BY key + key
) subq1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- +
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- key
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- +
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- key
- subq1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-9 is a root stage
Stage-2 depends on stages: Stage-9
@@ -3667,89 +3262,6 @@ JOIN
(SELECT key, count(1) as cnt FROM T1 GROUP BY key) subq2
ON subq1.key = subq2.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- cnt
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- subq1
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- cnt
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- subq2
- =
- .
- TOK_TABLE_OR_COL
- subq1
- key
- .
- TOK_TABLE_OR_COL
- subq2
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- subq1
- key
- TOK_SELEXPR
- +
- .
- TOK_TABLE_OR_COL
- subq1
- cnt
- .
- TOK_TABLE_OR_COL
- subq2
- cnt
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -3992,78 +3504,6 @@ JOIN
(SELECT key, val, count(1) FROM T1 GROUP BY key, val) subq2
ON subq1.key = subq2.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- subq1
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- val
- subq2
- =
- .
- TOK_TABLE_OR_COL
- subq1
- key
- .
- TOK_TABLE_OR_COL
- subq2
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
@@ -4365,31 +3805,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl1
SELECT key, count(1) FROM T2 GROUP BY key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T2
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -4588,39 +4003,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl4
SELECT key, 1, val, count(1) FROM T2 GROUP BY key, 1, val
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T2
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl4
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- 1
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- 1
- TOK_TABLE_OR_COL
- val
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
@@ -5000,42 +4382,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl5
SELECT key, 1, val, 2, count(1) FROM T2 GROUP BY key, 1, val, 2
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T2
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl5
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- 1
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- 2
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- 1
- TOK_TABLE_OR_COL
- val
- 2
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
@@ -5372,59 +4718,6 @@ SELECT key, constant, val, count(1) from
(SELECT key, 1 as constant, val from T2)subq
group by key, constant, val
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- 1
- constant
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- subq
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl4
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- constant
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- constant
- TOK_TABLE_OR_COL
- val
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
@@ -5808,81 +5101,6 @@ SELECT key, constant as constant2, val, 2 as constant3 from
)subq2
group by key, constant3, val
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- 1
- constant
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- subq
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- constant
- constant2
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- 2
- constant3
- subq2
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl4
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- constant3
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- constant3
- TOK_TABLE_OR_COL
- val
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/groupby_sort_6.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby_sort_6.q.out b/ql/src/test/results/clientpositive/groupby_sort_6.q.out
index 844a2a4..f523085 100644
--- a/ql/src/test/results/clientpositive/groupby_sort_6.q.out
+++ b/ql/src/test/results/clientpositive/groupby_sort_6.q.out
@@ -28,36 +28,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl1
SELECT key, count(1) FROM T1 where ds = '1' GROUP BY key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- ds
- '1'
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -198,36 +168,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl1
SELECT key, count(1) FROM T1 where ds = '1' GROUP BY key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- ds
- '1'
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -371,36 +311,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl1
SELECT key, count(1) FROM T1 where ds = '2' GROUP BY key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- ds
- '2'
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/groupby_sort_skew_1_23.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/groupby_sort_skew_1_23.q.out b/ql/src/test/results/clientpositive/groupby_sort_skew_1_23.q.out
index 860a880..38b24a4 100644
--- a/ql/src/test/results/clientpositive/groupby_sort_skew_1_23.q.out
+++ b/ql/src/test/results/clientpositive/groupby_sort_skew_1_23.q.out
@@ -54,31 +54,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl1
SELECT key, count(1) FROM T1 GROUP BY key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
@@ -413,36 +388,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl2
SELECT key, val, count(1) FROM T1 GROUP BY key, val
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl2
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- val
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -696,46 +641,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl1
SELECT key, count(1) FROM (SELECT key, val FROM T1) subq1 GROUP BY key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- subq1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
@@ -1102,48 +1007,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl1
SELECT k, count(1) FROM (SELECT key as k, val as v FROM T1) subq1 GROUP BY k
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- k
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- v
- subq1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- k
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- k
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
@@ -1520,34 +1383,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl3
SELECT 1, key, count(1) FROM T1 GROUP BY 1, key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl3
- TOK_SELECT
- TOK_SELEXPR
- 1
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- 1
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
@@ -1883,39 +1718,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl4
SELECT key, 1, val, count(1) FROM T1 GROUP BY key, 1, val
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl4
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- 1
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- 1
- TOK_TABLE_OR_COL
- val
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -2170,40 +1972,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl3
SELECT key, key + 1, count(1) FROM T1 GROUP BY key, key + 1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl3
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- +
- TOK_TABLE_OR_COL
- key
- 1
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- +
- TOK_TABLE_OR_COL
- key
- 1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -2476,58 +2244,6 @@ SELECT key + key, sum(cnt) from
(SELECT key, count(1) as cnt FROM T1 GROUP BY key) subq1
group by key + key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- cnt
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- subq1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- +
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- sum
- TOK_TABLE_OR_COL
- cnt
- TOK_GROUPBY
- +
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -2811,63 +2527,6 @@ SELECT key, count(1) FROM T1 GROUP BY key
SELECT key, count(1) FROM T1 GROUP BY key
) subq1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- subq1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
@@ -3308,70 +2967,6 @@ SELECT key, count(1) FROM T1 GROUP BY key
SELECT key + key as key, count(1) FROM T1 GROUP BY key + key
) subq1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- +
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- key
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- +
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- key
- subq1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-9 is a root stage
Stage-10 depends on stages: Stage-9
@@ -3997,89 +3592,6 @@ JOIN
(SELECT key, count(1) as cnt FROM T1 GROUP BY key) subq2
ON subq1.key = subq2.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- cnt
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- subq1
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- cnt
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- subq2
- =
- .
- TOK_TABLE_OR_COL
- subq1
- key
- .
- TOK_TABLE_OR_COL
- subq2
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- subq1
- key
- TOK_SELEXPR
- +
- .
- TOK_TABLE_OR_COL
- subq1
- cnt
- .
- TOK_TABLE_OR_COL
- subq2
- cnt
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -4322,78 +3834,6 @@ JOIN
(SELECT key, val, count(1) FROM T1 GROUP BY key, val) subq2
ON subq1.key = subq2.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- subq1
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- val
- subq2
- =
- .
- TOK_TABLE_OR_COL
- subq1
- key
- .
- TOK_TABLE_OR_COL
- subq2
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-3 depends on stages: Stage-2
@@ -4761,31 +4201,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl1
SELECT key, count(1) FROM T2 GROUP BY key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T2
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl1
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -5050,39 +4465,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl4
SELECT key, 1, val, count(1) FROM T2 GROUP BY key, 1, val
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T2
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl4
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- 1
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- 1
- TOK_TABLE_OR_COL
- val
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
@@ -5462,42 +4844,6 @@ EXPLAIN EXTENDED
INSERT OVERWRITE TABLE outputTbl5
SELECT key, 1, val, 2, count(1) FROM T2 GROUP BY key, 1, val, 2
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T2
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl5
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- 1
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- 2
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- 1
- TOK_TABLE_OR_COL
- val
- 2
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
@@ -5834,59 +5180,6 @@ SELECT key, constant, val, count(1) from
(SELECT key, 1 as constant, val from T2)subq
group by key, constant, val
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- 1
- constant
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- subq
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl4
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- constant
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- constant
- TOK_TABLE_OR_COL
- val
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
@@ -6270,81 +5563,6 @@ SELECT key, constant as constant2, val, 2 as constant3 from
)subq2
group by key, constant3, val
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- T2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- 1
- constant
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- subq
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- constant
- constant2
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- 2
- constant3
- subq2
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- outputTbl4
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- constant3
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- val
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- constant3
- TOK_TABLE_OR_COL
- val
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/input23.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/input23.q.out b/ql/src/test/results/clientpositive/input23.q.out
index 33f2eb6..dcb2891 100644
--- a/ql/src/test/results/clientpositive/input23.q.out
+++ b/ql/src/test/results/clientpositive/input23.q.out
@@ -5,58 +5,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from srcpart a join srcpart b where a.ds = '2008-04-08' and a.hr = '11' and b.ds = '2008-04-08' and b.hr = '14' limit 5
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcpart
- a
- TOK_TABREF
- TOK_TABNAME
- srcpart
- b
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- and
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- a
- hr
- '11'
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- b
- hr
- '14'
- TOK_LIMIT
- 5
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/input42.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/input42.q.out b/ql/src/test/results/clientpositive/input42.q.out
index 4219c17..866468d 100644
--- a/ql/src/test/results/clientpositive/input42.q.out
+++ b/ql/src/test/results/clientpositive/input42.q.out
@@ -8,30 +8,6 @@ POSTHOOK: query: -- SORT_QUERY_RESULTS
explain extended
select * from srcpart a where a.ds='2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- a
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -1157,35 +1133,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from srcpart a where a.ds='2008-04-08' and key < 200
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- a
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '2008-04-08'
- <
- TOK_TABLE_OR_COL
- key
- 200
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -1693,36 +1640,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from srcpart a where a.ds='2008-04-08' and rand(100) < 0.1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- a
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '2008-04-08'
- <
- TOK_FUNCTION
- rand
- 100
- 0.1
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/input_part1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/input_part1.q.out b/ql/src/test/results/clientpositive/input_part1.q.out
index 501f7a9..2abaa3b 100644
--- a/ql/src/test/results/clientpositive/input_part1.q.out
+++ b/ql/src/test/results/clientpositive/input_part1.q.out
@@ -14,62 +14,6 @@ POSTHOOK: query: EXPLAIN EXTENDED
FROM srcpart
INSERT OVERWRITE TABLE dest1 SELECT srcpart.key, srcpart.value, srcpart.hr, srcpart.ds WHERE srcpart.key < 100 and srcpart.ds = '2008-04-08' and srcpart.hr = '12'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest1
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- hr
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- ds
- TOK_WHERE
- and
- and
- <
- .
- TOK_TABLE_OR_COL
- srcpart
- key
- 100
- =
- .
- TOK_TABLE_OR_COL
- srcpart
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- srcpart
- hr
- '12'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/input_part2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/input_part2.q.out b/ql/src/test/results/clientpositive/input_part2.q.out
index 9eba510..2ce071c 100644
--- a/ql/src/test/results/clientpositive/input_part2.q.out
+++ b/ql/src/test/results/clientpositive/input_part2.q.out
@@ -28,109 +28,6 @@ FROM srcpart
INSERT OVERWRITE TABLE dest1 SELECT srcpart.key, srcpart.value, srcpart.hr, srcpart.ds WHERE srcpart.key < 100 and srcpart.ds = '2008-04-08' and srcpart.hr = '12'
INSERT OVERWRITE TABLE dest2 SELECT srcpart.key, srcpart.value, srcpart.hr, srcpart.ds WHERE srcpart.key < 100 and srcpart.ds = '2008-04-09' and srcpart.hr = '12'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest1
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- hr
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- ds
- TOK_WHERE
- and
- and
- <
- .
- TOK_TABLE_OR_COL
- srcpart
- key
- 100
- =
- .
- TOK_TABLE_OR_COL
- srcpart
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- srcpart
- hr
- '12'
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest2
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- hr
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- srcpart
- ds
- TOK_WHERE
- and
- and
- <
- .
- TOK_TABLE_OR_COL
- srcpart
- key
- 100
- =
- .
- TOK_TABLE_OR_COL
- srcpart
- ds
- '2008-04-09'
- =
- .
- TOK_TABLE_OR_COL
- srcpart
- hr
- '12'
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-8 depends on stages: Stage-2 , consists of Stage-5, Stage-4, Stage-6
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/input_part7.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/input_part7.q.out b/ql/src/test/results/clientpositive/input_part7.q.out
index 53125d1..1429080 100644
--- a/ql/src/test/results/clientpositive/input_part7.q.out
+++ b/ql/src/test/results/clientpositive/input_part7.q.out
@@ -14,105 +14,6 @@ SELECT * FROM (
) A
SORT BY A.key, A.value, A.ds, A.hr
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- SRCPART
- X
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- X
- TOK_WHERE
- and
- =
- .
- TOK_TABLE_OR_COL
- X
- ds
- '2008-04-08'
- <
- .
- TOK_TABLE_OR_COL
- X
- key
- 100
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- SRCPART
- Y
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- Y
- TOK_WHERE
- and
- =
- .
- TOK_TABLE_OR_COL
- Y
- ds
- '2008-04-08'
- <
- .
- TOK_TABLE_OR_COL
- Y
- key
- 100
- A
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- A
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- A
- value
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- A
- ds
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- A
- hr
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/input_part9.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/input_part9.q.out b/ql/src/test/results/clientpositive/input_part9.q.out
index 0a3c87b..920096e 100644
--- a/ql/src/test/results/clientpositive/input_part9.q.out
+++ b/ql/src/test/results/clientpositive/input_part9.q.out
@@ -8,35 +8,6 @@ POSTHOOK: query: -- SORT_QUERY_RESULTS
EXPLAIN EXTENDED
SELECT x.* FROM SRCPART x WHERE key IS NOT NULL AND ds = '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- SRCPART
- x
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- x
- TOK_WHERE
- AND
- TOK_FUNCTION
- TOK_ISNOTNULL
- TOK_TABLE_OR_COL
- key
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/join17.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/join17.q.out b/ql/src/test/results/clientpositive/join17.q.out
index 13260ef..39c49a5 100644
--- a/ql/src/test/results/clientpositive/join17.q.out
+++ b/ql/src/test/results/clientpositive/join17.q.out
@@ -18,44 +18,6 @@ POSTHOOK: query: EXPLAIN EXTENDED
FROM src src1 JOIN src src2 ON (src1.key = src2.key)
INSERT OVERWRITE TABLE dest1 SELECT src1.*, src2.*
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src
- src1
- TOK_TABREF
- TOK_TABNAME
- src
- src2
- =
- .
- TOK_TABLE_OR_COL
- src1
- key
- .
- TOK_TABLE_OR_COL
- src2
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- src1
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- src2
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/join26.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/join26.q.out b/ql/src/test/results/clientpositive/join26.q.out
index 5533ce4..0fdc403 100644
--- a/ql/src/test/results/clientpositive/join26.q.out
+++ b/ql/src/test/results/clientpositive/join26.q.out
@@ -22,85 +22,6 @@ SELECT /*+ MAPJOIN(x,y) */ x.key, z.value, y.value
FROM src1 x JOIN src y ON (x.key = y.key)
JOIN srcpart z ON (x.key = z.key and z.ds='2008-04-08' and z.hr=11)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src1
- x
- TOK_TABREF
- TOK_TABNAME
- src
- y
- =
- .
- TOK_TABLE_OR_COL
- x
- key
- .
- TOK_TABLE_OR_COL
- y
- key
- TOK_TABREF
- TOK_TABNAME
- srcpart
- z
- and
- and
- =
- .
- TOK_TABLE_OR_COL
- x
- key
- .
- TOK_TABLE_OR_COL
- z
- key
- =
- .
- TOK_TABLE_OR_COL
- z
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- z
- hr
- 11
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest_j1
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- x
- y
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- z
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- y
- value
-
-
STAGE DEPENDENCIES:
Stage-10 is a root stage
Stage-1 depends on stages: Stage-10
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/join32.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/join32.q.out b/ql/src/test/results/clientpositive/join32.q.out
index 5cb124b..aad5463 100644
--- a/ql/src/test/results/clientpositive/join32.q.out
+++ b/ql/src/test/results/clientpositive/join32.q.out
@@ -26,79 +26,6 @@ SELECT x.key, z.value, y.value
FROM src1 x JOIN src y ON (x.key = y.key)
JOIN srcpart z ON (x.value = z.value and z.ds='2008-04-08' and z.hr=11)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src1
- x
- TOK_TABREF
- TOK_TABNAME
- src
- y
- =
- .
- TOK_TABLE_OR_COL
- x
- key
- .
- TOK_TABLE_OR_COL
- y
- key
- TOK_TABREF
- TOK_TABNAME
- srcpart
- z
- and
- and
- =
- .
- TOK_TABLE_OR_COL
- x
- value
- .
- TOK_TABLE_OR_COL
- z
- value
- =
- .
- TOK_TABLE_OR_COL
- z
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- z
- hr
- 11
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest_j1
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- z
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- y
- value
-
-
STAGE DEPENDENCIES:
Stage-8 is a root stage
Stage-6 depends on stages: Stage-8
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/join32_lessSize.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/join32_lessSize.q.out b/ql/src/test/results/clientpositive/join32_lessSize.q.out
index 544e814..a94b951 100644
--- a/ql/src/test/results/clientpositive/join32_lessSize.q.out
+++ b/ql/src/test/results/clientpositive/join32_lessSize.q.out
@@ -34,79 +34,6 @@ SELECT x.key, z.value, y.value
FROM src1 x JOIN src y ON (x.key = y.key)
JOIN srcpart z ON (x.value = z.value and z.ds='2008-04-08' and z.hr=11)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src1
- x
- TOK_TABREF
- TOK_TABNAME
- src
- y
- =
- .
- TOK_TABLE_OR_COL
- x
- key
- .
- TOK_TABLE_OR_COL
- y
- key
- TOK_TABREF
- TOK_TABNAME
- srcpart
- z
- and
- and
- =
- .
- TOK_TABLE_OR_COL
- x
- value
- .
- TOK_TABLE_OR_COL
- z
- value
- =
- .
- TOK_TABLE_OR_COL
- z
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- z
- hr
- 11
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest_j1
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- z
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- y
- value
-
-
STAGE DEPENDENCIES:
Stage-9 is a root stage
Stage-7 depends on stages: Stage-9
@@ -579,79 +506,6 @@ FROM src w JOIN src1 x ON (x.value = w.value)
JOIN src y ON (x.key = y.key)
JOIN src1 z ON (x.key = z.key)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src
- w
- TOK_TABREF
- TOK_TABNAME
- src1
- x
- =
- .
- TOK_TABLE_OR_COL
- x
- value
- .
- TOK_TABLE_OR_COL
- w
- value
- TOK_TABREF
- TOK_TABNAME
- src
- y
- =
- .
- TOK_TABLE_OR_COL
- x
- key
- .
- TOK_TABLE_OR_COL
- y
- key
- TOK_TABREF
- TOK_TABNAME
- src1
- z
- =
- .
- TOK_TABLE_OR_COL
- x
- key
- .
- TOK_TABLE_OR_COL
- z
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest_j1
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- z
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- y
- value
-
-
STAGE DEPENDENCIES:
Stage-13 is a root stage
Stage-10 depends on stages: Stage-13
@@ -1215,98 +1069,6 @@ SELECT res.key, z.value, res.value
FROM (select x.key, x.value from src1 x JOIN src y ON (x.key = y.key)) res
JOIN srcpart z ON (res.value = z.value and z.ds='2008-04-08' and z.hr=11)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src1
- x
- TOK_TABREF
- TOK_TABNAME
- src
- y
- =
- .
- TOK_TABLE_OR_COL
- x
- key
- .
- TOK_TABLE_OR_COL
- y
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- value
- res
- TOK_TABREF
- TOK_TABNAME
- srcpart
- z
- and
- and
- =
- .
- TOK_TABLE_OR_COL
- res
- value
- .
- TOK_TABLE_OR_COL
- z
- value
- =
- .
- TOK_TABLE_OR_COL
- z
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- z
- hr
- 11
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest_j2
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- res
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- z
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- res
- value
-
-
STAGE DEPENDENCIES:
Stage-8 is a root stage
Stage-6 depends on stages: Stage-8
@@ -1827,98 +1589,6 @@ SELECT res.key, z.value, res.value
FROM (select x.key, x.value from src1 x LEFT OUTER JOIN src y ON (x.key = y.key)) res
JOIN srcpart z ON (res.value = z.value and z.ds='2008-04-08' and z.hr=11)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- src1
- x
- TOK_TABREF
- TOK_TABNAME
- src
- y
- =
- .
- TOK_TABLE_OR_COL
- x
- key
- .
- TOK_TABLE_OR_COL
- y
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- value
- res
- TOK_TABREF
- TOK_TABNAME
- srcpart
- z
- and
- and
- =
- .
- TOK_TABLE_OR_COL
- res
- value
- .
- TOK_TABLE_OR_COL
- z
- value
- =
- .
- TOK_TABLE_OR_COL
- z
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- z
- hr
- 11
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest_j2
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- res
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- z
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- res
- value
-
-
STAGE DEPENDENCIES:
Stage-8 is a root stage
Stage-6 depends on stages: Stage-8
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/join33.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/join33.q.out b/ql/src/test/results/clientpositive/join33.q.out
index 5cb124b..aad5463 100644
--- a/ql/src/test/results/clientpositive/join33.q.out
+++ b/ql/src/test/results/clientpositive/join33.q.out
@@ -26,79 +26,6 @@ SELECT x.key, z.value, y.value
FROM src1 x JOIN src y ON (x.key = y.key)
JOIN srcpart z ON (x.value = z.value and z.ds='2008-04-08' and z.hr=11)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src1
- x
- TOK_TABREF
- TOK_TABNAME
- src
- y
- =
- .
- TOK_TABLE_OR_COL
- x
- key
- .
- TOK_TABLE_OR_COL
- y
- key
- TOK_TABREF
- TOK_TABNAME
- srcpart
- z
- and
- and
- =
- .
- TOK_TABLE_OR_COL
- x
- value
- .
- TOK_TABLE_OR_COL
- z
- value
- =
- .
- TOK_TABLE_OR_COL
- z
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- z
- hr
- 11
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest_j1
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- z
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- y
- value
-
-
STAGE DEPENDENCIES:
Stage-8 is a root stage
Stage-6 depends on stages: Stage-8
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/join34.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/join34.q.out b/ql/src/test/results/clientpositive/join34.q.out
index e2c2b1a..74fac5c 100644
--- a/ql/src/test/results/clientpositive/join34.q.out
+++ b/ql/src/test/results/clientpositive/join34.q.out
@@ -34,110 +34,6 @@ FROM
) subq1
JOIN src1 x ON (x.key = subq1.key)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- x
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- key
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- value
- value
- TOK_WHERE
- <
- .
- TOK_TABLE_OR_COL
- x
- key
- 20
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- x1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x1
- key
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x1
- value
- value
- TOK_WHERE
- >
- .
- TOK_TABLE_OR_COL
- x1
- key
- 100
- subq1
- TOK_TABREF
- TOK_TABNAME
- src1
- x
- =
- .
- TOK_TABLE_OR_COL
- x
- key
- .
- TOK_TABLE_OR_COL
- subq1
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest_j1
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- subq1
- value
-
-
STAGE DEPENDENCIES:
Stage-6 is a root stage
Stage-5 depends on stages: Stage-6
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/join35.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/join35.q.out b/ql/src/test/results/clientpositive/join35.q.out
index 96f7cc8..6fe9cae 100644
--- a/ql/src/test/results/clientpositive/join35.q.out
+++ b/ql/src/test/results/clientpositive/join35.q.out
@@ -34,118 +34,6 @@ FROM
) subq1
JOIN src1 x ON (x.key = subq1.key)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- x
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- key
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- cnt
- TOK_WHERE
- <
- .
- TOK_TABLE_OR_COL
- x
- key
- 20
- TOK_GROUPBY
- .
- TOK_TABLE_OR_COL
- x
- key
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- x1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x1
- key
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- cnt
- TOK_WHERE
- >
- .
- TOK_TABLE_OR_COL
- x1
- key
- 100
- TOK_GROUPBY
- .
- TOK_TABLE_OR_COL
- x1
- key
- subq1
- TOK_TABREF
- TOK_TABNAME
- src1
- x
- =
- .
- TOK_TABLE_OR_COL
- x
- key
- .
- TOK_TABLE_OR_COL
- subq1
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest_j1
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- x
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- subq1
- cnt
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1, Stage-4
[27/50] [abbrv] hive git commit: HIVE-13533: Remove AST dump (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jd...@apache.org.
HIVE-13533: Remove AST dump (Jesus Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/6908198d
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/6908198d
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/6908198d
Branch: refs/heads/llap
Commit: 6908198df93b07e0e5fcadc7c901097028a07e94
Parents: 37db169
Author: Jesus Camacho Rodriguez <jc...@apache.org>
Authored: Mon Apr 18 10:46:19 2016 +0100
Committer: Jesus Camacho Rodriguez <jc...@apache.org>
Committed: Mon Apr 25 16:03:20 2016 +0100
----------------------------------------------------------------------
.../java/org/apache/hadoop/hive/ql/Driver.java | 2 +-
.../apache/hadoop/hive/ql/exec/ExplainTask.java | 33 +-
.../apache/hadoop/hive/ql/hooks/ATSHook.java | 6 +-
.../hadoop/hive/ql/parse/CalcitePlanner.java | 4 +-
.../hive/ql/parse/ExplainSemanticAnalyzer.java | 3 +-
.../apache/hadoop/hive/ql/plan/ExplainWork.java | 16 -
.../parse/TestUpdateDeleteSemanticAnalyzer.java | 44 +-
.../alter_partition_coltype.q.out | 168 --
.../results/clientpositive/ambiguitycheck.q.out | 30 -
.../analyze_table_null_partition.q.out | 16 -
.../auto_join_reordering_values.q.out | 83 -
.../clientpositive/auto_sortmerge_join_1.q.out | 96 -
.../clientpositive/auto_sortmerge_join_11.q.out | 153 --
.../clientpositive/auto_sortmerge_join_12.q.out | 60 -
.../clientpositive/auto_sortmerge_join_2.q.out | 64 -
.../clientpositive/auto_sortmerge_join_3.q.out | 96 -
.../clientpositive/auto_sortmerge_join_4.q.out | 96 -
.../clientpositive/auto_sortmerge_join_5.q.out | 96 -
.../clientpositive/auto_sortmerge_join_7.q.out | 96 -
.../clientpositive/auto_sortmerge_join_8.q.out | 96 -
.../clientpositive/binary_output_format.q.out | 36 -
.../test/results/clientpositive/bucket1.q.out | 17 -
.../test/results/clientpositive/bucket2.q.out | 17 -
.../test/results/clientpositive/bucket3.q.out | 21 -
.../test/results/clientpositive/bucket4.q.out | 17 -
.../test/results/clientpositive/bucket5.q.out | 36 -
.../results/clientpositive/bucket_many.q.out | 17 -
.../clientpositive/bucket_map_join_1.q.out | 47 -
.../clientpositive/bucket_map_join_2.q.out | 47 -
.../clientpositive/bucket_map_join_spark1.q.out | 104 -
.../clientpositive/bucket_map_join_spark2.q.out | 104 -
.../clientpositive/bucket_map_join_spark3.q.out | 104 -
.../clientpositive/bucket_map_join_spark4.q.out | 134 --
.../clientpositive/bucketcontext_1.q.out | 74 -
.../clientpositive/bucketcontext_2.q.out | 74 -
.../clientpositive/bucketcontext_3.q.out | 74 -
.../clientpositive/bucketcontext_4.q.out | 74 -
.../clientpositive/bucketcontext_5.q.out | 74 -
.../clientpositive/bucketcontext_6.q.out | 74 -
.../clientpositive/bucketcontext_7.q.out | 74 -
.../clientpositive/bucketcontext_8.q.out | 74 -
.../results/clientpositive/bucketmapjoin1.q.out | 226 --
.../clientpositive/bucketmapjoin10.q.out | 51 -
.../clientpositive/bucketmapjoin11.q.out | 112 -
.../clientpositive/bucketmapjoin12.q.out | 102 -
.../clientpositive/bucketmapjoin13.q.out | 155 --
.../results/clientpositive/bucketmapjoin2.q.out | 164 --
.../results/clientpositive/bucketmapjoin3.q.out | 128 --
.../results/clientpositive/bucketmapjoin4.q.out | 100 -
.../results/clientpositive/bucketmapjoin5.q.out | 100 -
.../results/clientpositive/bucketmapjoin7.q.out | 73 -
.../results/clientpositive/bucketmapjoin8.q.out | 102 -
.../results/clientpositive/bucketmapjoin9.q.out | 102 -
.../clientpositive/bucketmapjoin_negative.q.out | 57 -
.../bucketmapjoin_negative2.q.out | 50 -
.../bucketmapjoin_negative3.q.out | 409 ----
.../cbo_rp_outer_join_ppr.q.java1.7.out | 168 --
.../clientpositive/columnstats_partlvl.q.out | 30 -
.../clientpositive/columnstats_tbllvl.q.out | 27 -
.../test/results/clientpositive/combine2.q.out | 23 -
.../constantPropagateForSubQuery.q.out | 62 -
ql/src/test/results/clientpositive/ctas.q.out | 43 -
.../disable_merge_for_bucketing.q.out | 17 -
.../display_colstats_tbllvl.q.out | 13 -
.../clientpositive/drop_multi_partitions.q.out | 14 -
.../dynamic_partition_skip_default.q.out | 91 -
.../encryption_join_unencrypted_tbl.q.out | 32 -
...on_join_with_different_encryption_keys.q.out | 32 -
.../clientpositive/explain_logical.q.out | 316 ---
.../extrapolate_part_stats_full.q.out | 74 -
.../extrapolate_part_stats_partial.q.out | 111 -
.../extrapolate_part_stats_partial_ndv.q.out | 78 -
.../clientpositive/filter_join_breaktask.q.out | 102 -
.../clientpositive/fouter_join_ppr.q.out | 336 ---
.../clientpositive/groupby_map_ppr.q.out | 71 -
.../groupby_map_ppr_multi_distinct.q.out | 88 -
.../results/clientpositive/groupby_ppr.q.out | 71 -
.../groupby_ppr_multi_distinct.q.out | 88 -
.../clientpositive/groupby_sort_1_23.q.out | 782 -------
.../results/clientpositive/groupby_sort_6.q.out | 90 -
.../clientpositive/groupby_sort_skew_1_23.q.out | 782 -------
.../test/results/clientpositive/input23.q.out | 52 -
.../test/results/clientpositive/input42.q.out | 83 -
.../results/clientpositive/input_part1.q.out | 56 -
.../results/clientpositive/input_part2.q.out | 103 -
.../results/clientpositive/input_part7.q.out | 99 -
.../results/clientpositive/input_part9.q.out | 29 -
ql/src/test/results/clientpositive/join17.q.out | 38 -
ql/src/test/results/clientpositive/join26.q.out | 79 -
ql/src/test/results/clientpositive/join32.q.out | 73 -
.../clientpositive/join32_lessSize.q.out | 330 ---
ql/src/test/results/clientpositive/join33.q.out | 73 -
ql/src/test/results/clientpositive/join34.q.out | 104 -
ql/src/test/results/clientpositive/join35.q.out | 112 -
ql/src/test/results/clientpositive/join9.q.out | 54 -
.../clientpositive/join_filters_overlap.q.out | 430 ----
.../results/clientpositive/join_map_ppr.q.out | 158 --
.../clientpositive/list_bucket_dml_1.q.out | 70 -
.../list_bucket_dml_10.q.java1.7.out | 28 -
.../list_bucket_dml_11.q.java1.7.out | 63 -
.../list_bucket_dml_12.q.java1.7.out | 106 -
.../list_bucket_dml_13.q.java1.7.out | 70 -
.../clientpositive/list_bucket_dml_14.q.out | 42 -
.../list_bucket_dml_2.q.java1.7.out | 69 -
.../clientpositive/list_bucket_dml_3.q.out | 68 -
.../list_bucket_dml_4.q.java1.7.out | 102 -
.../list_bucket_dml_5.q.java1.7.out | 76 -
.../list_bucket_dml_6.q.java1.7.out | 112 -
.../clientpositive/list_bucket_dml_7.q.out | 112 -
.../list_bucket_dml_8.q.java1.7.out | 69 -
.../list_bucket_dml_9.q.java1.7.out | 102 -
.../list_bucket_query_multiskew_1.q.out | 144 --
.../list_bucket_query_multiskew_2.q.out | 117 -
.../list_bucket_query_multiskew_3.q.out | 130 --
.../list_bucket_query_oneskew_1.q.out | 81 -
.../list_bucket_query_oneskew_2.q.out | 170 --
.../list_bucket_query_oneskew_3.q.out | 28 -
.../clientpositive/llap/llap_nullscan.q.out | 20 -
.../llap/tez_join_result_complex.q.out | 530 -----
.../results/clientpositive/load_dyn_part8.q.out | 63 -
.../clientpositive/louter_join_ppr.q.out | 336 ---
ql/src/test/results/clientpositive/macro.q.out | 62 -
.../clientpositive/mapjoin_mapjoin.q.out | 45 -
ql/src/test/results/clientpositive/merge3.q.out | 110 -
.../results/clientpositive/metadataonly1.q.out | 216 --
.../offset_limit_global_optimizer.q.out | 288 ---
.../clientpositive/optimize_nullscan.q.out | 313 ---
.../clientpositive/outer_join_ppr.q.java1.7.out | 168 --
ql/src/test/results/clientpositive/pcr.q.out | 920 --------
ql/src/test/results/clientpositive/pcs.q.out | 517 -----
.../results/clientpositive/pointlookup2.q.out | 298 ---
.../results/clientpositive/pointlookup3.q.out | 309 ---
.../results/clientpositive/pointlookup4.q.out | 146 --
.../clientpositive/ppd_join_filter.q.out | 380 ----
.../results/clientpositive/ppd_union_view.q.out | 42 -
ql/src/test/results/clientpositive/ppd_vc.q.out | 92 -
.../clientpositive/ppr_allchildsarenull.q.out | 88 -
.../test/results/clientpositive/push_or.q.out | 42 -
.../clientpositive/rand_partitionpruner1.q.out | 22 -
.../clientpositive/rand_partitionpruner2.q.out | 33 -
.../clientpositive/rand_partitionpruner3.q.out | 94 -
.../clientpositive/reduce_deduplicate.q.out | 147 --
.../clientpositive/router_join_ppr.q.out | 336 ---
.../test/results/clientpositive/sample1.q.out | 39 -
.../test/results/clientpositive/sample10.q.out | 39 -
.../test/results/clientpositive/sample2.q.out | 23 -
.../test/results/clientpositive/sample4.q.out | 25 -
.../test/results/clientpositive/sample5.q.out | 25 -
.../test/results/clientpositive/sample6.q.out | 256 ---
.../test/results/clientpositive/sample7.q.out | 32 -
.../test/results/clientpositive/sample8.q.out | 68 -
.../test/results/clientpositive/sample9.q.out | 37 -
.../clientpositive/serde_user_properties.q.out | 160 --
.../results/clientpositive/smb_mapjoin9.q.out | 154 --
.../results/clientpositive/smb_mapjoin_11.q.out | 101 -
.../results/clientpositive/smb_mapjoin_12.q.out | 132 --
.../results/clientpositive/smb_mapjoin_13.q.out | 90 -
.../results/clientpositive/smb_mapjoin_15.q.out | 210 --
.../clientpositive/sort_merge_join_desc_5.q.out | 51 -
.../clientpositive/sort_merge_join_desc_6.q.out | 51 -
.../clientpositive/sort_merge_join_desc_7.q.out | 51 -
.../spark/auto_join_reordering_values.q.out | 83 -
.../spark/auto_sortmerge_join_1.q.out | 96 -
.../spark/auto_sortmerge_join_12.q.out | 60 -
.../spark/auto_sortmerge_join_3.q.out | 96 -
.../spark/auto_sortmerge_join_4.q.out | 96 -
.../spark/auto_sortmerge_join_5.q.out | 96 -
.../spark/auto_sortmerge_join_7.q.out | 96 -
.../spark/auto_sortmerge_join_8.q.out | 96 -
.../results/clientpositive/spark/bucket2.q.out | 17 -
.../results/clientpositive/spark/bucket3.q.out | 21 -
.../results/clientpositive/spark/bucket4.q.out | 17 -
.../results/clientpositive/spark/bucket5.q.out | 36 -
.../spark/bucket_map_join_1.q.out | 47 -
.../spark/bucket_map_join_2.q.out | 47 -
.../spark/bucket_map_join_spark1.q.out | 104 -
.../spark/bucket_map_join_spark2.q.out | 104 -
.../spark/bucket_map_join_spark3.q.out | 104 -
.../spark/bucket_map_join_spark4.q.out | 134 --
.../clientpositive/spark/bucketmapjoin1.q.out | 226 --
.../clientpositive/spark/bucketmapjoin10.q.out | 51 -
.../clientpositive/spark/bucketmapjoin11.q.out | 112 -
.../clientpositive/spark/bucketmapjoin12.q.out | 102 -
.../clientpositive/spark/bucketmapjoin13.q.out | 155 --
.../clientpositive/spark/bucketmapjoin2.q.out | 164 --
.../clientpositive/spark/bucketmapjoin3.q.out | 128 --
.../clientpositive/spark/bucketmapjoin4.q.out | 100 -
.../clientpositive/spark/bucketmapjoin5.q.out | 100 -
.../clientpositive/spark/bucketmapjoin7.q.out | 73 -
.../clientpositive/spark/bucketmapjoin8.q.out | 102 -
.../clientpositive/spark/bucketmapjoin9.q.out | 102 -
.../spark/bucketmapjoin_negative.q.out | 57 -
.../spark/bucketmapjoin_negative2.q.out | 50 -
.../spark/bucketmapjoin_negative3.q.out | 409 ----
.../results/clientpositive/spark/ctas.q.out | 43 -
.../spark/disable_merge_for_bucketing.q.out | 17 -
.../spark/filter_join_breaktask.q.out | 102 -
.../clientpositive/spark/groupby_map_ppr.q.out | 71 -
.../spark/groupby_map_ppr_multi_distinct.q.out | 88 -
.../clientpositive/spark/groupby_ppr.q.out | 71 -
.../spark/groupby_ppr_multi_distinct.q.out | 88 -
.../spark/groupby_sort_1_23.q.out | 782 -------
.../spark/groupby_sort_skew_1_23.q.out | 782 -------
.../clientpositive/spark/input_part2.q.out | 103 -
.../results/clientpositive/spark/join17.q.out | 38 -
.../results/clientpositive/spark/join26.q.out | 79 -
.../results/clientpositive/spark/join32.q.out | 73 -
.../clientpositive/spark/join32_lessSize.q.out | 330 ---
.../results/clientpositive/spark/join33.q.out | 73 -
.../results/clientpositive/spark/join34.q.out | 104 -
.../results/clientpositive/spark/join35.q.out | 112 -
.../results/clientpositive/spark/join9.q.out | 54 -
.../spark/join_filters_overlap.q.out | 430 ----
.../clientpositive/spark/join_map_ppr.q.out | 158 --
.../spark/list_bucket_dml_10.q.java1.7.out | 28 -
.../spark/list_bucket_dml_2.q.java1.7.out | 69 -
.../clientpositive/spark/load_dyn_part8.q.out | 63 -
.../clientpositive/spark/louter_join_ppr.q.out | 336 ---
.../clientpositive/spark/mapjoin_mapjoin.q.out | 45 -
.../spark/optimize_nullscan.q.out | 313 ---
.../spark/outer_join_ppr.q.java1.7.out | 168 --
.../test/results/clientpositive/spark/pcr.q.out | 920 --------
.../clientpositive/spark/ppd_join_filter.q.out | 380 ----
.../spark/reduce_deduplicate.q.out | 147 --
.../clientpositive/spark/router_join_ppr.q.out | 336 ---
.../results/clientpositive/spark/sample1.q.out | 39 -
.../results/clientpositive/spark/sample10.q.out | 39 -
.../results/clientpositive/spark/sample2.q.out | 23 -
.../results/clientpositive/spark/sample4.q.out | 25 -
.../results/clientpositive/spark/sample5.q.out | 25 -
.../results/clientpositive/spark/sample6.q.out | 256 ---
.../results/clientpositive/spark/sample7.q.out | 32 -
.../results/clientpositive/spark/sample8.q.out | 68 -
.../results/clientpositive/spark/sample9.q.out | 37 -
.../clientpositive/spark/smb_mapjoin_11.q.out | 101 -
.../clientpositive/spark/smb_mapjoin_12.q.out | 132 --
.../clientpositive/spark/smb_mapjoin_13.q.out | 90 -
.../clientpositive/spark/smb_mapjoin_15.q.out | 210 --
.../results/clientpositive/spark/stats0.q.out | 34 -
.../results/clientpositive/spark/stats12.q.out | 14 -
.../results/clientpositive/spark/stats13.q.out | 15 -
.../results/clientpositive/spark/stats3.q.out | 11 -
.../clientpositive/spark/transform_ppr1.q.out | 75 -
.../clientpositive/spark/transform_ppr2.q.out | 75 -
.../results/clientpositive/spark/union22.q.out | 140 --
.../results/clientpositive/spark/union24.q.out | 341 ---
.../clientpositive/spark/union_ppr.q.out | 92 -
.../clientpositive/spark/vectorized_ptf.q.out | 2128 ------------------
ql/src/test/results/clientpositive/stats0.q.out | 34 -
.../test/results/clientpositive/stats11.q.out | 114 -
.../test/results/clientpositive/stats12.q.out | 14 -
.../test/results/clientpositive/stats13.q.out | 15 -
ql/src/test/results/clientpositive/stats3.q.out | 11 -
.../temp_table_display_colstats_tbllvl.q.out | 13 -
.../tez/auto_sortmerge_join_1.q.out | 96 -
.../tez/auto_sortmerge_join_11.q.out | 153 --
.../tez/auto_sortmerge_join_12.q.out | 60 -
.../tez/auto_sortmerge_join_2.q.out | 64 -
.../tez/auto_sortmerge_join_3.q.out | 96 -
.../tez/auto_sortmerge_join_4.q.out | 96 -
.../tez/auto_sortmerge_join_5.q.out | 96 -
.../tez/auto_sortmerge_join_7.q.out | 96 -
.../tez/auto_sortmerge_join_8.q.out | 96 -
.../results/clientpositive/tez/bucket2.q.out | 17 -
.../results/clientpositive/tez/bucket3.q.out | 21 -
.../results/clientpositive/tez/bucket4.q.out | 17 -
.../clientpositive/tez/bucketpruning1.q.out | 803 -------
.../test/results/clientpositive/tez/ctas.q.out | 43 -
.../tez/disable_merge_for_bucketing.q.out | 17 -
.../tez/filter_join_breaktask.q.out | 102 -
.../clientpositive/tez/llap_nullscan.q.out | 20 -
.../clientpositive/tez/mapjoin_mapjoin.q.out | 45 -
.../clientpositive/tez/metadataonly1.q.out | 216 --
.../clientpositive/tez/optimize_nullscan.q.out | 313 ---
.../results/clientpositive/tez/sample1.q.out | 39 -
.../tez/tez_join_result_complex.q.out | 530 -----
.../clientpositive/tez/transform_ppr1.q.out | 75 -
.../clientpositive/tez/transform_ppr2.q.out | 75 -
.../clientpositive/tez/unionDistinct_1.q.out | 569 -----
.../clientpositive/tez/vectorized_ptf.q.out | 2128 ------------------
.../results/clientpositive/transform_ppr1.q.out | 75 -
.../results/clientpositive/transform_ppr2.q.out | 75 -
.../truncate_column_list_bucket.q.out | 52 -
.../results/clientpositive/udf_explode.q.out | 167 --
.../clientpositive/udf_java_method.q.out | 63 -
.../results/clientpositive/udf_reflect.q.out | 71 -
.../results/clientpositive/udf_reflect2.q.out | 229 --
.../results/clientpositive/udtf_explode.q.out | 134 --
.../test/results/clientpositive/union22.q.out | 140 --
.../test/results/clientpositive/union24.q.out | 341 ---
.../clientpositive/unionDistinct_1.q.out | 569 -----
.../test/results/clientpositive/union_ppr.q.out | 92 -
.../results/clientpositive/vectorized_ptf.q.out | 2128 ------------------
293 files changed, 31 insertions(+), 42691 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/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 9aefff8..2a06962 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
@@ -594,7 +594,7 @@ public class Driver implements CommandProcessor {
PrintStream ps = new PrintStream(baos);
try {
List<Task<?>> rootTasks = sem.getAllRootTasks();
- task.getJSONPlan(ps, astTree, rootTasks, sem.getFetchTask(), false, true, true);
+ task.getJSONPlan(ps, rootTasks, sem.getFetchTask(), false, true, true);
ret = baos.toString();
} catch (Exception e) {
LOG.warn("Exception generating explain output: " + e, e);
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/java/org/apache/hadoop/hive/ql/exec/ExplainTask.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/ExplainTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/ExplainTask.java
index 4116141..4ce0864 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/ExplainTask.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/ExplainTask.java
@@ -39,8 +39,6 @@ import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hive.common.jsonexplain.JsonParser;
import org.apache.hadoop.hive.common.jsonexplain.JsonParserFactory;
@@ -50,7 +48,6 @@ import org.apache.hadoop.hive.ql.DriverContext;
import org.apache.hadoop.hive.ql.hooks.ReadEntity;
import org.apache.hadoop.hive.ql.metadata.Table;
import org.apache.hadoop.hive.ql.optimizer.physical.StageIDsRearranger;
-import org.apache.hadoop.hive.ql.parse.ASTNode;
import org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer;
import org.apache.hadoop.hive.ql.plan.Explain;
import org.apache.hadoop.hive.ql.plan.Explain.Level;
@@ -68,6 +65,8 @@ import org.apache.hive.common.util.AnnotationUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* ExplainTask implementation.
@@ -139,18 +138,6 @@ public class ExplainTask extends Task<ExplainWork> implements Serializable {
out = null;
}
- // Print out the parse AST
- if (work.getAstStringTree() != null) {
- String jsonAST = outputAST(work.getAstStringTree(), out, jsonOutput, 0);
- if (out != null) {
- out.println();
- }
-
- if (jsonOutput) {
- outJSONObject.put("ABSTRACT SYNTAX TREE", jsonAST);
- }
- }
-
if (work.getParseContext() != null) {
if (out != null) {
out.print("LOGICAL PLAN:");
@@ -172,11 +159,11 @@ public class ExplainTask extends Task<ExplainWork> implements Serializable {
public JSONObject getJSONPlan(PrintStream out, ExplainWork work)
throws Exception {
- return getJSONPlan(out, work.getAstTree(), work.getRootTasks(), work.getFetchTask(),
+ return getJSONPlan(out, work.getRootTasks(), work.getFetchTask(),
work.isFormatted(), work.getExtended(), work.isAppendTaskType());
}
- public JSONObject getJSONPlan(PrintStream out, ASTNode ast, List<Task<?>> tasks, Task<?> fetchTask,
+ public JSONObject getJSONPlan(PrintStream out, List<Task<?>> tasks, Task<?> fetchTask,
boolean jsonOutput, boolean isExtended, boolean appendTaskType) throws Exception {
// If the user asked for a formatted output, dump the json output
@@ -187,18 +174,6 @@ public class ExplainTask extends Task<ExplainWork> implements Serializable {
out = null;
}
- // Print out the parse AST
- if (ast != null && isExtended) {
- String jsonAST = outputAST(ast.dump(), out, jsonOutput, 0);
- if (out != null) {
- out.println();
- }
-
- if (jsonOutput) {
- outJSONObject.put("ABSTRACT SYNTAX TREE", jsonAST);
- }
- }
-
List<Task> ordered = StageIDsRearranger.getExplainOrder(conf, tasks);
if (fetchTask != null) {
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/java/org/apache/hadoop/hive/ql/hooks/ATSHook.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/hooks/ATSHook.java b/ql/src/java/org/apache/hadoop/hive/ql/hooks/ATSHook.java
index f490161..b7e70be 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/hooks/ATSHook.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/hooks/ATSHook.java
@@ -22,11 +22,8 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
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.QueryPlan;
import org.apache.hadoop.hive.ql.exec.ExplainTask;
import org.apache.hadoop.hive.ql.exec.TaskFactory;
@@ -39,6 +36,8 @@ import org.apache.hadoop.yarn.api.records.timeline.TimelineEvent;
import org.apache.hadoop.yarn.client.api.TimelineClient;
import org.apache.hadoop.yarn.conf.YarnConfiguration;
import org.json.JSONObject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
@@ -124,7 +123,6 @@ public class ATSHook implements ExecuteWithHookContext {
null,// pCtx
plan.getRootTasks(),// RootTasks
plan.getFetchTask(),// FetchTask
- null,// astStringTree
null,// analyzer
false,// extended
true,// formatted
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
index b59347d..c069dc4 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
@@ -297,8 +297,8 @@ public class CalcitePlanner extends SemanticAnalyzer {
LOG.info("CBO Succeeded; optimized logical plan.");
this.ctx.setCboInfo("Plan optimized by CBO.");
this.ctx.setCboSucceeded(true);
- if (LOG.isDebugEnabled()) {
- LOG.debug(newAST.dump());
+ if (LOG.isTraceEnabled()) {
+ LOG.trace(newAST.dump());
}
}
} catch (Exception e) {
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/java/org/apache/hadoop/hive/ql/parse/ExplainSemanticAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/ExplainSemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/ExplainSemanticAnalyzer.java
index e393be2..eefc145 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/ExplainSemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/ExplainSemanticAnalyzer.java
@@ -24,8 +24,8 @@ import java.util.List;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.metastore.api.FieldSchema;
-import org.apache.hadoop.hive.ql.exec.FetchTask;
import org.apache.hadoop.hive.ql.exec.ExplainTask;
+import org.apache.hadoop.hive.ql.exec.FetchTask;
import org.apache.hadoop.hive.ql.exec.Task;
import org.apache.hadoop.hive.ql.exec.TaskFactory;
import org.apache.hadoop.hive.ql.plan.ExplainWork;
@@ -102,7 +102,6 @@ public class ExplainSemanticAnalyzer extends BaseSemanticAnalyzer {
pCtx,
tasks,
fetchTask,
- input,
sem,
extended,
formatted,
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/java/org/apache/hadoop/hive/ql/plan/ExplainWork.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/plan/ExplainWork.java b/ql/src/java/org/apache/hadoop/hive/ql/plan/ExplainWork.java
index 132cb8d..a213c83 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/plan/ExplainWork.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/plan/ExplainWork.java
@@ -26,7 +26,6 @@ import java.util.List;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hive.ql.exec.Task;
import org.apache.hadoop.hive.ql.hooks.ReadEntity;
-import org.apache.hadoop.hive.ql.parse.ASTNode;
import org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer;
import org.apache.hadoop.hive.ql.parse.ParseContext;
@@ -40,8 +39,6 @@ public class ExplainWork implements Serializable {
private Path resFile;
private ArrayList<Task<? extends Serializable>> rootTasks;
private Task<? extends Serializable> fetchTask;
- private ASTNode astTree;
- private String astStringTree;
private HashSet<ReadEntity> inputs;
private ParseContext pCtx;
@@ -65,7 +62,6 @@ public class ExplainWork implements Serializable {
ParseContext pCtx,
List<Task<? extends Serializable>> rootTasks,
Task<? extends Serializable> fetchTask,
- ASTNode astTree,
BaseSemanticAnalyzer analyzer,
boolean extended,
boolean formatted,
@@ -77,7 +73,6 @@ public class ExplainWork implements Serializable {
this.resFile = resFile;
this.rootTasks = new ArrayList<Task<? extends Serializable>>(rootTasks);
this.fetchTask = fetchTask;
- this.astTree = astTree;
this.analyzer = analyzer;
if (analyzer != null) {
this.inputs = analyzer.getInputs();
@@ -116,17 +111,6 @@ public class ExplainWork implements Serializable {
this.fetchTask = fetchTask;
}
- public ASTNode getAstTree() {
- return astTree;
- }
-
- public String getAstStringTree() {
- if (astStringTree == null) {
- astStringTree = astTree.dump();
- }
- return astStringTree;
- }
-
public HashSet<ReadEntity> getInputs() {
return inputs;
}
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/org/apache/hadoop/hive/ql/parse/TestUpdateDeleteSemanticAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestUpdateDeleteSemanticAnalyzer.java b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestUpdateDeleteSemanticAnalyzer.java
index d795324..8614d40 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/parse/TestUpdateDeleteSemanticAnalyzer.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/parse/TestUpdateDeleteSemanticAnalyzer.java
@@ -23,8 +23,6 @@ import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
@@ -42,6 +40,8 @@ import org.apache.hadoop.hive.ql.plan.ExplainWork;
import org.apache.hadoop.hive.ql.session.SessionState;
import org.junit.Before;
import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class TestUpdateDeleteSemanticAnalyzer {
@@ -59,7 +59,7 @@ public class TestUpdateDeleteSemanticAnalyzer {
try {
ReturnInfo rc = parseAndAnalyze("insert into table T select a, b from U", "testInsertSelect");
- LOG.info(explain((SemanticAnalyzer)rc.sem, rc.plan, rc.ast));
+ LOG.info(explain((SemanticAnalyzer)rc.sem, rc.plan));
} finally {
cleanupTables();
@@ -70,7 +70,7 @@ public class TestUpdateDeleteSemanticAnalyzer {
public void testDeleteAllNonPartitioned() throws Exception {
try {
ReturnInfo rc = parseAndAnalyze("delete from T", "testDeleteAllNonPartitioned");
- LOG.info(explain((SemanticAnalyzer)rc.sem, rc.plan, rc.ast));
+ LOG.info(explain((SemanticAnalyzer)rc.sem, rc.plan));
} finally {
cleanupTables();
}
@@ -80,7 +80,7 @@ public class TestUpdateDeleteSemanticAnalyzer {
public void testDeleteWhereNoPartition() throws Exception {
try {
ReturnInfo rc = parseAndAnalyze("delete from T where a > 5", "testDeleteWhereNoPartition");
- LOG.info(explain((SemanticAnalyzer)rc.sem, rc.plan, rc.ast));
+ LOG.info(explain((SemanticAnalyzer)rc.sem, rc.plan));
} finally {
cleanupTables();
}
@@ -90,7 +90,7 @@ public class TestUpdateDeleteSemanticAnalyzer {
public void testDeleteAllPartitioned() throws Exception {
try {
ReturnInfo rc = parseAndAnalyze("delete from U", "testDeleteAllPartitioned");
- LOG.info(explain((SemanticAnalyzer)rc.sem, rc.plan, rc.ast));
+ LOG.info(explain((SemanticAnalyzer)rc.sem, rc.plan));
} finally {
cleanupTables();
}
@@ -100,7 +100,7 @@ public class TestUpdateDeleteSemanticAnalyzer {
public void testDeleteAllWherePartitioned() throws Exception {
try {
ReturnInfo rc = parseAndAnalyze("delete from U where a > 5", "testDeleteAllWherePartitioned");
- LOG.info(explain((SemanticAnalyzer)rc.sem, rc.plan, rc.ast));
+ LOG.info(explain((SemanticAnalyzer)rc.sem, rc.plan));
} finally {
cleanupTables();
}
@@ -111,7 +111,7 @@ public class TestUpdateDeleteSemanticAnalyzer {
try {
ReturnInfo rc = parseAndAnalyze("delete from U where ds = 'today'",
"testDeleteFromPartitionOnly");
- LOG.info(explain((SemanticAnalyzer)rc.sem, rc.plan, rc.ast));
+ LOG.info(explain((SemanticAnalyzer)rc.sem, rc.plan));
} finally {
cleanupTables();
}
@@ -122,7 +122,7 @@ public class TestUpdateDeleteSemanticAnalyzer {
try {
ReturnInfo rc = parseAndAnalyze("delete from U where ds = 'today' and a > 5",
"testDeletePartitionWhere");
- LOG.info(explain((SemanticAnalyzer)rc.sem, rc.plan, rc.ast));
+ LOG.info(explain((SemanticAnalyzer)rc.sem, rc.plan));
} finally {
cleanupTables();
}
@@ -132,7 +132,7 @@ public class TestUpdateDeleteSemanticAnalyzer {
public void testUpdateAllNonPartitioned() throws Exception {
try {
ReturnInfo rc = parseAndAnalyze("update T set b = 5", "testUpdateAllNonPartitioned");
- LOG.info(explain((SemanticAnalyzer)rc.sem, rc.plan, rc.ast));
+ LOG.info(explain((SemanticAnalyzer)rc.sem, rc.plan));
} finally {
cleanupTables();
}
@@ -143,7 +143,7 @@ public class TestUpdateDeleteSemanticAnalyzer {
try {
ReturnInfo rc = parseAndAnalyze("update T set b = 5 where b > 5",
"testUpdateAllNonPartitionedWhere");
- LOG.info(explain((SemanticAnalyzer)rc.sem, rc.plan, rc.ast));
+ LOG.info(explain((SemanticAnalyzer)rc.sem, rc.plan));
} finally {
cleanupTables();
}
@@ -153,7 +153,7 @@ public class TestUpdateDeleteSemanticAnalyzer {
public void testUpdateAllPartitioned() throws Exception {
try {
ReturnInfo rc = parseAndAnalyze("update U set b = 5", "testUpdateAllPartitioned");
- LOG.info(explain((SemanticAnalyzer)rc.sem, rc.plan, rc.ast));
+ LOG.info(explain((SemanticAnalyzer)rc.sem, rc.plan));
} finally {
cleanupTables();
}
@@ -164,7 +164,7 @@ public class TestUpdateDeleteSemanticAnalyzer {
try {
ReturnInfo rc = parseAndAnalyze("update U set b = 5 where b > 5",
"testUpdateAllPartitionedWhere");
- LOG.info(explain((SemanticAnalyzer)rc.sem, rc.plan, rc.ast));
+ LOG.info(explain((SemanticAnalyzer)rc.sem, rc.plan));
} finally {
cleanupTables();
}
@@ -175,7 +175,7 @@ public class TestUpdateDeleteSemanticAnalyzer {
try {
ReturnInfo rc = parseAndAnalyze("update U set b = 5 where ds = 'today'",
"testUpdateOnePartition");
- LOG.info(explain((SemanticAnalyzer)rc.sem, rc.plan, rc.ast));
+ LOG.info(explain((SemanticAnalyzer)rc.sem, rc.plan));
} finally {
cleanupTables();
}
@@ -186,7 +186,7 @@ public class TestUpdateDeleteSemanticAnalyzer {
try {
ReturnInfo rc = parseAndAnalyze("update U set b = 5 where ds = 'today' and b > 5",
"testUpdateOnePartitionWhere");
- LOG.info(explain((SemanticAnalyzer)rc.sem, rc.plan, rc.ast));
+ LOG.info(explain((SemanticAnalyzer)rc.sem, rc.plan));
} finally {
cleanupTables();
}
@@ -198,7 +198,7 @@ public class TestUpdateDeleteSemanticAnalyzer {
ReturnInfo rc = parseAndAnalyze("insert into table T values ('abc', 3), ('ghi', null)",
"testInsertValues");
- LOG.info(explain((SemanticAnalyzer)rc.sem, rc.plan, rc.ast));
+ LOG.info(explain((SemanticAnalyzer)rc.sem, rc.plan));
} finally {
cleanupTables();
@@ -212,7 +212,7 @@ public class TestUpdateDeleteSemanticAnalyzer {
"('abc', 3, 'today'), ('ghi', 5, 'tomorrow')",
"testInsertValuesPartitioned");
- LOG.info(explain((SemanticAnalyzer) rc.sem, rc.plan, rc.ast));
+ LOG.info(explain((SemanticAnalyzer) rc.sem, rc.plan));
} finally {
cleanupTables();
@@ -235,12 +235,10 @@ public class TestUpdateDeleteSemanticAnalyzer {
}
private class ReturnInfo {
- ASTNode ast;
BaseSemanticAnalyzer sem;
QueryPlan plan;
- ReturnInfo(ASTNode a, BaseSemanticAnalyzer s, QueryPlan p) {
- ast = a;
+ ReturnInfo(BaseSemanticAnalyzer s, QueryPlan p) {
sem = s;
plan = p;
}
@@ -283,10 +281,10 @@ public class TestUpdateDeleteSemanticAnalyzer {
QueryPlan plan = new QueryPlan(query, sem, 0L, testName, null, null);
- return new ReturnInfo(tree, sem, plan);
+ return new ReturnInfo(sem, plan);
}
- private String explain(SemanticAnalyzer sem, QueryPlan plan, ASTNode astTree) throws
+ private String explain(SemanticAnalyzer sem, QueryPlan plan) throws
IOException {
FileSystem fs = FileSystem.get(conf);
File f = File.createTempFile("TestSemanticAnalyzer", "explain");
@@ -294,7 +292,7 @@ public class TestUpdateDeleteSemanticAnalyzer {
fs.create(tmp);
fs.deleteOnExit(tmp);
ExplainWork work = new ExplainWork(tmp, sem.getParseContext(), sem.getRootTasks(),
- sem.getFetchTask(), astTree, sem, true, false, false, false, false, false, null);
+ sem.getFetchTask(), sem, true, false, false, false, false, false, null);
ExplainTask task = new ExplainTask();
task.setWork(work);
task.initialize(conf, plan, null, null);
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/alter_partition_coltype.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/alter_partition_coltype.q.out b/ql/src/test/results/clientpositive/alter_partition_coltype.q.out
index a184372..d6f607c 100644
--- a/ql/src/test/results/clientpositive/alter_partition_coltype.q.out
+++ b/ql/src/test/results/clientpositive/alter_partition_coltype.q.out
@@ -89,28 +89,6 @@ PREHOOK: query: explain extended select count(*) from alter_coltype where dt = '
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) from alter_coltype where dt = '100'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- alter_coltype
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- dt
- '100'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -316,28 +294,6 @@ PREHOOK: query: explain extended select count(*) from alter_coltype where ts = '
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) from alter_coltype where ts = '6.30'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- alter_coltype
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- ts
- '6.30'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -470,33 +426,6 @@ PREHOOK: query: explain extended select count(*) from alter_coltype where ts = 3
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) from alter_coltype where ts = 3.0 and dt=100
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- alter_coltype
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- ts
- 3.0
- =
- TOK_TABLE_OR_COL
- dt
- 100
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -678,37 +607,6 @@ PREHOOK: query: explain extended select key, value, dt, ts from alter_coltype wh
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select key, value, dt, ts from alter_coltype where dt is not null
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- alter_coltype
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- dt
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ts
- TOK_WHERE
- TOK_FUNCTION
- TOK_ISNOTNULL
- TOK_TABLE_OR_COL
- dt
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -950,34 +848,6 @@ PREHOOK: query: explain extended select intcol from pt.alterdynamic_part_table w
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select intcol from pt.alterdynamic_part_table where partcol1='1' and partcol2='1'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pt
- alterdynamic_part_table
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- intcol
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- partcol1
- '1'
- =
- TOK_TABLE_OR_COL
- partcol2
- '1'
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -1045,44 +915,6 @@ PREHOOK: query: explain extended select intcol from pt.alterdynamic_part_table w
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select intcol from pt.alterdynamic_part_table where (partcol1='2' and partcol2='1')or (partcol1='1' and partcol2='__HIVE_DEFAULT_PARTITION__')
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pt
- alterdynamic_part_table
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- intcol
- TOK_WHERE
- or
- and
- =
- TOK_TABLE_OR_COL
- partcol1
- '2'
- =
- TOK_TABLE_OR_COL
- partcol2
- '1'
- and
- =
- TOK_TABLE_OR_COL
- partcol1
- '1'
- =
- TOK_TABLE_OR_COL
- partcol2
- '__HIVE_DEFAULT_PARTITION__'
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/ambiguitycheck.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/ambiguitycheck.q.out b/ql/src/test/results/clientpositive/ambiguitycheck.q.out
index 5ee28c6..3c0f3aa 100644
--- a/ql/src/test/results/clientpositive/ambiguitycheck.q.out
+++ b/ql/src/test/results/clientpositive/ambiguitycheck.q.out
@@ -709,26 +709,6 @@ PREHOOK: query: explain extended select int(1.2) from src limit 1
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select int(1.2) from src limit 1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- int
- 1.2
- TOK_LIMIT
- 1
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -837,16 +817,6 @@ PREHOOK: query: explain extended desc default.src key
PREHOOK: type: DESCTABLE
POSTHOOK: query: explain extended desc default.src key
POSTHOOK: type: DESCTABLE
-ABSTRACT SYNTAX TREE:
-
-TOK_DESCTABLE
- TOK_TABTYPE
- TOK_TABNAME
- default
- src
- key
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
Stage-1 depends on stages: Stage-0
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/analyze_table_null_partition.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/analyze_table_null_partition.q.out b/ql/src/test/results/clientpositive/analyze_table_null_partition.q.out
index 72a24d5..1cca288 100644
--- a/ql/src/test/results/clientpositive/analyze_table_null_partition.q.out
+++ b/ql/src/test/results/clientpositive/analyze_table_null_partition.q.out
@@ -92,22 +92,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- Another way to show stats.
EXPLAIN EXTENDED select * from test2
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- test2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/auto_join_reordering_values.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/auto_join_reordering_values.q.out b/ql/src/test/results/clientpositive/auto_join_reordering_values.q.out
index db79fa5..f3f445b 100644
--- a/ql/src/test/results/clientpositive/auto_join_reordering_values.q.out
+++ b/ql/src/test/results/clientpositive/auto_join_reordering_values.q.out
@@ -84,89 +84,6 @@ JOIN `orderpayment_small` `order_city` ON `order_city`.`cityid` = `orderpayment`
JOIN `user_small` `user` ON `user`.`userid` = `orderpayment`.`userid`
limit 5
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- orderpayment_small
- orderpayment
- TOK_TABREF
- TOK_TABNAME
- orderpayment_small
- dim_pay_date
- =
- .
- TOK_TABLE_OR_COL
- dim_pay_date
- date
- .
- TOK_TABLE_OR_COL
- orderpayment
- date
- TOK_TABREF
- TOK_TABNAME
- orderpayment_small
- deal
- =
- .
- TOK_TABLE_OR_COL
- deal
- dealid
- .
- TOK_TABLE_OR_COL
- orderpayment
- dealid
- TOK_TABREF
- TOK_TABNAME
- orderpayment_small
- order_city
- =
- .
- TOK_TABLE_OR_COL
- order_city
- cityid
- .
- TOK_TABLE_OR_COL
- orderpayment
- cityid
- TOK_TABREF
- TOK_TABNAME
- user_small
- user
- =
- .
- TOK_TABLE_OR_COL
- user
- userid
- .
- TOK_TABLE_OR_COL
- orderpayment
- userid
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- dim_pay_date
- date
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- deal
- dealid
- TOK_LIMIT
- 5
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/auto_sortmerge_join_1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/auto_sortmerge_join_1.q.out b/ql/src/test/results/clientpositive/auto_sortmerge_join_1.q.out
index f768ea4..0902556 100644
--- a/ql/src/test/results/clientpositive/auto_sortmerge_join_1.q.out
+++ b/ql/src/test/results/clientpositive/auto_sortmerge_join_1.q.out
@@ -109,38 +109,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- Since size is being used to find the big table, the order of the tables in the join does not matter
explain extended select count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -330,38 +298,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -551,38 +487,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-5 is a root stage , consists of Stage-6, Stage-7, Stage-1
Stage-6 has a backup stage: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/auto_sortmerge_join_11.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/auto_sortmerge_join_11.q.out b/ql/src/test/results/clientpositive/auto_sortmerge_join_11.q.out
index f4bbfd0..81de2b0 100644
--- a/ql/src/test/results/clientpositive/auto_sortmerge_join_11.q.out
+++ b/ql/src/test/results/clientpositive/auto_sortmerge_join_11.q.out
@@ -105,38 +105,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_small a JOIN bucket
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-5 is a root stage
Stage-2 depends on stages: Stage-5
@@ -453,38 +421,6 @@ POSTHOOK: query: -- Since size is being used to find the big table, the order of
-- bucketized mapjoin is not done
explain extended select count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-5 is a root stage
Stage-2 depends on stages: Stage-5
@@ -795,43 +731,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- The join is converted to a bucketed mapjoin with a mapjoin hint
explain extended select /*+ mapjoin(a) */ count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -1097,58 +996,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- HIVE-7023
explain extended select /* + MAPJOIN(a,b) */ count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key JOIN bucket_big c ON a.key = c.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- c
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- c
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-4 is a root stage
Stage-1 depends on stages: Stage-4
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/auto_sortmerge_join_12.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/auto_sortmerge_join_12.q.out b/ql/src/test/results/clientpositive/auto_sortmerge_join_12.q.out
index e5ff904..26a11a7 100644
--- a/ql/src/test/results/clientpositive/auto_sortmerge_join_12.q.out
+++ b/ql/src/test/results/clientpositive/auto_sortmerge_join_12.q.out
@@ -143,66 +143,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_small a JOIN bucket
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_small a JOIN bucket_medium b ON a.key = b.key JOIN bucket_big c ON c.key = b.key JOIN bucket_medium d ON c.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_medium
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- c
- =
- .
- TOK_TABLE_OR_COL
- c
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_TABREF
- TOK_TABNAME
- bucket_medium
- d
- =
- .
- TOK_TABLE_OR_COL
- c
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-9 is a root stage
Stage-3 depends on stages: Stage-9
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/auto_sortmerge_join_2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/auto_sortmerge_join_2.q.out b/ql/src/test/results/clientpositive/auto_sortmerge_join_2.q.out
index 0de079d..78cd03d 100644
--- a/ql/src/test/results/clientpositive/auto_sortmerge_join_2.q.out
+++ b/ql/src/test/results/clientpositive/auto_sortmerge_join_2.q.out
@@ -89,38 +89,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- Since the leftmost table is assumed as the big table, arrange the tables in the join accordingly
explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -312,38 +280,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- The mapjoin should fail resulting in the sort-merge join
explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-5 is a root stage , consists of Stage-6, Stage-7, Stage-1
Stage-6 has a backup stage: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/auto_sortmerge_join_3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/auto_sortmerge_join_3.q.out b/ql/src/test/results/clientpositive/auto_sortmerge_join_3.q.out
index a161f1c..7ddf6b3 100644
--- a/ql/src/test/results/clientpositive/auto_sortmerge_join_3.q.out
+++ b/ql/src/test/results/clientpositive/auto_sortmerge_join_3.q.out
@@ -89,38 +89,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- Since size is being used to find the big table, the order of the tables in the join does not matter
explain extended select count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -264,38 +232,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -439,38 +375,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-5 is a root stage , consists of Stage-6, Stage-7, Stage-1
Stage-6 has a backup stage: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/auto_sortmerge_join_4.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/auto_sortmerge_join_4.q.out b/ql/src/test/results/clientpositive/auto_sortmerge_join_4.q.out
index 3421ab1..5b68da2 100644
--- a/ql/src/test/results/clientpositive/auto_sortmerge_join_4.q.out
+++ b/ql/src/test/results/clientpositive/auto_sortmerge_join_4.q.out
@@ -105,38 +105,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- Since size is being used to find the big table, the order of the tables in the join does not matter
explain extended select count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -280,38 +248,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -455,38 +391,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-5 is a root stage , consists of Stage-6, Stage-7, Stage-1
Stage-6 has a backup stage: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/auto_sortmerge_join_5.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/auto_sortmerge_join_5.q.out b/ql/src/test/results/clientpositive/auto_sortmerge_join_5.q.out
index 9c2663c..07bcb89 100644
--- a/ql/src/test/results/clientpositive/auto_sortmerge_join_5.q.out
+++ b/ql/src/test/results/clientpositive/auto_sortmerge_join_5.q.out
@@ -76,38 +76,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- Since size is being used to find the big table, the order of the tables in the join does not matter
explain extended select count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -242,38 +210,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -408,38 +344,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-5 is a root stage , consists of Stage-6, Stage-7, Stage-1
Stage-6 has a backup stage: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/auto_sortmerge_join_7.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/auto_sortmerge_join_7.q.out b/ql/src/test/results/clientpositive/auto_sortmerge_join_7.q.out
index a25db01..d12c1ca 100644
--- a/ql/src/test/results/clientpositive/auto_sortmerge_join_7.q.out
+++ b/ql/src/test/results/clientpositive/auto_sortmerge_join_7.q.out
@@ -122,38 +122,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- Since size is being used to find the big table, the order of the tables in the join does not matter
explain extended select count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -345,38 +313,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -568,38 +504,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-5 is a root stage , consists of Stage-6, Stage-7, Stage-1
Stage-6 has a backup stage: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/auto_sortmerge_join_8.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/auto_sortmerge_join_8.q.out b/ql/src/test/results/clientpositive/auto_sortmerge_join_8.q.out
index d22ba3b..ce0590c 100644
--- a/ql/src/test/results/clientpositive/auto_sortmerge_join_8.q.out
+++ b/ql/src/test/results/clientpositive/auto_sortmerge_join_8.q.out
@@ -122,38 +122,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- Since size is being used to find the big table, the order of the tables in the join does not matter
explain extended select count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -345,38 +313,6 @@ PREHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_s
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -570,38 +506,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- The mapjoin should fail resulting in the sort-merge join
explain extended select count(*) FROM bucket_big a JOIN bucket_small b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-5 is a root stage , consists of Stage-6, Stage-7, Stage-1
Stage-6 has a backup stage: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/binary_output_format.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/binary_output_format.q.out b/ql/src/test/results/clientpositive/binary_output_format.q.out
index 32b2feb..608d475 100644
--- a/ql/src/test/results/clientpositive/binary_output_format.q.out
+++ b/ql/src/test/results/clientpositive/binary_output_format.q.out
@@ -52,42 +52,6 @@ SELECT TRANSFORM(*)
RECORDREADER 'org.apache.hadoop.hive.ql.exec.BinaryRecordReader'
FROM src
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dest1
- TOK_SELECT
- TOK_SELEXPR
- TOK_TRANSFORM
- TOK_EXPLIST
- TOK_ALLCOLREF
- TOK_SERDE
- TOK_RECORDWRITER
- 'cat'
- TOK_SERDE
- TOK_SERDENAME
- 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
- TOK_TABLEPROPERTIES
- TOK_TABLEPROPLIST
- TOK_TABLEPROPERTY
- 'serialization.last.column.takes.rest'
- 'true'
- TOK_RECORDREADER
- 'org.apache.hadoop.hive.ql.exec.BinaryRecordReader'
- TOK_TABCOLLIST
- TOK_TABCOL
- mydata
- TOK_STRING
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucket1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucket1.q.out b/ql/src/test/results/clientpositive/bucket1.q.out
index 0680176..96b8d4e 100644
--- a/ql/src/test/results/clientpositive/bucket1.q.out
+++ b/ql/src/test/results/clientpositive/bucket1.q.out
@@ -18,23 +18,6 @@ POSTHOOK: query: explain extended
insert overwrite table bucket1_1
select * from src
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucket1_1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucket2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucket2.q.out b/ql/src/test/results/clientpositive/bucket2.q.out
index 958e556..b5572fd 100644
--- a/ql/src/test/results/clientpositive/bucket2.q.out
+++ b/ql/src/test/results/clientpositive/bucket2.q.out
@@ -18,23 +18,6 @@ POSTHOOK: query: explain extended
insert overwrite table bucket2_1
select * from src
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucket2_1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucket3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucket3.q.out b/ql/src/test/results/clientpositive/bucket3.q.out
index eca9ba5..29afaea 100644
--- a/ql/src/test/results/clientpositive/bucket3.q.out
+++ b/ql/src/test/results/clientpositive/bucket3.q.out
@@ -18,27 +18,6 @@ POSTHOOK: query: explain extended
insert overwrite table bucket3_1 partition (ds='1')
select * from src
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucket3_1
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '1'
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucket4.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucket4.q.out b/ql/src/test/results/clientpositive/bucket4.q.out
index dd9ef00..c4baf72 100644
--- a/ql/src/test/results/clientpositive/bucket4.q.out
+++ b/ql/src/test/results/clientpositive/bucket4.q.out
@@ -14,23 +14,6 @@ POSTHOOK: query: explain extended
insert overwrite table bucket4_1
select * from src
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucket4_1
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucket5.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucket5.q.out b/ql/src/test/results/clientpositive/bucket5.q.out
index fa926aa..dee79f9 100644
--- a/ql/src/test/results/clientpositive/bucket5.q.out
+++ b/ql/src/test/results/clientpositive/bucket5.q.out
@@ -30,42 +30,6 @@ FROM src
INSERT OVERWRITE TABLE bucketed_table SELECT key, value
INSERT OVERWRITE TABLE unbucketed_table SELECT key, value cluster by key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketed_table
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- unbucketed_table
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_CLUSTERBY
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-0 depends on stages: Stage-2
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucket_many.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucket_many.q.out b/ql/src/test/results/clientpositive/bucket_many.q.out
index a9e2f0b..90d9fb8 100644
--- a/ql/src/test/results/clientpositive/bucket_many.q.out
+++ b/ql/src/test/results/clientpositive/bucket_many.q.out
@@ -14,23 +14,6 @@ POSTHOOK: query: explain extended
insert overwrite table bucket_many
select * from src
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucket_many
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucket_map_join_1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucket_map_join_1.q.out b/ql/src/test/results/clientpositive/bucket_map_join_1.q.out
index 05fb434..49bf2ca 100644
--- a/ql/src/test/results/clientpositive/bucket_map_join_1.q.out
+++ b/ql/src/test/results/clientpositive/bucket_map_join_1.q.out
@@ -56,53 +56,6 @@ POSTHOOK: query: -- The tables are bucketed in same columns in different order,
explain extended
select /*+ mapjoin(b) */ count(*) from table1 a join table2 b on a.key=b.key and a.value=b.value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- table1
- a
- TOK_TABREF
- TOK_TABNAME
- table2
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- value
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucket_map_join_2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucket_map_join_2.q.out b/ql/src/test/results/clientpositive/bucket_map_join_2.q.out
index 1173c93..9ec7033 100644
--- a/ql/src/test/results/clientpositive/bucket_map_join_2.q.out
+++ b/ql/src/test/results/clientpositive/bucket_map_join_2.q.out
@@ -56,53 +56,6 @@ POSTHOOK: query: -- The tables are bucketed in same columns in different order,
explain extended
select /*+ mapjoin(b) */ count(*) from table1 a join table2 b on a.key=b.key and a.value=b.value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- table1
- a
- TOK_TABREF
- TOK_TABNAME
- table2
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- value
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
[35/50] [abbrv] hive git commit: HIVE-13591: TestSchemaTool is
failing on master (Hari Subramaniyan, reviewed by Ashutosh Chauhan)
Posted by jd...@apache.org.
HIVE-13591: TestSchemaTool is failing on master (Hari Subramaniyan, reviewed by Ashutosh Chauhan)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/86bdcbcd
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/86bdcbcd
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/86bdcbcd
Branch: refs/heads/llap
Commit: 86bdcbcd37bcca19d50aa8a79f171ec6ddca0157
Parents: f13ee08
Author: Hari Subramaniyan <ha...@apache.org>
Authored: Mon Apr 25 12:14:14 2016 -0700
Committer: Hari Subramaniyan <ha...@apache.org>
Committed: Mon Apr 25 12:14:14 2016 -0700
----------------------------------------------------------------------
metastore/scripts/upgrade/derby/hive-schema-2.1.0.derby.sql | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/86bdcbcd/metastore/scripts/upgrade/derby/hive-schema-2.1.0.derby.sql
----------------------------------------------------------------------
diff --git a/metastore/scripts/upgrade/derby/hive-schema-2.1.0.derby.sql b/metastore/scripts/upgrade/derby/hive-schema-2.1.0.derby.sql
index 2ef7223..1d00499 100644
--- a/metastore/scripts/upgrade/derby/hive-schema-2.1.0.derby.sql
+++ b/metastore/scripts/upgrade/derby/hive-schema-2.1.0.derby.sql
@@ -108,7 +108,7 @@ CREATE TABLE "APP"."NOTIFICATION_LOG" ("NL_ID" BIGINT NOT NULL, "DB_NAME" VARCHA
CREATE TABLE "APP"."NOTIFICATION_SEQUENCE" ("NNI_ID" BIGINT NOT NULL, "NEXT_EVENT_ID" BIGINT NOT NULL);
-CREATE TABLE "APP"."KEY_CONSTRAINTS" ("CHILD_CD_ID" BIGINT, "CHILD_TBL_ID" BIGINT, "PARENT_CD_ID" BIGINT NOT NULL, "PARENT_TBL_ID" BIGINT NOT NULL, "POSITION" BIGINT NOT NULL, "CONSTRAINT_NAME" VARCHAR(400 NOT NULL, "CONSTRAINT_TYPE" SMALLINT NOT NULL, "UPDATE_RULE" SMALLINT, "DELETE_RULE" SMALLINT, "ENABLE_VALIDATE_RELY" SMALLINT NOT NULL);
+CREATE TABLE "APP"."KEY_CONSTRAINTS" ("CHILD_CD_ID" BIGINT, "CHILD_TBL_ID" BIGINT, "PARENT_CD_ID" BIGINT NOT NULL, "PARENT_TBL_ID" BIGINT NOT NULL, "POSITION" BIGINT NOT NULL, "CONSTRAINT_NAME" VARCHAR(400) NOT NULL, "CONSTRAINT_TYPE" SMALLINT NOT NULL, "UPDATE_RULE" SMALLINT, "DELETE_RULE" SMALLINT, "ENABLE_VALIDATE_RELY" SMALLINT NOT NULL);
ALTER TABLE "APP"."KEY_CONSTRAINTS" ADD CONSTRAINT "CONSTRAINTS_PK" PRIMARY KEY ("CONSTRAINT_NAME", "POSITION");
[21/50] [abbrv] hive git commit: HIVE-13533: Remove AST dump (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/pcr.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/pcr.q.out b/ql/src/test/results/clientpositive/pcr.q.out
index 684d4d7..b53226e 100644
--- a/ql/src/test/results/clientpositive/pcr.q.out
+++ b/ql/src/test/results/clientpositive/pcr.q.out
@@ -52,48 +52,6 @@ PREHOOK: query: explain extended select key, value, ds from pcr_t1 where ds<='20
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select key, value, ds from pcr_t1 where ds<='2000-04-09' and key<5 order by key, ds
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_WHERE
- and
- <=
- TOK_TABLE_OR_COL
- ds
- '2000-04-09'
- <
- TOK_TABLE_OR_COL
- key
- 5
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -279,41 +237,6 @@ PREHOOK: query: explain extended select key, value from pcr_t1 where ds<='2000-0
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select key, value from pcr_t1 where ds<='2000-04-09' or key<5 order by key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- or
- <=
- TOK_TABLE_OR_COL
- ds
- '2000-04-09'
- <
- TOK_TABLE_OR_COL
- key
- 5
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -582,53 +505,6 @@ PREHOOK: query: explain extended select key, value, ds from pcr_t1 where ds<='20
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select key, value, ds from pcr_t1 where ds<='2000-04-09' and key<5 and value != 'val_2' order by key, ds
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_WHERE
- and
- and
- <=
- TOK_TABLE_OR_COL
- ds
- '2000-04-09'
- <
- TOK_TABLE_OR_COL
- key
- 5
- !=
- TOK_TABLE_OR_COL
- value
- 'val_2'
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -816,58 +692,6 @@ POSTHOOK: query: explain extended
select key, value, ds from pcr_t1
where (ds < '2000-04-09' and key < 5) or (ds > '2000-04-09' and value == 'val_5') order by key, ds
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_WHERE
- or
- and
- <
- TOK_TABLE_OR_COL
- ds
- '2000-04-09'
- <
- TOK_TABLE_OR_COL
- key
- 5
- and
- >
- TOK_TABLE_OR_COL
- ds
- '2000-04-09'
- ==
- TOK_TABLE_OR_COL
- value
- 'val_5'
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1057,58 +881,6 @@ POSTHOOK: query: explain extended
select key, value, ds from pcr_t1
where (ds < '2000-04-10' and key < 5) or (ds > '2000-04-08' and value == 'val_5') order by key, ds
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_WHERE
- or
- and
- <
- TOK_TABLE_OR_COL
- ds
- '2000-04-10'
- <
- TOK_TABLE_OR_COL
- key
- 5
- and
- >
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
- ==
- TOK_TABLE_OR_COL
- value
- 'val_5'
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1354,58 +1126,6 @@ POSTHOOK: query: explain extended
select key, value, ds from pcr_t1
where (ds < '2000-04-10' or key < 5) and (ds > '2000-04-08' or value == 'val_5') order by key, ds
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_WHERE
- and
- or
- <
- TOK_TABLE_OR_COL
- ds
- '2000-04-10'
- <
- TOK_TABLE_OR_COL
- key
- 5
- or
- >
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
- ==
- TOK_TABLE_OR_COL
- value
- 'val_5'
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1659,50 +1379,6 @@ PREHOOK: query: explain extended select key, value from pcr_t1 where (ds='2000-0
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select key, value from pcr_t1 where (ds='2000-04-08' or ds='2000-04-09') and key=14 order by key, value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- and
- or
- =
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
- =
- TOK_TABLE_OR_COL
- ds
- '2000-04-09'
- =
- TOK_TABLE_OR_COL
- key
- 14
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1877,45 +1553,6 @@ PREHOOK: query: explain extended select key, value from pcr_t1 where ds='2000-04
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select key, value from pcr_t1 where ds='2000-04-08' or ds='2000-04-09' order by key, value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- or
- =
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
- =
- TOK_TABLE_OR_COL
- ds
- '2000-04-09'
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2126,45 +1763,6 @@ PREHOOK: query: explain extended select key, value from pcr_t1 where ds>='2000-0
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select key, value from pcr_t1 where ds>='2000-04-08' or ds<'2000-04-10' order by key, value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- or
- >=
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
- <
- TOK_TABLE_OR_COL
- ds
- '2000-04-10'
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2443,62 +2041,6 @@ PREHOOK: query: explain extended select key, value, ds from pcr_t1 where (ds='20
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select key, value, ds from pcr_t1 where (ds='2000-04-08' and key=1) or (ds='2000-04-09' and key=2) order by key, value, ds
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_WHERE
- or
- and
- =
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
- =
- TOK_TABLE_OR_COL
- key
- 1
- and
- =
- TOK_TABLE_OR_COL
- ds
- '2000-04-09'
- =
- TOK_TABLE_OR_COL
- key
- 2
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -2674,58 +2216,6 @@ PREHOOK: query: explain extended select * from pcr_t1 t1 join pcr_t1 t2 on t1.ke
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select * from pcr_t1 t1 join pcr_t1 t2 on t1.key=t2.key and t1.ds='2000-04-08' and t2.ds='2000-04-08' order by t1.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- t1
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- t2
- and
- and
- =
- .
- TOK_TABLE_OR_COL
- t1
- key
- .
- TOK_TABLE_OR_COL
- t2
- key
- =
- .
- TOK_TABLE_OR_COL
- t1
- ds
- '2000-04-08'
- =
- .
- TOK_TABLE_OR_COL
- t2
- ds
- '2000-04-08'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- t1
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -2980,58 +2470,6 @@ PREHOOK: query: explain extended select * from pcr_t1 t1 join pcr_t1 t2 on t1.ke
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select * from pcr_t1 t1 join pcr_t1 t2 on t1.key=t2.key and t1.ds='2000-04-08' and t2.ds='2000-04-09' order by t1.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- t1
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- t2
- and
- and
- =
- .
- TOK_TABLE_OR_COL
- t1
- key
- .
- TOK_TABLE_OR_COL
- t2
- key
- =
- .
- TOK_TABLE_OR_COL
- t1
- ds
- '2000-04-08'
- =
- .
- TOK_TABLE_OR_COL
- t2
- ds
- '2000-04-09'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- t1
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -3344,67 +2782,6 @@ PREHOOK: query: explain extended select key, value, ds from pcr_t1 where (ds>'20
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select key, value, ds from pcr_t1 where (ds>'2000-04-08' and ds<'2000-04-11') or (ds>='2000-04-08' and ds<='2000-04-11' and key=2) order by key, value, ds
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_WHERE
- or
- and
- >
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
- <
- TOK_TABLE_OR_COL
- ds
- '2000-04-11'
- and
- and
- >=
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
- <=
- TOK_TABLE_OR_COL
- ds
- '2000-04-11'
- =
- TOK_TABLE_OR_COL
- key
- 2
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -3717,62 +3094,6 @@ PREHOOK: query: explain extended select key, value, ds from pcr_t1 where (ds>'20
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select key, value, ds from pcr_t1 where (ds>'2000-04-08' and ds<'2000-04-11') or (ds<='2000-04-09' and key=2) order by key, value, ds
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_WHERE
- or
- and
- >
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
- <
- TOK_TABLE_OR_COL
- ds
- '2000-04-11'
- and
- <=
- TOK_TABLE_OR_COL
- ds
- '2000-04-09'
- =
- TOK_TABLE_OR_COL
- key
- 2
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -4058,49 +3379,6 @@ from pcr_t1
insert overwrite table pcr_t2 select key, value where ds='2000-04-08'
insert overwrite table pcr_t3 select key, value where ds='2000-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- pcr_t2
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- pcr_t3
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-8 depends on stages: Stage-2 , consists of Stage-5, Stage-4, Stage-6
@@ -4625,59 +3903,6 @@ from pcr_t1
insert overwrite table pcr_t2 select key, value where ds='2000-04-08' and key=2
insert overwrite table pcr_t3 select key, value where ds='2000-04-08' and key=3
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- pcr_t2
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
- =
- TOK_TABLE_OR_COL
- key
- 2
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- pcr_t3
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
- =
- TOK_TABLE_OR_COL
- key
- 3
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-8 depends on stages: Stage-2 , consists of Stage-5, Stage-4, Stage-6
@@ -5284,43 +4509,6 @@ PREHOOK: query: explain extended select key, value from srcpart where ds='2008-0
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select key, value from srcpart where ds='2008-04-08' and hr=11 order by key limit 10
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
- =
- TOK_TABLE_OR_COL
- hr
- 11
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_LIMIT
- 10
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -5448,65 +4636,6 @@ PREHOOK: query: explain extended select key, value, ds, hr from srcpart where ds
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select key, value, ds, hr from srcpart where ds='2008-04-08' and (hr='11' or hr='12') and key=11 order by key, ds, hr
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- hr
- TOK_WHERE
- and
- and
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
- or
- =
- TOK_TABLE_OR_COL
- hr
- '11'
- =
- TOK_TABLE_OR_COL
- hr
- '12'
- =
- TOK_TABLE_OR_COL
- key
- 11
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- hr
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -5686,55 +4815,6 @@ PREHOOK: query: explain extended select key, value, ds, hr from srcpart where hr
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select key, value, ds, hr from srcpart where hr='11' and key=11 order by key, ds, hr
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- hr
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- hr
- '11'
- =
- TOK_TABLE_OR_COL
- key
- 11
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- hr
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/pcs.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/pcs.q.out b/ql/src/test/results/clientpositive/pcs.q.out
index d6d2431..8b99401 100644
--- a/ql/src/test/results/clientpositive/pcs.q.out
+++ b/ql/src/test/results/clientpositive/pcs.q.out
@@ -82,62 +82,6 @@ PREHOOK: query: explain extended select key, value, ds from pcs_t1 where (ds='20
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select key, value, ds from pcs_t1 where (ds='2000-04-08' and key=1) or (ds='2000-04-09' and key=2) order by key, value, ds
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcs_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_WHERE
- or
- and
- =
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
- =
- TOK_TABLE_OR_COL
- key
- 1
- and
- =
- TOK_TABLE_OR_COL
- ds
- '2000-04-09'
- =
- TOK_TABLE_OR_COL
- key
- 2
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -313,40 +257,6 @@ PREHOOK: query: explain extended select ds from pcs_t1 where struct(ds, key) in
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select ds from pcs_t1 where struct(ds, key) in (struct('2000-04-08',1), struct('2000-04-09',2))
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcs_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_WHERE
- TOK_FUNCTION
- in
- TOK_FUNCTION
- struct
- TOK_TABLE_OR_COL
- ds
- TOK_TABLE_OR_COL
- key
- TOK_FUNCTION
- struct
- '2000-04-08'
- 1
- TOK_FUNCTION
- struct
- '2000-04-09'
- 2
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -509,42 +419,6 @@ PREHOOK: query: explain extended select ds from pcs_t1 where struct(ds, key+2) i
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select ds from pcs_t1 where struct(ds, key+2) in (struct('2000-04-08',3), struct('2000-04-09',4))
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcs_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_WHERE
- TOK_FUNCTION
- in
- TOK_FUNCTION
- struct
- TOK_TABLE_OR_COL
- ds
- +
- TOK_TABLE_OR_COL
- key
- 2
- TOK_FUNCTION
- struct
- '2000-04-08'
- 3
- TOK_FUNCTION
- struct
- '2000-04-09'
- 4
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -707,77 +581,6 @@ PREHOOK: query: explain extended select /*+ MAPJOIN(pcs_t1) */ a.ds, b.key from
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /*+ MAPJOIN(pcs_t1) */ a.ds, b.key from pcs_t1 a join pcs_t1 b on a.ds=b.ds where struct(a.ds, a.key, b.ds) in (struct('2000-04-08',1, '2000-04-09'), struct('2000-04-09',2, '2000-04-08'))
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- pcs_t1
- a
- TOK_TABREF
- TOK_TABNAME
- pcs_t1
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- .
- TOK_TABLE_OR_COL
- b
- ds
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- pcs_t1
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- ds
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_WHERE
- TOK_FUNCTION
- in
- TOK_FUNCTION
- struct
- .
- TOK_TABLE_OR_COL
- a
- ds
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- ds
- TOK_FUNCTION
- struct
- '2000-04-08'
- 1
- '2000-04-09'
- TOK_FUNCTION
- struct
- '2000-04-09'
- 2
- '2000-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -971,43 +774,6 @@ PREHOOK: query: explain extended select ds from pcs_t1 where struct(ds, key+key)
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select ds from pcs_t1 where struct(ds, key+key) in (struct('2000-04-08',1), struct('2000-04-09',2))
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcs_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_WHERE
- TOK_FUNCTION
- in
- TOK_FUNCTION
- struct
- TOK_TABLE_OR_COL
- ds
- +
- TOK_TABLE_OR_COL
- key
- TOK_TABLE_OR_COL
- key
- TOK_FUNCTION
- struct
- '2000-04-08'
- 1
- TOK_FUNCTION
- struct
- '2000-04-09'
- 2
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1267,120 +1033,6 @@ SELECT * FROM (
WHERE A.ds = '2008-04-08'
SORT BY A.key, A.value, A.ds
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcs_t1
- X
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- X
- TOK_WHERE
- TOK_FUNCTION
- in
- TOK_FUNCTION
- struct
- .
- TOK_TABLE_OR_COL
- X
- ds
- .
- TOK_TABLE_OR_COL
- X
- key
- TOK_FUNCTION
- struct
- '2000-04-08'
- 1
- TOK_FUNCTION
- struct
- '2000-04-09'
- 2
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcs_t1
- Y
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- Y
- TOK_WHERE
- TOK_FUNCTION
- in
- TOK_FUNCTION
- struct
- .
- TOK_TABLE_OR_COL
- Y
- ds
- .
- TOK_TABLE_OR_COL
- Y
- key
- TOK_FUNCTION
- struct
- '2000-04-08'
- 1
- TOK_FUNCTION
- struct
- '2000-04-09'
- 2
- A
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- =
- .
- TOK_TABLE_OR_COL
- A
- ds
- '2008-04-08'
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- A
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- A
- value
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- A
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1498,42 +1150,6 @@ PREHOOK: query: explain extended select ds from pcs_t1 where struct(case when ds
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select ds from pcs_t1 where struct(case when ds='2000-04-08' then 10 else 20 end) in (struct(10),struct(11))
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcs_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_WHERE
- TOK_FUNCTION
- in
- TOK_FUNCTION
- struct
- TOK_FUNCTION
- when
- =
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
- 10
- 20
- TOK_FUNCTION
- struct
- 10
- TOK_FUNCTION
- struct
- 11
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -1634,45 +1250,6 @@ PREHOOK: query: explain extended select ds from pcs_t1 where struct(ds, key, ran
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select ds from pcs_t1 where struct(ds, key, rand(100)) in (struct('2000-04-08',1,0.2), struct('2000-04-09',2,0.3))
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcs_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_WHERE
- TOK_FUNCTION
- in
- TOK_FUNCTION
- struct
- TOK_TABLE_OR_COL
- ds
- TOK_TABLE_OR_COL
- key
- TOK_FUNCTION
- rand
- 100
- TOK_FUNCTION
- struct
- '2000-04-08'
- 1
- 0.2
- TOK_FUNCTION
- struct
- '2000-04-09'
- 2
- 0.3
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -1822,47 +1399,6 @@ PREHOOK: query: explain extended select ds from pcs_t1 where struct(ds='2000-04-
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select ds from pcs_t1 where struct(ds='2000-04-08' or key = 2, key) in (struct(true,2), struct(false,3))
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcs_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_WHERE
- TOK_FUNCTION
- in
- TOK_FUNCTION
- struct
- or
- =
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
- =
- TOK_TABLE_OR_COL
- key
- 2
- TOK_TABLE_OR_COL
- key
- TOK_FUNCTION
- struct
- true
- 2
- TOK_FUNCTION
- struct
- false
- 3
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
@@ -2036,59 +1572,6 @@ PREHOOK: query: explain extended select ds from pcs_t1 where key = 3 or (struct(
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select ds from pcs_t1 where key = 3 or (struct(ds='2000-04-08' or key = 2, key) in (struct(true,2), struct(false,3)) and key+5 > 0)
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcs_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_WHERE
- or
- =
- TOK_TABLE_OR_COL
- key
- 3
- and
- TOK_FUNCTION
- in
- TOK_FUNCTION
- struct
- or
- =
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
- =
- TOK_TABLE_OR_COL
- key
- 2
- TOK_TABLE_OR_COL
- key
- TOK_FUNCTION
- struct
- true
- 2
- TOK_FUNCTION
- struct
- false
- 3
- >
- +
- TOK_TABLE_OR_COL
- key
- 5
- 0
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/pointlookup2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/pointlookup2.q.out b/ql/src/test/results/clientpositive/pointlookup2.q.out
index 6fc6e7f..d0ad68a 100644
--- a/ql/src/test/results/clientpositive/pointlookup2.q.out
+++ b/ql/src/test/results/clientpositive/pointlookup2.q.out
@@ -98,62 +98,6 @@ from pcr_t1
where (ds='2000-04-08' and key=1) or (ds='2000-04-09' and key=2)
order by key, value, ds
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_WHERE
- or
- and
- =
- TOK_TABLE_OR_COL
- ds
- '2000-04-08'
- =
- TOK_TABLE_OR_COL
- key
- 1
- and
- =
- TOK_TABLE_OR_COL
- ds
- '2000-04-09'
- =
- TOK_TABLE_OR_COL
- key
- 2
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -324,58 +268,6 @@ from pcr_t1 t1 join pcr_t1 t2
on t1.key=t2.key and t1.ds='2000-04-08' and t2.ds='2000-04-08'
order by t1.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- t1
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- t2
- and
- and
- =
- .
- TOK_TABLE_OR_COL
- t1
- key
- .
- TOK_TABLE_OR_COL
- t2
- key
- =
- .
- TOK_TABLE_OR_COL
- t1
- ds
- '2000-04-08'
- =
- .
- TOK_TABLE_OR_COL
- t2
- ds
- '2000-04-08'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- t1
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -590,58 +482,6 @@ from pcr_t1 t1 join pcr_t1 t2
on t1.key=t2.key and t1.ds='2000-04-08' and t2.ds='2000-04-09'
order by t1.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- t1
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- t2
- and
- and
- =
- .
- TOK_TABLE_OR_COL
- t1
- key
- .
- TOK_TABLE_OR_COL
- t2
- key
- =
- .
- TOK_TABLE_OR_COL
- t1
- ds
- '2000-04-08'
- =
- .
- TOK_TABLE_OR_COL
- t2
- ds
- '2000-04-09'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- t1
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -903,75 +743,6 @@ from pcr_t1 t1 join pcr_t2 t2
where (t1.ds='2000-04-08' and t2.key=1) or (t1.ds='2000-04-09' and t2.key=2)
order by t2.key, t2.value, t1.ds
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- t1
- TOK_TABREF
- TOK_TABNAME
- pcr_t2
- t2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- or
- and
- =
- .
- TOK_TABLE_OR_COL
- t1
- ds
- '2000-04-08'
- =
- .
- TOK_TABLE_OR_COL
- t2
- key
- 1
- and
- =
- .
- TOK_TABLE_OR_COL
- t1
- ds
- '2000-04-09'
- =
- .
- TOK_TABLE_OR_COL
- t2
- key
- 2
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- t2
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- t2
- value
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- t1
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -1274,75 +1045,6 @@ from pcr_t1 t1 join pcr_t2 t2
where (t2.ds='2000-04-08' and t1.key=1) or (t2.ds='2000-04-09' and t1.key=2)
order by t1.key, t1.value, t2.ds
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- t1
- TOK_TABREF
- TOK_TABNAME
- pcr_t2
- t2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- or
- and
- =
- .
- TOK_TABLE_OR_COL
- t2
- ds
- '2000-04-08'
- =
- .
- TOK_TABLE_OR_COL
- t1
- key
- 1
- and
- =
- .
- TOK_TABLE_OR_COL
- t2
- ds
- '2000-04-09'
- =
- .
- TOK_TABLE_OR_COL
- t1
- key
- 2
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- t1
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- t1
- value
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- t2
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/pointlookup3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/pointlookup3.q.out b/ql/src/test/results/clientpositive/pointlookup3.q.out
index 2b25b39..39804cf 100644
--- a/ql/src/test/results/clientpositive/pointlookup3.q.out
+++ b/ql/src/test/results/clientpositive/pointlookup3.q.out
@@ -52,69 +52,6 @@ from pcr_t1
where (ds1='2000-04-08' and key=1) or (ds1='2000-04-09' and key=2)
order by key, value, ds1, ds2
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds1
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds2
- TOK_WHERE
- or
- and
- =
- TOK_TABLE_OR_COL
- ds1
- '2000-04-08'
- =
- TOK_TABLE_OR_COL
- key
- 1
- and
- =
- TOK_TABLE_OR_COL
- ds1
- '2000-04-09'
- =
- TOK_TABLE_OR_COL
- key
- 2
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds1
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds2
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -287,79 +224,6 @@ from pcr_t1
where (ds1='2000-04-08' and ds2='2001-04-08' and key=1) or (ds1='2000-04-09' and ds2='2001-04-08' and key=2)
order by key, value, ds1, ds2
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds1
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds2
- TOK_WHERE
- or
- and
- and
- =
- TOK_TABLE_OR_COL
- ds1
- '2000-04-08'
- =
- TOK_TABLE_OR_COL
- ds2
- '2001-04-08'
- =
- TOK_TABLE_OR_COL
- key
- 1
- and
- and
- =
- TOK_TABLE_OR_COL
- ds1
- '2000-04-09'
- =
- TOK_TABLE_OR_COL
- ds2
- '2001-04-08'
- =
- TOK_TABLE_OR_COL
- key
- 2
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds1
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds2
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -485,58 +349,6 @@ from pcr_t1 t1 join pcr_t1 t2
on t1.key=t2.key and t1.ds1='2000-04-08' and t2.ds2='2001-04-08'
order by t1.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- t1
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- t2
- and
- and
- =
- .
- TOK_TABLE_OR_COL
- t1
- key
- .
- TOK_TABLE_OR_COL
- t2
- key
- =
- .
- TOK_TABLE_OR_COL
- t1
- ds1
- '2000-04-08'
- =
- .
- TOK_TABLE_OR_COL
- t2
- ds2
- '2001-04-08'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- t1
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -752,58 +564,6 @@ from pcr_t1 t1 join pcr_t1 t2
on t1.key=t2.key and t1.ds1='2000-04-08' and t2.ds1='2000-04-09'
order by t1.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- t1
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- t2
- and
- and
- =
- .
- TOK_TABLE_OR_COL
- t1
- key
- .
- TOK_TABLE_OR_COL
- t2
- key
- =
- .
- TOK_TABLE_OR_COL
- t1
- ds1
- '2000-04-08'
- =
- .
- TOK_TABLE_OR_COL
- t2
- ds1
- '2000-04-09'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- t1
- key
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -1067,75 +827,6 @@ from pcr_t1 t1 join pcr_t1 t2
where (t1.ds1='2000-04-08' and t2.key=1) or (t1.ds1='2000-04-09' and t2.key=2)
order by t2.key, t2.value, t1.ds1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- t1
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- t2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- or
- and
- =
- .
- TOK_TABLE_OR_COL
- t1
- ds1
- '2000-04-08'
- =
- .
- TOK_TABLE_OR_COL
- t2
- key
- 1
- and
- =
- .
- TOK_TABLE_OR_COL
- t1
- ds1
- '2000-04-09'
- =
- .
- TOK_TABLE_OR_COL
- t2
- key
- 2
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- t2
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- t2
- value
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- t1
- ds1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/pointlookup4.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/pointlookup4.q.out b/ql/src/test/results/clientpositive/pointlookup4.q.out
index 6236272..1ff7593 100644
--- a/ql/src/test/results/clientpositive/pointlookup4.q.out
+++ b/ql/src/test/results/clientpositive/pointlookup4.q.out
@@ -52,79 +52,6 @@ from pcr_t1
where (ds1='2000-04-08' and ds2='2001-04-08' and key=1) or (ds1='2000-04-09' and ds2='2001-04-09' and key=2)
order by key, value, ds1, ds2
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds1
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds2
- TOK_WHERE
- or
- and
- and
- =
- TOK_TABLE_OR_COL
- ds1
- '2000-04-08'
- =
- TOK_TABLE_OR_COL
- ds2
- '2001-04-08'
- =
- TOK_TABLE_OR_COL
- key
- 1
- and
- and
- =
- TOK_TABLE_OR_COL
- ds1
- '2000-04-09'
- =
- TOK_TABLE_OR_COL
- ds2
- '2001-04-09'
- =
- TOK_TABLE_OR_COL
- key
- 2
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds1
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds2
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -297,79 +224,6 @@ from pcr_t1
where (ds1='2000-04-08' and ds2='2001-04-08' and key=1) or (ds1='2000-04-09' and ds2='2001-04-09' and key=2)
order by key, value, ds1, ds2
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- pcr_t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds1
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds2
- TOK_WHERE
- or
- and
- and
- =
- TOK_TABLE_OR_COL
- ds1
- '2000-04-08'
- =
- TOK_TABLE_OR_COL
- ds2
- '2001-04-08'
- =
- TOK_TABLE_OR_COL
- key
- 1
- and
- and
- =
- TOK_TABLE_OR_COL
- ds1
- '2000-04-09'
- =
- TOK_TABLE_OR_COL
- ds2
- '2001-04-09'
- =
- TOK_TABLE_OR_COL
- key
- 2
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- value
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds1
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds2
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/ppd_join_filter.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/ppd_join_filter.q.out b/ql/src/test/results/clientpositive/ppd_join_filter.q.out
index 74d2de1..d8e5009 100644
--- a/ql/src/test/results/clientpositive/ppd_join_filter.q.out
+++ b/ql/src/test/results/clientpositive/ppd_join_filter.q.out
@@ -24,101 +24,6 @@ group by key
) b
on a.key=b.key and b.k1 < 5
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src
- a
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- k
- TOK_SELEXPR
- +
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- 1
- k1
- TOK_SELEXPR
- +
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- 2
- k2
- TOK_SELEXPR
- +
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- 3
- k3
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- <
- .
- TOK_TABLE_OR_COL
- b
- k1
- 5
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- k2
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- k3
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
@@ -441,101 +346,6 @@ group by key
) b
on a.key=b.key and b.k1 < 5
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src
- a
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- k
- TOK_SELEXPR
- +
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- 1
- k1
- TOK_SELEXPR
- +
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- 2
- k2
- TOK_SELEXPR
- +
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- 3
- k3
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- <
- .
- TOK_TABLE_OR_COL
- b
- k1
- 5
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- k2
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- k3
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
@@ -858,101 +668,6 @@ group by key
) b
on a.key=b.key and b.k1 < 5
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src
- a
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- k
- TOK_SELEXPR
- +
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- 1
- k1
- TOK_SELEXPR
- +
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- 2
- k2
- TOK_SELEXPR
- +
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- 3
- k3
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- <
- .
- TOK_TABLE_OR_COL
- b
- k1
- 5
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- k2
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- k3
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
@@ -1275,101 +990,6 @@ group by key
) b
on a.key=b.key and b.k1 < 5
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src
- a
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- k
- TOK_SELEXPR
- +
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- 1
- k1
- TOK_SELEXPR
- +
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- 2
- k2
- TOK_SELEXPR
- +
- TOK_FUNCTION
- min
- TOK_TABLE_OR_COL
- key
- 3
- k3
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- <
- .
- TOK_TABLE_OR_COL
- b
- k1
- 5
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- k2
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- k3
-
-
STAGE DEPENDENCIES:
Stage-2 is a root stage
Stage-1 depends on stages: Stage-2
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/ppd_union_view.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/ppd_union_view.q.out b/ql/src/test/results/clientpositive/ppd_union_view.q.out
index 36bb214..435b6f9 100644
--- a/ql/src/test/results/clientpositive/ppd_union_view.q.out
+++ b/ql/src/test/results/clientpositive/ppd_union_view.q.out
@@ -138,27 +138,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from t1 where ds = '2011-10-13'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- ds
- '2011-10-13'
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-2 depends on stages: Stage-3
@@ -487,27 +466,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: explain extended
select * from t1 where ds = '2011-10-15'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- t1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- =
- TOK_TABLE_OR_COL
- ds
- '2011-10-15'
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-2 depends on stages: Stage-3
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/ppd_vc.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/ppd_vc.q.out b/ql/src/test/results/clientpositive/ppd_vc.q.out
index cc25e80..a82a709 100644
--- a/ql/src/test/results/clientpositive/ppd_vc.q.out
+++ b/ql/src/test/results/clientpositive/ppd_vc.q.out
@@ -8,27 +8,6 @@ POSTHOOK: query: --HIVE-3926 PPD on virtual column of partitioned table is not w
explain extended
select * from srcpart where BLOCK__OFFSET__INSIDE__FILE<100
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- BLOCK__OFFSET__INSIDE__FILE
- 100
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -332,77 +311,6 @@ select b.* from src a join
(select *,BLOCK__OFFSET__INSIDE__FILE from srcpart where BLOCK__OFFSET__INSIDE__FILE<100) b
on a.key=b.key AND b.BLOCK__OFFSET__INSIDE__FILE<50 order by ds,hr,BLOCK__OFFSET__INSIDE__FILE
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src
- a
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- BLOCK__OFFSET__INSIDE__FILE
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- BLOCK__OFFSET__INSIDE__FILE
- 100
- b
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- <
- .
- TOK_TABLE_OR_COL
- b
- BLOCK__OFFSET__INSIDE__FILE
- 50
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- b
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- hr
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- BLOCK__OFFSET__INSIDE__FILE
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/ppr_allchildsarenull.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/ppr_allchildsarenull.q.out b/ql/src/test/results/clientpositive/ppr_allchildsarenull.q.out
index b1f280f..9e9e61f 100644
--- a/ql/src/test/results/clientpositive/ppr_allchildsarenull.q.out
+++ b/ql/src/test/results/clientpositive/ppr_allchildsarenull.q.out
@@ -16,50 +16,6 @@ SELECT
THEN 1
ELSE 0 end ) > 0
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- TOK_INT
- TOK_TABLE_OR_COL
- key
- user_id
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
- >
- TOK_FUNCTION
- WHEN
- OR
- LIKE
- TOK_TABLE_OR_COL
- value
- 'aaa%'
- LIKE
- TOK_TABLE_OR_COL
- value
- 'vvv%'
- 1
- 0
- 0
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -249,50 +205,6 @@ SELECT
THEN 1
ELSE 0 end ) > 0
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- TOK_INT
- TOK_TABLE_OR_COL
- key
- user_id
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- ds
- '2008-04-08'
- >
- TOK_FUNCTION
- WHEN
- OR
- LIKE
- TOK_TABLE_OR_COL
- value
- 'aaa%'
- LIKE
- TOK_TABLE_OR_COL
- value
- 'vvv%'
- 1
- 0
- 0
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/push_or.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/push_or.q.out b/ql/src/test/results/clientpositive/push_or.q.out
index bc5c930..cc448c1 100644
--- a/ql/src/test/results/clientpositive/push_or.q.out
+++ b/ql/src/test/results/clientpositive/push_or.q.out
@@ -34,48 +34,6 @@ PREHOOK: query: explain extended select key, value, ds from push_or where ds='20
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select key, value, ds from push_or where ds='2000-04-09' or key=5 order by key, ds
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- push_or
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ds
- TOK_WHERE
- or
- =
- TOK_TABLE_OR_COL
- ds
- '2000-04-09'
- =
- TOK_TABLE_OR_COL
- key
- 5
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- TOK_TABLE_OR_COL
- ds
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/rand_partitionpruner1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/rand_partitionpruner1.q.out b/ql/src/test/results/clientpositive/rand_partitionpruner1.q.out
index 5dcb865..e03c055 100644
--- a/ql/src/test/results/clientpositive/rand_partitionpruner1.q.out
+++ b/ql/src/test/results/clientpositive/rand_partitionpruner1.q.out
@@ -4,28 +4,6 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- scanning un-partitioned data
explain extended select * from src where rand(1) < 0.1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- <
- TOK_FUNCTION
- rand
- 1
- 0.1
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/rand_partitionpruner2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/rand_partitionpruner2.q.out b/ql/src/test/results/clientpositive/rand_partitionpruner2.q.out
index 4559b39..d88c53d 100644
--- a/ql/src/test/results/clientpositive/rand_partitionpruner2.q.out
+++ b/ql/src/test/results/clientpositive/rand_partitionpruner2.q.out
@@ -18,39 +18,6 @@ POSTHOOK: query: explain extended
insert overwrite table tmptable
select a.* from srcpart a where rand(1) < 0.1 and a.ds = '2008-04-08'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- srcpart
- a
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- tmptable
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- a
- TOK_WHERE
- and
- <
- TOK_FUNCTION
- rand
- 1
- 0.1
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '2008-04-08'
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1 , consists of Stage-4, Stage-3, Stage-5
[37/50] [abbrv] hive git commit: HIVE-13424: Refactoring the code to
pass a QueryState object rather than HiveConf object (Reviewed by Sergey
Shelukhin)
Posted by jd...@apache.org.
HIVE-13424: Refactoring the code to pass a QueryState object rather than HiveConf object (Reviewed by Sergey Shelukhin)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/caa3ec76
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/caa3ec76
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/caa3ec76
Branch: refs/heads/llap
Commit: caa3ec761c18d822259116fde9ff8a4f181df179
Parents: 86bdcbc
Author: Aihua Xu <ai...@apache.org>
Authored: Tue Mar 15 13:12:57 2016 -0400
Committer: Aihua Xu <ai...@apache.org>
Committed: Mon Apr 25 16:30:09 2016 -0400
----------------------------------------------------------------------
.../org/apache/hadoop/hive/cli/CliDriver.java | 5 -
.../mapreduce/TestHCatMultiOutputFormat.java | 7 +-
.../org/apache/hadoop/hive/ql/QTestUtil.java | 9 +-
.../java/org/apache/hadoop/hive/ql/Driver.java | 93 ++++-----------
.../org/apache/hadoop/hive/ql/QueryState.java | 114 +++++++++++++++++++
.../hadoop/hive/ql/exec/ColumnStatsTask.java | 5 +-
.../hive/ql/exec/ColumnStatsUpdateTask.java | 6 +-
.../org/apache/hadoop/hive/ql/exec/DDLTask.java | 9 +-
.../apache/hadoop/hive/ql/exec/ExplainTask.java | 4 +-
.../apache/hadoop/hive/ql/exec/FetchTask.java | 5 +-
.../hadoop/hive/ql/exec/FunctionTask.java | 6 +-
.../hadoop/hive/ql/exec/StatsNoJobTask.java | 5 +-
.../org/apache/hadoop/hive/ql/exec/Task.java | 6 +-
.../hadoop/hive/ql/exec/mr/ExecDriver.java | 11 +-
.../hive/ql/exec/mr/HadoopJobExecHelper.java | 21 ++--
.../hadoop/hive/ql/exec/mr/MapredLocalTask.java | 7 +-
.../hadoop/hive/ql/exec/spark/SparkTask.java | 7 +-
.../hadoop/hive/ql/history/HiveHistoryImpl.java | 6 +-
.../apache/hadoop/hive/ql/hooks/ATSHook.java | 4 +-
.../hadoop/hive/ql/hooks/HookContext.java | 11 +-
.../hive/ql/hooks/PostExecutePrinter.java | 12 +-
.../hadoop/hive/ql/hooks/PreExecutePrinter.java | 14 ++-
.../hive/ql/index/TableBasedIndexHandler.java | 2 -
.../hadoop/hive/ql/io/merge/MergeFileTask.java | 7 +-
.../ql/io/rcfile/stats/PartialScanTask.java | 12 +-
.../io/rcfile/truncate/ColumnTruncateTask.java | 7 +-
.../hive/ql/optimizer/GenMRTableScan1.java | 2 +-
.../index/RewriteParseContextGenerator.java | 7 +-
.../RewriteQueryUsingAggregateIndexCtx.java | 2 +-
.../hive/ql/parse/BaseSemanticAnalyzer.java | 14 ++-
.../hadoop/hive/ql/parse/CalcitePlanner.java | 11 +-
.../ql/parse/ColumnStatsSemanticAnalyzer.java | 7 +-
.../hive/ql/parse/DDLSemanticAnalyzer.java | 13 ++-
.../parse/ExplainSQRewriteSemanticAnalyzer.java | 8 +-
.../hive/ql/parse/ExplainSemanticAnalyzer.java | 7 +-
.../hive/ql/parse/ExportSemanticAnalyzer.java | 5 +-
.../hive/ql/parse/FunctionSemanticAnalyzer.java | 5 +-
.../hive/ql/parse/ImportSemanticAnalyzer.java | 5 +-
.../hive/ql/parse/LoadSemanticAnalyzer.java | 5 +-
.../hive/ql/parse/MacroSemanticAnalyzer.java | 12 +-
.../hadoop/hive/ql/parse/ParseContext.java | 14 ++-
.../hive/ql/parse/ProcessAnalyzeTable.java | 2 +-
.../hadoop/hive/ql/parse/SemanticAnalyzer.java | 35 +++---
.../hive/ql/parse/SemanticAnalyzerFactory.java | 57 +++++-----
.../hadoop/hive/ql/parse/TaskCompiler.java | 9 +-
.../hadoop/hive/ql/parse/TezCompiler.java | 5 +-
.../ql/parse/UpdateDeleteSemanticAnalyzer.java | 5 +-
.../parse/spark/SparkProcessAnalyzeTable.java | 2 +-
.../hadoop/hive/ql/session/SessionState.java | 106 ++++++-----------
.../hadoop/hive/ql/exec/TestExecDriver.java | 7 +-
.../ql/parse/TestMacroSemanticAnalyzer.java | 7 +-
.../hadoop/hive/ql/parse/TestQBCompact.java | 8 +-
.../ql/parse/TestQBJoinTreeApplyPredicate.java | 7 +-
.../hadoop/hive/ql/parse/TestQBSubQuery.java | 7 +-
.../ql/parse/TestSemanticAnalyzerFactory.java | 9 +-
.../parse/TestUpdateDeleteSemanticAnalyzer.java | 9 +-
.../authorization/AuthorizationTestUtil.java | 14 +--
.../parse/authorization/PrivilegesTestBase.java | 5 +-
.../TestHiveAuthorizationTaskFactory.java | 12 +-
.../parse/authorization/TestPrivilegesV1.java | 9 +-
.../parse/authorization/TestPrivilegesV2.java | 8 +-
.../hive/service/cli/operation/Operation.java | 19 ++--
.../service/cli/operation/SQLOperation.java | 49 ++------
.../cli/operation/SQLOperationDisplay.java | 2 +-
.../service/cli/session/HiveSessionImpl.java | 40 +++----
65 files changed, 508 insertions(+), 437 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/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 2bcb56d..f467c81 100644
--- a/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java
+++ b/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java
@@ -121,8 +121,6 @@ public class CliDriver {
ss.updateThreadName();
- conf.set(HiveConf.ConfVars.HIVEQUERYID.varname, QueryPlan.makeQueryId());
-
// Flush the print stream, so it doesn't include output from the last command
ss.err.flush();
String cmd_trimmed = cmd.trim();
@@ -401,9 +399,6 @@ public class CliDriver {
}
ret = processCmd(command);
- //wipe cli query state
- SessionState ss = SessionState.get();
- ss.setCommandType(null);
command = "";
lastRet = ret;
boolean ignoreErrors = HiveConf.getBoolVar(conf, HiveConf.ConfVars.CLIIGNOREERRORS);
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/hcatalog/core/src/test/java/org/apache/hive/hcatalog/mapreduce/TestHCatMultiOutputFormat.java
----------------------------------------------------------------------
diff --git a/hcatalog/core/src/test/java/org/apache/hive/hcatalog/mapreduce/TestHCatMultiOutputFormat.java b/hcatalog/core/src/test/java/org/apache/hive/hcatalog/mapreduce/TestHCatMultiOutputFormat.java
index 1964410..9fa263d 100644
--- a/hcatalog/core/src/test/java/org/apache/hive/hcatalog/mapreduce/TestHCatMultiOutputFormat.java
+++ b/hcatalog/core/src/test/java/org/apache/hive/hcatalog/mapreduce/TestHCatMultiOutputFormat.java
@@ -26,6 +26,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Random;
+
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.FileUtil;
@@ -40,6 +41,7 @@ import org.apache.hadoop.hive.metastore.api.SerDeInfo;
import org.apache.hadoop.hive.metastore.api.StorageDescriptor;
import org.apache.hadoop.hive.metastore.api.Table;
import org.apache.hadoop.hive.ql.CompilationOpContext;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.FetchTask;
import org.apache.hadoop.hive.ql.exec.Utilities;
import org.apache.hadoop.hive.ql.metadata.Hive;
@@ -369,7 +371,8 @@ public class TestHCatMultiOutputFormat {
* @throws Exception if any error occurs
*/
private List<String> getTableData(String table, String database) throws Exception {
- HiveConf conf = new HiveConf();
+ QueryState queryState = new QueryState(null);
+ HiveConf conf = queryState.getConf();
conf.addResource("hive-site.xml");
ArrayList<String> results = new ArrayList<String>();
ArrayList<String> temp = new ArrayList<String>();
@@ -392,7 +395,7 @@ public class TestHCatMultiOutputFormat {
}
FetchTask task = new FetchTask();
task.setWork(work);
- task.initialize(conf, null, null, new CompilationOpContext());
+ task.initialize(queryState, null, null, new CompilationOpContext());
task.fetch(temp);
for (String str : temp) {
results.add(str.replace("\t", ","));
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java
----------------------------------------------------------------------
diff --git a/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java b/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java
index 8473436..a6e8efa 100644
--- a/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java
+++ b/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java
@@ -163,6 +163,7 @@ public class QTestUtil {
private static MiniClusterType clusterType = MiniClusterType.none;
private ParseDriver pd;
protected Hive db;
+ protected QueryState queryState;
protected HiveConf conf;
private Driver drv;
private BaseSemanticAnalyzer sem;
@@ -389,10 +390,12 @@ public class QTestUtil {
HiveConf.setHiveSiteLocation(new URL("file://"+ new File(confDir).toURI().getPath() + "/hive-site.xml"));
System.out.println("Setting hive-site: "+HiveConf.getHiveSiteLocation());
}
+
+ queryState = new QueryState(new HiveConf(Driver.class));
if (useHBaseMetastore) {
startMiniHBaseCluster();
} else {
- conf = new HiveConf(Driver.class);
+ conf = queryState.getConf();
}
this.hadoopVer = getHadoopMainVersion(hadoopVer);
qMap = new TreeMap<String, String>();
@@ -922,7 +925,7 @@ public class QTestUtil {
drv = new Driver(conf);
drv.init();
pd = new ParseDriver();
- sem = new SemanticAnalyzer(conf);
+ sem = new SemanticAnalyzer(queryState);
}
public void init(String tname) throws Exception {
@@ -1648,7 +1651,7 @@ public class QTestUtil {
public void resetParser() throws SemanticException {
drv.init();
pd = new ParseDriver();
- sem = new SemanticAnalyzer(conf);
+ sem = new SemanticAnalyzer(queryState);
}
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/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 2a06962..7f72efb 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
@@ -165,6 +165,9 @@ public class Driver implements CommandProcessor {
// For WebUI. Kept alive after queryPlan is freed.
private final QueryDisplay queryDisplay = new QueryDisplay();
+ // Query specific info
+ private QueryState queryState;
+
private boolean checkConcurrency() {
boolean supportConcurrency = conf.getBoolVar(HiveConf.ConfVars.HIVE_SUPPORT_CONCURRENCY);
if (!supportConcurrency) {
@@ -290,22 +293,28 @@ public class Driver implements CommandProcessor {
this.maxRows = maxRows;
}
+ public Driver() {
+ this(new QueryState((SessionState.get() != null) ?
+ SessionState.get().getConf() : new HiveConf()), null);
+ }
+
/**
* for backwards compatibility with current tests
*/
public Driver(HiveConf conf) {
- this.conf = conf;
- isParallelEnabled = (conf != null)
- && HiveConf.getBoolVar(conf, ConfVars.HIVE_SERVER2_PARALLEL_COMPILATION);
+ this(new QueryState(conf), null);
}
public Driver(HiveConf conf, String userName) {
- this(conf);
- this.userName = userName;
+ this(new QueryState(conf), userName);
}
- public Driver() {
- this((SessionState.get() != null) ? SessionState.get().getConf() : null);
+ public Driver(QueryState queryState, String userName) {
+ this.queryState = queryState;
+ this.conf = queryState.getConf();
+ isParallelEnabled = (conf != null)
+ && HiveConf.getBoolVar(conf, ConfVars.HIVE_SERVER2_PARALLEL_COMPILATION);
+ this.userName = userName;
}
/**
@@ -320,52 +329,6 @@ public class Driver implements CommandProcessor {
}
/**
- * Hold state variables specific to each query being executed, that may not
- * be consistent in the overall SessionState
- */
- private static class QueryState {
- private HiveOperation op;
- private String cmd;
- private boolean init = false;
-
- /**
- * Initialize the queryState with the query state variables
- */
- public void init(HiveOperation op, String cmd) {
- this.op = op;
- this.cmd = cmd;
- this.init = true;
- }
-
- public boolean isInitialized() {
- return this.init;
- }
-
- public HiveOperation getOp() {
- return this.op;
- }
-
- public String getCmd() {
- return this.cmd;
- }
- }
-
- public void saveSession(QueryState qs) {
- SessionState oldss = SessionState.get();
- if (oldss != null && oldss.getHiveOperation() != null) {
- qs.init(oldss.getHiveOperation(), oldss.getCmd());
- }
- }
-
- public void restoreSession(QueryState qs) {
- SessionState ss = SessionState.get();
- if (ss != null && qs != null && qs.isInitialized()) {
- ss.setCmd(qs.getCmd());
- ss.setCommandType(qs.getOp());
- }
- }
-
- /**
* Compile a new query, but potentially reset taskID counter. Not resetting task counter
* is useful for generating re-entrant QL queries.
* @param command The HiveQL query to compile
@@ -392,9 +355,6 @@ public class Driver implements CommandProcessor {
LOG.warn("WARNING! Query command could not be redacted." + e);
}
- //holder for parent command type/string when executing reentrant queries
- QueryState queryState = new QueryState();
-
if (ctx != null) {
close();
}
@@ -402,7 +362,6 @@ public class Driver implements CommandProcessor {
if (resetTaskIds) {
TaskFactory.resetId();
}
- saveSession(queryState);
String queryId = conf.getVar(HiveConf.ConfVars.HIVEQUERYID);
@@ -447,7 +406,7 @@ public class Driver implements CommandProcessor {
perfLogger.PerfLogBegin(CLASS_NAME, PerfLogger.ANALYZE);
- BaseSemanticAnalyzer sem = SemanticAnalyzerFactory.get(conf, tree);
+ BaseSemanticAnalyzer sem = SemanticAnalyzerFactory.get(queryState, tree);
List<HiveSemanticAnalyzerHook> saHooks =
getHooks(HiveConf.ConfVars.SEMANTIC_ANALYZER_HOOK,
HiveSemanticAnalyzerHook.class);
@@ -491,7 +450,7 @@ public class Driver implements CommandProcessor {
schema = getSchema(sem, conf);
plan = new QueryPlan(queryStr, sem, perfLogger.getStartTime(PerfLogger.DRIVER_RUN), queryId,
- SessionState.get().getHiveOperation(), schema, queryDisplay);
+ queryState.getHiveOperation(), schema, queryDisplay);
conf.setQueryString(queryStr);
@@ -500,7 +459,7 @@ public class Driver implements CommandProcessor {
// initialize FetchTask right here
if (plan.getFetchTask() != null) {
- plan.getFetchTask().initialize(conf, plan, null, ctx.getOpContext());
+ plan.getFetchTask().initialize(queryState, plan, null, ctx.getOpContext());
}
//do the authorization check
@@ -509,7 +468,7 @@ public class Driver implements CommandProcessor {
try {
perfLogger.PerfLogBegin(CLASS_NAME, PerfLogger.DO_AUTHORIZATION);
- doAuthorization(sem, command);
+ doAuthorization(queryState.getHiveOperation(), sem, command);
} catch (AuthorizationException authExp) {
console.printError("Authorization failed:" + authExp.getMessage()
+ ". Use SHOW GRANT to get more details.");
@@ -562,7 +521,6 @@ public class Driver implements CommandProcessor {
double duration = perfLogger.PerfLogEnd(CLASS_NAME, PerfLogger.COMPILE)/1000.00;
ImmutableMap<String, Long> compileHMSTimings = dumpMetaCallTimingWithoutEx("compilation");
queryDisplay.setHmsTimings(QueryDisplay.Phase.COMPILATION, compileHMSTimings);
- restoreSession(queryState);
LOG.info("Completed compiling command(queryId=" + queryId + "); Time taken: " + duration + " seconds");
}
}
@@ -589,7 +547,7 @@ public class Driver implements CommandProcessor {
ASTNode astTree) throws IOException {
String ret = null;
ExplainTask task = new ExplainTask();
- task.initialize(conf, plan, null, ctx.getOpContext());
+ task.initialize(queryState, plan, null, ctx.getOpContext());
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(baos);
try {
@@ -612,10 +570,9 @@ public class Driver implements CommandProcessor {
* @throws HiveException
* @throws AuthorizationException
*/
- public static void doAuthorization(BaseSemanticAnalyzer sem, String command)
+ public static void doAuthorization(HiveOperation op, BaseSemanticAnalyzer sem, String command)
throws HiveException, AuthorizationException {
SessionState ss = SessionState.get();
- HiveOperation op = ss.getHiveOperation();
Hive db = sem.getDb();
Set<ReadEntity> additionalInputs = new HashSet<ReadEntity>();
@@ -1530,7 +1487,7 @@ public class Driver implements CommandProcessor {
resStream = null;
SessionState ss = SessionState.get();
- hookContext = new HookContext(plan, conf, ctx.getPathToCS(), ss.getUserName(),
+ hookContext = new HookContext(plan, queryState, ctx.getPathToCS(), ss.getUserName(),
ss.getUserIpAddress(), operationId);
hookContext.setHookType(HookContext.HookType.PRE_EXEC_HOOK);
@@ -1857,7 +1814,7 @@ public class Driver implements CommandProcessor {
cxt.incCurJobNo(1);
console.printInfo("Launching Job " + cxt.getCurJobNo() + " out of " + jobs);
}
- tsk.initialize(conf, plan, cxt, ctx.getOpContext());
+ tsk.initialize(queryState, plan, cxt, ctx.getOpContext());
TaskResult tskRes = new TaskResult();
TaskRunner tskRun = new TaskRunner(tsk, tskRes);
@@ -1958,7 +1915,7 @@ public class Driver implements CommandProcessor {
throw new IOException("Error closing the current fetch task", e);
}
// FetchTask should not depend on the plan.
- fetchTask.initialize(conf, null, null, ctx.getOpContext());
+ fetchTask.initialize(queryState, null, null, ctx.getOpContext());
} else {
ctx.resetStream();
resStream = null;
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/QueryState.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/QueryState.java b/ql/src/java/org/apache/hadoop/hive/ql/QueryState.java
new file mode 100644
index 0000000..78715d8
--- /dev/null
+++ b/ql/src/java/org/apache/hadoop/hive/ql/QueryState.java
@@ -0,0 +1,114 @@
+/**
+ * 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;
+
+import java.sql.Timestamp;
+import java.util.Map;
+
+import org.apache.hadoop.hive.conf.HiveConf;
+import org.apache.hadoop.hive.ql.metadata.HiveException;
+import org.apache.hadoop.hive.ql.plan.HiveOperation;
+
+/**
+ * The class to store query level info such as queryId. Multiple queries can run
+ * in the same session, so SessionState is to hold common session related info, and
+ * each QueryState is to hold query related info.
+ *
+ */
+public class QueryState {
+ /**
+ * current configuration.
+ */
+ private final HiveConf queryConf;
+ /**
+ * type of the command.
+ */
+ private HiveOperation commandType;
+
+ public QueryState(HiveConf conf) {
+ this(conf, null, false);
+ }
+
+ public QueryState(HiveConf conf, Map<String, String> confOverlay, boolean runAsync) {
+ this.queryConf = createConf(conf, confOverlay, runAsync);
+ }
+
+ /**
+ * If there are query specific settings to overlay, then create a copy of config
+ * There are two cases we need to clone the session config that's being passed to hive driver
+ * 1. Async query -
+ * If the client changes a config setting, that shouldn't reflect in the execution already underway
+ * 2. confOverlay -
+ * The query specific settings should only be applied to the query config and not session
+ * @return new configuration
+ */
+ private HiveConf createConf(HiveConf conf,
+ Map<String, String> confOverlay,
+ boolean runAsync) {
+
+ if ( (confOverlay != null && !confOverlay.isEmpty()) ) {
+ conf = (conf == null ? new HiveConf() : new HiveConf(conf));
+
+ // apply overlay query specific settings, if any
+ for (Map.Entry<String, String> confEntry : confOverlay.entrySet()) {
+ try {
+ conf.verifyAndSet(confEntry.getKey(), confEntry.getValue());
+ } catch (IllegalArgumentException e) {
+ throw new RuntimeException("Error applying statement specific settings", e);
+ }
+ }
+ } else if (runAsync) {
+ conf = (conf == null ? new HiveConf() : new HiveConf(conf));
+ }
+
+ if (conf == null) {
+ conf = new HiveConf();
+ }
+
+ conf.setVar(HiveConf.ConfVars.HIVEQUERYID, QueryPlan.makeQueryId());
+ return conf;
+ }
+
+ public String getQueryId() {
+ return (queryConf.getVar(HiveConf.ConfVars.HIVEQUERYID));
+ }
+
+ public String getQueryString() {
+ return queryConf.getQueryString();
+ }
+
+ public String getCommandType() {
+ if (commandType == null) {
+ return null;
+ }
+ return commandType.getOperationName();
+ }
+
+ public HiveOperation getHiveOperation() {
+ return commandType;
+ }
+
+ public void setCommandType(HiveOperation commandType) {
+ this.commandType = commandType;
+ }
+
+ public HiveConf getConf() {
+ return queryConf;
+ }
+}
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsTask.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsTask.java
index 9059928..05dfa3b 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsTask.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsTask.java
@@ -49,6 +49,7 @@ import org.apache.hadoop.hive.metastore.api.StringColumnStatsData;
import org.apache.hadoop.hive.ql.CompilationOpContext;
import org.apache.hadoop.hive.ql.DriverContext;
import org.apache.hadoop.hive.ql.QueryPlan;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.metadata.Hive;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.ql.metadata.Table;
@@ -83,9 +84,9 @@ public class ColumnStatsTask extends Task<ColumnStatsWork> implements Serializab
}
@Override
- public void initialize(HiveConf conf, QueryPlan queryPlan, DriverContext ctx,
+ public void initialize(QueryState queryState, QueryPlan queryPlan, DriverContext ctx,
CompilationOpContext opContext) {
- super.initialize(conf, queryPlan, ctx, opContext);
+ super.initialize(queryState, queryPlan, ctx, opContext);
work.initializeForFetch(opContext);
try {
JobConf job = new JobConf(conf);
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsUpdateTask.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsUpdateTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsUpdateTask.java
index bca8a6c..9a6e5c9 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsUpdateTask.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsUpdateTask.java
@@ -27,7 +27,6 @@ import java.util.Map.Entry;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.metastore.api.BinaryColumnStatsData;
import org.apache.hadoop.hive.metastore.api.BooleanColumnStatsData;
import org.apache.hadoop.hive.metastore.api.ColumnStatistics;
@@ -45,6 +44,7 @@ import org.apache.hadoop.hive.metastore.api.StringColumnStatsData;
import org.apache.hadoop.hive.ql.CompilationOpContext;
import org.apache.hadoop.hive.ql.DriverContext;
import org.apache.hadoop.hive.ql.QueryPlan;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.metadata.Hive;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.ql.parse.SemanticException;
@@ -68,9 +68,9 @@ public class ColumnStatsUpdateTask extends Task<ColumnStatsUpdateWork> {
.getLogger(ColumnStatsUpdateTask.class);
@Override
- public void initialize(HiveConf conf, QueryPlan queryPlan, DriverContext ctx,
+ public void initialize(QueryState queryState, QueryPlan queryPlan, DriverContext ctx,
CompilationOpContext opContext) {
- super.initialize(conf, queryPlan, ctx, opContext);
+ super.initialize(queryState, queryPlan, ctx, opContext);
}
private ColumnStatistics constructColumnStatsFromInput()
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
index b26f09d..d2c3ca8 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
@@ -91,6 +91,7 @@ import org.apache.hadoop.hive.ql.Context;
import org.apache.hadoop.hive.ql.DriverContext;
import org.apache.hadoop.hive.ql.ErrorMsg;
import org.apache.hadoop.hive.ql.QueryPlan;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.ArchiveUtils.PartSpecInfo;
import org.apache.hadoop.hive.ql.exec.tez.TezTask;
import org.apache.hadoop.hive.ql.hooks.LineageInfo.DataContainer;
@@ -259,9 +260,9 @@ public class DDLTask extends Task<DDLWork> implements Serializable {
}
@Override
- public void initialize(HiveConf conf, QueryPlan queryPlan, DriverContext ctx,
+ public void initialize(QueryState queryState, QueryPlan queryPlan, DriverContext ctx,
CompilationOpContext opContext) {
- super.initialize(conf, queryPlan, ctx, opContext);
+ super.initialize(queryState, queryPlan, ctx, opContext);
// Pick the formatter to use to display the results. Either the
// normal human readable output or a json object.
@@ -663,7 +664,7 @@ public class DDLTask extends Task<DDLWork> implements Serializable {
}
// initialize the task and execute
- task.initialize(db.getConf(), getQueryPlan(), driverCxt, opContext);
+ task.initialize(queryState, getQueryPlan(), driverCxt, opContext);
int ret = task.execute(driverCxt);
return ret;
}
@@ -4160,7 +4161,7 @@ public class DDLTask extends Task<DDLWork> implements Serializable {
truncateWork.setMapperCannotSpanPartns(true);
DriverContext driverCxt = new DriverContext();
ColumnTruncateTask taskExec = new ColumnTruncateTask();
- taskExec.initialize(db.getConf(), null, driverCxt, null);
+ taskExec.initialize(queryState, null, driverCxt, null);
taskExec.setWork(truncateWork);
taskExec.setQueryPlan(this.getQueryPlan());
return taskExec.execute(driverCxt);
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/exec/ExplainTask.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/ExplainTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/ExplainTask.java
index 4ce0864..403d57c 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/ExplainTask.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/ExplainTask.java
@@ -312,7 +312,7 @@ public class ExplainTask extends Task<ExplainWork> implements Serializable {
throws Exception {
BaseSemanticAnalyzer analyzer = work.getAnalyzer();
- HiveOperation operation = SessionState.get().getHiveOperation();
+ HiveOperation operation = queryState.getHiveOperation();
JSONObject object = new JSONObject(new LinkedHashMap<>());
Object jsonInput = toJson("INPUTS", toString(analyzer.getInputs()), out, work);
@@ -349,7 +349,7 @@ public class ExplainTask extends Task<ExplainWork> implements Serializable {
SessionState.get().setActiveAuthorizer(authorizer);
try {
- Driver.doAuthorization(analyzer, "");
+ Driver.doAuthorization(queryState.getHiveOperation(), analyzer, "");
} finally {
SessionState.get().setActiveAuthorizer(delegate);
}
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/exec/FetchTask.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/FetchTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/FetchTask.java
index b96ea04..ec9e98e 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/FetchTask.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/FetchTask.java
@@ -29,6 +29,7 @@ import org.apache.hadoop.hive.ql.CommandNeedRetryException;
import org.apache.hadoop.hive.ql.CompilationOpContext;
import org.apache.hadoop.hive.ql.DriverContext;
import org.apache.hadoop.hive.ql.QueryPlan;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.mr.ExecMapper;
import org.apache.hadoop.hive.ql.io.AcidUtils;
import org.apache.hadoop.hive.ql.io.HiveInputFormat;
@@ -59,9 +60,9 @@ public class FetchTask extends Task<FetchWork> implements Serializable {
}
@Override
- public void initialize(HiveConf conf, QueryPlan queryPlan, DriverContext ctx,
+ public void initialize(QueryState queryState, QueryPlan queryPlan, DriverContext ctx,
CompilationOpContext opContext) {
- super.initialize(conf, queryPlan, ctx, opContext);
+ super.initialize(queryState, queryPlan, ctx, opContext);
work.initializeForFetch(opContext);
try {
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionTask.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionTask.java
index 1b971fc..42cdc84 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionTask.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionTask.java
@@ -25,6 +25,7 @@ import java.util.List;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.hadoop.fs.FileSystem;
@@ -37,6 +38,7 @@ import org.apache.hadoop.hive.ql.exec.FunctionInfo.FunctionResource;
import org.apache.hadoop.hive.ql.CompilationOpContext;
import org.apache.hadoop.hive.ql.DriverContext;
import org.apache.hadoop.hive.ql.QueryPlan;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.metadata.Hive;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.ql.plan.CreateFunctionDesc;
@@ -62,9 +64,9 @@ public class FunctionTask extends Task<FunctionWork> {
}
@Override
- public void initialize(HiveConf conf, QueryPlan queryPlan, DriverContext ctx,
+ public void initialize(QueryState queryState, QueryPlan queryPlan, DriverContext ctx,
CompilationOpContext opContext) {
- super.initialize(conf, queryPlan, ctx, opContext);
+ super.initialize(queryState, queryPlan, ctx, opContext);
}
@Override
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/exec/StatsNoJobTask.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/StatsNoJobTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/StatsNoJobTask.java
index 3199ee1..d5ae019 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/StatsNoJobTask.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/StatsNoJobTask.java
@@ -41,6 +41,7 @@ import org.apache.hadoop.hive.metastore.api.InvalidOperationException;
import org.apache.hadoop.hive.ql.CompilationOpContext;
import org.apache.hadoop.hive.ql.DriverContext;
import org.apache.hadoop.hive.ql.QueryPlan;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.io.StatsProvidingRecordReader;
import org.apache.hadoop.hive.ql.metadata.Hive;
import org.apache.hadoop.hive.ql.metadata.HiveException;
@@ -84,9 +85,9 @@ public class StatsNoJobTask extends Task<StatsNoJobWork> implements Serializable
}
@Override
- public void initialize(HiveConf conf, QueryPlan queryPlan, DriverContext driverContext,
+ public void initialize(QueryState queryState, QueryPlan queryPlan, DriverContext driverContext,
CompilationOpContext opContext) {
- super.initialize(conf, queryPlan, driverContext, opContext);
+ super.initialize(queryState, queryPlan, driverContext, opContext);
jc = new JobConf(conf);
}
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/exec/Task.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/Task.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/Task.java
index 6c677f5..897af5e 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/Task.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/Task.java
@@ -51,6 +51,7 @@ public abstract class Task<T extends Serializable> implements Serializable, Node
public transient HashMap<String, Long> taskCounters;
public transient TaskHandle taskHandle;
protected transient HiveConf conf;
+ protected transient QueryState queryState;
protected transient LogHelper console;
protected transient QueryPlan queryPlan;
protected transient DriverContext driverContext;
@@ -124,11 +125,12 @@ public abstract class Task<T extends Serializable> implements Serializable, Node
return taskHandle;
}
- public void initialize(HiveConf conf, QueryPlan queryPlan, DriverContext driverContext,
+ public void initialize(QueryState queryState, QueryPlan queryPlan, DriverContext driverContext,
CompilationOpContext opContext) {
this.queryPlan = queryPlan;
setInitialized();
- this.conf = conf;
+ this.queryState = queryState;
+ this.conf = queryState.getConf();
this.driverContext = driverContext;
console = new LogHelper(LOG);
}
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/ExecDriver.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/ExecDriver.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/ExecDriver.java
index d164859..639b0da 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/ExecDriver.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/ExecDriver.java
@@ -51,6 +51,7 @@ import org.apache.hadoop.hive.ql.Context;
import org.apache.hadoop.hive.ql.DriverContext;
import org.apache.hadoop.hive.ql.ErrorMsg;
import org.apache.hadoop.hive.ql.QueryPlan;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.FetchOperator;
import org.apache.hadoop.hive.ql.exec.HiveTotalOrderPartitioner;
import org.apache.hadoop.hive.ql.exec.Operator;
@@ -124,7 +125,7 @@ public class ExecDriver extends Task<MapredWork> implements Serializable, Hadoop
public ExecDriver() {
super();
console = new LogHelper(LOG);
- this.jobExecHelper = new HadoopJobExecHelper(job, console, this, this);
+ this.jobExecHelper = new HadoopJobExecHelper(queryState, job, console, this, this);
}
@Override
@@ -142,9 +143,9 @@ public class ExecDriver extends Task<MapredWork> implements Serializable, Hadoop
* Initialization when invoked from QL.
*/
@Override
- public void initialize(HiveConf conf, QueryPlan queryPlan, DriverContext driverContext,
+ public void initialize(QueryState queryState, QueryPlan queryPlan, DriverContext driverContext,
CompilationOpContext opContext) {
- super.initialize(conf, queryPlan, driverContext, opContext);
+ super.initialize(queryState, queryPlan, driverContext, opContext);
job = new JobConf(conf, ExecDriver.class);
@@ -168,7 +169,7 @@ public class ExecDriver extends Task<MapredWork> implements Serializable, Hadoop
HiveConf.setVar(job, ConfVars.HIVEADDEDARCHIVES, addedArchives);
}
conf.stripHiddenConfigurations(job);
- this.jobExecHelper = new HadoopJobExecHelper(job, console, this, this);
+ this.jobExecHelper = new HadoopJobExecHelper(queryState, job, console, this, this);
}
/**
@@ -178,7 +179,7 @@ public class ExecDriver extends Task<MapredWork> implements Serializable, Hadoop
setWork(plan);
this.job = job;
console = new LogHelper(LOG, isSilent);
- this.jobExecHelper = new HadoopJobExecHelper(job, console, this, this);
+ this.jobExecHelper = new HadoopJobExecHelper(queryState, job, console, this, this);
}
/**
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/HadoopJobExecHelper.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/HadoopJobExecHelper.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/HadoopJobExecHelper.java
index 1b296b9..760ba6c 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/HadoopJobExecHelper.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/HadoopJobExecHelper.java
@@ -33,6 +33,7 @@ import java.util.concurrent.TimeUnit;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.conf.HiveConf.ConfVars;
import org.apache.hadoop.hive.ql.MapRedStats;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.Operator;
import org.apache.hadoop.hive.ql.exec.Task;
import org.apache.hadoop.hive.ql.exec.TaskHandle;
@@ -75,6 +76,7 @@ public class HadoopJobExecHelper {
public transient JobID jobId;
private final LogHelper console;
private final HadoopJobExecHook callBackObj;
+ private final QueryState queryState;
/**
* Update counters relevant to this task.
@@ -135,8 +137,9 @@ public class HadoopJobExecHelper {
this.jobId = jobId;
}
- public HadoopJobExecHelper(JobConf job, LogHelper console,
+ public HadoopJobExecHelper(QueryState queryState, JobConf job, LogHelper console,
Task<? extends Serializable> task, HadoopJobExecHook hookCallBack) {
+ this.queryState = queryState;
this.job = job;
this.console = console;
this.task = task;
@@ -250,14 +253,14 @@ public class HadoopJobExecHelper {
String logMapper;
String logReducer;
-
+ String queryId = queryState.getQueryId();
TaskReport[] mappers = jc.getMapTaskReports(rj.getID());
if (mappers == null) {
logMapper = "no information for number of mappers; ";
} else {
numMap = mappers.length;
if (ss != null) {
- ss.getHiveHistory().setTaskProperty(SessionState.get().getQueryId(), getId(),
+ ss.getHiveHistory().setTaskProperty(queryId, getId(),
Keys.TASK_NUM_MAPPERS, Integer.toString(numMap));
}
logMapper = "number of mappers: " + numMap + "; ";
@@ -269,7 +272,7 @@ public class HadoopJobExecHelper {
} else {
numReduce = reducers.length;
if (ss != null) {
- ss.getHiveHistory().setTaskProperty(SessionState.get().getQueryId(), getId(),
+ ss.getHiveHistory().setTaskProperty(queryId, getId(),
Keys.TASK_NUM_REDUCERS, Integer.toString(numReduce));
}
logReducer = "number of reducers: " + numReduce;
@@ -355,11 +358,11 @@ public class HadoopJobExecHelper {
String output = report.toString();
SessionState ss = SessionState.get();
if (ss != null) {
- ss.getHiveHistory().setTaskCounters(SessionState.get().getQueryId(), getId(), ctrs);
- ss.getHiveHistory().setTaskProperty(SessionState.get().getQueryId(), getId(),
+ ss.getHiveHistory().setTaskCounters(queryState.getQueryId(), getId(), ctrs);
+ ss.getHiveHistory().setTaskProperty(queryState.getQueryId(), getId(),
Keys.TASK_HADOOP_PROGRESS, output);
if (ss.getConf().getBoolVar(HiveConf.ConfVars.HIVE_LOG_INCREMENTAL_PLAN_PROGRESS)) {
- ss.getHiveHistory().progressTask(SessionState.get().getQueryId(), this.task);
+ ss.getHiveHistory().progressTask(queryState.getQueryId(), this.task);
this.callBackObj.logPlanProgress(ss);
}
}
@@ -386,7 +389,7 @@ public class HadoopJobExecHelper {
} else {
SessionState ss = SessionState.get();
if (ss != null) {
- ss.getHiveHistory().setTaskCounters(SessionState.get().getQueryId(), getId(), ctrs);
+ ss.getHiveHistory().setTaskCounters(queryState.getQueryId(), getId(), ctrs);
}
success = rj.isSuccessful();
}
@@ -430,7 +433,7 @@ public class HadoopJobExecHelper {
console.printInfo("Job running in-process (local Hadoop)");
} else {
if (SessionState.get() != null) {
- SessionState.get().getHiveHistory().setTaskProperty(SessionState.get().getQueryId(),
+ SessionState.get().getHiveHistory().setTaskProperty(queryState.getQueryId(),
getId(), Keys.TASK_HADOOP_ID, rj.getID().toString());
}
console.printInfo(getJobStartMsg(rj.getID()) + ", Tracking URL = "
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/MapredLocalTask.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/MapredLocalTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/MapredLocalTask.java
index c81b14c..3c1f0de 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/MapredLocalTask.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/MapredLocalTask.java
@@ -48,6 +48,7 @@ import org.apache.hadoop.hive.ql.CompilationOpContext;
import org.apache.hadoop.hive.ql.Context;
import org.apache.hadoop.hive.ql.DriverContext;
import org.apache.hadoop.hive.ql.QueryPlan;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.BucketMatcher;
import org.apache.hadoop.hive.ql.exec.FetchOperator;
import org.apache.hadoop.hive.ql.exec.Operator;
@@ -121,13 +122,13 @@ public class MapredLocalTask extends Task<MapredLocalWork> implements Serializab
}
@Override
- public void initialize(HiveConf conf, QueryPlan queryPlan, DriverContext driverContext,
+ public void initialize(QueryState queryState, QueryPlan queryPlan, DriverContext driverContext,
CompilationOpContext opContext) {
- super.initialize(conf, queryPlan, driverContext, opContext);
+ super.initialize(queryState, queryPlan, driverContext, opContext);
job = new JobConf(conf, ExecDriver.class);
execContext = new ExecMapperContext(job);
//we don't use the HadoopJobExecHooks for local tasks
- this.jobExecHelper = new HadoopJobExecHelper(job, console, this, null);
+ this.jobExecHelper = new HadoopJobExecHelper(queryState, job, console, this, null);
}
public static String now() {
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/SparkTask.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/SparkTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/SparkTask.java
index 7f87adf..0b494aa 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/SparkTask.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/SparkTask.java
@@ -32,6 +32,7 @@ import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.ql.CompilationOpContext;
import org.apache.hadoop.hive.ql.DriverContext;
import org.apache.hadoop.hive.ql.QueryPlan;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.FileSinkOperator;
import org.apache.hadoop.hive.ql.exec.JoinOperator;
import org.apache.hadoop.hive.ql.exec.MapOperator;
@@ -71,9 +72,9 @@ public class SparkTask extends Task<SparkWork> {
private static final long serialVersionUID = 1L;
@Override
- public void initialize(HiveConf conf, QueryPlan queryPlan, DriverContext driverContext,
+ public void initialize(QueryState queryState, QueryPlan queryPlan, DriverContext driverContext,
CompilationOpContext opContext) {
- super.initialize(conf, queryPlan, driverContext, opContext);
+ super.initialize(queryState, queryPlan, driverContext, opContext);
}
@Override
@@ -137,7 +138,7 @@ public class SparkTask extends Task<SparkWork> {
console.printInfo("Starting Spark Job = " + jobRef.getJobId());
if (SessionState.get() != null) {
SessionState.get().getHiveHistory()
- .setQueryProperty(SessionState.get().getQueryId(), Keys.SPARK_JOB_ID, jobRef.getJobId());
+ .setQueryProperty(queryState.getQueryId(), Keys.SPARK_JOB_ID, jobRef.getJobId());
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/history/HiveHistoryImpl.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/history/HiveHistoryImpl.java b/ql/src/java/org/apache/hadoop/hive/ql/history/HiveHistoryImpl.java
index a1e35cb..0234fd9 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/history/HiveHistoryImpl.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/history/HiveHistoryImpl.java
@@ -266,13 +266,9 @@ public class HiveHistoryImpl implements HiveHistory{
@Override
public void startTask(String queryId, Task<? extends Serializable> task,
String taskName) {
- SessionState ss = SessionState.get();
- if (ss == null) {
- return;
- }
TaskInfo ti = new TaskInfo();
- ti.hm.put(Keys.QUERY_ID.name(), ss.getQueryId());
+ ti.hm.put(Keys.QUERY_ID.name(), queryId);
ti.hm.put(Keys.TASK_ID.name(), task.getId());
ti.hm.put(Keys.TASK_NAME.name(), taskName);
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/hooks/ATSHook.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/hooks/ATSHook.java b/ql/src/java/org/apache/hadoop/hive/ql/hooks/ATSHook.java
index b7e70be..742edc8 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/hooks/ATSHook.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/hooks/ATSHook.java
@@ -25,6 +25,7 @@ import java.util.concurrent.TimeUnit;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.ql.QueryPlan;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.ExplainTask;
import org.apache.hadoop.hive.ql.exec.TaskFactory;
import org.apache.hadoop.hive.ql.exec.Utilities;
@@ -94,6 +95,7 @@ public class ATSHook implements ExecuteWithHookContext {
public void run(final HookContext hookContext) throws Exception {
final long currentTime = System.currentTimeMillis();
final HiveConf conf = new HiveConf(hookContext.getConf());
+ final QueryState queryState = hookContext.getQueryState();
executor.submit(new Runnable() {
@Override
@@ -134,7 +136,7 @@ public class ATSHook implements ExecuteWithHookContext {
);
@SuppressWarnings("unchecked")
ExplainTask explain = (ExplainTask) TaskFactory.get(work, conf);
- explain.initialize(conf, plan, null, null);
+ explain.initialize(queryState, plan, null, null);
String query = plan.getQueryStr();
JSONObject explainPlan = explain.getJSONPlan(null, work);
String logID = conf.getLogIdVar(SessionState.get().getSessionId());
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/hooks/HookContext.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/hooks/HookContext.java b/ql/src/java/org/apache/hadoop/hive/ql/hooks/HookContext.java
index 8e1672f..8db0124 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/hooks/HookContext.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/hooks/HookContext.java
@@ -27,6 +27,7 @@ import java.util.Set;
import org.apache.hadoop.fs.ContentSummary;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.ql.QueryPlan;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.TaskRunner;
import org.apache.hadoop.hive.ql.optimizer.lineage.LineageCtx.Index;
import org.apache.hadoop.hive.ql.session.SessionState;
@@ -43,6 +44,7 @@ public class HookContext {
}
private QueryPlan queryPlan;
+ private final QueryState queryState;
private HiveConf conf;
private List<TaskRunner> completeTaskList;
private Set<ReadEntity> inputs;
@@ -60,11 +62,12 @@ public class HookContext {
// TExecuteStatementResp.TOperationHandle.THandleIdentifier.guid
private final String operationId;
- public HookContext(QueryPlan queryPlan, HiveConf conf,
+ public HookContext(QueryPlan queryPlan, QueryState queryState,
Map<String, ContentSummary> inputPathToContentSummary, String userName, String ipAddress,
String operationId) throws Exception {
this.queryPlan = queryPlan;
- this.conf = conf;
+ this.queryState = queryState;
+ this.conf = queryState.getConf();
this.inputPathToContentSummary = inputPathToContentSummary;
completeTaskList = new ArrayList<TaskRunner>();
inputs = queryPlan.getInputs();
@@ -192,4 +195,8 @@ public class HookContext {
public String getOperationId() {
return operationId;
}
+
+ public QueryState getQueryState() {
+ return queryState;
+ }
}
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/hooks/PostExecutePrinter.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/hooks/PostExecutePrinter.java b/ql/src/java/org/apache/hadoop/hive/ql/hooks/PostExecutePrinter.java
index 4518315..b4fc125 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/hooks/PostExecutePrinter.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/hooks/PostExecutePrinter.java
@@ -27,6 +27,7 @@ import java.util.Set;
import org.apache.hadoop.hive.metastore.api.FieldSchema;
import org.apache.hadoop.hive.metastore.api.Partition;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.hooks.HookContext.HookType;
import org.apache.hadoop.hive.ql.hooks.LineageInfo.BaseColumnInfo;
import org.apache.hadoop.hive.ql.hooks.LineageInfo.Dependency;
@@ -97,15 +98,14 @@ public class PostExecutePrinter implements ExecuteWithHookContext {
@Override
public void run(HookContext hookContext) throws Exception {
assert(hookContext.getHookType() == HookType.POST_EXEC_HOOK);
- SessionState ss = SessionState.get();
Set<ReadEntity> inputs = hookContext.getInputs();
Set<WriteEntity> outputs = hookContext.getOutputs();
LineageInfo linfo = hookContext.getLinfo();
UserGroupInformation ugi = hookContext.getUgi();
- this.run(ss,inputs,outputs,linfo,ugi);
+ this.run(hookContext.getQueryState(),inputs,outputs,linfo,ugi);
}
- public void run(SessionState sess, Set<ReadEntity> inputs,
+ public void run(QueryState queryState, Set<ReadEntity> inputs,
Set<WriteEntity> outputs, LineageInfo linfo,
UserGroupInformation ugi) throws Exception {
@@ -115,9 +115,9 @@ public class PostExecutePrinter implements ExecuteWithHookContext {
return;
}
- if (sess != null) {
- console.printError("POSTHOOK: query: " + sess.getCmd().trim());
- console.printError("POSTHOOK: type: " + sess.getCommandType());
+ if (queryState != null) {
+ console.printError("POSTHOOK: query: " + queryState.getQueryString().trim());
+ console.printError("POSTHOOK: type: " + queryState.getCommandType());
}
PreExecutePrinter.printEntities(console, inputs, "POSTHOOK: Input: ");
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/hooks/PreExecutePrinter.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/hooks/PreExecutePrinter.java b/ql/src/java/org/apache/hadoop/hive/ql/hooks/PreExecutePrinter.java
index b5a26d8..232c62d 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/hooks/PreExecutePrinter.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/hooks/PreExecutePrinter.java
@@ -24,6 +24,7 @@ import java.util.List;
import java.util.Set;
import org.apache.hadoop.hive.common.io.FetchConverter;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.hooks.HookContext.HookType;
import org.apache.hadoop.hive.ql.plan.HiveOperation;
import org.apache.hadoop.hive.ql.session.SessionState;
@@ -40,8 +41,9 @@ public class PreExecutePrinter implements ExecuteWithHookContext {
public void run(HookContext hookContext) throws Exception {
assert(hookContext.getHookType() == HookType.PRE_EXEC_HOOK);
SessionState ss = SessionState.get();
+ QueryState queryState = hookContext.getQueryState();
if (ss != null && ss.out instanceof FetchConverter) {
- boolean foundQuery = ss.getHiveOperation() == HiveOperation.QUERY &&
+ boolean foundQuery = queryState.getHiveOperation() == HiveOperation.QUERY &&
!hookContext.getQueryPlan().isForExplain();
((FetchConverter)ss.out).foundQuery(foundQuery);
}
@@ -49,10 +51,10 @@ public class PreExecutePrinter implements ExecuteWithHookContext {
Set<ReadEntity> inputs = hookContext.getInputs();
Set<WriteEntity> outputs = hookContext.getOutputs();
UserGroupInformation ugi = hookContext.getUgi();
- this.run(ss,inputs,outputs,ugi);
+ this.run(queryState,inputs,outputs,ugi);
}
- public void run(SessionState sess, Set<ReadEntity> inputs,
+ public void run(QueryState queryState, Set<ReadEntity> inputs,
Set<WriteEntity> outputs, UserGroupInformation ugi)
throws Exception {
@@ -62,9 +64,9 @@ public class PreExecutePrinter implements ExecuteWithHookContext {
return;
}
- if (sess != null) {
- console.printError("PREHOOK: query: " + sess.getCmd().trim());
- console.printError("PREHOOK: type: " + sess.getCommandType());
+ if (queryState != null) {
+ console.printError("PREHOOK: query: " + queryState.getQueryString().trim());
+ console.printError("PREHOOK: type: " + queryState.getCommandType());
}
printEntities(console, inputs, "PREHOOK: Input: ");
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/index/TableBasedIndexHandler.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/index/TableBasedIndexHandler.java b/ql/src/java/org/apache/hadoop/hive/ql/index/TableBasedIndexHandler.java
index 807959e..29886ae 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/index/TableBasedIndexHandler.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/index/TableBasedIndexHandler.java
@@ -26,8 +26,6 @@ import java.util.Set;
import java.util.Map.Entry;
import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hive.common.StatsSetupConst;
-import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.metastore.api.FieldSchema;
import org.apache.hadoop.hive.metastore.api.Index;
import org.apache.hadoop.hive.ql.exec.Task;
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/io/merge/MergeFileTask.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/merge/MergeFileTask.java b/ql/src/java/org/apache/hadoop/hive/ql/io/merge/MergeFileTask.java
index 82629c1..6b0343b 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/merge/MergeFileTask.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/merge/MergeFileTask.java
@@ -26,6 +26,7 @@ import org.apache.hadoop.hive.ql.CompilationOpContext;
import org.apache.hadoop.hive.ql.Context;
import org.apache.hadoop.hive.ql.DriverContext;
import org.apache.hadoop.hive.ql.QueryPlan;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.Operator;
import org.apache.hadoop.hive.ql.exec.Task;
import org.apache.hadoop.hive.ql.exec.Utilities;
@@ -60,11 +61,11 @@ public class MergeFileTask extends Task<MergeFileWork> implements Serializable,
private boolean success = true;
@Override
- public void initialize(HiveConf conf, QueryPlan queryPlan,
+ public void initialize(QueryState queryState, QueryPlan queryPlan,
DriverContext driverContext, CompilationOpContext opContext) {
- super.initialize(conf, queryPlan, driverContext, opContext);
+ super.initialize(queryState, queryPlan, driverContext, opContext);
job = new JobConf(conf, MergeFileTask.class);
- jobExecHelper = new HadoopJobExecHelper(job, this.console, this, this);
+ jobExecHelper = new HadoopJobExecHelper(queryState, job, this.console, this, this);
}
@Override
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/stats/PartialScanTask.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/stats/PartialScanTask.java b/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/stats/PartialScanTask.java
index 71371a3..d31510d 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/stats/PartialScanTask.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/stats/PartialScanTask.java
@@ -38,6 +38,7 @@ import org.apache.hadoop.hive.ql.Context;
import org.apache.hadoop.hive.ql.DriverContext;
import org.apache.hadoop.hive.ql.ErrorMsg;
import org.apache.hadoop.hive.ql.QueryPlan;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.Task;
import org.apache.hadoop.hive.ql.exec.Utilities;
import org.apache.hadoop.hive.ql.exec.mr.HadoopJobExecHelper;
@@ -84,11 +85,11 @@ public class PartialScanTask extends Task<PartialScanWork> implements
protected HadoopJobExecHelper jobExecHelper;
@Override
- public void initialize(HiveConf conf, QueryPlan queryPlan,
+ public void initialize(QueryState queryState, QueryPlan queryPlan,
DriverContext driverContext, CompilationOpContext opContext) {
- super.initialize(conf, queryPlan, driverContext, opContext);
+ super.initialize(queryState, queryPlan, driverContext, opContext);
job = new JobConf(conf, PartialScanTask.class);
- jobExecHelper = new HadoopJobExecHelper(job, this.console, this, this);
+ jobExecHelper = new HadoopJobExecHelper(queryState, job, this.console, this, this);
}
@Override
@@ -331,7 +332,6 @@ public class PartialScanTask extends Task<PartialScanWork> implements
if (jobConfFileName != null) {
conf.addResource(new Path(jobConfFileName));
}
- HiveConf hiveConf = new HiveConf(conf, PartialScanTask.class);
org.slf4j.Logger LOG = LoggerFactory.getLogger(PartialScanTask.class.getName());
boolean isSilent = HiveConf.getBoolVar(conf,
@@ -348,11 +348,11 @@ public class PartialScanTask extends Task<PartialScanWork> implements
}
}
-
+ QueryState queryState = new QueryState(new HiveConf(conf, PartialScanTask.class));
PartialScanWork mergeWork = new PartialScanWork(inputPaths);
DriverContext driverCxt = new DriverContext();
PartialScanTask taskExec = new PartialScanTask();
- taskExec.initialize(hiveConf, null, driverCxt, new CompilationOpContext());
+ taskExec.initialize(queryState, null, driverCxt, new CompilationOpContext());
taskExec.setWork(mergeWork);
int ret = taskExec.execute(driverCxt);
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/truncate/ColumnTruncateTask.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/truncate/ColumnTruncateTask.java b/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/truncate/ColumnTruncateTask.java
index bc21da0..8acd6e0 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/truncate/ColumnTruncateTask.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/rcfile/truncate/ColumnTruncateTask.java
@@ -30,6 +30,7 @@ import org.apache.hadoop.hive.ql.CompilationOpContext;
import org.apache.hadoop.hive.ql.Context;
import org.apache.hadoop.hive.ql.DriverContext;
import org.apache.hadoop.hive.ql.QueryPlan;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.Task;
import org.apache.hadoop.hive.ql.exec.Utilities;
import org.apache.hadoop.hive.ql.exec.mr.HadoopJobExecHelper;
@@ -59,11 +60,11 @@ public class ColumnTruncateTask extends Task<ColumnTruncateWork> implements Seri
protected HadoopJobExecHelper jobExecHelper;
@Override
- public void initialize(HiveConf conf, QueryPlan queryPlan,
+ public void initialize(QueryState queryState, QueryPlan queryPlan,
DriverContext driverContext, CompilationOpContext opContext) {
- super.initialize(conf, queryPlan, driverContext, opContext);
+ super.initialize(queryState, queryPlan, driverContext, opContext);
job = new JobConf(conf, ColumnTruncateTask.class);
- jobExecHelper = new HadoopJobExecHelper(job, this.console, this, this);
+ jobExecHelper = new HadoopJobExecHelper(queryState, job, this.console, this, this);
}
@Override
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMRTableScan1.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMRTableScan1.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMRTableScan1.java
index 9c979be..669d56f 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMRTableScan1.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMRTableScan1.java
@@ -204,7 +204,7 @@ public class GenMRTableScan1 implements NodeProcessor {
// partial scan task
DriverContext driverCxt = new DriverContext();
Task<PartialScanWork> psTask = TaskFactory.get(scanWork, parseCtx.getConf());
- psTask.initialize(parseCtx.getConf(), null, driverCxt, op.getCompilationOpContext());
+ psTask.initialize(parseCtx.getQueryState(), null, driverCxt, op.getCompilationOpContext());
psTask.setWork(scanWork);
// task dependency
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/optimizer/index/RewriteParseContextGenerator.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/index/RewriteParseContextGenerator.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/index/RewriteParseContextGenerator.java
index 64f9734..340d29a 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/index/RewriteParseContextGenerator.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/index/RewriteParseContextGenerator.java
@@ -24,6 +24,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.ql.Context;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.Operator;
import org.apache.hadoop.hive.ql.parse.ASTNode;
import org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer;
@@ -56,16 +57,16 @@ public final class RewriteParseContextGenerator {
* @param command
* @throws SemanticException
*/
- public static Operator<? extends OperatorDesc> generateOperatorTree(HiveConf conf,
+ public static Operator<? extends OperatorDesc> generateOperatorTree(QueryState queryState,
String command) throws SemanticException {
Operator<? extends OperatorDesc> operatorTree;
try {
- Context ctx = new Context(conf);
+ Context ctx = new Context(queryState.getConf());
ParseDriver pd = new ParseDriver();
ASTNode tree = pd.parse(command, ctx);
tree = ParseUtils.findRootNonNullToken(tree);
- BaseSemanticAnalyzer sem = SemanticAnalyzerFactory.get(conf, tree);
+ BaseSemanticAnalyzer sem = SemanticAnalyzerFactory.get(queryState, tree);
assert(sem instanceof SemanticAnalyzer);
operatorTree = doSemanticAnalysis((SemanticAnalyzer) sem, tree, ctx);
LOG.info("Sub-query Semantic Analysis Completed");
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/optimizer/index/RewriteQueryUsingAggregateIndexCtx.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/index/RewriteQueryUsingAggregateIndexCtx.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/index/RewriteQueryUsingAggregateIndexCtx.java
index 74bedcb..3d11907 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/index/RewriteQueryUsingAggregateIndexCtx.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/index/RewriteQueryUsingAggregateIndexCtx.java
@@ -268,7 +268,7 @@ public final class RewriteQueryUsingAggregateIndexCtx implements NodeProcessorC
+ rewriteQueryCtx.getIndexKey() + " ";
// retrieve the operator tree for the query, and the required GroupByOperator from it
Operator<?> newOperatorTree = RewriteParseContextGenerator.generateOperatorTree(
- rewriteQueryCtx.getParseContext().getConf(),
+ rewriteQueryCtx.getParseContext().getQueryState(),
selReplacementCommand);
// we get our new GroupByOperator here
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java
index 19342a8..cbb1b0a 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java
@@ -48,6 +48,7 @@ import org.apache.hadoop.hive.ql.CompilationOpContext;
import org.apache.hadoop.hive.ql.Context;
import org.apache.hadoop.hive.ql.ErrorMsg;
import org.apache.hadoop.hive.ql.QueryProperties;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.FetchTask;
import org.apache.hadoop.hive.ql.exec.Task;
import org.apache.hadoop.hive.ql.exec.Utilities;
@@ -87,6 +88,7 @@ public abstract class BaseSemanticAnalyzer {
// Assumes one instance of this + single-threaded compilation for each query.
protected final Hive db;
protected final HiveConf conf;
+ protected final QueryState queryState;
protected List<Task<? extends Serializable>> rootTasks;
protected FetchTask fetchTask;
protected final Logger LOG;
@@ -199,13 +201,14 @@ public abstract class BaseSemanticAnalyzer {
}
}
- public BaseSemanticAnalyzer(HiveConf conf) throws SemanticException {
- this(conf, createHiveDB(conf));
+ public BaseSemanticAnalyzer(QueryState queryState) throws SemanticException {
+ this(queryState, createHiveDB(queryState.getConf()));
}
- public BaseSemanticAnalyzer(HiveConf conf, Hive db) throws SemanticException {
+ public BaseSemanticAnalyzer(QueryState queryState, Hive db) throws SemanticException {
try {
- this.conf = conf;
+ this.queryState = queryState;
+ this.conf = queryState.getConf();
this.db = db;
rootTasks = new ArrayList<Task<? extends Serializable>>();
LOG = LoggerFactory.getLogger(this.getClass().getName());
@@ -1502,4 +1505,7 @@ public abstract class BaseSemanticAnalyzer {
public HashSet<WriteEntity> getAllOutputs() {
return outputs;
}
+ public QueryState getQueryState() {
+ return queryState;
+ }
}
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
index c069dc4..8e00e0b 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
@@ -104,6 +104,7 @@ import org.apache.hadoop.hive.conf.HiveConf.StrictChecks;
import org.apache.hadoop.hive.metastore.api.FieldSchema;
import org.apache.hadoop.hive.ql.ErrorMsg;
import org.apache.hadoop.hive.ql.QueryProperties;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.ColumnInfo;
import org.apache.hadoop.hive.ql.exec.FunctionInfo;
import org.apache.hadoop.hive.ql.exec.FunctionRegistry;
@@ -217,8 +218,8 @@ public class CalcitePlanner extends SemanticAnalyzer {
private boolean disableSemJoinReordering = true;
private EnumSet<ExtendedCBOProfile> profilesCBO;
- public CalcitePlanner(HiveConf conf) throws SemanticException {
- super(conf);
+ public CalcitePlanner(QueryState queryState) throws SemanticException {
+ super(queryState);
if (!HiveConf.getBoolVar(conf, HiveConf.ConfVars.HIVE_CBO_ENABLED)) {
runCBO = false;
disableSemJoinReordering = false;
@@ -514,18 +515,18 @@ public class CalcitePlanner extends SemanticAnalyzer {
createTable.addChild(temporary);
createTable.addChild(cte.cteNode);
- CalcitePlanner analyzer = new CalcitePlanner(conf);
+ CalcitePlanner analyzer = new CalcitePlanner(queryState);
analyzer.initCtx(ctx);
analyzer.init(false);
// should share cte contexts
analyzer.aliasToCTEs.putAll(aliasToCTEs);
- HiveOperation operation = SessionState.get().getHiveOperation();
+ HiveOperation operation = queryState.getHiveOperation();
try {
analyzer.analyzeInternal(createTable);
} finally {
- SessionState.get().setCommandType(operation);
+ queryState.setCommandType(operation);
}
Table table = analyzer.tableDesc.toTable(conf);
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/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 bb1bbad..3b6cbce 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
@@ -25,15 +25,14 @@ import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hive.common.HiveStatsUtils;
-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.QueryState;
import org.apache.hadoop.hive.ql.exec.Utilities;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.ql.metadata.Table;
@@ -62,8 +61,8 @@ public class ColumnStatsSemanticAnalyzer extends SemanticAnalyzer {
private List<String> colType;
private Table tbl;
- public ColumnStatsSemanticAnalyzer(HiveConf conf) throws SemanticException {
- super(conf);
+ public ColumnStatsSemanticAnalyzer(QueryState queryState) throws SemanticException {
+ super(queryState);
}
private boolean shouldRewrite(ASTNode tree) {
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
index 46d2342..04e2a41 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
@@ -44,6 +44,7 @@ import org.apache.hadoop.hive.metastore.api.Order;
import org.apache.hadoop.hive.metastore.api.SkewedInfo;
import org.apache.hadoop.hive.ql.Driver;
import org.apache.hadoop.hive.ql.ErrorMsg;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.ArchiveUtils;
import org.apache.hadoop.hive.ql.exec.ColumnStatsUpdateTask;
import org.apache.hadoop.hive.ql.exec.FetchTask;
@@ -229,12 +230,12 @@ public class DDLSemanticAnalyzer extends BaseSemanticAnalyzer {
return typeName;
}
- public DDLSemanticAnalyzer(HiveConf conf) throws SemanticException {
- this(conf, createHiveDB(conf));
+ public DDLSemanticAnalyzer(QueryState queryState) throws SemanticException {
+ this(queryState, createHiveDB(queryState.getConf()));
}
- public DDLSemanticAnalyzer(HiveConf conf, Hive db) throws SemanticException {
- super(conf, db);
+ public DDLSemanticAnalyzer(QueryState queryState, Hive db) throws SemanticException {
+ super(queryState, db);
reservedPartitionValues = new HashSet<String>();
// Partition can't have this name
reservedPartitionValues.add(HiveConf.getVar(conf, ConfVars.DEFAULTPARTITIONNAME));
@@ -1350,9 +1351,9 @@ public class DDLSemanticAnalyzer extends BaseSemanticAnalyzer {
HashMap<String, String> mapProp = getProps((ASTNode) (ast.getChild(0))
.getChild(0));
EnvironmentContext environmentContext = null;
- if (SessionState.get().getCommandType()
+ if (queryState.getCommandType()
.equals(HiveOperation.ALTERTABLE_UPDATETABLESTATS.getOperationName())
- || SessionState.get().getCommandType()
+ || queryState.getCommandType()
.equals(HiveOperation.ALTERTABLE_UPDATEPARTSTATS.getOperationName())) {
// we need to check if the properties are valid, especially for stats.
boolean changeStatsSucceeded = false;
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/parse/ExplainSQRewriteSemanticAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/ExplainSQRewriteSemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/ExplainSQRewriteSemanticAnalyzer.java
index 6f0f3a6..8d7fd92 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/ExplainSQRewriteSemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/ExplainSQRewriteSemanticAnalyzer.java
@@ -19,8 +19,8 @@
import java.util.List;
-import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.metastore.api.FieldSchema;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.ExplainSQRewriteTask;
import org.apache.hadoop.hive.ql.exec.TaskFactory;
import org.apache.hadoop.hive.ql.plan.ExplainSQRewriteWork;
@@ -28,8 +28,8 @@ import org.apache.hadoop.hive.ql.plan.ExplainSQRewriteWork;
public class ExplainSQRewriteSemanticAnalyzer extends BaseSemanticAnalyzer {
List<FieldSchema> fieldList;
- public ExplainSQRewriteSemanticAnalyzer(HiveConf conf) throws SemanticException {
- super(conf);
+ public ExplainSQRewriteSemanticAnalyzer(QueryState queryState) throws SemanticException {
+ super(queryState);
}
@SuppressWarnings("unchecked")
@@ -42,7 +42,7 @@ public class ExplainSQRewriteSemanticAnalyzer extends BaseSemanticAnalyzer {
// Create a semantic analyzer for the query
ASTNode input = (ASTNode) ast.getChild(0);
SemanticAnalyzer sem = (SemanticAnalyzer)
- SemanticAnalyzerFactory.get(conf, input);
+ SemanticAnalyzerFactory.get(queryState, input);
sem.analyze(input, ctx);
sem.validate();
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/parse/ExplainSemanticAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/ExplainSemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/ExplainSemanticAnalyzer.java
index eefc145..75753b0 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/ExplainSemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/ExplainSemanticAnalyzer.java
@@ -24,6 +24,7 @@ import java.util.List;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.metastore.api.FieldSchema;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.ExplainTask;
import org.apache.hadoop.hive.ql.exec.FetchTask;
import org.apache.hadoop.hive.ql.exec.Task;
@@ -37,8 +38,8 @@ import org.apache.hadoop.hive.ql.plan.ExplainWork;
public class ExplainSemanticAnalyzer extends BaseSemanticAnalyzer {
List<FieldSchema> fieldList;
- public ExplainSemanticAnalyzer(HiveConf conf) throws SemanticException {
- super(conf);
+ public ExplainSemanticAnalyzer(QueryState queryState) throws SemanticException {
+ super(queryState);
}
@SuppressWarnings("unchecked")
@@ -70,7 +71,7 @@ public class ExplainSemanticAnalyzer extends BaseSemanticAnalyzer {
// Create a semantic analyzer for the query
ASTNode input = (ASTNode) ast.getChild(0);
- BaseSemanticAnalyzer sem = SemanticAnalyzerFactory.get(conf, input);
+ BaseSemanticAnalyzer sem = SemanticAnalyzerFactory.get(queryState, input);
sem.analyze(input, ctx);
sem.validate();
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/parse/ExportSemanticAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/ExportSemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/ExportSemanticAnalyzer.java
index fe8147a..475f2c9 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/ExportSemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/ExportSemanticAnalyzer.java
@@ -30,6 +30,7 @@ import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hive.common.FileUtils;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.ql.ErrorMsg;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.Task;
import org.apache.hadoop.hive.ql.exec.TaskFactory;
import org.apache.hadoop.hive.ql.hooks.ReadEntity;
@@ -47,8 +48,8 @@ public class ExportSemanticAnalyzer extends BaseSemanticAnalyzer {
private ReplicationSpec replicationSpec;
- public ExportSemanticAnalyzer(HiveConf conf) throws SemanticException {
- super(conf);
+ public ExportSemanticAnalyzer(QueryState queryState) throws SemanticException {
+ super(queryState);
}
@Override
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/parse/FunctionSemanticAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/FunctionSemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/FunctionSemanticAnalyzer.java
index be908d3..1ec45ee 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/FunctionSemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/FunctionSemanticAnalyzer.java
@@ -28,6 +28,7 @@ import org.apache.hadoop.hive.metastore.api.Database;
import org.apache.hadoop.hive.metastore.api.ResourceType;
import org.apache.hadoop.hive.metastore.api.ResourceUri;
import org.apache.hadoop.hive.ql.ErrorMsg;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.FunctionInfo;
import org.apache.hadoop.hive.ql.exec.FunctionRegistry;
import org.apache.hadoop.hive.ql.exec.FunctionUtils;
@@ -49,8 +50,8 @@ public class FunctionSemanticAnalyzer extends BaseSemanticAnalyzer {
private static final Logger LOG = LoggerFactory
.getLogger(FunctionSemanticAnalyzer.class);
- public FunctionSemanticAnalyzer(HiveConf conf) throws SemanticException {
- super(conf);
+ public FunctionSemanticAnalyzer(QueryState queryState) throws SemanticException {
+ super(queryState);
}
@Override
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/parse/ImportSemanticAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/ImportSemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/ImportSemanticAnalyzer.java
index 549d24f..a9bc271 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/ImportSemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/ImportSemanticAnalyzer.java
@@ -47,6 +47,7 @@ import org.apache.hadoop.hive.metastore.api.MetaException;
import org.apache.hadoop.hive.metastore.api.Order;
import org.apache.hadoop.hive.metastore.api.Partition;
import org.apache.hadoop.hive.ql.ErrorMsg;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.Task;
import org.apache.hadoop.hive.ql.exec.TaskFactory;
import org.apache.hadoop.hive.ql.exec.Utilities;
@@ -74,8 +75,8 @@ public class ImportSemanticAnalyzer extends BaseSemanticAnalyzer {
public static final String METADATA_NAME="_metadata";
- public ImportSemanticAnalyzer(HiveConf conf) throws SemanticException {
- super(conf);
+ public ImportSemanticAnalyzer(QueryState queryState) throws SemanticException {
+ super(queryState);
}
private boolean tableExists = false;
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/parse/LoadSemanticAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/LoadSemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/LoadSemanticAnalyzer.java
index b90616f..a49b813 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/LoadSemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/LoadSemanticAnalyzer.java
@@ -37,6 +37,7 @@ import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.metastore.TableType;
import org.apache.hadoop.hive.metastore.api.FieldSchema;
import org.apache.hadoop.hive.ql.ErrorMsg;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.Task;
import org.apache.hadoop.hive.ql.exec.TaskFactory;
import org.apache.hadoop.hive.ql.exec.Utilities;
@@ -58,8 +59,8 @@ import com.google.common.collect.Lists;
*/
public class LoadSemanticAnalyzer extends BaseSemanticAnalyzer {
- public LoadSemanticAnalyzer(HiveConf conf) throws SemanticException {
- super(conf);
+ public LoadSemanticAnalyzer(QueryState queryState) throws SemanticException {
+ super(queryState);
}
public static FileStatus[] matchFilesOrDir(FileSystem fs, Path path)
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/parse/MacroSemanticAnalyzer.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/MacroSemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/MacroSemanticAnalyzer.java
index e394914..fe065f8 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/MacroSemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/MacroSemanticAnalyzer.java
@@ -36,6 +36,7 @@ import org.apache.hadoop.hive.metastore.MetaStoreUtils;
import org.apache.hadoop.hive.metastore.api.Database;
import org.apache.hadoop.hive.metastore.api.FieldSchema;
import org.apache.hadoop.hive.ql.ErrorMsg;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.ColumnInfo;
import org.apache.hadoop.hive.ql.exec.FunctionRegistry;
import org.apache.hadoop.hive.ql.exec.FunctionUtils;
@@ -44,13 +45,10 @@ import org.apache.hadoop.hive.ql.hooks.WriteEntity;
import org.apache.hadoop.hive.ql.lib.Dispatcher;
import org.apache.hadoop.hive.ql.lib.Node;
import org.apache.hadoop.hive.ql.lib.PreOrderWalker;
-import org.apache.hadoop.hive.ql.metadata.Hive;
-import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.ql.plan.CreateMacroDesc;
import org.apache.hadoop.hive.ql.plan.DropMacroDesc;
import org.apache.hadoop.hive.ql.plan.ExprNodeDesc;
import org.apache.hadoop.hive.ql.plan.FunctionWork;
-import org.apache.hadoop.hive.ql.session.SessionState;
import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils;
@@ -62,8 +60,8 @@ public class MacroSemanticAnalyzer extends BaseSemanticAnalyzer {
private static final Logger LOG = LoggerFactory
.getLogger(MacroSemanticAnalyzer.class);
- public MacroSemanticAnalyzer(HiveConf conf) throws SemanticException {
- super(conf);
+ public MacroSemanticAnalyzer(QueryState queryState) throws SemanticException {
+ super(queryState);
}
@Override
@@ -132,8 +130,8 @@ public class MacroSemanticAnalyzer extends BaseSemanticAnalyzer {
throw new SemanticException("At least one parameter name was used more than once "
+ macroColNames);
}
- SemanticAnalyzer sa = HiveConf.getBoolVar(conf, HiveConf.ConfVars.HIVE_CBO_ENABLED) ? new CalcitePlanner(
- conf) : new SemanticAnalyzer(conf);
+ SemanticAnalyzer sa = HiveConf.getBoolVar(conf, HiveConf.ConfVars.HIVE_CBO_ENABLED) ?
+ new CalcitePlanner(queryState) : new SemanticAnalyzer(queryState);
;
ExprNodeDesc body;
if(isNoArgumentMacro) {
http://git-wip-us.apache.org/repos/asf/hive/blob/caa3ec76/ql/src/java/org/apache/hadoop/hive/ql/parse/ParseContext.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/ParseContext.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/ParseContext.java
index 1bccf20..5d0f905 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/ParseContext.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/ParseContext.java
@@ -28,6 +28,7 @@ import java.util.Set;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.ql.Context;
import org.apache.hadoop.hive.ql.QueryProperties;
+import org.apache.hadoop.hive.ql.QueryState;
import org.apache.hadoop.hive.ql.exec.AbstractMapJoinOperator;
import org.apache.hadoop.hive.ql.exec.FetchTask;
import org.apache.hadoop.hive.ql.exec.JoinOperator;
@@ -78,6 +79,7 @@ public class ParseContext {
private List<LoadTableDesc> loadTableWork;
private List<LoadFileDesc> loadFileWork;
private Context ctx;
+ private QueryState queryState;
private HiveConf conf;
private HashMap<String, String> idToTableNameMap;
private int destTableId;
@@ -153,7 +155,7 @@ public class ParseContext {
* @param rootTasks
*/
public ParseContext(
- HiveConf conf,
+ QueryState queryState,
HashMap<TableScanOperator, ExprNodeDesc> opToPartPruner,
HashMap<TableScanOperator, PrunedPartitionList> opToPartList,
HashMap<String, TableScanOperator> topOps,
@@ -173,7 +175,8 @@ public class ParseContext {
List<ReduceSinkOperator> reduceSinkOperatorsAddedByEnforceBucketingSorting,
AnalyzeRewriteContext analyzeRewrite, CreateTableDesc createTableDesc,
QueryProperties queryProperties, Map<SelectOperator, Table> viewProjectToTableSchema) {
- this.conf = conf;
+ this.queryState = queryState;
+ this.conf = queryState.getConf();
this.opToPartPruner = opToPartPruner;
this.opToPartList = opToPartList;
this.joinOps = joinOps;
@@ -241,6 +244,13 @@ public class ParseContext {
}
/**
+ * @return the hive conf
+ */
+ public QueryState getQueryState() {
+ return queryState;
+ }
+
+ /**
* @return the opToPartPruner
*/
public HashMap<TableScanOperator, ExprNodeDesc> getOpToPartPruner() {
[05/50] [abbrv] hive git commit: HIVE-13527: Using deprecated APIs in
HBase client causes zookeeper connection leaks (Naveen Gangam via Chaoyu
Tang)
Posted by jd...@apache.org.
HIVE-13527: Using deprecated APIs in HBase client causes zookeeper connection leaks (Naveen Gangam via Chaoyu Tang)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/74197688
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/74197688
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/74197688
Branch: refs/heads/llap
Commit: 74197688f18d9a6bee6393cfe1d7ab635beb3db5
Parents: 287f045
Author: ctang <ct...@cloudera.com>
Authored: Sat Apr 23 20:50:00 2016 -0400
Committer: ctang <ct...@cloudera.com>
Committed: Sat Apr 23 20:50:00 2016 -0400
----------------------------------------------------------------------
.../hive/hbase/HiveHBaseTableInputFormat.java | 33 ++++++++++++++++++--
1 file changed, 31 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/74197688/hbase-handler/src/java/org/apache/hadoop/hive/hbase/HiveHBaseTableInputFormat.java
----------------------------------------------------------------------
diff --git a/hbase-handler/src/java/org/apache/hadoop/hive/hbase/HiveHBaseTableInputFormat.java b/hbase-handler/src/java/org/apache/hadoop/hive/hbase/HiveHBaseTableInputFormat.java
index 88d1865..d9db624 100644
--- a/hbase-handler/src/java/org/apache/hadoop/hive/hbase/HiveHBaseTableInputFormat.java
+++ b/hbase-handler/src/java/org/apache/hadoop/hive/hbase/HiveHBaseTableInputFormat.java
@@ -26,6 +26,9 @@ import java.util.Map;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HConstants;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Connection;
+import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.Scan;
@@ -84,6 +87,7 @@ public class HiveHBaseTableInputFormat extends TableInputFormatBase
static final Logger LOG = LoggerFactory.getLogger(HiveHBaseTableInputFormat.class);
private static final Object hbaseTableMonitor = new Object();
+ private Connection conn = null;
@Override
public RecordReader<ImmutableBytesWritable, ResultWritable> getRecordReader(
@@ -94,7 +98,11 @@ public class HiveHBaseTableInputFormat extends TableInputFormatBase
HBaseSplit hbaseSplit = (HBaseSplit) split;
TableSplit tableSplit = hbaseSplit.getTableSplit();
- setHTable(HiveHBaseInputFormatUtil.getTable(jobConf));
+ if (conn == null) {
+ conn = ConnectionFactory.createConnection(HBaseConfiguration.create(jobConf));
+ }
+ initializeTable(conn, tableSplit.getTable());
+
setScan(HiveHBaseInputFormatUtil.getScan(jobConf));
Job job = new Job(jobConf);
@@ -107,6 +115,10 @@ public class HiveHBaseTableInputFormat extends TableInputFormatBase
recordReader.initialize(tableSplit, tac);
} catch (InterruptedException e) {
closeTable(); // Free up the HTable connections
+ if (conn != null) {
+ conn.close();
+ conn = null;
+ }
throw new IOException("Failed to initialize RecordReader", e);
}
@@ -116,6 +128,10 @@ public class HiveHBaseTableInputFormat extends TableInputFormatBase
public void close() throws IOException {
recordReader.close();
closeTable();
+ if (conn != null) {
+ conn.close();
+ conn = null;
+ }
}
@Override
@@ -442,7 +458,12 @@ public class HiveHBaseTableInputFormat extends TableInputFormatBase
}
String hbaseTableName = jobConf.get(HBaseSerDe.HBASE_TABLE_NAME);
- setHTable(new HTable(HBaseConfiguration.create(jobConf), Bytes.toBytes(hbaseTableName)));
+ if (conn == null) {
+ conn = ConnectionFactory.createConnection(HBaseConfiguration.create(jobConf));
+ }
+ TableName tableName = TableName.valueOf(hbaseTableName);
+ initializeTable(conn, tableName);
+
String hbaseColumnsMapping = jobConf.get(HBaseSerDe.HBASE_COLUMNS_MAPPING);
boolean doColumnRegexMatching = jobConf.getBoolean(HBaseSerDe.HBASE_COLUMNS_REGEX_MATCHING, true);
@@ -509,6 +530,10 @@ public class HiveHBaseTableInputFormat extends TableInputFormatBase
return results;
} finally {
closeTable();
+ if (conn != null) {
+ conn.close();
+ conn = null;
+ }
}
}
@@ -516,6 +541,10 @@ public class HiveHBaseTableInputFormat extends TableInputFormatBase
protected void finalize() throws Throwable {
try {
closeTable();
+ if (conn != null) {
+ conn.close();
+ conn = null;
+ }
} finally {
super.finalize();
}
[48/50] [abbrv] hive git commit: HIVE-12159: Create vectorized
readers for the complex types (Owen O'Malley,
reviewed by Matt McCline and Prasanth)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/ql/src/java/org/apache/hadoop/hive/ql/io/orc/RecordReaderImpl.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/RecordReaderImpl.java b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/RecordReaderImpl.java
index 9cfcc0e..2199b11 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/RecordReaderImpl.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/RecordReaderImpl.java
@@ -27,12 +27,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import com.google.common.base.Preconditions;
-import com.google.common.io.Closer;
+import org.apache.hadoop.fs.FileSystem;
import org.apache.orc.BooleanColumnStatistics;
-import org.apache.orc.DataReaderFactory;
-import org.apache.orc.MetadataReaderFactory;
-import org.apache.orc.OrcUtils;
import org.apache.orc.impl.BufferChunk;
import org.apache.orc.ColumnStatistics;
import org.apache.orc.impl.ColumnStatisticsImpl;
@@ -42,12 +38,9 @@ import org.apache.orc.DateColumnStatistics;
import org.apache.orc.DecimalColumnStatistics;
import org.apache.orc.DoubleColumnStatistics;
import org.apache.orc.impl.DataReaderProperties;
-import org.apache.orc.impl.DefaultMetadataReaderFactory;
import org.apache.orc.impl.InStream;
import org.apache.orc.IntegerColumnStatistics;
-import org.apache.orc.impl.MetadataReader;
import org.apache.orc.OrcConf;
-import org.apache.orc.impl.MetadataReaderProperties;
import org.apache.orc.impl.OrcIndex;
import org.apache.orc.impl.PositionProvider;
import org.apache.orc.impl.StreamName;
@@ -56,14 +49,11 @@ import org.apache.orc.StripeInformation;
import org.apache.orc.TimestampColumnStatistics;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hive.common.io.DiskRange;
import org.apache.hadoop.hive.common.io.DiskRangeList;
import org.apache.hadoop.hive.common.io.DiskRangeList.CreateHelper;
import org.apache.hadoop.hive.common.type.HiveDecimal;
-import org.apache.hadoop.hive.ql.exec.vector.ColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch;
import org.apache.orc.BloomFilterIO;
import org.apache.hadoop.hive.ql.io.sarg.PredicateLeaf;
@@ -103,8 +93,6 @@ public class RecordReaderImpl implements RecordReader {
private final SargApplier sargApp;
// an array about which row groups aren't skipped
private boolean[] includedRowGroups = null;
- private final Configuration conf;
- private final MetadataReader metadata;
private final DataReader dataReader;
/**
@@ -146,130 +134,36 @@ public class RecordReaderImpl implements RecordReader {
return result;
}
- public static Builder builder() {
- return new Builder();
- }
-
- public static class Builder {
- private Reader.Options options;
- private CompressionCodec codec;
- private List<OrcProto.Type> types;
- private List<StripeInformation> stripes;
- private int bufferSize;
- private FileSystem fileSystem;
- private Path path;
- private Configuration conf;
- private long strideRate;
- private MetadataReaderFactory metadataReaderFactory = new DefaultMetadataReaderFactory();
- private DataReaderFactory dataReaderFactory = new DefaultDataReaderFactory();
-
- private Builder() {
-
- }
-
- public Builder withOptions(Reader.Options options) {
- this.options = options;
- return this;
- }
-
- public Builder withCodec(CompressionCodec codec) {
- this.codec = codec;
- return this;
- }
-
- public Builder withTypes(List<OrcProto.Type> types) {
- this.types = types;
- return this;
- }
-
- public Builder withStripes(List<StripeInformation> stripes) {
- this.stripes = stripes;
- return this;
- }
-
- public Builder withBufferSize(int bufferSize) {
- this.bufferSize = bufferSize;
- return this;
- }
-
- public Builder withFileSystem(FileSystem fileSystem) {
- this.fileSystem = fileSystem;
- return this;
- }
-
- public Builder withPath(Path path) {
- this.path = path;
- return this;
- }
-
- public Builder withConf(Configuration conf) {
- this.conf = conf;
- return this;
- }
-
- public Builder withStrideRate(long strideRate) {
- this.strideRate = strideRate;
- return this;
- }
-
- public Builder withMetadataReaderFactory(MetadataReaderFactory metadataReaderFactory) {
- this.metadataReaderFactory = metadataReaderFactory;
- return this;
- }
-
- public Builder withDataReaderFactory(DataReaderFactory dataReaderFactory) {
- this.dataReaderFactory = dataReaderFactory;
- return this;
- }
-
- public RecordReaderImpl build() throws IOException {
- Preconditions.checkNotNull(metadataReaderFactory);
- Preconditions.checkNotNull(dataReaderFactory);
- Preconditions.checkNotNull(options);
- Preconditions.checkNotNull(types);
- Preconditions.checkNotNull(stripes);
- Preconditions.checkNotNull(fileSystem);
- Preconditions.checkNotNull(path);
- Preconditions.checkNotNull(conf);
-
- return new RecordReaderImpl(this);
- }
- }
-
- private RecordReaderImpl(Builder builder) throws IOException {
- Reader.Options options = builder.options;
- this.types = builder.types;
- TreeReaderFactory.TreeReaderSchema treeReaderSchema;
+ protected RecordReaderImpl(ReaderImpl fileReader,
+ Reader.Options options) throws IOException {
+ SchemaEvolution treeReaderSchema;
+ this.included = options.getInclude();
+ included[0] = true;
if (options.getSchema() == null) {
if (LOG.isInfoEnabled()) {
- LOG.info("Schema on read not provided -- using file schema " + types.toString());
+ LOG.info("Schema on read not provided -- using file schema " +
+ fileReader.getSchema());
}
- treeReaderSchema = new TreeReaderFactory.TreeReaderSchema().fileTypes(types).schemaTypes(types);
+ treeReaderSchema = new SchemaEvolution(fileReader.getSchema(), included);
} else {
// Now that we are creating a record reader for a file, validate that the schema to read
// is compatible with the file schema.
//
- List<OrcProto.Type> schemaTypes = OrcUtils.getOrcTypes(options.getSchema());
- treeReaderSchema = SchemaEvolution.validateAndCreate(types, schemaTypes);
- }
- this.path = builder.path;
- this.codec = builder.codec;
- this.bufferSize = builder.bufferSize;
- this.included = options.getInclude();
- this.conf = builder.conf;
- this.rowIndexStride = builder.strideRate;
- this.metadata = builder.metadataReaderFactory.create(MetadataReaderProperties.builder()
- .withFileSystem(builder.fileSystem)
- .withPath(path)
- .withCodec(codec)
- .withBufferSize(bufferSize)
- .withTypeCount(types.size())
- .build());
+ treeReaderSchema = new SchemaEvolution(fileReader.getSchema(),
+ options.getSchema(),
+ included);
+ }
+ this.path = fileReader.path;
+ this.codec = fileReader.codec;
+ this.types = fileReader.types;
+ this.bufferSize = fileReader.bufferSize;
+ this.rowIndexStride = fileReader.rowIndexStride;
+ FileSystem fileSystem = fileReader.fileSystem;
SearchArgument sarg = options.getSearchArgument();
- if (sarg != null && builder.strideRate != 0) {
+ if (sarg != null && rowIndexStride != 0) {
sargApp = new SargApplier(
- sarg, options.getColumnNames(), builder.strideRate, types, included.length);
+ sarg, options.getColumnNames(), rowIndexStride, types, included.length);
} else {
sargApp = null;
}
@@ -277,7 +171,7 @@ public class RecordReaderImpl implements RecordReader {
long skippedRows = 0;
long offset = options.getOffset();
long maxOffset = options.getMaxOffset();
- for(StripeInformation stripe: builder.stripes) {
+ for(StripeInformation stripe: fileReader.getStripes()) {
long stripeStart = stripe.getOffset();
if (offset > stripeStart) {
skippedRows += stripe.getNumberOfRows();
@@ -289,25 +183,30 @@ public class RecordReaderImpl implements RecordReader {
Boolean zeroCopy = options.getUseZeroCopy();
if (zeroCopy == null) {
- zeroCopy = OrcConf.USE_ZEROCOPY.getBoolean(conf);
+ zeroCopy = OrcConf.USE_ZEROCOPY.getBoolean(fileReader.conf);
+ }
+ if (options.getDataReader() == null) {
+ dataReader = RecordReaderUtils.createDefaultDataReader(
+ DataReaderProperties.builder()
+ .withBufferSize(bufferSize)
+ .withCompression(fileReader.compressionKind)
+ .withFileSystem(fileSystem)
+ .withPath(path)
+ .withTypeCount(types.size())
+ .withZeroCopy(zeroCopy)
+ .build());
+ } else {
+ dataReader = options.getDataReader();
}
- // TODO: we could change the ctor to pass this externally
- this.dataReader = builder.dataReaderFactory.create(DataReaderProperties.builder()
- .withFileSystem(builder.fileSystem)
- .withCodec(codec)
- .withPath(path)
- .withZeroCopy(zeroCopy)
- .build());
- this.dataReader.open();
-
firstRow = skippedRows;
totalRowCount = rows;
Boolean skipCorrupt = options.getSkipCorruptRecords();
if (skipCorrupt == null) {
- skipCorrupt = OrcConf.SKIP_CORRUPT_DATA.getBoolean(conf);
+ skipCorrupt = OrcConf.SKIP_CORRUPT_DATA.getBoolean(fileReader.conf);
}
- reader = TreeReaderFactory.createTreeReader(0, treeReaderSchema, included, skipCorrupt);
+ reader = TreeReaderFactory.createTreeReader(treeReaderSchema.getReaderSchema(),
+ treeReaderSchema, included, skipCorrupt);
indexes = new OrcProto.RowIndex[types.size()];
bloomFilterIndices = new OrcProto.BloomFilterIndex[types.size()];
advanceToNextRow(reader, 0L, true);
@@ -333,10 +232,10 @@ public class RecordReaderImpl implements RecordReader {
}
OrcProto.StripeFooter readStripeFooter(StripeInformation stripe) throws IOException {
- return metadata.readStripeFooter(stripe);
+ return dataReader.readStripeFooter(stripe);
}
- static enum Location {
+ enum Location {
BEFORE, MIN, MIDDLE, MAX, AFTER
}
@@ -895,7 +794,7 @@ public class RecordReaderImpl implements RecordReader {
return sargApp.pickRowGroups(stripes.get(currentStripe), indexes, bloomFilterIndices, false);
}
- private void clearStreams() throws IOException {
+ private void clearStreams() {
// explicit close of all streams to de-ref ByteBuffers
for (InStream is : streams.values()) {
is.close();
@@ -1149,31 +1048,27 @@ public class RecordReaderImpl implements RecordReader {
}
@Override
- public VectorizedRowBatch nextBatch(VectorizedRowBatch previous) throws IOException {
+ public boolean nextBatch(VectorizedRowBatch batch) throws IOException {
try {
- final VectorizedRowBatch result;
if (rowInStripe >= rowCountInStripe) {
currentStripe += 1;
+ if (currentStripe >= stripes.size()) {
+ batch.size = 0;
+ return false;
+ }
readStripe();
}
- final int batchSize = computeBatchSize(VectorizedRowBatch.DEFAULT_SIZE);
+ int batchSize = computeBatchSize(batch.getMaxSize());
rowInStripe += batchSize;
- if (previous == null) {
- ColumnVector[] cols = (ColumnVector[]) reader.nextVector(null, (int) batchSize);
- result = new VectorizedRowBatch(cols.length);
- result.cols = cols;
- } else {
- result = previous;
- result.selectedInUse = false;
- reader.setVectorColumnCount(result.getDataColumnCount());
- reader.nextVector(result.cols, batchSize);
- }
+ reader.setVectorColumnCount(batch.getDataColumnCount());
+ reader.nextBatch(batch, batchSize);
- result.size = batchSize;
+ batch.size = (int) batchSize;
+ batch.selectedInUse = false;
advanceToNextRow(reader, rowInStripe + rowBaseInStripe, true);
- return result;
+ return batch.size != 0;
} catch (IOException e) {
// Rethrow exception with file name in log message
throw new IOException("Error reading file: " + path, e);
@@ -1216,16 +1111,8 @@ public class RecordReaderImpl implements RecordReader {
@Override
public void close() throws IOException {
- Closer closer = Closer.create();
- try {
- closer.register(metadata);
- closer.register(dataReader);
- clearStreams();
- } catch (IOException e) {
- throw closer.rethrow(e);
- } finally {
- closer.close();
- }
+ clearStreams();
+ dataReader.close();
}
@Override
@@ -1244,10 +1131,6 @@ public class RecordReaderImpl implements RecordReader {
return ((float) rowBaseInStripe + rowInStripe) / totalRowCount;
}
- MetadataReader getMetadataReader() {
- return metadata;
- }
-
private int findStripe(long rowNumber) {
for (int i = 0; i < stripes.size(); i++) {
StripeInformation stripe = stripes.get(i);
@@ -1276,8 +1159,8 @@ public class RecordReaderImpl implements RecordReader {
sargColumns = sargColumns == null ?
(sargApp == null ? null : sargApp.sargColumns) : sargColumns;
}
- return metadata.readRowIndex(stripe, stripeFooter, included, indexes, sargColumns,
- bloomFilterIndex);
+ return dataReader.readRowIndex(stripe, stripeFooter, included, indexes,
+ sargColumns, bloomFilterIndex);
}
private void seekToRowEntry(TreeReaderFactory.TreeReader reader, int rowEntry)
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/ql/src/java/org/apache/hadoop/hive/ql/io/orc/RecordReaderUtils.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/RecordReaderUtils.java b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/RecordReaderUtils.java
index 177721d..4192588 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/RecordReaderUtils.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/RecordReaderUtils.java
@@ -24,6 +24,7 @@ import java.util.List;
import java.util.Map;
import java.util.TreeMap;
+import com.google.common.collect.Lists;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
@@ -36,6 +37,7 @@ import org.apache.hadoop.hive.shims.HadoopShims;
import org.apache.hadoop.hive.shims.ShimLoader;
import org.apache.hadoop.hive.shims.HadoopShims.ByteBufferPoolShim;
import org.apache.hadoop.hive.shims.HadoopShims.ZeroCopyReaderShim;
+import org.apache.orc.StripeInformation;
import org.apache.orc.impl.BufferChunk;
import org.apache.orc.CompressionCodec;
import org.apache.orc.DataReader;
@@ -44,6 +46,8 @@ import org.apache.orc.impl.DirectDecompressionCodec;
import org.apache.orc.OrcProto;
import com.google.common.collect.ComparisonChain;
+import org.apache.orc.impl.InStream;
+import org.apache.orc.impl.OrcIndex;
import org.apache.orc.impl.OutStream;
/**
@@ -53,34 +57,130 @@ public class RecordReaderUtils {
private static final HadoopShims SHIMS = ShimLoader.getHadoopShims();
private static class DefaultDataReader implements DataReader {
- private FSDataInputStream file;
- private ByteBufferAllocatorPool pool;
- private ZeroCopyReaderShim zcr;
- private FileSystem fs;
- private Path path;
- private boolean useZeroCopy;
- private CompressionCodec codec;
+ private FSDataInputStream file = null;
+ private final ByteBufferAllocatorPool pool;
+ private ZeroCopyReaderShim zcr = null;
+ private final FileSystem fs;
+ private final Path path;
+ private final boolean useZeroCopy;
+ private final CompressionCodec codec;
+ private final int bufferSize;
+ private final int typeCount;
+
+ private DefaultDataReader(DefaultDataReader other) {
+ this.pool = other.pool;
+ this.zcr = other.zcr;
+ this.bufferSize = other.bufferSize;
+ this.typeCount = other.typeCount;
+ this.fs = other.fs;
+ this.path = other.path;
+ this.useZeroCopy = other.useZeroCopy;
+ this.codec = other.codec;
+ }
private DefaultDataReader(DataReaderProperties properties) {
this.fs = properties.getFileSystem();
this.path = properties.getPath();
this.useZeroCopy = properties.getZeroCopy();
- this.codec = properties.getCodec();
+ this.codec = WriterImpl.createCodec(properties.getCompression());
+ this.bufferSize = properties.getBufferSize();
+ this.typeCount = properties.getTypeCount();
+ if (useZeroCopy) {
+ this.pool = new ByteBufferAllocatorPool();
+ } else {
+ this.pool = null;
+ }
}
@Override
public void open() throws IOException {
this.file = fs.open(path);
if (useZeroCopy) {
- pool = new ByteBufferAllocatorPool();
zcr = RecordReaderUtils.createZeroCopyShim(file, codec, pool);
} else {
- pool = null;
zcr = null;
}
}
@Override
+ public OrcIndex readRowIndex(StripeInformation stripe,
+ OrcProto.StripeFooter footer,
+ boolean[] included,
+ OrcProto.RowIndex[] indexes,
+ boolean[] sargColumns,
+ OrcProto.BloomFilterIndex[] bloomFilterIndices
+ ) throws IOException {
+ if (file == null) {
+ open();
+ }
+ if (footer == null) {
+ footer = readStripeFooter(stripe);
+ }
+ if (indexes == null) {
+ indexes = new OrcProto.RowIndex[typeCount];
+ }
+ if (bloomFilterIndices == null) {
+ bloomFilterIndices = new OrcProto.BloomFilterIndex[typeCount];
+ }
+ long offset = stripe.getOffset();
+ List<OrcProto.Stream> streams = footer.getStreamsList();
+ for (int i = 0; i < streams.size(); i++) {
+ OrcProto.Stream stream = streams.get(i);
+ OrcProto.Stream nextStream = null;
+ if (i < streams.size() - 1) {
+ nextStream = streams.get(i+1);
+ }
+ int col = stream.getColumn();
+ int len = (int) stream.getLength();
+ // row index stream and bloom filter are interlaced, check if the sarg column contains bloom
+ // filter and combine the io to read row index and bloom filters for that column together
+ if (stream.hasKind() && (stream.getKind() == OrcProto.Stream.Kind.ROW_INDEX)) {
+ boolean readBloomFilter = false;
+ if (sargColumns != null && sargColumns[col] &&
+ nextStream.getKind() == OrcProto.Stream.Kind.BLOOM_FILTER) {
+ len += nextStream.getLength();
+ i += 1;
+ readBloomFilter = true;
+ }
+ if ((included == null || included[col]) && indexes[col] == null) {
+ byte[] buffer = new byte[len];
+ file.readFully(offset, buffer, 0, buffer.length);
+ ByteBuffer bb = ByteBuffer.wrap(buffer);
+ indexes[col] = OrcProto.RowIndex.parseFrom(InStream.create("index",
+ Lists.<DiskRange>newArrayList(new BufferChunk(bb, 0)), stream.getLength(),
+ codec, bufferSize));
+ if (readBloomFilter) {
+ bb.position((int) stream.getLength());
+ bloomFilterIndices[col] = OrcProto.BloomFilterIndex.parseFrom(InStream.create(
+ "bloom_filter", Lists.<DiskRange>newArrayList(new BufferChunk(bb, 0)),
+ nextStream.getLength(), codec, bufferSize));
+ }
+ }
+ }
+ offset += len;
+ }
+
+ OrcIndex index = new OrcIndex(indexes, bloomFilterIndices);
+ return index;
+ }
+
+ @Override
+ public OrcProto.StripeFooter readStripeFooter(StripeInformation stripe) throws IOException {
+ if (file == null) {
+ open();
+ }
+ long offset = stripe.getOffset() + stripe.getIndexLength() + stripe.getDataLength();
+ int tailLength = (int) stripe.getFooterLength();
+
+ // read the footer
+ ByteBuffer tailBuf = ByteBuffer.allocate(tailLength);
+ file.readFully(offset, tailBuf.array(), tailBuf.arrayOffset(), tailLength);
+ return OrcProto.StripeFooter.parseFrom(InStream.createCodedInputStream("footer",
+ Lists.<DiskRange>newArrayList(new BufferChunk(tailBuf, 0)),
+ tailLength, codec, bufferSize));
+ }
+
+ @Override
public DiskRangeList readFileData(
DiskRangeList range, long baseOffset, boolean doForceDirect) throws IOException {
return RecordReaderUtils.readDiskRanges(file, zcr, baseOffset, range, doForceDirect);
@@ -106,9 +206,14 @@ public class RecordReaderUtils {
zcr.releaseBuffer(buffer);
}
+ @Override
+ public DataReader clone() {
+ return new DefaultDataReader(this);
+ }
+
}
- static DataReader createDefaultDataReader(DataReaderProperties properties) {
+ public static DataReader createDefaultDataReader(DataReaderProperties properties) {
return new DefaultDataReader(properties);
}
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/ql/src/java/org/apache/hadoop/hive/ql/io/orc/SchemaEvolution.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/SchemaEvolution.java b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/SchemaEvolution.java
index f28ca13..6747691 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/SchemaEvolution.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/SchemaEvolution.java
@@ -20,13 +20,12 @@ package org.apache.hadoop.hive.ql.io.orc;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.hive.ql.io.orc.TreeReaderFactory.TreeReaderSchema;
-import org.apache.orc.OrcProto;
-import org.apache.orc.OrcUtils;
import org.apache.orc.TypeDescription;
/**
@@ -34,103 +33,134 @@ import org.apache.orc.TypeDescription;
* has been schema evolution.
*/
public class SchemaEvolution {
-
+ private final Map<TypeDescription, TypeDescription> readerToFile;
+ private final boolean[] included;
+ private final TypeDescription readerSchema;
private static final Log LOG = LogFactory.getLog(SchemaEvolution.class);
- public static TreeReaderSchema validateAndCreate(List<OrcProto.Type> fileTypes,
- List<OrcProto.Type> schemaTypes) throws IOException {
+ public SchemaEvolution(TypeDescription readerSchema, boolean[] included) {
+ this.included = included;
+ readerToFile = null;
+ this.readerSchema = readerSchema;
+ }
- // For ACID, the row is the ROW field in the outer STRUCT.
- final boolean isAcid = checkAcidSchema(fileTypes);
- final List<OrcProto.Type> rowSchema;
- int rowSubtype;
- if (isAcid) {
- rowSubtype = OrcRecordUpdater.ROW + 1;
- rowSchema = fileTypes.subList(rowSubtype, fileTypes.size());
+ public SchemaEvolution(TypeDescription fileSchema,
+ TypeDescription readerSchema,
+ boolean[] included) throws IOException {
+ readerToFile = new HashMap<>(readerSchema.getMaximumId() + 1);
+ this.included = included;
+ if (checkAcidSchema(fileSchema)) {
+ this.readerSchema = createEventSchema(readerSchema);
} else {
- rowSubtype = 0;
- rowSchema = fileTypes;
+ this.readerSchema = readerSchema;
}
+ buildMapping(fileSchema, this.readerSchema);
+ }
- // Do checking on the overlap. Additional columns will be defaulted to NULL.
-
- int numFileColumns = rowSchema.get(0).getSubtypesCount();
- int numDesiredColumns = schemaTypes.get(0).getSubtypesCount();
-
- int numReadColumns = Math.min(numFileColumns, numDesiredColumns);
-
- /**
- * Check type promotion.
- *
- * Currently, we only support integer type promotions that can be done "implicitly".
- * That is, we know that using a bigger integer tree reader on the original smaller integer
- * column will "just work".
- *
- * In the future, other type promotions might require type conversion.
- */
- // short -> int -> bigint as same integer readers are used for the above types.
-
- for (int i = 0; i < numReadColumns; i++) {
- OrcProto.Type fColType = fileTypes.get(rowSubtype + i);
- OrcProto.Type rColType = schemaTypes.get(i);
- if (!fColType.getKind().equals(rColType.getKind())) {
-
- boolean ok = false;
- if (fColType.getKind().equals(OrcProto.Type.Kind.SHORT)) {
+ public TypeDescription getReaderSchema() {
+ return readerSchema;
+ }
- if (rColType.getKind().equals(OrcProto.Type.Kind.INT) ||
- rColType.getKind().equals(OrcProto.Type.Kind.LONG)) {
- // type promotion possible, converting SHORT to INT/LONG requested type
- ok = true;
- }
- } else if (fColType.getKind().equals(OrcProto.Type.Kind.INT)) {
+ public TypeDescription getFileType(TypeDescription readerType) {
+ TypeDescription result;
+ if (readerToFile == null) {
+ if (included == null || included[readerType.getId()]) {
+ result = readerType;
+ } else {
+ result = null;
+ }
+ } else {
+ result = readerToFile.get(readerType);
+ }
+ return result;
+ }
- if (rColType.getKind().equals(OrcProto.Type.Kind.LONG)) {
- // type promotion possible, converting INT to LONG requested type
- ok = true;
+ void buildMapping(TypeDescription fileType,
+ TypeDescription readerType) throws IOException {
+ // if the column isn't included, don't map it
+ if (included != null && !included[readerType.getId()]) {
+ return;
+ }
+ boolean isOk = true;
+ // check the easy case first
+ if (fileType.getCategory() == readerType.getCategory()) {
+ switch (readerType.getCategory()) {
+ case BOOLEAN:
+ case BYTE:
+ case SHORT:
+ case INT:
+ case LONG:
+ case DOUBLE:
+ case FLOAT:
+ case STRING:
+ case TIMESTAMP:
+ case BINARY:
+ case DATE:
+ // these are always a match
+ break;
+ case CHAR:
+ case VARCHAR:
+ isOk = fileType.getMaxLength() == readerType.getMaxLength();
+ break;
+ case DECIMAL:
+ // TODO we don't enforce scale and precision checks, but probably should
+ break;
+ case UNION:
+ case MAP:
+ case LIST: {
+ // these must be an exact match
+ List<TypeDescription> fileChildren = fileType.getChildren();
+ List<TypeDescription> readerChildren = readerType.getChildren();
+ if (fileChildren.size() == readerChildren.size()) {
+ for(int i=0; i < fileChildren.size(); ++i) {
+ buildMapping(fileChildren.get(i), readerChildren.get(i));
+ }
+ } else {
+ isOk = false;
}
+ break;
}
-
- if (!ok) {
- throw new IOException("ORC does not support type conversion from " +
- fColType.getKind().name() + " to " + rColType.getKind().name());
+ case STRUCT: {
+ // allow either side to have fewer fields than the other
+ List<TypeDescription> fileChildren = fileType.getChildren();
+ List<TypeDescription> readerChildren = readerType.getChildren();
+ int jointSize = Math.min(fileChildren.size(), readerChildren.size());
+ for(int i=0; i < jointSize; ++i) {
+ buildMapping(fileChildren.get(i), readerChildren.get(i));
+ }
+ break;
}
+ default:
+ throw new IllegalArgumentException("Unknown type " + readerType);
}
- }
-
- List<OrcProto.Type> fullSchemaTypes;
-
- if (isAcid) {
- fullSchemaTypes = new ArrayList<OrcProto.Type>();
-
- // This copies the ACID struct type which is subtype = 0.
- // It has field names "operation" through "row".
- // And we copy the types for all fields EXCEPT ROW (which must be last!).
-
- for (int i = 0; i < rowSubtype; i++) {
- fullSchemaTypes.add(fileTypes.get(i).toBuilder().build());
+ } else {
+ switch (fileType.getCategory()) {
+ case SHORT:
+ if (readerType.getCategory() != TypeDescription.Category.INT &&
+ readerType.getCategory() != TypeDescription.Category.LONG) {
+ isOk = false;
+ }
+ break;
+ case INT:
+ if (readerType.getCategory() != TypeDescription.Category.LONG) {
+ isOk = false;
+ }
+ break;
+ default:
+ isOk = false;
}
-
- // Add the row struct type.
- OrcUtils.appendOrcTypesRebuildSubtypes(fullSchemaTypes, schemaTypes, 0);
+ }
+ if (isOk) {
+ readerToFile.put(readerType, fileType);
} else {
- fullSchemaTypes = schemaTypes;
+ throw new IOException("ORC does not support type conversion from " +
+ fileType + " to " + readerType);
}
-
- int innerStructSubtype = rowSubtype;
-
- // LOG.info("Schema evolution: (fileTypes) " + fileTypes.toString() +
- // " (schemaEvolutionTypes) " + schemaEvolutionTypes.toString());
-
- return new TreeReaderSchema().
- fileTypes(fileTypes).
- schemaTypes(fullSchemaTypes).
- innerStructSubtype(innerStructSubtype);
}
- private static boolean checkAcidSchema(List<OrcProto.Type> fileSchema) {
- if (fileSchema.get(0).getKind().equals(OrcProto.Type.Kind.STRUCT)) {
- List<String> rootFields = fileSchema.get(0).getFieldNamesList();
+ private static boolean checkAcidSchema(TypeDescription type) {
+ if (type.getCategory().equals(TypeDescription.Category.STRUCT)) {
+ List<String> rootFields = type.getFieldNames();
if (acidEventFieldNames.equals(rootFields)) {
return true;
}
@@ -142,26 +172,14 @@ public class SchemaEvolution {
* @param typeDescr
* @return ORC types for the ACID event based on the row's type description
*/
- public static List<OrcProto.Type> createEventSchema(TypeDescription typeDescr) {
-
- List<OrcProto.Type> result = new ArrayList<OrcProto.Type>();
-
- OrcProto.Type.Builder type = OrcProto.Type.newBuilder();
- type.setKind(OrcProto.Type.Kind.STRUCT);
- type.addAllFieldNames(acidEventFieldNames);
- for (int i = 0; i < acidEventFieldNames.size(); i++) {
- type.addSubtypes(i + 1);
- }
- result.add(type.build());
-
- // Automatically add all fields except the last (ROW).
- for (int i = 0; i < acidEventOrcTypeKinds.size() - 1; i ++) {
- type.clear();
- type.setKind(acidEventOrcTypeKinds.get(i));
- result.add(type.build());
- }
-
- OrcUtils.appendOrcTypesRebuildSubtypes(result, typeDescr);
+ public static TypeDescription createEventSchema(TypeDescription typeDescr) {
+ TypeDescription result = TypeDescription.createStruct()
+ .addField("operation", TypeDescription.createInt())
+ .addField("originalTransaction", TypeDescription.createLong())
+ .addField("bucket", TypeDescription.createInt())
+ .addField("rowId", TypeDescription.createLong())
+ .addField("currentTransaction", TypeDescription.createLong())
+ .addField("row", typeDescr.clone());
return result;
}
@@ -174,14 +192,4 @@ public class SchemaEvolution {
acidEventFieldNames.add("currentTransaction");
acidEventFieldNames.add("row");
}
- public static final List<OrcProto.Type.Kind> acidEventOrcTypeKinds =
- new ArrayList<OrcProto.Type.Kind>();
- static {
- acidEventOrcTypeKinds.add(OrcProto.Type.Kind.INT);
- acidEventOrcTypeKinds.add(OrcProto.Type.Kind.LONG);
- acidEventOrcTypeKinds.add(OrcProto.Type.Kind.INT);
- acidEventOrcTypeKinds.add(OrcProto.Type.Kind.LONG);
- acidEventOrcTypeKinds.add(OrcProto.Type.Kind.LONG);
- acidEventOrcTypeKinds.add(OrcProto.Type.Kind.STRUCT);
- }
}
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/ql/src/java/org/apache/hadoop/hive/ql/io/orc/TreeReaderFactory.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/TreeReaderFactory.java b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/TreeReaderFactory.java
index 8bb32ea..8ee8cd7 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/TreeReaderFactory.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/TreeReaderFactory.java
@@ -24,6 +24,7 @@ import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
@@ -35,9 +36,12 @@ import org.apache.hadoop.hive.ql.exec.vector.BytesColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.ColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.DecimalColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.DoubleColumnVector;
+import org.apache.hadoop.hive.ql.exec.vector.ListColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector;
+import org.apache.hadoop.hive.ql.exec.vector.MapColumnVector;
+import org.apache.hadoop.hive.ql.exec.vector.StructColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.TimestampColumnVector;
-import org.apache.hadoop.hive.ql.exec.vector.TimestampUtils;
+import org.apache.hadoop.hive.ql.exec.vector.UnionColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch;
import org.apache.hadoop.hive.ql.exec.vector.expressions.StringExpr;
import org.apache.hadoop.hive.serde2.io.ByteWritable;
@@ -56,8 +60,7 @@ import org.apache.hadoop.io.FloatWritable;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.apache.orc.TypeDescription;
import org.apache.orc.impl.BitFieldReader;
import org.apache.orc.impl.DynamicByteArray;
import org.apache.orc.impl.InStream;
@@ -75,60 +78,6 @@ import org.apache.orc.impl.StreamName;
*/
public class TreeReaderFactory {
- private static final Logger LOG =
- LoggerFactory.getLogger(TreeReaderFactory.class);
-
- public static class TreeReaderSchema {
-
- /**
- * The types in the ORC file.
- */
- List<OrcProto.Type> fileTypes;
-
- /**
- * The treeReaderSchema that the reader should read as.
- */
- List<OrcProto.Type> schemaTypes;
-
- /**
- * The subtype of the row STRUCT. Different than 0 for ACID.
- */
- int innerStructSubtype;
-
- public TreeReaderSchema() {
- fileTypes = null;
- schemaTypes = null;
- innerStructSubtype = -1;
- }
-
- public TreeReaderSchema fileTypes(List<OrcProto.Type> fileTypes) {
- this.fileTypes = fileTypes;
- return this;
- }
-
- public TreeReaderSchema schemaTypes(List<OrcProto.Type> schemaTypes) {
- this.schemaTypes = schemaTypes;
- return this;
- }
-
- public TreeReaderSchema innerStructSubtype(int innerStructSubtype) {
- this.innerStructSubtype = innerStructSubtype;
- return this;
- }
-
- public List<OrcProto.Type> getFileTypes() {
- return fileTypes;
- }
-
- public List<OrcProto.Type> getSchemaTypes() {
- return schemaTypes;
- }
-
- public int getInnerStructSubtype() {
- return innerStructSubtype;
- }
- }
-
public abstract static class TreeReader {
protected final int columnId;
protected BitFieldReader present = null;
@@ -230,36 +179,60 @@ public class TreeReaderFactory {
}
/**
+ * Called at the top level to read into the given batch.
+ * @param batch the batch to read into
+ * @param batchSize the number of rows to read
+ * @throws IOException
+ */
+ public void nextBatch(VectorizedRowBatch batch,
+ int batchSize) throws IOException {
+ batch.cols[0].reset();
+ batch.cols[0].ensureSize(batchSize, false);
+ nextVector(batch.cols[0], null, batchSize);
+ }
+
+ /**
* Populates the isNull vector array in the previousVector object based on
* the present stream values. This function is called from all the child
* readers, and they all set the values based on isNull field value.
*
- * @param previousVector The columnVector object whose isNull value is populated
+ * @param previous The columnVector object whose isNull value is populated
+ * @param isNull Whether the each value was null at a higher level. If
+ * isNull is null, all values are non-null.
* @param batchSize Size of the column vector
- * @return next column vector
* @throws IOException
*/
- public Object nextVector(Object previousVector, final int batchSize) throws IOException {
- ColumnVector result = (ColumnVector) previousVector;
- if (present != null) {
+ public void nextVector(ColumnVector previous,
+ boolean[] isNull,
+ int batchSize) throws IOException {
+ if (present != null || isNull != null) {
// Set noNulls and isNull vector of the ColumnVector based on
// present stream
- result.noNulls = true;
+ previous.noNulls = true;
+ boolean allNull = true;
for (int i = 0; i < batchSize; i++) {
- result.isNull[i] = (present.next() != 1);
- if (result.noNulls && result.isNull[i]) {
- result.noNulls = false;
+ if (isNull == null || !isNull[i]) {
+ if (present != null && present.next() != 1) {
+ previous.noNulls = false;
+ previous.isNull[i] = true;
+ } else {
+ previous.isNull[i] = false;
+ allNull = false;
+ }
+ } else {
+ previous.noNulls = false;
+ previous.isNull[i] = true;
}
}
+ previous.isRepeating = !previous.noNulls && allNull;
} else {
- // There is not present stream, this means that all the values are
+ // There is no present stream, this means that all the values are
// present.
- result.noNulls = true;
+ previous.noNulls = true;
for (int i = 0; i < batchSize; i++) {
- result.isNull[i] = false;
+ previous.isNull[i] = false;
}
}
- return previousVector;
}
public BitFieldReader getPresent() {
@@ -267,6 +240,46 @@ public class TreeReaderFactory {
}
}
+ public static class NullTreeReader extends TreeReader {
+
+ public NullTreeReader(int columnId) throws IOException {
+ super(columnId);
+ }
+
+ @Override
+ public void startStripe(Map<StreamName, InStream> streams,
+ OrcProto.StripeFooter footer) {
+ // PASS
+ }
+
+ @Override
+ void skipRows(long rows) {
+ // PASS
+ }
+
+ @Override
+ public void seek(PositionProvider position) {
+ // PASS
+ }
+
+ @Override
+ public void seek(PositionProvider[] position) {
+ // PASS
+ }
+
+ @Override
+ Object next(Object previous) {
+ return null;
+ }
+
+ @Override
+ public void nextVector(ColumnVector vector, boolean[] isNull, int size) {
+ vector.noNulls = false;
+ vector.isNull[0] = true;
+ vector.isRepeating = true;
+ }
+ }
+
public static class BooleanTreeReader extends TreeReader {
protected BitFieldReader reader = null;
@@ -322,20 +335,16 @@ public class TreeReaderFactory {
}
@Override
- public Object nextVector(Object previousVector, final int batchSize) throws IOException {
- final LongColumnVector result;
- if (previousVector == null) {
- result = new LongColumnVector();
- } else {
- result = (LongColumnVector) previousVector;
- }
+ public void nextVector(ColumnVector previousVector,
+ boolean[] isNull,
+ int batchSize) throws IOException {
+ LongColumnVector result = (LongColumnVector) previousVector;
// Read present/isNull stream
- super.nextVector(result, batchSize);
+ super.nextVector(result, isNull, batchSize);
// Read value entries based on isNull entries
reader.nextVector(result, batchSize);
- return result;
}
}
@@ -387,20 +396,16 @@ public class TreeReaderFactory {
}
@Override
- public Object nextVector(Object previousVector, final int batchSize) throws IOException {
- final LongColumnVector result;
- if (previousVector == null) {
- result = new LongColumnVector();
- } else {
- result = (LongColumnVector) previousVector;
- }
+ public void nextVector(ColumnVector previousVector,
+ boolean[] isNull,
+ int batchSize) throws IOException {
+ final LongColumnVector result = (LongColumnVector) previousVector;
// Read present/isNull stream
- super.nextVector(result, batchSize);
+ super.nextVector(result, isNull, batchSize);
// Read value entries based on isNull entries
- reader.nextVector(result, batchSize);
- return result;
+ reader.nextVector(result, result.vector, batchSize);
}
@Override
@@ -473,20 +478,16 @@ public class TreeReaderFactory {
}
@Override
- public Object nextVector(Object previousVector, final int batchSize) throws IOException {
- final LongColumnVector result;
- if (previousVector == null) {
- result = new LongColumnVector();
- } else {
- result = (LongColumnVector) previousVector;
- }
+ public void nextVector(ColumnVector previousVector,
+ boolean[] isNull,
+ int batchSize) throws IOException {
+ final LongColumnVector result = (LongColumnVector) previousVector;
// Read present/isNull stream
- super.nextVector(result, batchSize);
+ super.nextVector(result, isNull, batchSize);
// Read value entries based on isNull entries
- reader.nextVector(result, batchSize);
- return result;
+ reader.nextVector(result, result.vector, batchSize);
}
@Override
@@ -559,20 +560,16 @@ public class TreeReaderFactory {
}
@Override
- public Object nextVector(Object previousVector, final int batchSize) throws IOException {
- final LongColumnVector result;
- if (previousVector == null) {
- result = new LongColumnVector();
- } else {
- result = (LongColumnVector) previousVector;
- }
+ public void nextVector(ColumnVector previousVector,
+ boolean[] isNull,
+ int batchSize) throws IOException {
+ final LongColumnVector result = (LongColumnVector) previousVector;
// Read present/isNull stream
- super.nextVector(result, batchSize);
+ super.nextVector(result, isNull, batchSize);
// Read value entries based on isNull entries
- reader.nextVector(result, batchSize);
- return result;
+ reader.nextVector(result, result.vector, batchSize);
}
@Override
@@ -646,20 +643,16 @@ public class TreeReaderFactory {
}
@Override
- public Object nextVector(Object previousVector, final int batchSize) throws IOException {
- final LongColumnVector result;
- if (previousVector == null) {
- result = new LongColumnVector();
- } else {
- result = (LongColumnVector) previousVector;
- }
+ public void nextVector(ColumnVector previousVector,
+ boolean[] isNull,
+ int batchSize) throws IOException {
+ final LongColumnVector result = (LongColumnVector) previousVector;
// Read present/isNull stream
- super.nextVector(result, batchSize);
+ super.nextVector(result, isNull, batchSize);
// Read value entries based on isNull entries
- reader.nextVector(result, batchSize);
- return result;
+ reader.nextVector(result, result.vector, batchSize);
}
@Override
@@ -719,16 +712,13 @@ public class TreeReaderFactory {
}
@Override
- public Object nextVector(Object previousVector, final int batchSize) throws IOException {
- final DoubleColumnVector result;
- if (previousVector == null) {
- result = new DoubleColumnVector();
- } else {
- result = (DoubleColumnVector) previousVector;
- }
+ public void nextVector(ColumnVector previousVector,
+ boolean[] isNull,
+ int batchSize) throws IOException {
+ final DoubleColumnVector result = (DoubleColumnVector) previousVector;
// Read present/isNull stream
- super.nextVector(result, batchSize);
+ super.nextVector(result, isNull, batchSize);
final boolean hasNulls = !result.noNulls;
boolean allNulls = hasNulls;
@@ -768,7 +758,6 @@ public class TreeReaderFactory {
}
result.isRepeating = repeating;
}
- return result;
}
@Override
@@ -832,16 +821,13 @@ public class TreeReaderFactory {
}
@Override
- public Object nextVector(Object previousVector, final int batchSize) throws IOException {
- final DoubleColumnVector result;
- if (previousVector == null) {
- result = new DoubleColumnVector();
- } else {
- result = (DoubleColumnVector) previousVector;
- }
+ public void nextVector(ColumnVector previousVector,
+ boolean[] isNull,
+ int batchSize) throws IOException {
+ final DoubleColumnVector result = (DoubleColumnVector) previousVector;
// Read present/isNull stream
- super.nextVector(result, batchSize);
+ super.nextVector(result, isNull, batchSize);
final boolean hasNulls = !result.noNulls;
boolean allNulls = hasNulls;
@@ -881,8 +867,6 @@ public class TreeReaderFactory {
}
result.isRepeating = repeating;
}
-
- return result;
}
@Override
@@ -974,19 +958,15 @@ public class TreeReaderFactory {
}
@Override
- public Object nextVector(Object previousVector, final int batchSize) throws IOException {
- final BytesColumnVector result;
- if (previousVector == null) {
- result = new BytesColumnVector();
- } else {
- result = (BytesColumnVector) previousVector;
- }
+ public void nextVector(ColumnVector previousVector,
+ boolean[] isNull,
+ int batchSize) throws IOException {
+ final BytesColumnVector result = (BytesColumnVector) previousVector;
// Read present/isNull stream
- super.nextVector(result, batchSize);
+ super.nextVector(result, isNull, batchSize);
BytesColumnVectorUtil.readOrcByteArrays(stream, lengths, scratchlcv, result, batchSize);
- return result;
}
@Override
@@ -1011,7 +991,6 @@ public class TreeReaderFactory {
private final TimeZone readerTimeZone;
private TimeZone writerTimeZone;
private boolean hasSameTZRules;
- private TimestampWritable scratchTimestampWritable;
TimestampTreeReader(int columnId, boolean skipCorrupt) throws IOException {
this(columnId, null, null, null, null, skipCorrupt);
@@ -1115,9 +1094,9 @@ public class TreeReaderFactory {
int newNanos = parseNanos(nanos.next());
// fix the rounding when we divided by 1000.
if (millis >= 0) {
- millis += newNanos / 1000000;
+ millis += newNanos / WriterImpl.NANOS_PER_MILLI;
} else {
- millis -= newNanos / 1000000;
+ millis -= newNanos / WriterImpl.NANOS_PER_MILLI;
}
long offset = 0;
// If reader and writer time zones have different rules, adjust the timezone difference
@@ -1144,31 +1123,45 @@ public class TreeReaderFactory {
}
@Override
- public Object nextVector(Object previousVector, final int batchSize) throws IOException {
- final TimestampColumnVector result;
- if (previousVector == null) {
- result = new TimestampColumnVector();
- } else {
- result = (TimestampColumnVector) previousVector;
- }
+ public void nextVector(ColumnVector previousVector,
+ boolean[] isNull,
+ int batchSize) throws IOException {
+ TimestampColumnVector result = (TimestampColumnVector) previousVector;
+ super.nextVector(previousVector, isNull, batchSize);
- result.reset();
- if (scratchTimestampWritable == null) {
- scratchTimestampWritable = new TimestampWritable();
- }
- Object obj;
for (int i = 0; i < batchSize; i++) {
- obj = next(scratchTimestampWritable);
- if (obj == null) {
- result.noNulls = false;
- result.isNull[i] = true;
- } else {
- TimestampWritable writable = (TimestampWritable) obj;
- result.set(i, writable.getTimestamp());
+ if (result.noNulls || !result.isNull[i]) {
+ long millis = data.next() + base_timestamp;
+ int newNanos = parseNanos(nanos.next());
+ if (millis < 0 && newNanos != 0) {
+ millis -= 1;
+ }
+ millis *= WriterImpl.MILLIS_PER_SECOND;
+ long offset = 0;
+ // If reader and writer time zones have different rules, adjust the timezone difference
+ // between reader and writer taking day light savings into account.
+ if (!hasSameTZRules) {
+ offset = writerTimeZone.getOffset(millis) - readerTimeZone.getOffset(millis);
+ }
+ long adjustedMillis = millis + offset;
+ // Sometimes the reader timezone might have changed after adding the adjustedMillis.
+ // To account for that change, check for any difference in reader timezone after
+ // adding adjustedMillis. If so use the new offset (offset at adjustedMillis point of time).
+ if (!hasSameTZRules &&
+ (readerTimeZone.getOffset(millis) != readerTimeZone.getOffset(adjustedMillis))) {
+ long newOffset =
+ writerTimeZone.getOffset(millis) - readerTimeZone.getOffset(adjustedMillis);
+ adjustedMillis = millis + newOffset;
+ }
+ result.time[i] = adjustedMillis;
+ result.nanos[i] = newNanos;
+ if (result.isRepeating && i != 0 &&
+ (result.time[0] != result.time[i] ||
+ result.nanos[0] != result.nanos[i])) {
+ result.isRepeating = false;
+ }
}
}
-
- return result;
}
private static int parseNanos(long serialized) {
@@ -1253,20 +1246,16 @@ public class TreeReaderFactory {
}
@Override
- public Object nextVector(Object previousVector, final int batchSize) throws IOException {
- final LongColumnVector result;
- if (previousVector == null) {
- result = new LongColumnVector();
- } else {
- result = (LongColumnVector) previousVector;
- }
+ public void nextVector(ColumnVector previousVector,
+ boolean[] isNull,
+ int batchSize) throws IOException {
+ final LongColumnVector result = (LongColumnVector) previousVector;
// Read present/isNull stream
- super.nextVector(result, batchSize);
+ super.nextVector(result, isNull, batchSize);
// Read value entries based on isNull entries
- reader.nextVector(result, batchSize);
- return result;
+ reader.nextVector(result, result.vector, batchSize);
}
@Override
@@ -1278,7 +1267,7 @@ public class TreeReaderFactory {
public static class DecimalTreeReader extends TreeReader {
protected InStream valueStream;
protected IntegerReader scaleReader = null;
- private LongColumnVector scratchScaleVector;
+ private int[] scratchScaleVector;
private final int precision;
private final int scale;
@@ -1293,7 +1282,7 @@ public class TreeReaderFactory {
super(columnId, present);
this.precision = precision;
this.scale = scale;
- this.scratchScaleVector = new LongColumnVector(VectorizedRowBatch.DEFAULT_SIZE);
+ this.scratchScaleVector = new int[VectorizedRowBatch.DEFAULT_SIZE];
this.valueStream = valueStream;
if (scaleStream != null && encoding != null) {
checkEncoding(encoding);
@@ -1352,46 +1341,34 @@ public class TreeReaderFactory {
}
@Override
- public Object nextVector(Object previousVector, final int batchSize) throws IOException {
- final DecimalColumnVector result;
- if (previousVector == null) {
- result = new DecimalColumnVector(precision, scale);
- } else {
- result = (DecimalColumnVector) previousVector;
- }
-
- // Save the reference for isNull in the scratch vector
- boolean[] scratchIsNull = scratchScaleVector.isNull;
+ public void nextVector(ColumnVector previousVector,
+ boolean[] isNull,
+ int batchSize) throws IOException {
+ final DecimalColumnVector result = (DecimalColumnVector) previousVector;
// Read present/isNull stream
- super.nextVector(result, batchSize);
+ super.nextVector(result, isNull, batchSize);
+ if (batchSize > scratchScaleVector.length) {
+ scratchScaleVector = new int[(int) batchSize];
+ }
+ scaleReader.nextVector(result, scratchScaleVector, batchSize);
// Read value entries based on isNull entries
- if (result.isRepeating) {
- if (!result.isNull[0]) {
+ if (result.noNulls) {
+ for (int r=0; r < batchSize; ++r) {
BigInteger bInt = SerializationUtils.readBigInteger(valueStream);
- short scaleInData = (short) scaleReader.next();
- HiveDecimal dec = HiveDecimal.create(bInt, scaleInData);
- dec = HiveDecimal.enforcePrecisionScale(dec, precision, scale);
- result.set(0, dec);
+ HiveDecimal dec = HiveDecimal.create(bInt, scratchScaleVector[r]);
+ result.set(r, dec);
}
- } else {
- // result vector has isNull values set, use the same to read scale vector.
- scratchScaleVector.isNull = result.isNull;
- scaleReader.nextVector(scratchScaleVector, batchSize);
- for (int i = 0; i < batchSize; i++) {
- if (!result.isNull[i]) {
+ } else if (!result.isRepeating || !result.isNull[0]) {
+ for (int r=0; r < batchSize; ++r) {
+ if (!result.isNull[r]) {
BigInteger bInt = SerializationUtils.readBigInteger(valueStream);
- short scaleInData = (short) scratchScaleVector.vector[i];
- HiveDecimal dec = HiveDecimal.create(bInt, scaleInData);
- dec = HiveDecimal.enforcePrecisionScale(dec, precision, scale);
- result.set(i, dec);
+ HiveDecimal dec = HiveDecimal.create(bInt, scratchScaleVector[r]);
+ result.set(r, dec);
}
}
}
- // Switch back the null vector.
- scratchScaleVector.isNull = scratchIsNull;
- return result;
}
@Override
@@ -1481,8 +1458,10 @@ public class TreeReaderFactory {
}
@Override
- public Object nextVector(Object previousVector, final int batchSize) throws IOException {
- return reader.nextVector(previousVector, batchSize);
+ public void nextVector(ColumnVector previousVector,
+ boolean[] isNull,
+ int batchSize) throws IOException {
+ reader.nextVector(previousVector, isNull, batchSize);
}
@Override
@@ -1501,7 +1480,7 @@ public class TreeReaderFactory {
BytesColumnVector result, final int batchSize) throws IOException {
// Read lengths
scratchlcv.isNull = result.isNull; // Notice we are replacing the isNull vector here...
- lengths.nextVector(scratchlcv, batchSize);
+ lengths.nextVector(scratchlcv, scratchlcv.vector, batchSize);
int totalLength = 0;
if (!scratchlcv.isRepeating) {
for (int i = 0; i < batchSize; i++) {
@@ -1532,31 +1511,35 @@ public class TreeReaderFactory {
}
// This method has the common code for reading in bytes into a BytesColumnVector.
- public static void readOrcByteArrays(InStream stream, IntegerReader lengths,
- LongColumnVector scratchlcv,
- BytesColumnVector result, final int batchSize) throws IOException {
-
- byte[] allBytes = commonReadByteArrays(stream, lengths, scratchlcv, result, batchSize);
-
- // Too expensive to figure out 'repeating' by comparisons.
- result.isRepeating = false;
- int offset = 0;
- if (!scratchlcv.isRepeating) {
- for (int i = 0; i < batchSize; i++) {
- if (!scratchlcv.isNull[i]) {
- result.setRef(i, allBytes, offset, (int) scratchlcv.vector[i]);
- offset += scratchlcv.vector[i];
- } else {
- result.setRef(i, allBytes, 0, 0);
+ public static void readOrcByteArrays(InStream stream,
+ IntegerReader lengths,
+ LongColumnVector scratchlcv,
+ BytesColumnVector result,
+ int batchSize) throws IOException {
+ if (result.noNulls || !(result.isRepeating && result.isNull[0])) {
+ byte[] allBytes = commonReadByteArrays(stream, lengths, scratchlcv,
+ result, (int) batchSize);
+
+ // Too expensive to figure out 'repeating' by comparisons.
+ result.isRepeating = false;
+ int offset = 0;
+ if (!scratchlcv.isRepeating) {
+ for (int i = 0; i < batchSize; i++) {
+ if (!scratchlcv.isNull[i]) {
+ result.setRef(i, allBytes, offset, (int) scratchlcv.vector[i]);
+ offset += scratchlcv.vector[i];
+ } else {
+ result.setRef(i, allBytes, 0, 0);
+ }
}
- }
- } else {
- for (int i = 0; i < batchSize; i++) {
- if (!scratchlcv.isNull[i]) {
- result.setRef(i, allBytes, offset, (int) scratchlcv.vector[0]);
- offset += scratchlcv.vector[0];
- } else {
- result.setRef(i, allBytes, 0, 0);
+ } else {
+ for (int i = 0; i < batchSize; i++) {
+ if (!scratchlcv.isNull[i]) {
+ result.setRef(i, allBytes, offset, (int) scratchlcv.vector[0]);
+ offset += scratchlcv.vector[0];
+ } else {
+ result.setRef(i, allBytes, 0, 0);
+ }
}
}
}
@@ -1641,19 +1624,16 @@ public class TreeReaderFactory {
}
@Override
- public Object nextVector(Object previousVector, final int batchSize) throws IOException {
- final BytesColumnVector result;
- if (previousVector == null) {
- result = new BytesColumnVector();
- } else {
- result = (BytesColumnVector) previousVector;
- }
+ public void nextVector(ColumnVector previousVector,
+ boolean[] isNull,
+ int batchSize) throws IOException {
+ final BytesColumnVector result = (BytesColumnVector) previousVector;
// Read present/isNull stream
- super.nextVector(result, batchSize);
+ super.nextVector(result, isNull, batchSize);
- BytesColumnVectorUtil.readOrcByteArrays(stream, lengths, scratchlcv, result, batchSize);
- return result;
+ BytesColumnVectorUtil.readOrcByteArrays(stream, lengths, scratchlcv,
+ result, batchSize);
}
@Override
@@ -1816,18 +1796,15 @@ public class TreeReaderFactory {
}
@Override
- public Object nextVector(Object previousVector, final int batchSize) throws IOException {
- final BytesColumnVector result;
+ public void nextVector(ColumnVector previousVector,
+ boolean[] isNull,
+ int batchSize) throws IOException {
+ final BytesColumnVector result = (BytesColumnVector) previousVector;
int offset;
int length;
- if (previousVector == null) {
- result = new BytesColumnVector();
- } else {
- result = (BytesColumnVector) previousVector;
- }
// Read present/isNull stream
- super.nextVector(result, batchSize);
+ super.nextVector(result, isNull, batchSize);
if (dictionaryBuffer != null) {
@@ -1838,7 +1815,8 @@ public class TreeReaderFactory {
// Read string offsets
scratchlcv.isNull = result.isNull;
- reader.nextVector(scratchlcv, batchSize);
+ scratchlcv.ensureSize((int) batchSize, false);
+ reader.nextVector(scratchlcv, scratchlcv.vector, batchSize);
if (!scratchlcv.isRepeating) {
// The vector has non-repeating strings. Iterate thru the batch
@@ -1878,7 +1856,6 @@ public class TreeReaderFactory {
}
}
}
- return result;
}
int getDictionaryEntryLength(int entry, int offset) {
@@ -1936,11 +1913,13 @@ public class TreeReaderFactory {
}
@Override
- public Object nextVector(Object previousVector, final int batchSize) throws IOException {
+ public void nextVector(ColumnVector previousVector,
+ boolean[] isNull,
+ int batchSize) throws IOException {
// Get the vector of strings from StringTreeReader, then make a 2nd pass to
// adjust down the length (right trim and truncate) if necessary.
- BytesColumnVector result = (BytesColumnVector) super.nextVector(previousVector, batchSize);
-
+ super.nextVector(previousVector, isNull, batchSize);
+ BytesColumnVector result = (BytesColumnVector) previousVector;
int adjustedDownLen;
if (result.isRepeating) {
if (result.noNulls || !result.isNull[0]) {
@@ -1973,7 +1952,6 @@ public class TreeReaderFactory {
}
}
}
- return result;
}
}
@@ -2010,10 +1988,13 @@ public class TreeReaderFactory {
}
@Override
- public Object nextVector(Object previousVector, final int batchSize) throws IOException {
+ public void nextVector(ColumnVector previousVector,
+ boolean[] isNull,
+ int batchSize) throws IOException {
// Get the vector of strings from StringTreeReader, then make a 2nd pass to
// adjust down the length (truncate) if necessary.
- BytesColumnVector result = (BytesColumnVector) super.nextVector(previousVector, batchSize);
+ super.nextVector(previousVector, isNull, batchSize);
+ BytesColumnVector result = (BytesColumnVector) previousVector;
int adjustedDownLen;
if (result.isRepeating) {
@@ -2045,62 +2026,26 @@ public class TreeReaderFactory {
}
}
}
- return result;
}
}
protected static class StructTreeReader extends TreeReader {
- private final int readColumnCount;
- private final int resultColumnCount;
protected final TreeReader[] fields;
- private final String[] fieldNames;
- protected StructTreeReader(
- int columnId,
- TreeReaderSchema treeReaderSchema,
- boolean[] included,
- boolean skipCorrupt) throws IOException {
+ protected StructTreeReader(int columnId,
+ TypeDescription readerSchema,
+ SchemaEvolution treeReaderSchema,
+ boolean[] included,
+ boolean skipCorrupt) throws IOException {
super(columnId);
- OrcProto.Type fileStructType = treeReaderSchema.getFileTypes().get(columnId);
-
- OrcProto.Type schemaStructType = treeReaderSchema.getSchemaTypes().get(columnId);
+ TypeDescription fileSchema = treeReaderSchema.getFileType(readerSchema);
- readColumnCount = Math.min(fileStructType.getFieldNamesCount(), schemaStructType.getFieldNamesCount());
-
- if (columnId == treeReaderSchema.getInnerStructSubtype()) {
- // If there are more result columns than reader columns, we will default those additional
- // columns to NULL.
- resultColumnCount = schemaStructType.getFieldNamesCount();
- } else {
- resultColumnCount = readColumnCount;
- }
-
- this.fields = new TreeReader[readColumnCount];
- this.fieldNames = new String[readColumnCount];
-
- if (included == null) {
- for (int i = 0; i < readColumnCount; ++i) {
- int subtype = schemaStructType.getSubtypes(i);
- this.fields[i] = createTreeReader(subtype, treeReaderSchema, included, skipCorrupt);
- // Use the treeReaderSchema evolution name since file/reader types may not have the real column name.
- this.fieldNames[i] = schemaStructType.getFieldNames(i);
- }
- } else {
- for (int i = 0; i < readColumnCount; ++i) {
- int subtype = schemaStructType.getSubtypes(i);
- if (subtype >= included.length) {
- throw new IOException("subtype " + subtype + " exceeds the included array size " +
- included.length + " fileTypes " + treeReaderSchema.getFileTypes().toString() +
- " schemaTypes " + treeReaderSchema.getSchemaTypes().toString() +
- " innerStructSubtype " + treeReaderSchema.getInnerStructSubtype());
- }
- if (included[subtype]) {
- this.fields[i] = createTreeReader(subtype, treeReaderSchema, included, skipCorrupt);
- }
- // Use the treeReaderSchema evolution name since file/reader types may not have the real column name.
- this.fieldNames[i] = schemaStructType.getFieldNames(i);
- }
+ List<TypeDescription> childrenTypes = readerSchema.getChildren();
+ this.fields = new TreeReader[childrenTypes.size()];
+ for (int i = 0; i < fields.length; ++i) {
+ TypeDescription subtype = childrenTypes.get(i);
+ this.fields[i] = createTreeReader(subtype, treeReaderSchema, included, skipCorrupt);
}
}
@@ -2120,65 +2065,52 @@ public class TreeReaderFactory {
OrcStruct result = null;
if (valuePresent) {
if (previous == null) {
- result = new OrcStruct(resultColumnCount);
+ result = new OrcStruct(fields.length);
} else {
result = (OrcStruct) previous;
// If the input format was initialized with a file with a
// different number of fields, the number of fields needs to
// be updated to the correct number
- if (result.getNumFields() != resultColumnCount) {
- result.setNumFields(resultColumnCount);
- }
+ result.setNumFields(fields.length);
}
- for (int i = 0; i < readColumnCount; ++i) {
+ for (int i = 0; i < fields.length; ++i) {
if (fields[i] != null) {
result.setFieldValue(i, fields[i].next(result.getFieldValue(i)));
}
}
- if (resultColumnCount > readColumnCount) {
- for (int i = readColumnCount; i < resultColumnCount; ++i) {
- // Default new treeReaderSchema evolution fields to NULL.
- result.setFieldValue(i, null);
- }
- }
}
return result;
}
@Override
- public Object nextVector(Object previousVector, final int batchSize) throws IOException {
- final ColumnVector[] result;
- if (previousVector == null) {
- result = new ColumnVector[readColumnCount];
- } else {
- result = (ColumnVector[]) previousVector;
+ public void nextBatch(VectorizedRowBatch batch,
+ int batchSize) throws IOException {
+ for(int i=0; i < fields.length &&
+ (vectorColumnCount == -1 || i < vectorColumnCount); ++i) {
+ batch.cols[i].reset();
+ batch.cols[i].ensureSize((int) batchSize, false);
+ fields[i].nextVector(batch.cols[i], null, batchSize);
}
+ }
- // Read all the members of struct as column vectors
- for (int i = 0; i < readColumnCount; i++) {
- if (fields[i] != null) {
- if (result[i] == null) {
- result[i] = (ColumnVector) fields[i].nextVector(null, batchSize);
- } else {
- fields[i].nextVector(result[i], batchSize);
- }
- }
- }
+ @Override
+ public void nextVector(ColumnVector previousVector,
+ boolean[] isNull,
+ int batchSize) throws IOException {
+ super.nextVector(previousVector, isNull, batchSize);
+ StructColumnVector result = (StructColumnVector) previousVector;
+ if (result.noNulls || !(result.isRepeating && result.isNull[0])) {
+ result.isRepeating = false;
- // Default additional treeReaderSchema evolution fields to NULL.
- if (vectorColumnCount != -1 && vectorColumnCount > readColumnCount) {
- for (int i = readColumnCount; i < vectorColumnCount; ++i) {
- ColumnVector colVector = result[i];
- if (colVector != null) {
- colVector.isRepeating = true;
- colVector.noNulls = false;
- colVector.isNull[0] = true;
+ // Read all the members of struct as column vectors
+ boolean[] mask = result.noNulls ? null : result.isNull;
+ for (int f = 0; f < fields.length; f++) {
+ if (fields[f] != null) {
+ fields[f].nextVector(result.fields[f], mask, batchSize);
}
}
}
-
- return result;
}
@Override
@@ -2208,19 +2140,18 @@ public class TreeReaderFactory {
protected final TreeReader[] fields;
protected RunLengthByteReader tags;
- protected UnionTreeReader(int columnId,
- TreeReaderSchema treeReaderSchema,
- boolean[] included,
- boolean skipCorrupt) throws IOException {
- super(columnId);
- OrcProto.Type type = treeReaderSchema.getSchemaTypes().get(columnId);
- int fieldCount = type.getSubtypesCount();
+ protected UnionTreeReader(int fileColumn,
+ TypeDescription readerSchema,
+ SchemaEvolution treeReaderSchema,
+ boolean[] included,
+ boolean skipCorrupt) throws IOException {
+ super(fileColumn);
+ List<TypeDescription> childrenTypes = readerSchema.getChildren();
+ int fieldCount = childrenTypes.size();
this.fields = new TreeReader[fieldCount];
for (int i = 0; i < fieldCount; ++i) {
- int subtype = type.getSubtypes(i);
- if (included == null || included[subtype]) {
- this.fields[i] = createTreeReader(subtype, treeReaderSchema, included, skipCorrupt);
- }
+ TypeDescription subtype = childrenTypes.get(i);
+ this.fields[i] = createTreeReader(subtype, treeReaderSchema, included, skipCorrupt);
}
}
@@ -2252,9 +2183,25 @@ public class TreeReaderFactory {
}
@Override
- public Object nextVector(Object previousVector, final int batchSize) throws IOException {
- throw new UnsupportedOperationException(
- "NextVector is not supported operation for Union type");
+ public void nextVector(ColumnVector previousVector,
+ boolean[] isNull,
+ int batchSize) throws IOException {
+ UnionColumnVector result = (UnionColumnVector) previousVector;
+ super.nextVector(result, isNull, batchSize);
+ if (result.noNulls || !(result.isRepeating && result.isNull[0])) {
+ result.isRepeating = false;
+ tags.nextVector(result.noNulls ? null : result.isNull, result.tags,
+ batchSize);
+ boolean[] ignore = new boolean[(int) batchSize];
+ for (int f = 0; f < result.fields.length; ++f) {
+ // build the ignore list for this tag
+ for (int r = 0; r < batchSize; ++r) {
+ ignore[r] = (!result.noNulls && result.isNull[r]) ||
+ result.tags[r] != f;
+ }
+ fields[f].nextVector(result.fields[f], ignore, batchSize);
+ }
+ }
}
@Override
@@ -2288,13 +2235,15 @@ public class TreeReaderFactory {
protected final TreeReader elementReader;
protected IntegerReader lengths = null;
- protected ListTreeReader(int columnId,
- TreeReaderSchema treeReaderSchema,
- boolean[] included,
- boolean skipCorrupt) throws IOException {
- super(columnId);
- OrcProto.Type type = treeReaderSchema.getSchemaTypes().get(columnId);
- elementReader = createTreeReader(type.getSubtypes(0), treeReaderSchema, included, skipCorrupt);
+ protected ListTreeReader(int fileColumn,
+ TypeDescription readerSchema,
+ SchemaEvolution treeReaderSchema,
+ boolean[] included,
+ boolean skipCorrupt) throws IOException {
+ super(fileColumn);
+ TypeDescription elementType = readerSchema.getChildren().get(0);
+ elementReader = createTreeReader(elementType, treeReaderSchema, included,
+ skipCorrupt);
}
@Override
@@ -2335,9 +2284,27 @@ public class TreeReaderFactory {
}
@Override
- public Object nextVector(Object previous, final int batchSize) throws IOException {
- throw new UnsupportedOperationException(
- "NextVector is not supported operation for List type");
+ public void nextVector(ColumnVector previous,
+ boolean[] isNull,
+ int batchSize) throws IOException {
+ ListColumnVector result = (ListColumnVector) previous;
+ super.nextVector(result, isNull, batchSize);
+ // if we have some none-null values, then read them
+ if (result.noNulls || !(result.isRepeating && result.isNull[0])) {
+ lengths.nextVector(result, result.lengths, batchSize);
+ // even with repeating lengths, the list doesn't repeat
+ result.isRepeating = false;
+ // build the offsets vector and figure out how many children to read
+ result.childCount = 0;
+ for (int r = 0; r < batchSize; ++r) {
+ if (result.noNulls || !result.isNull[r]) {
+ result.offsets[r] = result.childCount;
+ result.childCount += result.lengths[r];
+ }
+ }
+ result.child.ensureSize(result.childCount, false);
+ elementReader.nextVector(result.child, null, result.childCount);
+ }
}
@Override
@@ -2378,24 +2345,16 @@ public class TreeReaderFactory {
protected final TreeReader valueReader;
protected IntegerReader lengths = null;
- protected MapTreeReader(int columnId,
- TreeReaderSchema treeReaderSchema,
- boolean[] included,
- boolean skipCorrupt) throws IOException {
- super(columnId);
- OrcProto.Type type = treeReaderSchema.getSchemaTypes().get(columnId);
- int keyColumn = type.getSubtypes(0);
- int valueColumn = type.getSubtypes(1);
- if (included == null || included[keyColumn]) {
- keyReader = createTreeReader(keyColumn, treeReaderSchema, included, skipCorrupt);
- } else {
- keyReader = null;
- }
- if (included == null || included[valueColumn]) {
- valueReader = createTreeReader(valueColumn, treeReaderSchema, included, skipCorrupt);
- } else {
- valueReader = null;
- }
+ protected MapTreeReader(int fileColumn,
+ TypeDescription readerSchema,
+ SchemaEvolution treeReaderSchema,
+ boolean[] included,
+ boolean skipCorrupt) throws IOException {
+ super(fileColumn);
+ TypeDescription keyType = readerSchema.getChildren().get(0);
+ TypeDescription valueType = readerSchema.getChildren().get(1);
+ keyReader = createTreeReader(keyType, treeReaderSchema, included, skipCorrupt);
+ valueReader = createTreeReader(valueType, treeReaderSchema, included, skipCorrupt);
}
@Override
@@ -2429,9 +2388,28 @@ public class TreeReaderFactory {
}
@Override
- public Object nextVector(Object previous, final int batchSize) throws IOException {
- throw new UnsupportedOperationException(
- "NextVector is not supported operation for Map type");
+ public void nextVector(ColumnVector previous,
+ boolean[] isNull,
+ int batchSize) throws IOException {
+ MapColumnVector result = (MapColumnVector) previous;
+ super.nextVector(result, isNull, batchSize);
+ if (result.noNulls || !(result.isRepeating && result.isNull[0])) {
+ lengths.nextVector(result, result.lengths, batchSize);
+ // even with repeating lengths, the map doesn't repeat
+ result.isRepeating = false;
+ // build the offsets vector and figure out how many children to read
+ result.childCount = 0;
+ for (int r = 0; r < batchSize; ++r) {
+ if (result.noNulls || !result.isNull[r]) {
+ result.offsets[r] = result.childCount;
+ result.childCount += result.lengths[r];
+ }
+ }
+ result.keys.ensureSize(result.childCount, false);
+ result.values.ensureSize(result.childCount, false);
+ keyReader.nextVector(result.keys, null, result.childCount);
+ valueReader.nextVector(result.values, null, result.childCount);
+ }
}
@Override
@@ -2471,61 +2449,61 @@ public class TreeReaderFactory {
}
}
- public static TreeReader createTreeReader(int columnId,
- TreeReaderSchema treeReaderSchema,
- boolean[] included,
- boolean skipCorrupt
- ) throws IOException {
- OrcProto.Type type = treeReaderSchema.getSchemaTypes().get(columnId);
- switch (type.getKind()) {
+ public static TreeReader createTreeReader(TypeDescription readerType,
+ SchemaEvolution evolution,
+ boolean[] included,
+ boolean skipCorrupt
+ ) throws IOException {
+ TypeDescription fileType = evolution.getFileType(readerType);
+ if (fileType == null ||
+ (included != null && !included[readerType.getId()])) {
+ return new NullTreeReader(0);
+ }
+ switch (readerType.getCategory()) {
case BOOLEAN:
- return new BooleanTreeReader(columnId);
+ return new BooleanTreeReader(fileType.getId());
case BYTE:
- return new ByteTreeReader(columnId);
+ return new ByteTreeReader(fileType.getId());
case DOUBLE:
- return new DoubleTreeReader(columnId);
+ return new DoubleTreeReader(fileType.getId());
case FLOAT:
- return new FloatTreeReader(columnId);
+ return new FloatTreeReader(fileType.getId());
case SHORT:
- return new ShortTreeReader(columnId);
+ return new ShortTreeReader(fileType.getId());
case INT:
- return new IntTreeReader(columnId);
+ return new IntTreeReader(fileType.getId());
case LONG:
- return new LongTreeReader(columnId, skipCorrupt);
+ return new LongTreeReader(fileType.getId(), skipCorrupt);
case STRING:
- return new StringTreeReader(columnId);
+ return new StringTreeReader(fileType.getId());
case CHAR:
- if (!type.hasMaximumLength()) {
- throw new IllegalArgumentException("ORC char type has no length specified");
- }
- return new CharTreeReader(columnId, type.getMaximumLength());
+ return new CharTreeReader(fileType.getId(), readerType.getMaxLength());
case VARCHAR:
- if (!type.hasMaximumLength()) {
- throw new IllegalArgumentException("ORC varchar type has no length specified");
- }
- return new VarcharTreeReader(columnId, type.getMaximumLength());
+ return new VarcharTreeReader(fileType.getId(), readerType.getMaxLength());
case BINARY:
- return new BinaryTreeReader(columnId);
+ return new BinaryTreeReader(fileType.getId());
case TIMESTAMP:
- return new TimestampTreeReader(columnId, skipCorrupt);
+ return new TimestampTreeReader(fileType.getId(), skipCorrupt);
case DATE:
- return new DateTreeReader(columnId);
+ return new DateTreeReader(fileType.getId());
case DECIMAL:
- int precision =
- type.hasPrecision() ? type.getPrecision() : HiveDecimal.SYSTEM_DEFAULT_PRECISION;
- int scale = type.hasScale() ? type.getScale() : HiveDecimal.SYSTEM_DEFAULT_SCALE;
- return new DecimalTreeReader(columnId, precision, scale);
+ return new DecimalTreeReader(fileType.getId(), readerType.getPrecision(),
+ readerType.getScale());
case STRUCT:
- return new StructTreeReader(columnId, treeReaderSchema, included, skipCorrupt);
+ return new StructTreeReader(fileType.getId(), readerType,
+ evolution, included, skipCorrupt);
case LIST:
- return new ListTreeReader(columnId, treeReaderSchema, included, skipCorrupt);
+ return new ListTreeReader(fileType.getId(), readerType,
+ evolution, included, skipCorrupt);
case MAP:
- return new MapTreeReader(columnId, treeReaderSchema, included, skipCorrupt);
+ return new MapTreeReader(fileType.getId(), readerType, evolution,
+ included, skipCorrupt);
case UNION:
- return new UnionTreeReader(columnId, treeReaderSchema, included, skipCorrupt);
+ return new UnionTreeReader(fileType.getId(), readerType,
+ evolution, included, skipCorrupt);
default:
throw new IllegalArgumentException("Unsupported type " +
- type.getKind());
+ readerType.getCategory());
}
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/ql/src/java/org/apache/hadoop/hive/ql/io/orc/VectorizedOrcInputFormat.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/VectorizedOrcInputFormat.java b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/VectorizedOrcInputFormat.java
index 816b52d..e4d2e6e 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/VectorizedOrcInputFormat.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/VectorizedOrcInputFormat.java
@@ -71,14 +71,29 @@ public class VectorizedOrcInputFormat extends FileInputFormat<NullWritable, Vect
OrcInputFormat.raiseAcidTablesMustBeReadWithAcidReaderException(conf);
}
+ rbCtx = Utilities.getVectorizedRowBatchCtx(conf);
/**
* Do we have schema on read in the configuration variables?
*/
- TypeDescription schema = OrcInputFormat.getDesiredRowTypeDescr(conf, /* isAcidRead */ false);
-
List<OrcProto.Type> types = file.getTypes();
- Reader.Options options = new Reader.Options();
- options.schema(schema);
+ int dataColumns = rbCtx.getDataColumnCount();
+ TypeDescription schema =
+ OrcInputFormat.getDesiredRowTypeDescr(conf, false, dataColumns);
+ if (schema == null) {
+ schema = file.getSchema();
+ // Even if the user isn't doing schema evolution, cut the schema
+ // to the desired size.
+ if (schema.getCategory() == TypeDescription.Category.STRUCT &&
+ schema.getChildren().size() > dataColumns) {
+ schema = schema.clone();
+ List<TypeDescription> children = schema.getChildren();
+ for(int c = children.size() - 1; c >= dataColumns; --c) {
+ children.remove(c);
+ }
+ }
+ }
+ Reader.Options options = new Reader.Options().schema(schema);
+
this.offset = fileSplit.getStart();
this.length = fileSplit.getLength();
options.range(offset, length);
@@ -87,8 +102,6 @@ public class VectorizedOrcInputFormat extends FileInputFormat<NullWritable, Vect
this.reader = file.rowsOptions(options);
- rbCtx = Utilities.getVectorizedRowBatchCtx(conf);
-
columnsToIncludeTruncated = rbCtx.getColumnsToIncludeTruncated(conf);
int partitionColumnCount = rbCtx.getPartitionColumnCount();
@@ -103,9 +116,6 @@ public class VectorizedOrcInputFormat extends FileInputFormat<NullWritable, Vect
@Override
public boolean next(NullWritable key, VectorizedRowBatch value) throws IOException {
- if (!reader.hasNext()) {
- return false;
- }
try {
// Check and update partition cols if necessary. Ideally, this should be done
// in CreateValue as the partition is constant per split. But since Hive uses
@@ -118,7 +128,9 @@ public class VectorizedOrcInputFormat extends FileInputFormat<NullWritable, Vect
}
addPartitionCols = false;
}
- reader.nextBatch(value);
+ if (!reader.nextBatch(value)) {
+ return false;
+ }
} catch (Exception e) {
throw new RuntimeException(e);
}
http://git-wip-us.apache.org/repos/asf/hive/blob/0ac424f0/ql/src/java/org/apache/hadoop/hive/ql/io/orc/WriterImpl.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/WriterImpl.java b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/WriterImpl.java
index 70fe803..8e52907 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/WriterImpl.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/WriterImpl.java
@@ -101,8 +101,6 @@ public class WriterImpl extends org.apache.orc.impl.WriterImpl implements Writer
}
}
- private static final long NANOS_PER_MILLI = 1000000;
-
/**
* Set the value for a given column value within a batch.
* @param rowId the row to set
[11/50] [abbrv] hive git commit: HIVE-13533: Remove AST dump (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/udf_reflect2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/udf_reflect2.q.out b/ql/src/test/results/clientpositive/udf_reflect2.q.out
index 6c22657..a862990 100644
--- a/ql/src/test/results/clientpositive/udf_reflect2.q.out
+++ b/ql/src/test/results/clientpositive/udf_reflect2.q.out
@@ -78,235 +78,6 @@ SELECT key,
reflect2(ts, "getTime")
FROM (select cast(key as int) key, value, cast('2013-02-15 19:41:20' as timestamp) ts from src) a LIMIT 5
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- TOK_INT
- TOK_TABLE_OR_COL
- key
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_FUNCTION
- TOK_TIMESTAMP
- '2013-02-15 19:41:20'
- ts
- a
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- reflect2
- TOK_TABLE_OR_COL
- key
- "byteValue"
- TOK_SELEXPR
- TOK_FUNCTION
- reflect2
- TOK_TABLE_OR_COL
- key
- "shortValue"
- TOK_SELEXPR
- TOK_FUNCTION
- reflect2
- TOK_TABLE_OR_COL
- key
- "intValue"
- TOK_SELEXPR
- TOK_FUNCTION
- reflect2
- TOK_TABLE_OR_COL
- key
- "longValue"
- TOK_SELEXPR
- TOK_FUNCTION
- reflect2
- TOK_TABLE_OR_COL
- key
- "floatValue"
- TOK_SELEXPR
- TOK_FUNCTION
- reflect2
- TOK_TABLE_OR_COL
- key
- "doubleValue"
- TOK_SELEXPR
- TOK_FUNCTION
- reflect2
- TOK_TABLE_OR_COL
- key
- "toString"
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- value
- TOK_SELEXPR
- TOK_FUNCTION
- reflect2
- TOK_TABLE_OR_COL
- value
- "concat"
- "_concat"
- TOK_SELEXPR
- TOK_FUNCTION
- reflect2
- TOK_TABLE_OR_COL
- value
- "contains"
- "86"
- TOK_SELEXPR
- TOK_FUNCTION
- reflect2
- TOK_TABLE_OR_COL
- value
- "startsWith"
- "v"
- TOK_SELEXPR
- TOK_FUNCTION
- reflect2
- TOK_TABLE_OR_COL
- value
- "endsWith"
- "6"
- TOK_SELEXPR
- TOK_FUNCTION
- reflect2
- TOK_TABLE_OR_COL
- value
- "equals"
- "val_86"
- TOK_SELEXPR
- TOK_FUNCTION
- reflect2
- TOK_TABLE_OR_COL
- value
- "equalsIgnoreCase"
- "VAL_86"
- TOK_SELEXPR
- TOK_FUNCTION
- reflect2
- TOK_TABLE_OR_COL
- value
- "getBytes"
- TOK_SELEXPR
- TOK_FUNCTION
- reflect2
- TOK_TABLE_OR_COL
- value
- "indexOf"
- "1"
- TOK_SELEXPR
- TOK_FUNCTION
- reflect2
- TOK_TABLE_OR_COL
- value
- "lastIndexOf"
- "1"
- TOK_SELEXPR
- TOK_FUNCTION
- reflect2
- TOK_TABLE_OR_COL
- value
- "replace"
- "val"
- "VALUE"
- TOK_SELEXPR
- TOK_FUNCTION
- reflect2
- TOK_TABLE_OR_COL
- value
- "substring"
- 1
- TOK_SELEXPR
- TOK_FUNCTION
- reflect2
- TOK_TABLE_OR_COL
- value
- "substring"
- 1
- 5
- TOK_SELEXPR
- TOK_FUNCTION
- reflect2
- TOK_TABLE_OR_COL
- value
- "toUpperCase"
- TOK_SELEXPR
- TOK_FUNCTION
- reflect2
- TOK_TABLE_OR_COL
- value
- "trim"
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- ts
- TOK_SELEXPR
- TOK_FUNCTION
- reflect2
- TOK_TABLE_OR_COL
- ts
- "getYear"
- TOK_SELEXPR
- TOK_FUNCTION
- reflect2
- TOK_TABLE_OR_COL
- ts
- "getMonth"
- TOK_SELEXPR
- TOK_FUNCTION
- reflect2
- TOK_TABLE_OR_COL
- ts
- "getDay"
- TOK_SELEXPR
- TOK_FUNCTION
- reflect2
- TOK_TABLE_OR_COL
- ts
- "getHours"
- TOK_SELEXPR
- TOK_FUNCTION
- reflect2
- TOK_TABLE_OR_COL
- ts
- "getMinutes"
- TOK_SELEXPR
- TOK_FUNCTION
- reflect2
- TOK_TABLE_OR_COL
- ts
- "getSeconds"
- TOK_SELEXPR
- TOK_FUNCTION
- reflect2
- TOK_TABLE_OR_COL
- ts
- "getTime"
- TOK_LIMIT
- 5
-
-
STAGE DEPENDENCIES:
Stage-0 is a root stage
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/udtf_explode.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/udtf_explode.q.out b/ql/src/test/results/clientpositive/udtf_explode.q.out
index 62d8e9f..3304109 100644
--- a/ql/src/test/results/clientpositive/udtf_explode.q.out
+++ b/ql/src/test/results/clientpositive/udtf_explode.q.out
@@ -12,31 +12,6 @@ PREHOOK: query: EXPLAIN EXTENDED SELECT explode(array(1,2,3)) AS myCol FROM src
PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT explode(array(1,2,3)) AS myCol FROM src LIMIT 3
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- explode
- TOK_FUNCTION
- array
- 1
- 2
- 3
- myCol
- TOK_LIMIT
- 3
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
@@ -141,54 +116,6 @@ PREHOOK: query: EXPLAIN EXTENDED SELECT a.myCol, count(1) FROM (SELECT explode(a
PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT a.myCol, count(1) FROM (SELECT explode(array(1,2,3)) AS myCol FROM src LIMIT 3) a GROUP BY a.myCol
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- explode
- TOK_FUNCTION
- array
- 1
- 2
- 3
- myCol
- TOK_LIMIT
- 3
- a
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- myCol
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- .
- TOK_TABLE_OR_COL
- a
- myCol
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -453,67 +380,6 @@ PREHOOK: query: EXPLAIN EXTENDED SELECT a.myKey, a.myVal, count(1) FROM (SELECT
PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN EXTENDED SELECT a.myKey, a.myVal, count(1) FROM (SELECT explode(map(1,'one',2,'two',3,'three')) as (myKey,myVal) FROM src LIMIT 3) a GROUP BY a.myKey, a.myVal
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_FUNCTION
- explode
- TOK_FUNCTION
- map
- 1
- 'one'
- 2
- 'two'
- 3
- 'three'
- myKey
- myVal
- TOK_LIMIT
- 3
- a
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- myKey
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- myVal
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- TOK_GROUPBY
- .
- TOK_TABLE_OR_COL
- a
- myKey
- .
- TOK_TABLE_OR_COL
- a
- myVal
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/union22.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/union22.q.out b/ql/src/test/results/clientpositive/union22.q.out
index 5309c71..f075148 100644
--- a/ql/src/test/results/clientpositive/union22.q.out
+++ b/ql/src/test/results/clientpositive/union22.q.out
@@ -78,146 +78,6 @@ where a.k1 > 20
)
subq
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- dst_union22_delta
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- k1
- k1
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- k2
- k2
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- k3
- k3
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- k4
- k4
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- ds
- '1'
- <=
- TOK_TABLE_OR_COL
- k0
- 50
- TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- dst_union22
- a
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- dst_union22_delta
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- ds
- '1'
- >
- TOK_TABLE_OR_COL
- k0
- 50
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- k1
- .
- TOK_TABLE_OR_COL
- b
- k1
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '1'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- k1
- k1
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- k2
- k2
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- k3
- k3
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- k4
- k4
- TOK_WHERE
- >
- .
- TOK_TABLE_OR_COL
- a
- k1
- 20
- subq
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dst_union22
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2'
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-7 is a root stage , consists of Stage-8, Stage-4
Stage-8 has a backup stage: Stage-4
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/union24.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/union24.q.out b/ql/src/test/results/clientpositive/union24.q.out
index 993b838..91b582f 100644
--- a/ql/src/test/results/clientpositive/union24.q.out
+++ b/ql/src/test/results/clientpositive/union24.q.out
@@ -72,121 +72,6 @@ select s.key, s.count from (
select key, count(1) as count from src5 where key < 10 group by key
)s
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_UNIONALL
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src3
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src4
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src5
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- s
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- s
- count
-
-
STAGE DEPENDENCIES:
Stage-5 is a root stage
Stage-2 depends on stages: Stage-5
@@ -674,117 +559,6 @@ select s.key, s.count from (
select a.key as key, b.count as count from src4 a join src5 b on a.key=b.key where a.key < 10
)s
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src3
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src4
- a
- TOK_TABREF
- TOK_TABNAME
- src5
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- count
- count
- TOK_WHERE
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- s
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- s
- count
-
-
STAGE DEPENDENCIES:
Stage-4 is a root stage
Stage-2 depends on stages: Stage-4
@@ -1246,121 +1020,6 @@ select s.key, s.count from (
select a.key as key, count(1) as count from src4 a join src5 b on a.key=b.key where a.key < 10 group by a.key
)s
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src3
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src4
- a
- TOK_TABREF
- TOK_TABNAME
- src5
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- count
- TOK_WHERE
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- TOK_GROUPBY
- .
- TOK_TABLE_OR_COL
- a
- key
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- s
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- s
- count
-
-
STAGE DEPENDENCIES:
Stage-4 is a root stage
Stage-5 depends on stages: Stage-4
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/unionDistinct_1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/unionDistinct_1.q.out b/ql/src/test/results/clientpositive/unionDistinct_1.q.out
index 61bfa74..0330133 100644
--- a/ql/src/test/results/clientpositive/unionDistinct_1.q.out
+++ b/ql/src/test/results/clientpositive/unionDistinct_1.q.out
@@ -6815,157 +6815,6 @@ where a.k1 > 20
)
subq
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- dst_union22_delta
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- k1
- k1
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- k2
- k2
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- k3
- k3
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- k4
- k4
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- ds
- '1'
- <=
- TOK_TABLE_OR_COL
- k0
- 50
- TOK_QUERY
- TOK_FROM
- TOK_LEFTOUTERJOIN
- TOK_TABREF
- TOK_TABNAME
- dst_union22
- a
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- dst_union22_delta
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- and
- =
- TOK_TABLE_OR_COL
- ds
- '1'
- >
- TOK_TABLE_OR_COL
- k0
- 50
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- k1
- .
- TOK_TABLE_OR_COL
- b
- k1
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '1'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- k1
- k1
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- k2
- k2
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- k3
- k3
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- k4
- k4
- TOK_WHERE
- >
- .
- TOK_TABLE_OR_COL
- a
- k1
- 20
- _u1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECTDI
- TOK_SELEXPR
- TOK_ALLCOLREF
- subq
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- dst_union22
- TOK_PARTSPEC
- TOK_PARTVAL
- ds
- '2'
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
-
-
STAGE DEPENDENCIES:
Stage-7 is a root stage , consists of Stage-8, Stage-4
Stage-8 has a backup stage: Stage-4
@@ -8460,154 +8309,6 @@ select s.key, s.count from (
select key, count(1) as count from src5 where key < 10 group by key
)s
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src3
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- _u1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECTDI
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src4
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- _u2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECTDI
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src5
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- TOK_GROUPBY
- TOK_TABLE_OR_COL
- key
- _u3
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECTDI
- TOK_SELEXPR
- TOK_ALLCOLREF
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- s
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- s
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1
@@ -9213,139 +8914,6 @@ select s.key, s.count from (
select a.key as key, b.count as count from src4 a join src5 b on a.key=b.key where a.key < 10
)s
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src3
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- _u1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECTDI
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src4
- a
- TOK_TABREF
- TOK_TABNAME
- src5
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- count
- count
- TOK_WHERE
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- _u2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECTDI
- TOK_SELEXPR
- TOK_ALLCOLREF
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- s
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- s
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-7 depends on stages: Stage-1
@@ -9817,143 +9385,6 @@ select s.key, s.count from (
select a.key as key, count(1) as count from src4 a join src5 b on a.key=b.key where a.key < 10 group by a.key
)s
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- src3
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- key
- TOK_SELEXPR
- TOK_TABLE_OR_COL
- count
- TOK_WHERE
- <
- TOK_TABLE_OR_COL
- key
- 10
- _u1
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECTDI
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- src4
- a
- TOK_TABREF
- TOK_TABNAME
- src5
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- key
- TOK_SELEXPR
- TOK_FUNCTION
- count
- 1
- count
- TOK_WHERE
- <
- .
- TOK_TABLE_OR_COL
- a
- key
- 10
- TOK_GROUPBY
- .
- TOK_TABLE_OR_COL
- a
- key
- _u2
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECTDI
- TOK_SELEXPR
- TOK_ALLCOLREF
- s
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- s
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- s
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-2 depends on stages: Stage-1, Stage-5
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/union_ppr.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/union_ppr.q.out b/ql/src/test/results/clientpositive/union_ppr.q.out
index 11c6dce..c5b1193 100644
--- a/ql/src/test/results/clientpositive/union_ppr.q.out
+++ b/ql/src/test/results/clientpositive/union_ppr.q.out
@@ -20,98 +20,6 @@ SELECT * FROM (
WHERE A.ds = '2008-04-08'
SORT BY A.key, A.value, A.ds, A.hr
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_SUBQUERY
- TOK_UNIONALL
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- SRCPART
- X
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- X
- TOK_WHERE
- <
- .
- TOK_TABLE_OR_COL
- X
- key
- 100
- TOK_QUERY
- TOK_FROM
- TOK_TABREF
- TOK_TABNAME
- SRCPART
- Y
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_TABNAME
- Y
- TOK_WHERE
- <
- .
- TOK_TABLE_OR_COL
- Y
- key
- 100
- A
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- TOK_ALLCOLREF
- TOK_WHERE
- =
- .
- TOK_TABLE_OR_COL
- A
- ds
- '2008-04-08'
- TOK_SORTBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- A
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- A
- value
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- A
- ds
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- A
- hr
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
[04/50] [abbrv] hive git commit: HIVE-13553: CTE with upperCase alias
throws exception (Pengcheng Xiong, reviewed by Ashutosh Chauhan)
Posted by jd...@apache.org.
HIVE-13553: CTE with upperCase alias throws exception (Pengcheng Xiong, reviewed by Ashutosh Chauhan)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/287f0451
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/287f0451
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/287f0451
Branch: refs/heads/llap
Commit: 287f0451bce6173868d5ddf224e30dff8dde2ca5
Parents: 749e27a
Author: Pengcheng Xiong <px...@apache.org>
Authored: Sat Apr 23 16:59:37 2016 -0700
Committer: Pengcheng Xiong <px...@apache.org>
Committed: Sat Apr 23 16:59:37 2016 -0700
----------------------------------------------------------------------
.../hadoop/hive/ql/parse/SemanticAnalyzer.java | 4 +-
ql/src/test/queries/clientpositive/cte_6.q | 10 +++
ql/src/test/results/clientpositive/cte_6.q.out | 86 ++++++++++++++++++++
3 files changed, 98 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/287f0451/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 005b53f..9af7749 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
@@ -674,7 +674,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
ASTNode tableTree = (ASTNode) (tabref.getChild(0));
- String tabIdName = getUnescapedName(tableTree);
+ String tabIdName = getUnescapedName(tableTree).toLowerCase();
String alias;
if (aliasIndex != 0) {
@@ -1564,7 +1564,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
case HiveParser.TOK_ANALYZE:
// Case of analyze command
- String table_name = getUnescapedName((ASTNode) ast.getChild(0).getChild(0));
+ String table_name = getUnescapedName((ASTNode) ast.getChild(0).getChild(0)).toLowerCase();
qb.setTabAlias(table_name, table_name);
http://git-wip-us.apache.org/repos/asf/hive/blob/287f0451/ql/src/test/queries/clientpositive/cte_6.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/cte_6.q b/ql/src/test/queries/clientpositive/cte_6.q
new file mode 100644
index 0000000..964d1b8
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/cte_6.q
@@ -0,0 +1,10 @@
+explain
+with Q1 as ( select key from sRc where key = '5')
+select CPS.key from Q1 CPS;
+
+-- chaining
+
+explain
+with Q1 as ( select key from q2 where key = '5'),
+Q2 as ( select key from sRc where key = '5')
+select CPS.key from Q1 CPS;
http://git-wip-us.apache.org/repos/asf/hive/blob/287f0451/ql/src/test/results/clientpositive/cte_6.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/cte_6.q.out b/ql/src/test/results/clientpositive/cte_6.q.out
new file mode 100644
index 0000000..8cc433b
--- /dev/null
+++ b/ql/src/test/results/clientpositive/cte_6.q.out
@@ -0,0 +1,86 @@
+PREHOOK: query: explain
+with Q1 as ( select key from sRc where key = '5')
+select CPS.key from Q1 CPS
+PREHOOK: type: QUERY
+POSTHOOK: query: explain
+with Q1 as ( select key from sRc where key = '5')
+select CPS.key from Q1 CPS
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: (key = '5') (type: boolean)
+ Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: '5' (type: string)
+ outputColumnNames: _col0
+ Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
+PREHOOK: query: -- chaining
+
+explain
+with Q1 as ( select key from q2 where key = '5'),
+Q2 as ( select key from sRc where key = '5')
+select CPS.key from Q1 CPS
+PREHOOK: type: QUERY
+POSTHOOK: query: -- chaining
+
+explain
+with Q1 as ( select key from q2 where key = '5'),
+Q2 as ( select key from sRc where key = '5')
+select CPS.key from Q1 CPS
+POSTHOOK: type: QUERY
+STAGE DEPENDENCIES:
+ Stage-1 is a root stage
+ Stage-0 depends on stages: Stage-1
+
+STAGE PLANS:
+ Stage: Stage-1
+ Map Reduce
+ Map Operator Tree:
+ TableScan
+ alias: src
+ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE
+ Filter Operator
+ predicate: (key = '5') (type: boolean)
+ Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
+ Select Operator
+ expressions: '5' (type: string)
+ outputColumnNames: _col0
+ Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
+ File Output Operator
+ compressed: false
+ Statistics: Num rows: 250 Data size: 2656 Basic stats: COMPLETE Column stats: NONE
+ table:
+ input format: org.apache.hadoop.mapred.SequenceFileInputFormat
+ output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
+ serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
+
+ Stage: Stage-0
+ Fetch Operator
+ limit: -1
+ Processor Tree:
+ ListSink
+
[26/50] [abbrv] hive git commit: HIVE-13533: Remove AST dump (Jesus
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucket_map_join_spark1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucket_map_join_spark1.q.out b/ql/src/test/results/clientpositive/bucket_map_join_spark1.q.out
index 3b1912a..19937cb 100644
--- a/ql/src/test/results/clientpositive/bucket_map_join_spark1.q.out
+++ b/ql/src/test/results/clientpositive/bucket_map_join_spark1.q.out
@@ -116,58 +116,6 @@ select a.key, a.value, b.value
from srcbucket_mapjoin_part a join srcbucket_mapjoin_part_2 b
on a.key=b.key and b.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-5 is a root stage
Stage-4 depends on stages: Stage-5
@@ -478,58 +426,6 @@ select a.key, a.value, b.value
from srcbucket_mapjoin_part a join srcbucket_mapjoin_part_2 b
on a.key=b.key and b.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-5 is a root stage
Stage-4 depends on stages: Stage-5
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucket_map_join_spark2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucket_map_join_spark2.q.out b/ql/src/test/results/clientpositive/bucket_map_join_spark2.q.out
index 9a6aef7..90528be 100644
--- a/ql/src/test/results/clientpositive/bucket_map_join_spark2.q.out
+++ b/ql/src/test/results/clientpositive/bucket_map_join_spark2.q.out
@@ -100,58 +100,6 @@ select a.key, a.value, b.value
from srcbucket_mapjoin_part a join srcbucket_mapjoin_part_2 b
on a.key=b.key and b.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-5 is a root stage
Stage-4 depends on stages: Stage-5
@@ -462,58 +410,6 @@ select a.key, a.value, b.value
from srcbucket_mapjoin_part a join srcbucket_mapjoin_part_2 b
on a.key=b.key and b.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-5 is a root stage
Stage-4 depends on stages: Stage-5
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucket_map_join_spark3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucket_map_join_spark3.q.out b/ql/src/test/results/clientpositive/bucket_map_join_spark3.q.out
index 1d2166f..aede979 100644
--- a/ql/src/test/results/clientpositive/bucket_map_join_spark3.q.out
+++ b/ql/src/test/results/clientpositive/bucket_map_join_spark3.q.out
@@ -100,58 +100,6 @@ select a.key, a.value, b.value
from srcbucket_mapjoin_part a join srcbucket_mapjoin_part_2 b
on a.key=b.key and b.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-5 is a root stage
Stage-4 depends on stages: Stage-5
@@ -462,58 +410,6 @@ select a.key, a.value, b.value
from srcbucket_mapjoin_part a join srcbucket_mapjoin_part_2 b
on a.key=b.key and b.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-5 is a root stage
Stage-4 depends on stages: Stage-5
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucket_map_join_spark4.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucket_map_join_spark4.q.out b/ql/src/test/results/clientpositive/bucket_map_join_spark4.q.out
index 7d32376..662ad0e 100644
--- a/ql/src/test/results/clientpositive/bucket_map_join_spark4.q.out
+++ b/ql/src/test/results/clientpositive/bucket_map_join_spark4.q.out
@@ -70,73 +70,6 @@ POSTHOOK: query: explain extended
select a.key as key, a.value as val1, b.value as val2, c.value as val3
from tbl1 a join tbl2 b on a.key = b.key join tbl3 c on a.value = c.value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- tbl1
- a
- TOK_TABREF
- TOK_TABNAME
- tbl2
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_TABREF
- TOK_TABNAME
- tbl3
- c
- =
- .
- TOK_TABLE_OR_COL
- a
- value
- .
- TOK_TABLE_OR_COL
- c
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- val1
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- val2
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- c
- value
- val3
-
-
STAGE DEPENDENCIES:
Stage-7 is a root stage
Stage-5 depends on stages: Stage-7
@@ -487,73 +420,6 @@ POSTHOOK: query: explain extended
select a.key as key, a.value as val1, b.value as val2, c.value as val3
from tbl1 a join tbl2 b on a.key = b.key join tbl3 c on a.value = c.value
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- tbl1
- a
- TOK_TABREF
- TOK_TABNAME
- tbl2
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_TABREF
- TOK_TABNAME
- tbl3
- c
- =
- .
- TOK_TABLE_OR_COL
- a
- value
- .
- TOK_TABLE_OR_COL
- c
- value
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- val1
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- val2
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- c
- value
- val3
-
-
STAGE DEPENDENCIES:
Stage-7 is a root stage
Stage-5 depends on stages: Stage-7
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucketcontext_1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucketcontext_1.q.out b/ql/src/test/results/clientpositive/bucketcontext_1.q.out
index 78a0c8c..d1b7744 100644
--- a/ql/src/test/results/clientpositive/bucketcontext_1.q.out
+++ b/ql/src/test/results/clientpositive/bucketcontext_1.q.out
@@ -103,43 +103,6 @@ PREHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -406,43 +369,6 @@ PREHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucketcontext_2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucketcontext_2.q.out b/ql/src/test/results/clientpositive/bucketcontext_2.q.out
index bc08fd2..60c021c 100644
--- a/ql/src/test/results/clientpositive/bucketcontext_2.q.out
+++ b/ql/src/test/results/clientpositive/bucketcontext_2.q.out
@@ -87,43 +87,6 @@ PREHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -390,43 +353,6 @@ PREHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucketcontext_3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucketcontext_3.q.out b/ql/src/test/results/clientpositive/bucketcontext_3.q.out
index 0cba2ca..12eaddf 100644
--- a/ql/src/test/results/clientpositive/bucketcontext_3.q.out
+++ b/ql/src/test/results/clientpositive/bucketcontext_3.q.out
@@ -87,43 +87,6 @@ PREHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -387,43 +350,6 @@ PREHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucketcontext_4.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucketcontext_4.q.out b/ql/src/test/results/clientpositive/bucketcontext_4.q.out
index 652b377..2573564 100644
--- a/ql/src/test/results/clientpositive/bucketcontext_4.q.out
+++ b/ql/src/test/results/clientpositive/bucketcontext_4.q.out
@@ -103,43 +103,6 @@ PREHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -403,43 +366,6 @@ PREHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucketcontext_5.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucketcontext_5.q.out b/ql/src/test/results/clientpositive/bucketcontext_5.q.out
index ee4532a..e1c6a80 100644
--- a/ql/src/test/results/clientpositive/bucketcontext_5.q.out
+++ b/ql/src/test/results/clientpositive/bucketcontext_5.q.out
@@ -68,43 +68,6 @@ PREHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -272,43 +235,6 @@ PREHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucketcontext_6.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucketcontext_6.q.out b/ql/src/test/results/clientpositive/bucketcontext_6.q.out
index e280b95..9deb64d 100644
--- a/ql/src/test/results/clientpositive/bucketcontext_6.q.out
+++ b/ql/src/test/results/clientpositive/bucketcontext_6.q.out
@@ -86,43 +86,6 @@ PREHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -343,43 +306,6 @@ PREHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucketcontext_7.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucketcontext_7.q.out b/ql/src/test/results/clientpositive/bucketcontext_7.q.out
index b44ae95..621844e 100644
--- a/ql/src/test/results/clientpositive/bucketcontext_7.q.out
+++ b/ql/src/test/results/clientpositive/bucketcontext_7.q.out
@@ -120,43 +120,6 @@ PREHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -468,43 +431,6 @@ PREHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucketcontext_8.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucketcontext_8.q.out b/ql/src/test/results/clientpositive/bucketcontext_8.q.out
index eee7b57..7f3e50a 100644
--- a/ql/src/test/results/clientpositive/bucketcontext_8.q.out
+++ b/ql/src/test/results/clientpositive/bucketcontext_8.q.out
@@ -120,43 +120,6 @@ PREHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -468,43 +431,6 @@ PREHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_
PREHOOK: type: QUERY
POSTHOOK: query: explain extended select /* + MAPJOIN(a) */ count(*) FROM bucket_small a JOIN bucket_big b ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- bucket_small
- a
- TOK_TABREF
- TOK_TABNAME
- bucket_big
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucketmapjoin1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucketmapjoin1.q.out b/ql/src/test/results/clientpositive/bucketmapjoin1.q.out
index ac8a76f..9956fa7 100644
--- a/ql/src/test/results/clientpositive/bucketmapjoin1.q.out
+++ b/ql/src/test/results/clientpositive/bucketmapjoin1.q.out
@@ -34,62 +34,6 @@ select /*+mapjoin(b)*/ a.key, a.value, b.value
from srcbucket_mapjoin_part a join srcbucket_mapjoin_part_2 b
on a.key=b.key where b.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -203,62 +147,6 @@ select /*+mapjoin(a)*/ a.key, a.value, b.value
from srcbucket_mapjoin_part a join srcbucket_mapjoin_part_2 b
on a.key=b.key where b.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -464,63 +352,6 @@ select /*+mapjoin(b)*/ a.key, a.value, b.value
from srcbucket_mapjoin a join srcbucket_mapjoin_part b
on a.key=b.key where b.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
-
-
STAGE DEPENDENCIES:
Stage-9 is a root stage
Stage-1 depends on stages: Stage-9
@@ -996,63 +827,6 @@ select /*+mapjoin(a)*/ a.key, a.value, b.value
from srcbucket_mapjoin a join srcbucket_mapjoin_part b
on a.key=b.key where b.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
-
-
STAGE DEPENDENCIES:
Stage-9 is a root stage
Stage-1 depends on stages: Stage-9
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucketmapjoin10.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucketmapjoin10.q.out b/ql/src/test/results/clientpositive/bucketmapjoin10.q.out
index 041f2d0..fcdbb09 100644
--- a/ql/src/test/results/clientpositive/bucketmapjoin10.q.out
+++ b/ql/src/test/results/clientpositive/bucketmapjoin10.q.out
@@ -140,57 +140,6 @@ SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_2 b
ON a.key = b.key AND a.part IS NOT NULL AND b.part IS NOT NULL
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_FUNCTION
- TOK_ISNOTNULL
- .
- TOK_TABLE_OR_COL
- a
- part
- TOK_FUNCTION
- TOK_ISNOTNULL
- .
- TOK_TABLE_OR_COL
- b
- part
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucketmapjoin11.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucketmapjoin11.q.out b/ql/src/test/results/clientpositive/bucketmapjoin11.q.out
index 5e9fbe4..968066a 100644
--- a/ql/src/test/results/clientpositive/bucketmapjoin11.q.out
+++ b/ql/src/test/results/clientpositive/bucketmapjoin11.q.out
@@ -150,57 +150,6 @@ SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_2 b
ON a.key = b.key AND a.part IS NOT NULL AND b.part IS NOT NULL
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_FUNCTION
- TOK_ISNOTNULL
- .
- TOK_TABLE_OR_COL
- a
- part
- TOK_FUNCTION
- TOK_ISNOTNULL
- .
- TOK_TABLE_OR_COL
- b
- part
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -518,67 +467,6 @@ SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_2 b
ON a.key = b.key AND a.part = b.part AND a.part IS NOT NULL AND b.part IS NOT NULL
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- AND
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- part
- .
- TOK_TABLE_OR_COL
- b
- part
- TOK_FUNCTION
- TOK_ISNOTNULL
- .
- TOK_TABLE_OR_COL
- a
- part
- TOK_FUNCTION
- TOK_ISNOTNULL
- .
- TOK_TABLE_OR_COL
- b
- part
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucketmapjoin12.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucketmapjoin12.q.out b/ql/src/test/results/clientpositive/bucketmapjoin12.q.out
index 3a38d7b..9017871 100644
--- a/ql/src/test/results/clientpositive/bucketmapjoin12.q.out
+++ b/ql/src/test/results/clientpositive/bucketmapjoin12.q.out
@@ -109,57 +109,6 @@ SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_2 b
ON a.key = b.key AND a.part = '1' and b.part = '1'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- and
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- part
- '1'
- =
- .
- TOK_TABLE_OR_COL
- b
- part
- '1'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -389,57 +338,6 @@ SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_3 b
ON a.key = b.key AND a.part = '1' and b.part = '1'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_3
- b
- and
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- part
- '1'
- =
- .
- TOK_TABLE_OR_COL
- b
- part
- '1'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucketmapjoin13.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucketmapjoin13.q.out b/ql/src/test/results/clientpositive/bucketmapjoin13.q.out
index c78b7a1..55d6ffd 100644
--- a/ql/src/test/results/clientpositive/bucketmapjoin13.q.out
+++ b/ql/src/test/results/clientpositive/bucketmapjoin13.q.out
@@ -82,43 +82,6 @@ SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_2 b
ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -397,50 +360,6 @@ SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_2 b
ON a.key = b.key and a.part = '2'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- part
- '2'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -685,43 +604,6 @@ SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_2 b
ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -968,43 +850,6 @@ SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_2 b
ON a.key = b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucketmapjoin2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucketmapjoin2.q.out b/ql/src/test/results/clientpositive/bucketmapjoin2.q.out
index d9c4463..f2efb95 100644
--- a/ql/src/test/results/clientpositive/bucketmapjoin2.q.out
+++ b/ql/src/test/results/clientpositive/bucketmapjoin2.q.out
@@ -100,63 +100,6 @@ select /*+mapjoin(b)*/ a.key, a.value, b.value
from srcbucket_mapjoin_part a join srcbucket_mapjoin_part_2 b
on a.key=b.key and b.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-9 is a root stage
Stage-1 depends on stages: Stage-9
@@ -640,63 +583,6 @@ select /*+mapjoin(a)*/ a.key, a.value, b.value
from srcbucket_mapjoin_part a join srcbucket_mapjoin_part_2 b
on a.key=b.key and b.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-9 is a root stage
Stage-1 depends on stages: Stage-9
@@ -1239,56 +1125,6 @@ select /*+mapjoin(b)*/ a.key, a.value, b.value
from srcbucket_mapjoin_part a join srcbucket_mapjoin_part_2 b
on a.key=b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-9 is a root stage
Stage-1 depends on stages: Stage-9
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucketmapjoin3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucketmapjoin3.q.out b/ql/src/test/results/clientpositive/bucketmapjoin3.q.out
index 77b19ba..5659983 100644
--- a/ql/src/test/results/clientpositive/bucketmapjoin3.q.out
+++ b/ql/src/test/results/clientpositive/bucketmapjoin3.q.out
@@ -124,70 +124,6 @@ select /*+mapjoin(b)*/ a.key, a.value, b.value
from srcbucket_mapjoin_part_2 a join srcbucket_mapjoin_part b
on a.key=b.key and b.ds="2008-04-08" and a.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- b
- and
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- "2008-04-08"
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-9 is a root stage
Stage-1 depends on stages: Stage-9
@@ -671,70 +607,6 @@ select /*+mapjoin(a)*/ a.key, a.value, b.value
from srcbucket_mapjoin_part_2 a join srcbucket_mapjoin_part b
on a.key=b.key and b.ds="2008-04-08" and a.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- b
- and
- and
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- "2008-04-08"
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-9 is a root stage
Stage-1 depends on stages: Stage-9
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucketmapjoin4.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucketmapjoin4.q.out b/ql/src/test/results/clientpositive/bucketmapjoin4.q.out
index 5858160..5794d47 100644
--- a/ql/src/test/results/clientpositive/bucketmapjoin4.q.out
+++ b/ql/src/test/results/clientpositive/bucketmapjoin4.q.out
@@ -124,56 +124,6 @@ select /*+mapjoin(b)*/ a.key, a.value, b.value
from srcbucket_mapjoin a join srcbucket_mapjoin b
on a.key=b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-9 is a root stage
Stage-1 depends on stages: Stage-9
@@ -598,56 +548,6 @@ select /*+mapjoin(a)*/ a.key, a.value, b.value
from srcbucket_mapjoin a join srcbucket_mapjoin b
on a.key=b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-9 is a root stage
Stage-1 depends on stages: Stage-9
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucketmapjoin5.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucketmapjoin5.q.out b/ql/src/test/results/clientpositive/bucketmapjoin5.q.out
index 728c0b7..1bcb382 100644
--- a/ql/src/test/results/clientpositive/bucketmapjoin5.q.out
+++ b/ql/src/test/results/clientpositive/bucketmapjoin5.q.out
@@ -174,56 +174,6 @@ select /*+mapjoin(a)*/ a.key, a.value, b.value
from srcbucket_mapjoin a join srcbucket_mapjoin_part b
on a.key=b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-9 is a root stage
Stage-1 depends on stages: Stage-9
@@ -709,56 +659,6 @@ select /*+mapjoin(a)*/ a.key, a.value, b.value
from srcbucket_mapjoin a join srcbucket_mapjoin_part_2 b
on a.key=b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- a
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-9 is a root stage
Stage-1 depends on stages: Stage-9
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucketmapjoin7.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucketmapjoin7.q.out b/ql/src/test/results/clientpositive/bucketmapjoin7.q.out
index 7f96a23..76b13f3 100644
--- a/ql/src/test/results/clientpositive/bucketmapjoin7.q.out
+++ b/ql/src/test/results/clientpositive/bucketmapjoin7.q.out
@@ -68,79 +68,6 @@ FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_2 b
ON a.key = b.key AND a.ds = '2008-04-08' AND b.ds = '2008-04-08'
ORDER BY a.key, b.value LIMIT 1
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- ds
- '2008-04-08'
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- '2008-04-08'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_ORDERBY
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_TABSORTCOLNAMEASC
- TOK_NULLS_FIRST
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_LIMIT
- 1
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucketmapjoin8.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucketmapjoin8.q.out b/ql/src/test/results/clientpositive/bucketmapjoin8.q.out
index 804c882..097eaad 100644
--- a/ql/src/test/results/clientpositive/bucketmapjoin8.q.out
+++ b/ql/src/test/results/clientpositive/bucketmapjoin8.q.out
@@ -74,57 +74,6 @@ SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_2 b
ON a.key = b.key AND a.part = '1' and b.part = '1'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- and
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- part
- '1'
- =
- .
- TOK_TABLE_OR_COL
- b
- part
- '1'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -363,57 +312,6 @@ SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_2 b
ON a.key = b.key AND a.part = '1' and b.part = '1'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- and
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- part
- '1'
- =
- .
- TOK_TABLE_OR_COL
- b
- part
- '1'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucketmapjoin9.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucketmapjoin9.q.out b/ql/src/test/results/clientpositive/bucketmapjoin9.q.out
index cc0672e..144d86d 100644
--- a/ql/src/test/results/clientpositive/bucketmapjoin9.q.out
+++ b/ql/src/test/results/clientpositive/bucketmapjoin9.q.out
@@ -82,57 +82,6 @@ SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_2 b
ON a.key = b.key AND a.part = '1' and b.part = '1'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- and
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- part
- '1'
- =
- .
- TOK_TABLE_OR_COL
- b
- part
- '1'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
@@ -396,57 +345,6 @@ SELECT /*+ MAPJOIN(b) */ count(*)
FROM srcbucket_mapjoin_part_1 a JOIN srcbucket_mapjoin_part_2 b
ON a.key = b.key AND a.part = '1' AND b.part = '1'
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_1
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- AND
- AND
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- =
- .
- TOK_TABLE_OR_COL
- a
- part
- '1'
- =
- .
- TOK_TABLE_OR_COL
- b
- part
- '1'
- TOK_INSERT
- TOK_DESTINATION
- TOK_DIR
- TOK_TMP_FILE
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- TOK_FUNCTIONSTAR
- count
-
-
STAGE DEPENDENCIES:
Stage-3 is a root stage
Stage-1 depends on stages: Stage-3
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucketmapjoin_negative.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucketmapjoin_negative.q.out b/ql/src/test/results/clientpositive/bucketmapjoin_negative.q.out
index 36b1cfe..d108575 100644
--- a/ql/src/test/results/clientpositive/bucketmapjoin_negative.q.out
+++ b/ql/src/test/results/clientpositive/bucketmapjoin_negative.q.out
@@ -75,63 +75,6 @@ select /*+mapjoin(b)*/ a.key, a.value, b.value
from srcbucket_mapjoin a join srcbucket_mapjoin_part b
on a.key=b.key where b.ds="2008-04-08"
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
- TOK_WHERE
- =
- .
- TOK_TABLE_OR_COL
- b
- ds
- "2008-04-08"
-
-
STAGE DEPENDENCIES:
Stage-9 is a root stage
Stage-1 depends on stages: Stage-9
http://git-wip-us.apache.org/repos/asf/hive/blob/6908198d/ql/src/test/results/clientpositive/bucketmapjoin_negative2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/bucketmapjoin_negative2.q.out b/ql/src/test/results/clientpositive/bucketmapjoin_negative2.q.out
index 21138d6..9c6a226 100644
--- a/ql/src/test/results/clientpositive/bucketmapjoin_negative2.q.out
+++ b/ql/src/test/results/clientpositive/bucketmapjoin_negative2.q.out
@@ -84,56 +84,6 @@ select /*+mapjoin(b)*/ a.key, a.value, b.value
from srcbucket_mapjoin a join srcbucket_mapjoin_part_2 b
on a.key=b.key
POSTHOOK: type: QUERY
-ABSTRACT SYNTAX TREE:
-
-TOK_QUERY
- TOK_FROM
- TOK_JOIN
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin
- a
- TOK_TABREF
- TOK_TABNAME
- srcbucket_mapjoin_part_2
- b
- =
- .
- TOK_TABLE_OR_COL
- a
- key
- .
- TOK_TABLE_OR_COL
- b
- key
- TOK_INSERT
- TOK_DESTINATION
- TOK_TAB
- TOK_TABNAME
- bucketmapjoin_tmp_result
- TOK_SELECT
- TOK_HINTLIST
- TOK_HINT
- TOK_MAPJOIN
- TOK_HINTARGLIST
- b
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- key
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- a
- value
- TOK_SELEXPR
- .
- TOK_TABLE_OR_COL
- b
- value
-
-
STAGE DEPENDENCIES:
Stage-9 is a root stage
Stage-1 depends on stages: Stage-9
[03/50] [abbrv] hive git commit: HIVE-13467: Show llap info on hs2 ui
when available (Gunther Hagleitner, reviewed by Vikram Dixit K)
Posted by jd...@apache.org.
HIVE-13467: Show llap info on hs2 ui when available (Gunther Hagleitner, reviewed by Vikram Dixit K)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/749e27a9
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/749e27a9
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/749e27a9
Branch: refs/heads/llap
Commit: 749e27a92a74e36152c21981a1cf7adcb92f3e4a
Parents: a2b7b4d
Author: Gunther Hagleitner <gu...@apache.org>
Authored: Fri Apr 22 19:14:50 2016 -0700
Committer: Gunther Hagleitner <gu...@apache.org>
Committed: Fri Apr 22 19:14:50 2016 -0700
----------------------------------------------------------------------
LICENSE | 23 +
.../java/org/apache/hive/http/HttpServer.java | 16 +-
.../llap/registry/impl/LlapRegistryService.java | 6 +-
.../hive/llap/cli/LlapStatusServiceDriver.java | 14 +-
.../hive/ql/optimizer/physical/LlapDecider.java | 18 +-
service/pom.xml | 6 +
.../java/org/apache/hive/http/LlapServlet.java | 115 +++++
.../apache/hive/service/server/HiveServer2.java | 2 +
.../hive-webapps/hiveserver2/hiveserver2.jsp | 1 +
.../hive-webapps/hiveserver2/llap.html | 47 ++
.../hive-webapps/static/css/json.human.css | 110 +++++
.../hive-webapps/static/js/json.human.js | 452 +++++++++++++++++++
.../resources/hive-webapps/static/js/llap.js | 37 ++
13 files changed, 827 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/749e27a9/LICENSE
----------------------------------------------------------------------
diff --git a/LICENSE b/LICENSE
index f26f4e1..96ea54b 100644
--- a/LICENSE
+++ b/LICENSE
@@ -558,3 +558,26 @@ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABI
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+For json.human.js/json.human.css:
+
+Copyright (c) 2016 Mariano Guerra
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
http://git-wip-us.apache.org/repos/asf/hive/blob/749e27a9/common/src/java/org/apache/hive/http/HttpServer.java
----------------------------------------------------------------------
diff --git a/common/src/java/org/apache/hive/http/HttpServer.java b/common/src/java/org/apache/hive/http/HttpServer.java
index 32956b1..9ceaf3f 100644
--- a/common/src/java/org/apache/hive/http/HttpServer.java
+++ b/common/src/java/org/apache/hive/http/HttpServer.java
@@ -22,6 +22,8 @@ import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URL;
import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -31,6 +33,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.google.common.base.Preconditions;
+import org.apache.commons.math3.util.Pair;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.CommonConfigurationKeys;
import org.apache.hadoop.hive.conf.HiveConf;
@@ -108,13 +111,15 @@ public class HttpServer {
private int port;
private int maxThreads;
private HiveConf conf;
- private Map<String, Object> contextAttrs = new HashMap<String, Object>();
+ private final Map<String, Object> contextAttrs = new HashMap<String, Object>();
private String keyStorePassword;
private String keyStorePath;
private String spnegoPrincipal;
private String spnegoKeytab;
private boolean useSPNEGO;
private boolean useSSL;
+ private final List<Pair<String, Class<? extends HttpServlet>>> servlets =
+ new LinkedList<Pair<String, Class<? extends HttpServlet>>>();
public Builder(String name) {
Preconditions.checkArgument(name != null && !name.isEmpty(), "Name must be specified");
@@ -188,6 +193,11 @@ public class HttpServer {
contextAttrs.put(name, value);
return this;
}
+
+ public Builder addServlet(String endpoint, Class<? extends HttpServlet> servlet) {
+ servlets.add(new Pair<String, Class<? extends HttpServlet>>(endpoint, servlet));
+ return this;
+ }
}
public void start() throws Exception {
@@ -383,6 +393,10 @@ public class HttpServer {
addServlet("conf", "/conf", ConfServlet.class);
addServlet("stacks", "/stacks", StackServlet.class);
+ for (Pair<String, Class<? extends HttpServlet>> p : b.servlets) {
+ addServlet(p.getFirst(), "/" + p.getFirst(), p.getSecond());
+ }
+
ServletContextHandler staticCtx =
new ServletContextHandler(contexts, "/static");
staticCtx.setResourceBase(appDir + "/static");
http://git-wip-us.apache.org/repos/asf/hive/blob/749e27a9/llap-client/src/java/org/apache/hadoop/hive/llap/registry/impl/LlapRegistryService.java
----------------------------------------------------------------------
diff --git a/llap-client/src/java/org/apache/hadoop/hive/llap/registry/impl/LlapRegistryService.java b/llap-client/src/java/org/apache/hadoop/hive/llap/registry/impl/LlapRegistryService.java
index 2b4516b..badc182 100644
--- a/llap-client/src/java/org/apache/hadoop/hive/llap/registry/impl/LlapRegistryService.java
+++ b/llap-client/src/java/org/apache/hadoop/hive/llap/registry/impl/LlapRegistryService.java
@@ -17,8 +17,6 @@ import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
-import com.google.common.base.Preconditions;
-
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.conf.HiveConf.ConfVars;
@@ -29,6 +27,8 @@ import org.apache.hadoop.service.AbstractService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.google.common.base.Preconditions;
+
public class LlapRegistryService extends AbstractService {
private static final Logger LOG = LoggerFactory.getLogger(LlapRegistryService.class);
@@ -59,7 +59,7 @@ public class LlapRegistryService extends AbstractService {
if (hosts.startsWith("@")) {
// Caching instances only in case of the YARN registry. Each host based list will get it's own copy.
String name = hosts.substring(1);
- if (yarnRegistries.containsKey(name)) {
+ if (yarnRegistries.containsKey(name) && yarnRegistries.get(name).isInState(STATE.STARTED)) {
registry = yarnRegistries.get(name);
} else {
registry = new LlapRegistryService(false);
http://git-wip-us.apache.org/repos/asf/hive/blob/749e27a9/llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapStatusServiceDriver.java
----------------------------------------------------------------------
diff --git a/llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapStatusServiceDriver.java b/llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapStatusServiceDriver.java
index d1193ad..45ba5d0 100644
--- a/llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapStatusServiceDriver.java
+++ b/llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapStatusServiceDriver.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.hive.llap.cli;
import java.io.IOException;
+import java.io.PrintWriter;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.LinkedList;
@@ -67,7 +68,7 @@ public class LlapStatusServiceDriver {
}
- private int run(String[] args) {
+ public int run(String[] args) {
SliderClient sliderClient = null;
try {
@@ -148,14 +149,13 @@ public class LlapStatusServiceDriver {
}
}
- private void outputJson() throws LlapStatusCliException {
+ public void outputJson(PrintWriter writer) throws LlapStatusCliException {
ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS, false);
mapper.setSerializationInclusion(JsonSerialize.Inclusion.NON_NULL);
mapper.setSerializationInclusion(JsonSerialize.Inclusion.NON_EMPTY);
try {
- System.out
- .println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(appStatusBuilder));
+ writer.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(appStatusBuilder));
} catch (IOException e) {
throw new LlapStatusCliException(ExitCode.LLAP_JSON_GENERATION_ERROR, "Failed to create JSON",
e);
@@ -455,7 +455,7 @@ public class LlapStatusServiceDriver {
private Long appStartTime;
private Long appFinishTime;
- private List<LlapInstance> llapInstances = new LinkedList<>();
+ private final List<LlapInstance> llapInstances = new LinkedList<>();
private transient Map<String, LlapInstance> containerToInstanceMap = new HashMap<>();
@@ -771,7 +771,7 @@ public class LlapStatusServiceDriver {
RUNNING_ALL, COMPLETE, UNKNOWN
}
- enum ExitCode {
+ public enum ExitCode {
SUCCESS(0),
INCORRECT_USAGE(10),
YARN_ERROR(20),
@@ -806,7 +806,7 @@ public class LlapStatusServiceDriver {
LlapStatusServiceDriver statusServiceDriver = new LlapStatusServiceDriver();
ret = statusServiceDriver.run(args);
if (ret == ExitCode.SUCCESS.getInt()) {
- statusServiceDriver.outputJson();
+ statusServiceDriver.outputJson(new PrintWriter(System.out));
}
} catch (Throwable t) {
http://git-wip-us.apache.org/repos/asf/hive/blob/749e27a9/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/LlapDecider.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/LlapDecider.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/LlapDecider.java
index d3ec7ff..c0b7a32 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/LlapDecider.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/LlapDecider.java
@@ -73,17 +73,17 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
- * LlapDecider takes care of tagging certain vertices in the execution
- * graph as "llap", which in turn causes them to be submitted to an
- * llap daemon instead of a regular yarn container.
+ * LlapDecider takes care of tagging certain vertices in the execution graph as
+ * "llap", which in turn causes them to be submitted to an llap daemon instead
+ * of a regular yarn container.
*
- * The actual algoritm used is driven by LLAP_EXECUTION_MODE. "all",
- * "none" and "map" mechanically tag those elements. "auto" tries to
- * be smarter by looking for suitable vertices.
+ * The actual algorithm used is driven by LLAP_EXECUTION_MODE. "all", "none" and
+ * "map" mechanically tag those elements. "auto" tries to be smarter by looking
+ * for suitable vertices.
*
- * Regardless of the algorithm used, it's always ensured that there's
- * not user code that will be sent to the daemon (ie.: script
- * operators, temporary functions, etc)
+ * Regardless of the algorithm used, it's always ensured that there's not user
+ * code that will be sent to the daemon (ie.: script operators, temporary
+ * functions, etc)
*/
public class LlapDecider implements PhysicalPlanResolver {
http://git-wip-us.apache.org/repos/asf/hive/blob/749e27a9/service/pom.xml
----------------------------------------------------------------------
diff --git a/service/pom.xml b/service/pom.xml
index 41a4ef1..ae82cd3 100644
--- a/service/pom.xml
+++ b/service/pom.xml
@@ -49,6 +49,12 @@
<artifactId>hive-service-rpc</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.hive</groupId>
+ <artifactId>hive-llap-server</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
<!-- inter-project -->
<dependency>
<groupId>commons-codec</groupId>
http://git-wip-us.apache.org/repos/asf/hive/blob/749e27a9/service/src/java/org/apache/hive/http/LlapServlet.java
----------------------------------------------------------------------
diff --git a/service/src/java/org/apache/hive/http/LlapServlet.java b/service/src/java/org/apache/hive/http/LlapServlet.java
new file mode 100644
index 0000000..65e23fc
--- /dev/null
+++ b/service/src/java/org/apache/hive/http/LlapServlet.java
@@ -0,0 +1,115 @@
+/**
+ * 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.http;
+
+import java.io.PrintWriter;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+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.llap.cli.LlapStatusServiceDriver;
+
+@SuppressWarnings("serial")
+public class LlapServlet extends HttpServlet {
+
+ private static final Log LOG = LogFactory.getLog(JMXJsonServlet.class);
+ static final String ACCESS_CONTROL_ALLOW_METHODS = "Access-Control-Allow-Methods";
+ static final String ACCESS_CONTROL_ALLOW_ORIGIN = "Access-Control-Allow-Origin";
+
+ /**
+ * Initialize this servlet.
+ */
+ @Override
+ public void init() throws ServletException {
+ }
+
+ /**
+ * Return the Configuration of the daemon hosting this servlet.
+ * This is populated when the HttpServer starts.
+ */
+ private Configuration getConfFromContext() {
+ Configuration conf = (Configuration)getServletContext().getAttribute(
+ HttpServer.CONF_CONTEXT_ATTRIBUTE);
+ assert conf != null;
+ return conf;
+ }
+
+ /**
+ * Process a GET request for the specified resource.
+ *
+ * @param request
+ * The servlet request we are processing
+ * @param response
+ * The servlet response we are creating
+ */
+ @Override
+ public void doGet(HttpServletRequest request, HttpServletResponse response) {
+ try {
+ if (!HttpServer.isInstrumentationAccessAllowed(getServletContext(), request, response)) {
+ return;
+ }
+ PrintWriter writer = null;
+ String clusterName =
+ HiveConf.getVar(getConfFromContext(), HiveConf.ConfVars.LLAP_DAEMON_SERVICE_HOSTS);
+
+ try {
+ response.setContentType("application/json; charset=utf8");
+ response.setHeader(ACCESS_CONTROL_ALLOW_METHODS, "GET");
+ response.setHeader(ACCESS_CONTROL_ALLOW_ORIGIN, "*");
+ response.setHeader("Cache-Control", "no-transform,public,max-age=60,s-maxage=60");
+
+ writer = response.getWriter();
+
+ if (clusterName != null) {
+ clusterName = clusterName.trim();
+ }
+
+ if (clusterName == null || clusterName.isEmpty()) {
+ writer.print("{\"LLAP\": \"No llap daemons configured. ");
+ writer.print("Check hive.llap.daemon.service.hosts.\"}");
+ return;
+ }
+
+ if (clusterName.startsWith("@")) {
+ clusterName = clusterName.substring(1);
+ }
+
+ LOG.info("Retrieving info for cluster: " + clusterName);
+ LlapStatusServiceDriver driver = new LlapStatusServiceDriver();
+ int ret = driver.run(new String[] { "-n", clusterName });
+ if (ret == LlapStatusServiceDriver.ExitCode.SUCCESS.getInt()) {
+ driver.outputJson(writer);
+ }
+
+ } finally {
+ if (writer != null) {
+ writer.close();
+ }
+ }
+ } catch (Exception e) {
+ LOG.error("Caught exception while processing llap status request", e);
+ response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/hive/blob/749e27a9/service/src/java/org/apache/hive/service/server/HiveServer2.java
----------------------------------------------------------------------
diff --git a/service/src/java/org/apache/hive/service/server/HiveServer2.java b/service/src/java/org/apache/hive/service/server/HiveServer2.java
index 882f4ae..d61edf5 100644
--- a/service/src/java/org/apache/hive/service/server/HiveServer2.java
+++ b/service/src/java/org/apache/hive/service/server/HiveServer2.java
@@ -59,6 +59,7 @@ import org.apache.hadoop.security.UserGroupInformation;
import org.apache.hive.common.util.HiveStringUtils;
import org.apache.hive.common.util.HiveVersionInfo;
import org.apache.hive.http.HttpServer;
+import org.apache.hive.http.LlapServlet;
import org.apache.hive.service.CompositeService;
import org.apache.hive.service.ServiceException;
import org.apache.hive.service.cli.CLIService;
@@ -181,6 +182,7 @@ public class HiveServer2 extends CompositeService {
builder.setSPNEGOKeytab(spnegoKeytab);
builder.setUseSPNEGO(true);
}
+ builder.addServlet("llap", LlapServlet.class);
webServer = builder.build();
webServer.addServlet("query_page", "/query_page", QueryProfileServlet.class);
}
http://git-wip-us.apache.org/repos/asf/hive/blob/749e27a9/service/src/resources/hive-webapps/hiveserver2/hiveserver2.jsp
----------------------------------------------------------------------
diff --git a/service/src/resources/hive-webapps/hiveserver2/hiveserver2.jsp b/service/src/resources/hive-webapps/hiveserver2/hiveserver2.jsp
index 293a8ef..3c187b6 100644
--- a/service/src/resources/hive-webapps/hiveserver2/hiveserver2.jsp
+++ b/service/src/resources/hive-webapps/hiveserver2/hiveserver2.jsp
@@ -75,6 +75,7 @@ SessionManager sessionManager =
<li><a href="/jmx">Metrics Dump</a></li>
<li><a href="/conf">Hive Configuration</a></li>
<li><a href="/stacks">Stack Trace</a></li>
+ <li><a href="/llap.html">Llap Daemons</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
http://git-wip-us.apache.org/repos/asf/hive/blob/749e27a9/service/src/resources/hive-webapps/hiveserver2/llap.html
----------------------------------------------------------------------
diff --git a/service/src/resources/hive-webapps/hiveserver2/llap.html b/service/src/resources/hive-webapps/hiveserver2/llap.html
new file mode 100644
index 0000000..e1424b8
--- /dev/null
+++ b/service/src/resources/hive-webapps/hiveserver2/llap.html
@@ -0,0 +1,47 @@
+<!--[if IE]>
+<!DOCTYPE html>
+<![endif]-->
+<?xml version="1.0" encoding="UTF-8" ?>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>HiveServer2</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="description" content="">
+
+ <link href="/static/css/bootstrap.min.css" rel="stylesheet">
+ <link href="/static/css/bootstrap-theme.min.css" rel="stylesheet">
+ <link href="/static/css/hive.css" rel="stylesheet">
+
+ <link rel="stylesheet" type="text/css" href="/static/css/json.human.css">
+ <script src="/static/js/jquery.min.js"></script>
+ <script src="/static/js/json.human.js"></script>
+ <script src="/static/js/llap.js"></script>
+ </head>
+ <body>
+ <div class="navbar navbar-fixed-top navbar-default">
+ <div class="container">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <a class="navbar-brand" href="/hiveserver2.jsp"><img src="/static/hive_logo.jpeg" alt="Hive Logo"/></a>
+ </div>
+ <div class="collapse navbar-collapse">
+ <ul class="nav navbar-nav">
+ <li class="active"><a href="/">Home</a></li>
+ <li><a href="/logs/">Local logs</a></li>
+ <li><a href="/jmx">Metrics Dump</a></li>
+ <li><a href="/conf">Hive Configuration</a></li>
+ <li><a href="/stacks">Stack Trace</a></li>
+ <li><a href="/llap.html">Llap Daemons</a></li>
+ </ul>
+ </div><!--/.nav-collapse -->
+ </div>
+ </div>
+ </div>
+ <div id="show-data"></div>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/hive/blob/749e27a9/service/src/resources/hive-webapps/static/css/json.human.css
----------------------------------------------------------------------
diff --git a/service/src/resources/hive-webapps/static/css/json.human.css b/service/src/resources/hive-webapps/static/css/json.human.css
new file mode 100644
index 0000000..2ee552f
--- /dev/null
+++ b/service/src/resources/hive-webapps/static/css/json.human.css
@@ -0,0 +1,110 @@
+.jh-root, .jh-type-object, .jh-type-array, .jh-key, .jh-value, .jh-root tr{
+ -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
+ -moz-box-sizing: border-box; /* Firefox, other Gecko */
+ box-sizing: border-box; /* Opera/IE 8+ */
+ font-weight: bold;
+}
+
+.jh-key, .jh-value{
+ margin: 0;
+ padding: 0.2em;
+ font-weight: bold;
+}
+
+.jh-value{
+ border-left: 1px solid #ddd;
+}
+
+.jh-type-number{
+ text-align: center;
+ color: #5286BC;
+}
+
+.jh-type-bool-true{
+ text-align: center;
+ color: #5A811C;
+}
+
+.jh-type-bool-false{
+ text-align: center;
+ color: #D45317;
+}
+
+.jh-type-bool-image {
+ width: 20px;
+ height: 20px;
+ margin-right: 5px;
+ vertical-align: bottom;
+}
+
+.jh-type-string{
+ font-style: italic;
+ color: #6E6E6E;
+}
+
+.jh-array-key{
+ font-style: italic;
+ font-size: small;
+ text-align: center;
+}
+
+.jh-object-key, .jh-array-key{
+ color: #444;
+ vertical-align: top;
+}
+
+.jh-type-object > tbody > tr:nth-child(odd), .jh-type-array > tbody > tr:nth-child(odd){
+ background-color: #f5f5f5;
+}
+
+.jh-type-object > tbody > tr:nth-child(even), .jh-type-array > tbody > tr:nth-child(even){
+ background-color: #fff;
+}
+
+.jh-type-object, .jh-type-array{
+ width: 100%;
+ border-collapse: collapse;
+}
+
+.jh-root{
+ border: 1px solid #ccc;
+ margin: 0.2em;
+}
+
+th.jh-key{
+ text-align: left;
+}
+
+.jh-type-object > tbody > tr, .jh-type-array > tbody > tr{
+ border: 1px solid #ddd;
+ border-bottom: none;
+}
+
+.jh-type-object > tbody > tr:last-child, .jh-type-array > tbody > tr:last-child{
+ border-bottom: 1px solid #ddd;
+}
+
+.jh-type-object > tbody > tr:hover, .jh-type-array > tbody > tr:hover{
+ border: 1px solid #F99927;
+}
+
+.jh-empty{
+ font-style: italic;
+ color: #999;
+ font-size: small;
+}
+
+.jh-a {
+ text-decoration: none;
+}
+
+.jh-a:hover{
+ text-decoration: underline;
+}
+
+.jh-a span.jh-type-string {
+ text-decoration: none;
+ color : #268ddd;
+ font-style: normal;
+}
+
http://git-wip-us.apache.org/repos/asf/hive/blob/749e27a9/service/src/resources/hive-webapps/static/js/json.human.js
----------------------------------------------------------------------
diff --git a/service/src/resources/hive-webapps/static/js/json.human.js b/service/src/resources/hive-webapps/static/js/json.human.js
new file mode 100644
index 0000000..2241623
--- /dev/null
+++ b/service/src/resources/hive-webapps/static/js/json.human.js
@@ -0,0 +1,452 @@
+/* json.human.js - http://marianoguerra.github.io/json.human.js */
+/* Licensed under MIT - see above site for details */
+
+/*globals define, module, require, document*/
+(function (root, factory) {
+ "use strict";
+ if (typeof define === 'function' && define.amd) {
+ define([], factory);
+ } else if (typeof module !== 'undefined' && module.exports) {
+ module.exports = factory();
+ } else {
+ root.JsonHuman = factory();
+ }
+}(this, function () {
+ "use strict";
+
+ var indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
+
+ function makePrefixer(prefix) {
+ return function (name) {
+ return prefix + "-" + name;
+ };
+ }
+
+ function isArray(obj) {
+ return toString.call(obj) === '[object Array]';
+ }
+
+ function sn(tagName, className, data) {
+ var result = document.createElement(tagName);
+
+ result.className = className;
+ result.appendChild(document.createTextNode("" + data));
+
+ return result;
+ }
+
+ function scn(tagName, className, child) {
+ var result = document.createElement(tagName),
+ i, len;
+
+ result.className = className;
+
+ if (isArray(child)) {
+ for (i = 0, len = child.length; i < len; i += 1) {
+ result.appendChild(child[i]);
+ }
+ } else {
+ result.appendChild(child);
+ }
+
+ return result;
+ }
+
+ function linkNode(child, href, target){
+ var a = scn("a", HYPERLINK_CLASS_NAME, child);
+ a.setAttribute('href', href);
+ a.setAttribute('target', target);
+ return a;
+ }
+
+ var toString = Object.prototype.toString,
+ prefixer = makePrefixer("jh"),
+ p = prefixer,
+ ARRAY = 2,
+ BOOL = 4,
+ INT = 8,
+ FLOAT = 16,
+ STRING = 32,
+ OBJECT = 64,
+ SPECIAL_OBJECT = 128,
+ FUNCTION = 256,
+ UNK = 1,
+
+ STRING_CLASS_NAME = p("type-string"),
+ STRING_EMPTY_CLASS_NAME = p("type-string") + " " + p("empty"),
+
+ BOOL_TRUE_CLASS_NAME = p("type-bool-true"),
+ BOOL_FALSE_CLASS_NAME = p("type-bool-false"),
+ BOOL_IMAGE = p("type-bool-image"),
+ INT_CLASS_NAME = p("type-int") + " " + p("type-number"),
+ FLOAT_CLASS_NAME = p("type-float") + " " + p("type-number"),
+
+ OBJECT_CLASS_NAME = p("type-object"),
+ OBJ_KEY_CLASS_NAME = p("key") + " " + p("object-key"),
+ OBJ_VAL_CLASS_NAME = p("value") + " " + p("object-value"),
+ OBJ_EMPTY_CLASS_NAME = p("type-object") + " " + p("empty"),
+
+ FUNCTION_CLASS_NAME = p("type-function"),
+
+ ARRAY_KEY_CLASS_NAME = p("key") + " " + p("array-key"),
+ ARRAY_VAL_CLASS_NAME = p("value") + " " + p("array-value"),
+ ARRAY_CLASS_NAME = p("type-array"),
+ ARRAY_EMPTY_CLASS_NAME = p("type-array") + " " + p("empty"),
+
+ HYPERLINK_CLASS_NAME = p('a'),
+
+ UNKNOWN_CLASS_NAME = p("type-unk");
+
+ function getType(obj) {
+ var type = typeof obj;
+
+ switch (type) {
+ case "boolean":
+ return BOOL;
+ case "string":
+ return STRING;
+ case "number":
+ return (obj % 1 === 0) ? INT : FLOAT;
+ case "function":
+ return FUNCTION;
+ default:
+ if (isArray(obj)) {
+ return ARRAY;
+ } else if (obj === Object(obj)) {
+ if (obj.constructor === Object) {
+ return OBJECT;
+ }
+ return OBJECT | SPECIAL_OBJECT
+ } else {
+ return UNK;
+ }
+ }
+ }
+
+ function _format(data, options, parentKey) {
+
+ var result, container, key, keyNode, valNode, len, children, tr, value,
+ isEmpty = true,
+ isSpecial = false,
+ accum = [],
+ type = getType(data);
+
+ // Initialized & used only in case of objects & arrays
+ var hyperlinksEnabled, aTarget, hyperlinkKeys ;
+
+ if (type === BOOL) {
+ var boolOpt = options.bool;
+ container = document.createElement('div');
+
+ if (boolOpt.showImage) {
+ var img = document.createElement('img');
+ img.setAttribute('class', BOOL_IMAGE);
+
+ img.setAttribute('src',
+ '' + (data ? boolOpt.img.true : boolOpt.img.false));
+
+ container.appendChild(img);
+ }
+
+ if (boolOpt.showText) {
+ container.appendChild(data ?
+ sn("span", BOOL_TRUE_CLASS_NAME, boolOpt.text.true) :
+ sn("span", BOOL_FALSE_CLASS_NAME, boolOpt.text.false));
+ }
+
+ result = container;
+
+ } else if (type === STRING) {
+ if (data === "") {
+ result = sn("span", STRING_EMPTY_CLASS_NAME, "(Empty Text)");
+ } else {
+ aTarget = options.hyperlinks.target;
+ hyperlinkKeys = options.hyperlinks.keys;
+ hyperlinksEnabled =
+ options.hyperlinks.enable &&
+ hyperlinkKeys &&
+ hyperlinkKeys.length > 0;
+ if (hyperlinksEnabled && indexOf.call(hyperlinkKeys, parentKey) >= 0) {
+ result = scn("span", STRING_CLASS_NAME, linkNode(sn("span",STRING_CLASS_NAME, data), data, aTarget));
+ } else {
+ result = sn("span", STRING_CLASS_NAME, data);
+ }
+ }
+ } else if (type === INT) {
+ result = sn("span", INT_CLASS_NAME, data);
+ } else if (type === FLOAT) {
+ result = sn("span", FLOAT_CLASS_NAME, data);
+ } else if (type & OBJECT) {
+ if (type & SPECIAL_OBJECT) {
+ isSpecial = true;
+ }
+ children = [];
+
+ aTarget = options.hyperlinks.target;
+ hyperlinkKeys = options.hyperlinks.keys;
+
+ // Is Hyperlink Key
+ hyperlinksEnabled =
+ options.hyperlinks.enable &&
+ hyperlinkKeys &&
+ hyperlinkKeys.length > 0;
+
+ for (key in data) {
+ isEmpty = false;
+
+ value = data[key];
+
+ valNode = _format(value, options, key);
+
+ var converted = key.replace( /([A-Z])/g, " $1" );
+ converted = converted.charAt(0).toUpperCase() + converted.slice(1);
+
+ keyNode = sn("th", OBJ_KEY_CLASS_NAME, converted);
+
+ if( hyperlinksEnabled &&
+ typeof(value) === 'string' &&
+ indexOf.call(hyperlinkKeys, key) >= 0){
+
+ valNode = scn("td", OBJ_VAL_CLASS_NAME, linkNode(valNode, value, aTarget));
+ } else {
+ valNode = scn("td", OBJ_VAL_CLASS_NAME, valNode);
+ }
+
+ tr = document.createElement("tr");
+ tr.appendChild(keyNode);
+ tr.appendChild(valNode);
+
+ children.push(tr);
+ }
+
+ if (isSpecial) {
+ result = sn('span', STRING_CLASS_NAME, data.toString())
+ } else if (isEmpty) {
+ result = sn("span", OBJ_EMPTY_CLASS_NAME, "(Empty Object)");
+ } else {
+ result = scn("table", OBJECT_CLASS_NAME, scn("tbody", '', children));
+ }
+ } else if (type === FUNCTION) {
+ result = sn("span", FUNCTION_CLASS_NAME, data);
+ } else if (type === ARRAY) {
+ if (data.length > 0) {
+ children = [];
+ var showArrayIndices = options.showArrayIndex;
+ var showArrayAsFlatTable = options.showArrayAsFlatTable;
+ var flatTableKeys = options.flatTableKeys = options.flatTableKeys;
+
+ aTarget = options.hyperlinks.target;
+ hyperlinkKeys = options.hyperlinks.keys;
+
+ // Hyperlink of arrays?
+ hyperlinksEnabled = parentKey && options.hyperlinks.enable &&
+ hyperlinkKeys &&
+ hyperlinkKeys.length > 0 &&
+ indexOf.call(hyperlinkKeys, parentKey) >= 0;
+
+ if (showArrayAsFlatTable && data.length > 0) {
+ var first = data[0];
+ var objKeys = Object.keys(first);
+ var headerNodes = [];
+
+ if (flatTableKeys.length == 0) {
+ for (var k in objKeys) {
+ flatTableKeys.push(objKeys[k]);
+ }
+ }
+
+ var objKeyMod = [];
+ for (var k in objKeys) {
+ if ($.inArray(objKeys[k], flatTableKeys) >= 0) {
+ objKeyMod.push(objKeys[k]);
+ var converted = objKeys[k].replace(/([A-Z])/g, " $1" );
+ converted = converted.charAt(0).toUpperCase() + converted.slice(1);
+ headerNodes.push(sn("th", ARRAY_KEY_CLASS_NAME, converted));
+ }
+ }
+ objKeys = objKeyMod;
+
+ var headerRow = scn("tr", UNKNOWN_CLASS_NAME, headerNodes);
+ children.push(headerRow);
+ for (key = 0, len = data.length; key < len; key += 1) {
+ value = data[key];
+ var row = document.createElement("tr");
+ for (var k in objKeys) {
+ var v = value[objKeys[k]];
+ if (hyperlinksEnabled && typeof(v) === "string") {
+ valNode = _format(v, options, objKeys[k]);
+ valNode = scn("td", ARRAY_VAL_CLASS_NAME,
+ linkNode(valNode, v, aTarget));
+ } else {
+ valNode = scn("td", ARRAY_VAL_CLASS_NAME,
+ _format(v, options, objKeys[k]));
+ }
+ row.appendChild(valNode);
+ }
+ children.push(row);
+ }
+ }
+ else {
+ for (key = 0, len = data.length; key < len; key += 1) {
+
+ keyNode = sn("th", ARRAY_KEY_CLASS_NAME, key);
+ value = data[key];
+
+ if (hyperlinksEnabled && typeof(value) === "string") {
+ valNode = _format(value, options, key);
+ valNode = scn("td", ARRAY_VAL_CLASS_NAME,
+ linkNode(valNode, value, aTarget));
+ } else {
+ valNode = scn("td", ARRAY_VAL_CLASS_NAME,
+ _format(value, options, key));
+ }
+
+ tr = document.createElement("tr");
+
+ if (showArrayIndices) {
+ tr.appendChild(keyNode);
+ }
+ tr.appendChild(valNode);
+
+ children.push(tr);
+ }
+ }
+ result = scn("table", ARRAY_CLASS_NAME, scn("tbody", '', children));
+ } else {
+ result = sn("span", ARRAY_EMPTY_CLASS_NAME, "(Empty List)");
+ }
+ } else {
+ result = sn("span", UNKNOWN_CLASS_NAME, data);
+ }
+
+ return result;
+ }
+
+ function format(data, options) {
+ options = validateOptions(options || {});
+
+ var result;
+
+ result = _format(data, options);
+ result.className = result.className + " " + prefixer("root");
+
+ return result;
+ }
+
+ function validateOptions(options){
+ options = validateArrayIndexOption(options);
+ options = validateArrayAsFlatTableOption(options);
+ options = validateHyperlinkOptions(options);
+ options = validateBoolOptions(options);
+
+ // Add any more option validators here
+
+ return options;
+ }
+
+ function validateArrayIndexOption(options) {
+ if(options.showArrayIndex === undefined){
+ options.showArrayIndex = true;
+ } else {
+ // Force to boolean just in case
+ options.showArrayIndex = options.showArrayIndex ? true: false;
+ }
+
+ return options;
+ }
+
+ function validateArrayAsFlatTableOption(options) {
+ if(options.showArrayAsFlatTable === undefined){
+ options.showArrayAsFlatTable = false;
+ } else {
+ // Force to boolean just in case
+ options.showArrayAsFlatTable = options.showArrayAsFlatTable ? true: false;
+ }
+
+ if (options.showArrayAsFlatTable) {
+ options.flatTableKeys = isArray(options.flatTableKeys) ? options.flatTableKeys : [];
+ }
+
+ return options;
+ }
+
+ function validateHyperlinkOptions(options){
+ var hyperlinks = {
+ enable : false,
+ keys : null,
+ target : ''
+ };
+
+ if(options.hyperlinks && options.hyperlinks.enable) {
+ hyperlinks.enable = true;
+
+ hyperlinks.keys = isArray(options.hyperlinks.keys) ? options.hyperlinks.keys : [];
+
+ if(options.hyperlinks.target) {
+ hyperlinks.target = '' + options.hyperlinks.target;
+ } else {
+ hyperlinks.target = '_blank';
+ }
+ }
+
+ options.hyperlinks = hyperlinks;
+
+ return options;
+ }
+
+ function validateBoolOptions(options){
+ if(!options.bool){
+ options.bool = {
+ text: {
+ true : "true",
+ false : "false"
+ },
+ img : {
+ true: "",
+ false: ""
+ },
+ showImage : false,
+ showText : true
+ };
+ } else {
+ var boolOptions = options.bool;
+
+ // Show text if no option
+ if(!boolOptions.showText && !boolOptions.showImage){
+ boolOptions.showImage = false;
+ boolOptions.showText = true;
+ }
+
+ if(boolOptions.showText){
+ if(!boolOptions.text){
+ boolOptions.text = {
+ true : "true",
+ false : "false"
+ };
+ } else {
+ var t = boolOptions.text.true, f = boolOptions.text.false;
+
+ if(getType(t) != STRING || t === ''){
+ boolOptions.text.true = 'true';
+ }
+
+ if(getType(f) != STRING || f === ''){
+ boolOptions.text.false = 'false';
+ }
+ }
+ }
+
+ if(boolOptions.showImage){
+ if(!boolOptions.img.true && !boolOptions.img.false){
+ boolOptions.showImage = false;
+ }
+ }
+ }
+
+ return options;
+ }
+
+ return {
+ format: format
+ };
+}));
http://git-wip-us.apache.org/repos/asf/hive/blob/749e27a9/service/src/resources/hive-webapps/static/js/llap.js
----------------------------------------------------------------------
diff --git a/service/src/resources/hive-webapps/static/js/llap.js b/service/src/resources/hive-webapps/static/js/llap.js
new file mode 100644
index 0000000..e84fd03
--- /dev/null
+++ b/service/src/resources/hive-webapps/static/js/llap.js
@@ -0,0 +1,37 @@
+window.options = {
+ showArrayAsFlatTable: true,
+ flatTableKeys: ['containerId','webUrl'],
+
+ showArrayIndex: false,
+ hyperlinks : {
+ enable : true,
+ keys: ['amWebUrl','statusUrl','webUrl'],
+ target : '_blank'
+ },
+
+ bool : {
+ showText : true,
+ text : {
+ true : "true",
+ false : "false"
+ },
+ showImage : true,
+ img : {
+ true : 'css/true.png',
+ false : 'css/false.png'
+ }
+ }
+};
+
+$(document).ready(function () {
+ var showData = $('#show-data');
+
+ $.getJSON('llap', function (data) {
+ console.log(data);
+
+ showData.empty();
+ var node = JsonHuman.format(data, window.options);
+ showData[0].appendChild(node);
+ });
+ showData.text('Loading the JSON file.');
+});