You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by we...@apache.org on 2017/05/08 20:43:35 UTC
[45/51] [partial] hive git commit: Revert "HIVE-14671 : merge master
into hive-14535 (Wei Zheng)"
http://git-wip-us.apache.org/repos/asf/hive/blob/ed64a74e/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 d32f1e5..30eefa6 100644
--- a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
+++ b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
@@ -272,7 +272,6 @@ public class HiveConf extends Configuration {
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_TUNER,
HiveConf.ConfVars.HIVE_METASTORE_STATS_NDV_DENSITY_FUNCTION,
HiveConf.ConfVars.METASTORE_AGGREGATE_STATS_CACHE_ENABLED,
HiveConf.ConfVars.METASTORE_AGGREGATE_STATS_CACHE_SIZE,
@@ -551,13 +550,6 @@ public class HiveConf extends Configuration {
"If not set, defaults to the codec extension for text files (e.g. \".gz\"), or no extension otherwise."),
HIVE_IN_TEST("hive.in.test", false, "internal usage only, true in test mode", true),
- HIVE_IN_TEST_SHORT_LOGS("hive.in.test.short.logs", false,
- "internal usage only, used only in test mode. If set true, when requesting the " +
- "operation logs the short version (generated by LogDivertAppenderForTest) will be " +
- "returned"),
- HIVE_IN_TEST_REMOVE_LOGS("hive.in.test.remove.logs", true,
- "internal usage only, used only in test mode. If set false, the operation logs, and the " +
- "operation log directory will not be removed, so they can be found after the test runs."),
HIVE_IN_TEZ_TEST("hive.in.tez.test", false, "internal use only, true when in testing tez",
true),
@@ -744,16 +736,9 @@ public class HiveConf extends Configuration {
"Defaults to all permissions for the hiveserver2/metastore process user."),
METASTORE_CACHE_PINOBJTYPES("hive.metastore.cache.pinobjtypes", "Table,StorageDescriptor,SerDeInfo,Partition,Database,Type,FieldSchema,Order",
"List of comma separated metastore object types that should be pinned in the cache"),
- METASTORE_CONNECTION_POOLING_TYPE("datanucleus.connectionPoolingType", "HikariCP", new StringSet("BONECP", "DBCP",
+ METASTORE_CONNECTION_POOLING_TYPE("datanucleus.connectionPoolingType", "BONECP", new StringSet("BONECP", "DBCP",
"HikariCP", "NONE"),
"Specify connection pool library for datanucleus"),
- METASTORE_CONNECTION_POOLING_MAX_CONNECTIONS("datanucleus.connectionPool.maxPoolSize", 10,
- "Specify the maximum number of connections in the connection pool. Note: The configured size will be used by\n" +
- "2 connection pools (TxnHandler and ObjectStore). When configuring the max connection pool size, it is\n" +
- "recommended to take into account the number of metastore instances and the number of HiveServer2 instances\n" +
- "configured with embedded metastore. To get optimal performance, set config to meet the following condition\n"+
- "(2 * pool_size * metastore_instances + 2 * pool_size * HS2_instances_with_embedded_metastore) = \n" +
- "(2 * physical_core_count + hard_disk_count)."),
// Workaround for DN bug on Postgres:
// http://www.datanucleus.org/servlet/forum/viewthread_thread,7985_offset
METASTORE_DATANUCLEUS_INIT_COL_INFO("datanucleus.rdbms.initializeColumnInfo", "NONE",
@@ -902,12 +887,6 @@ public class HiveConf extends Configuration {
METASTORE_RAW_STORE_IMPL("hive.metastore.rawstore.impl", "org.apache.hadoop.hive.metastore.ObjectStore",
"Name of the class that implements org.apache.hadoop.hive.metastore.rawstore interface. \n" +
"This class is used to store and retrieval of raw metadata objects such as table, database"),
- METASTORE_CACHED_RAW_STORE_IMPL("hive.metastore.cached.rawstore.impl", "org.apache.hadoop.hive.metastore.ObjectStore",
- "Name of the wrapped RawStore class"),
- METASTORE_CACHED_RAW_STORE_CACHE_UPDATE_FREQUENCY(
- "hive.metastore.cached.rawstore.cache.update.frequency", "60", new TimeValidator(
- TimeUnit.SECONDS),
- "The time after which metastore cache is updated from metastore DB."),
METASTORE_TXN_STORE_IMPL("hive.metastore.txn.store.impl",
"org.apache.hadoop.hive.metastore.txn.CompactionTxnHandler",
"Name of class that implements org.apache.hadoop.hive.metastore.txn.TxnStore. This " +
@@ -1709,10 +1688,6 @@ public class HiveConf extends Configuration {
HIVE_STATS_NDV_ERROR("hive.stats.ndv.error", (float)20.0,
"Standard error expressed in percentage. Provides a tradeoff between accuracy and compute cost. \n" +
"A lower value for error indicates higher accuracy and a higher compute cost."),
- HIVE_METASTORE_STATS_NDV_TUNER("hive.metastore.stats.ndv.tuner", (float)0.0,
- "Provides a tunable parameter between the lower bound and the higher bound of ndv for aggregate ndv across all the partitions. \n" +
- "The lower bound is equal to the maximum of ndv of all the partitions. The higher bound is equal to the sum of ndv of all the partitions.\n" +
- "Its value should be between 0.0 (i.e., choose lower bound) and 1.0 (i.e., choose higher bound)"),
HIVE_METASTORE_STATS_NDV_DENSITY_FUNCTION("hive.metastore.stats.ndv.densityfunction", false,
"Whether to use density function to estimate the NDV for the whole table based on the NDV of partitions"),
HIVE_STATS_KEY_PREFIX("hive.stats.key.prefix", "", "", true), // internal usage only
@@ -1761,10 +1736,6 @@ public class HiveConf extends Configuration {
"uses column statistics to estimate the number of rows flowing out of it and hence the data size.\n" +
"In the absence of column statistics, this factor determines the amount of rows that flows out\n" +
"of JOIN operator."),
- HIVE_STATS_CORRELATED_MULTI_KEY_JOINS("hive.stats.correlated.multi.key.joins", false,
- "When estimating output rows for a join involving multiple columns, the default behavior assumes" +
- "the columns are independent. Setting this flag to true will cause the estimator to assume" +
- "the columns are correlated."),
// in the absence of uncompressed/raw data size, total file size will be used for statistics
// annotation. But the file may be compressed, encoded and serialized which may be lesser in size
// than the actual uncompressed/raw data size. This factor will be multiplied to file size to estimate
@@ -1796,9 +1767,6 @@ public class HiveConf extends Configuration {
HIVE_LOCK_MAPRED_ONLY("hive.lock.mapred.only.operation", false,
"This param is to control whether or not only do lock on queries\n" +
"that need to execute at least one mapred job."),
- HIVE_LOCK_QUERY_STRING_MAX_LENGTH("hive.lock.query.string.max.length", 1000000,
- "The maximum length of the query string to store in the lock.\n" +
- "The default value is 1000000, since the data limit of a znode is 1MB"),
// Zookeeper related configs
HIVE_ZOOKEEPER_QUORUM("hive.zookeeper.quorum", "",
@@ -2031,7 +1999,6 @@ public class HiveConf extends Configuration {
HIVE_DRUID_PASSIVE_WAIT_TIME("hive.druid.passiveWaitTimeMs", 30000,
"Wait time in ms default to 30 seconds."
),
- HIVE_DRUID_BITMAP_FACTORY_TYPE("hive.druid.bitmap.type", "roaring", new PatternSet("roaring", "concise"), "Coding algorithm use to encode the bitmaps"),
// For HBase storage handler
HIVE_HBASE_WAL_ENABLED("hive.hbase.wal.enabled", true,
"Whether writes to HBase should be forced to the write-ahead log. \n" +
@@ -2173,7 +2140,7 @@ public class HiveConf extends Configuration {
"When true the HDFS location stored in the index file will be ignored at runtime.\n" +
"If the data got moved or the name of the cluster got changed, the index data should still be usable."),
- HIVE_EXIM_URI_SCHEME_WL("hive.exim.uri.scheme.whitelist", "hdfs,pfile,file,s3,s3a",
+ HIVE_EXIM_URI_SCHEME_WL("hive.exim.uri.scheme.whitelist", "hdfs,pfile,file",
"A comma separated list of acceptable URI schemes for import and export."),
// temporary variable for testing. This is added just to turn off this feature in case of a bug in
// deployment. It has not been documented in hive-default.xml intentionally, this should be removed
@@ -2225,10 +2192,7 @@ public class HiveConf extends Configuration {
"When enabled, will log EXPLAIN EXTENDED output for the query at INFO log4j log level."),
HIVE_EXPLAIN_USER("hive.explain.user", true,
"Whether to show explain result at user level.\n" +
- "When enabled, will log EXPLAIN output for the query at user level. Tez only."),
- HIVE_SPARK_EXPLAIN_USER("hive.spark.explain.user", false,
- "Whether to show explain result at user level.\n" +
- "When enabled, will log EXPLAIN output for the query at user level. Spark only."),
+ "When enabled, will log EXPLAIN output for the query at user level."),
// prefix used to auto generated column aliases (this should be started with '_')
HIVE_AUTOGEN_COLUMNALIAS_PREFIX_LABEL("hive.autogen.columnalias.prefix.label", "_c",
@@ -2244,29 +2208,19 @@ public class HiveConf extends Configuration {
"org.apache.hadoop.hive.common.metrics.metrics2.CodahaleMetrics",
"org.apache.hadoop.hive.common.metrics.LegacyMetrics"),
"Hive metrics subsystem implementation class."),
- HIVE_CODAHALE_METRICS_REPORTER_CLASSES("hive.service.metrics.codahale.reporter.classes",
- "org.apache.hadoop.hive.common.metrics.metrics2.JsonFileMetricsReporter, " +
- "org.apache.hadoop.hive.common.metrics.metrics2.JmxMetricsReporter",
- "Comma separated list of reporter implementation classes for metric class "
- + "org.apache.hadoop.hive.common.metrics.metrics2.CodahaleMetrics. Overrides "
- + "HIVE_METRICS_REPORTER conf if present"),
- @Deprecated
- HIVE_METRICS_REPORTER("hive.service.metrics.reporter", "",
- "Reporter implementations for metric class "
- + "org.apache.hadoop.hive.common.metrics.metrics2.CodahaleMetrics;" +
- "Deprecated, use HIVE_CODAHALE_METRICS_REPORTER_CLASSES instead. This configuraiton will be"
- + " overridden by HIVE_CODAHALE_METRICS_REPORTER_CLASSES if present. " +
- "Comma separated list of JMX, CONSOLE, JSON_FILE, HADOOP2"),
+ 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, 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."),
- HIVE_METRICS_JSON_FILE_INTERVAL("hive.service.metrics.file.frequency", "5000ms",
+ HIVE_METRICS_JSON_FILE_INTERVAL("hive.service.metrics.file.frequency", "5s",
new TimeValidator(TimeUnit.MILLISECONDS),
- "For metric class org.apache.hadoop.hive.common.metrics.metrics2.JsonFileMetricsReporter, " +
+ "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.Metrics2Reporter, " +
+ "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",
@@ -2283,6 +2237,10 @@ public class HiveConf extends Configuration {
HIVE_INSERT_INTO_MULTILEVEL_DIRS("hive.insert.into.multilevel.dirs", false,
"Where to insert into multilevel directories like\n" +
"\"insert directory '/HIVEFT25686/chinna/' from table\""),
+ HIVE_WAREHOUSE_SUBDIR_INHERIT_PERMS("hive.warehouse.subdir.inherit.perms", true,
+ "Set this to false if the table directories should be created\n" +
+ "with the permissions derived from dfs umask instead of\n" +
+ "inheriting the permission of the warehouse or database directory."),
HIVE_INSERT_INTO_EXTERNAL_TABLES("hive.insert.into.external.tables", true,
"whether insert into external tables is allowed"),
HIVE_TEMPORARY_TABLE_STORAGE(
@@ -2291,10 +2249,7 @@ public class HiveConf extends Configuration {
"Choices between memory, ssd and default"),
HIVE_QUERY_LIFETIME_HOOKS("hive.query.lifetime.hooks", "",
"A comma separated list of hooks which implement QueryLifeTimeHook. These will be triggered" +
- " before/after query compilation and before/after query execution, in the order specified." +
- "Implementations of QueryLifeTimeHookWithParseHooks can also be specified in this list. If they are" +
- "specified then they will be invoked in the same places as QueryLifeTimeHooks and will be invoked during pre " +
- "and post query parsing"),
+ " before/after query compilation and before/after query execution, in the order specified"),
HIVE_DRIVER_RUN_HOOKS("hive.exec.driver.run.hooks", "",
"A comma separated list of hooks which implement HiveDriverRunHook. Will be run at the beginning " +
"and end of Driver.run, these will be run in the order specified."),
@@ -2803,9 +2758,9 @@ public class HiveConf extends Configuration {
HIVE_VECTORIZATION_USE_VECTORIZED_INPUT_FILE_FORMAT("hive.vectorized.use.vectorized.input.format", true,
"This flag should be set to true to enable vectorizing with vectorized input file format capable SerDe.\n" +
"The default value is true."),
- HIVE_VECTORIZATION_USE_VECTOR_DESERIALIZE("hive.vectorized.use.vector.serde.deserialize", true,
+ HIVE_VECTORIZATION_USE_VECTOR_DESERIALIZE("hive.vectorized.use.vector.serde.deserialize", false,
"This flag should be set to true to enable vectorizing rows using vector deserialize.\n" +
- "The default value is true."),
+ "The default value is false."),
HIVE_VECTORIZATION_USE_ROW_DESERIALIZE("hive.vectorized.use.row.serde.deserialize", false,
"This flag should be set to true to enable vectorizing using row deserialize.\n" +
"The default value is false."),
@@ -2874,9 +2829,6 @@ public class HiveConf extends Configuration {
"Turn on Tez' auto reducer parallelism feature. When enabled, Hive will still estimate data sizes\n" +
"and set parallelism estimates. Tez will sample source vertices' output sizes and adjust the estimates at runtime as\n" +
"necessary."),
- TEZ_LLAP_MIN_REDUCER_PER_EXECUTOR("hive.tez.llap.min.reducer.per.executor", 0.95f,
- "If above 0, the min number of reducers for auto-parallelism for LLAP scheduling will\n" +
- "be set to this fraction of the number of executors."),
TEZ_MAX_PARTITION_FACTOR("hive.tez.max.partition.factor", 2f,
"When auto reducer parallelism is enabled this factor will be used to over-partition data in shuffle edges."),
TEZ_MIN_PARTITION_FACTOR("hive.tez.min.partition.factor", 0.25f,
@@ -2904,18 +2856,8 @@ public class HiveConf extends Configuration {
TEZ_DYNAMIC_SEMIJOIN_REDUCTION("hive.tez.dynamic.semijoin.reduction", true,
"When dynamic semijoin is enabled, shuffle joins will perform a leaky semijoin before shuffle. This " +
"requires hive.tez.dynamic.partition.pruning to be enabled."),
- TEZ_MIN_BLOOM_FILTER_ENTRIES("hive.tez.min.bloom.filter.entries", 1000000L,
- "Bloom filter should be of at min certain size to be effective"),
TEZ_MAX_BLOOM_FILTER_ENTRIES("hive.tez.max.bloom.filter.entries", 100000000L,
"Bloom filter should be of at max certain size to be effective"),
- TEZ_BLOOM_FILTER_FACTOR("hive.tez.bloom.filter.factor", (float) 2.0,
- "Bloom filter should be a multiple of this factor with nDV"),
- TEZ_BIGTABLE_MIN_SIZE_SEMIJOIN_REDUCTION("hive.tez.bigtable.minsize.semijoin.reduction", 100000000L,
- "Big table for runtime filteting should be of atleast this size"),
- TEZ_DYNAMIC_SEMIJOIN_REDUCTION_THRESHOLD("hive.tez.dynamic.semijoin.reduction.threshold", (float) 0.50,
- "Only perform semijoin optimization if the estimated benefit at or above this fraction of the target table"),
- TEZ_DYNAMIC_SEMIJOIN_REDUCTION_HINT_ONLY("hive.tez.dynamic.semijoin.reduction.hint.only", false,
- "When true, only enforce semijoin when a hint is provided"),
TEZ_SMB_NUMBER_WAVES(
"hive.tez.smb.number.waves",
(float) 0.5,
@@ -2953,19 +2895,13 @@ public class HiveConf extends Configuration {
"LLAP IO memory usage; 'cache' (the default) uses data and metadata cache with a\n" +
"custom off-heap allocator, 'none' doesn't use either (this mode may result in\n" +
"significant performance degradation)"),
- LLAP_ALLOCATOR_MIN_ALLOC("hive.llap.io.allocator.alloc.min", "256Kb", new SizeValidator(),
+ LLAP_ALLOCATOR_MIN_ALLOC("hive.llap.io.allocator.alloc.min", "16Kb", new SizeValidator(),
"Minimum allocation possible from LLAP buddy allocator. Allocations below that are\n" +
"padded to minimum allocation. For ORC, should generally be the same as the expected\n" +
"compression buffer size, or next lowest power of 2. Must be a power of 2."),
LLAP_ALLOCATOR_MAX_ALLOC("hive.llap.io.allocator.alloc.max", "16Mb", new SizeValidator(),
"Maximum allocation possible from LLAP buddy allocator. For ORC, should be as large as\n" +
"the largest expected ORC compression buffer size. Must be a power of 2."),
- @Deprecated
- LLAP_IO_METADATA_FRACTION("hive.llap.io.metadata.fraction", 0.1f,
- "Temporary setting for on-heap metadata cache fraction of xmx, set to avoid potential\n" +
- "heap problems on very large datasets when on-heap metadata cache takes over\n" +
- "everything. -1 managed metadata and data together (which is more flexible). This\n" +
- "setting will be removed (in effect become -1) once ORC metadata cache is moved off-heap."),
LLAP_ALLOCATOR_ARENA_COUNT("hive.llap.io.allocator.arena.count", 8,
"Arena count for LLAP low-level cache; cache will be allocated in the steps of\n" +
"(size/arena_count) bytes. This size must be <= 1Gb and >= max allocation; if it is\n" +
@@ -3159,19 +3095,6 @@ public class HiveConf extends Configuration {
LLAP_DAEMON_NUM_EXECUTORS("hive.llap.daemon.num.executors", 4,
"Number of executors to use in LLAP daemon; essentially, the number of tasks that can be\n" +
"executed in parallel.", "llap.daemon.num.executors"),
- LLAP_MAPJOIN_MEMORY_OVERSUBSCRIBE_FACTOR("hive.llap.mapjoin.memory.oversubscribe.factor", 0.2f,
- "Fraction of memory from hive.auto.convert.join.noconditionaltask.size that can be over subscribed\n" +
- "by queries running in LLAP mode. This factor has to be from 0.0 to 1.0. Default is 20% over subscription.\n"),
- LLAP_MEMORY_OVERSUBSCRIPTION_MAX_EXECUTORS_PER_QUERY("hive.llap.memory.oversubscription.max.executors.per.query", 3,
- "Used along with hive.llap.mapjoin.memory.oversubscribe.factor to limit the number of executors from\n" +
- "which memory for mapjoin can be borrowed. Default 3 (from 3 other executors\n" +
- "hive.llap.mapjoin.memory.oversubscribe.factor amount of memory can be borrowed based on which mapjoin\n" +
- "conversion decision will be made). This is only an upper bound. Lower bound is determined by number of\n" +
- "executors and configured max concurrency."),
- LLAP_MAPJOIN_MEMORY_MONITOR_CHECK_INTERVAL("hive.llap.mapjoin.memory.monitor.check.interval", 100000L,
- "Check memory usage of mapjoin hash tables after every interval of this many rows. If map join hash table\n" +
- "memory usage exceeds (hive.auto.convert.join.noconditionaltask.size * hive.hash.table.inflation.factor)\n" +
- "when running in LLAP, tasks will get killed and not retried. Set the value to 0 to disable this feature."),
LLAP_DAEMON_AM_REPORTER_MAX_THREADS("hive.llap.daemon.am-reporter.max.threads", 4,
"Maximum number of threads to be used for AM reporter. If this is lower than number of\n" +
"executors in llap daemon, it would be set to number of executors at runtime.",
@@ -3307,14 +3230,13 @@ public class HiveConf extends Configuration {
"logger used for llap-daemons."),
SPARK_USE_OP_STATS("hive.spark.use.op.stats", true,
- "Whether to use operator stats to determine reducer parallelism for Hive on Spark.\n" +
- "If this is false, Hive will use source table stats to determine reducer\n" +
- "parallelism for all first level reduce tasks, and the maximum reducer parallelism\n" +
- "from all parents for all the rest (second level and onward) reducer tasks."),
- SPARK_USE_TS_STATS_FOR_MAPJOIN("hive.spark.use.ts.stats.for.mapjoin", false,
- "If this is set to true, mapjoin optimization in Hive/Spark will use statistics from\n" +
- "TableScan operators at the root of operator tree, instead of parent ReduceSink\n" +
- "operators of the Join operator."),
+ "Whether to use operator stats to determine reducer parallelism for Hive on Spark. "
+ + "If this is false, Hive will use source table stats to determine reducer "
+ + "parallelism for all first level reduce tasks, and the maximum reducer parallelism "
+ + "from all parents for all the rest (second level and onward) reducer tasks."),
+ SPARK_USE_FILE_SIZE_FOR_MAPJOIN("hive.spark.use.file.size.for.mapjoin", false,
+ "If this is set to true, mapjoin optimization in Hive/Spark will use source file sizes associated "
+ + "with TableScan operator on the root of operator tree, instead of using operator statistics."),
SPARK_CLIENT_FUTURE_TIMEOUT("hive.spark.client.future.timeout",
"60s", new TimeValidator(TimeUnit.SECONDS),
"Timeout for requests from Hive client to remote Spark driver."),
@@ -3357,8 +3279,6 @@ public class HiveConf extends Configuration {
"hive.spark.use.groupby.shuffle", true,
"Spark groupByKey transformation has better performance but uses unbounded memory." +
"Turn this off when there is a memory issue."),
- SPARK_JOB_MAX_TASKS("hive.spark.job.max.tasks", -1, "The maximum number of tasks a Spark job may have.\n" +
- "If a Spark job contains more tasks than the maximum, it will be cancelled. A value of -1 means no limit."),
NWAYJOINREORDER("hive.reorder.nway.joins", true,
"Runs reordering of tables within single n-way join (i.e.: picks streamtable)"),
HIVE_MERGE_NWAY_JOINS("hive.merge.nway.joins", true,
@@ -3761,9 +3681,6 @@ public class HiveConf extends Configuration {
}
} else if (name.startsWith("hive.spark")) { // Remote Spark Context property.
result = true;
- } else if (name.equals("mapreduce.job.queuename")) {
- // a special property starting with mapreduce that we would also like to effect if it changes
- result = true;
}
return result;
http://git-wip-us.apache.org/repos/asf/hive/blob/ed64a74e/common/src/java/org/apache/hadoop/hive/conf/HiveConfUtil.java
----------------------------------------------------------------------
diff --git a/common/src/java/org/apache/hadoop/hive/conf/HiveConfUtil.java b/common/src/java/org/apache/hadoop/hive/conf/HiveConfUtil.java
index dc02803..9ba08e5 100644
--- a/common/src/java/org/apache/hadoop/hive/conf/HiveConfUtil.java
+++ b/common/src/java/org/apache/hadoop/hive/conf/HiveConfUtil.java
@@ -94,22 +94,11 @@ public class HiveConfUtil {
public static void stripConfigurations(Configuration conf, Set<String> hiddenSet) {
for (String name : hiddenSet) {
if (conf.get(name) != null) {
- conf.set(name, StringUtils.EMPTY);
+ conf.set(name, "");
}
}
}
- /**
- * Searches the given configuration object and replaces all the configuration values for keys
- * defined hive.conf.hidden.list by empty String
- *
- * @param conf - Configuration object which needs to be modified to remove sensitive keys
- */
- public static void stripConfigurations(Configuration conf) {
- Set<String> hiddenSet = getHiddenSet(conf);
- stripConfigurations(conf, hiddenSet);
- }
-
public static void dumpConfig(Configuration originalConf, StringBuilder sb) {
Set<String> hiddenSet = getHiddenSet(originalConf);
sb.append("Values omitted for security reason if present: ").append(hiddenSet).append("\n");
http://git-wip-us.apache.org/repos/asf/hive/blob/ed64a74e/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 008b3b0..7f3c8b3 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
@@ -39,7 +39,6 @@ import java.util.Map;
public class PerfLogger {
public static final String ACQUIRE_READ_WRITE_LOCKS = "acquireReadWriteLocks";
public static final String COMPILE = "compile";
- public static final String WAIT_COMPILE = "waitCompile";
public static final String PARSE = "parse";
public static final String ANALYZE = "semanticAnalyze";
public static final String OPTIMIZER = "optimizer";
http://git-wip-us.apache.org/repos/asf/hive/blob/ed64a74e/common/src/java/org/apache/hive/http/ConfServlet.java
----------------------------------------------------------------------
diff --git a/common/src/java/org/apache/hive/http/ConfServlet.java b/common/src/java/org/apache/hive/http/ConfServlet.java
index 856a5d2..253df4f 100644
--- a/common/src/java/org/apache/hive/http/ConfServlet.java
+++ b/common/src/java/org/apache/hive/http/ConfServlet.java
@@ -26,7 +26,6 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hive.conf.HiveConfUtil;
/**
* A servlet to print out the running configuration data.
@@ -82,14 +81,11 @@ public class ConfServlet extends HttpServlet {
* Guts of the servlet - extracted for easy testing.
*/
static void writeResponse(Configuration conf, Writer out, String format)
- throws IOException, BadFormatException {
- //redact the sensitive information from the configuration values
- Configuration hconf = new Configuration(conf);
- HiveConfUtil.stripConfigurations(hconf);
+ throws IOException, BadFormatException {
if (FORMAT_JSON.equals(format)) {
- Configuration.dumpConfiguration(hconf, out);
+ Configuration.dumpConfiguration(conf, out);
} else if (FORMAT_XML.equals(format)) {
- hconf.writeXml(out);
+ conf.writeXml(out);
} else {
throw new BadFormatException("Bad format: " + format);
}
http://git-wip-us.apache.org/repos/asf/hive/blob/ed64a74e/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 fd3d457..db5650d 100644
--- a/common/src/java/org/apache/hive/http/HttpServer.java
+++ b/common/src/java/org/apache/hive/http/HttpServer.java
@@ -42,6 +42,7 @@ import org.apache.hadoop.security.SecurityUtil;
import org.apache.hadoop.security.UserGroupInformation;
import org.apache.hadoop.security.authentication.server.AuthenticationFilter;
import org.apache.hadoop.security.authorize.AccessControlList;
+import org.apache.hadoop.util.Shell;
import org.apache.hadoop.hive.common.classification.InterfaceAudience;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.Appender;
@@ -53,13 +54,11 @@ import org.apache.logging.log4j.core.appender.OutputStreamManager;
import org.eclipse.jetty.rewrite.handler.RewriteHandler;
import org.eclipse.jetty.rewrite.handler.RewriteRegexRule;
import org.eclipse.jetty.server.Connector;
-import org.eclipse.jetty.server.HttpConfiguration;
-import org.eclipse.jetty.server.HttpConnectionFactory;
-import org.eclipse.jetty.server.LowResourceMonitor;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.ContextHandler.Context;
import org.eclipse.jetty.server.handler.ContextHandlerCollection;
-import org.eclipse.jetty.server.ServerConnector;
+import org.eclipse.jetty.server.nio.SelectChannelConnector;
+import org.eclipse.jetty.server.ssl.SslSelectChannelConnector;
import org.eclipse.jetty.servlet.DefaultServlet;
import org.eclipse.jetty.servlet.FilterHolder;
import org.eclipse.jetty.servlet.FilterMapping;
@@ -86,9 +85,9 @@ public class HttpServer {
public static final String ADMINS_ACL = "admins.acl";
private final String name;
- private String appDir;
- private WebAppContext webAppContext;
- private Server webServer;
+ private final String appDir;
+ private final WebAppContext webAppContext;
+ private final Server webServer;
/**
* Create a status server on the given port.
@@ -96,7 +95,16 @@ public class HttpServer {
private HttpServer(final Builder b) throws IOException {
this.name = b.name;
- createWebServer(b);
+ webServer = new Server();
+ appDir = getWebAppsPath(b.name);
+ webAppContext = createWebAppContext(b);
+
+ if (b.useSPNEGO) {
+ // Secure the web server with kerberos
+ setupSpnegoFilter(b);
+ }
+
+ initializeWebServer(b);
}
public static class Builder {
@@ -211,7 +219,7 @@ public class HttpServer {
}
public int getPort() {
- return ((ServerConnector)(webServer.getConnectors()[0])).getLocalPort();
+ return webServer.getConnectors()[0].getLocalPort();
}
/**
@@ -337,14 +345,9 @@ public class HttpServer {
* Create a channel connector for "http/https" requests
*/
Connector createChannelConnector(int queueSize, Builder b) {
- ServerConnector connector;
-
- final HttpConfiguration conf = new HttpConfiguration();
- conf.setRequestHeaderSize(1024*64);
- final HttpConnectionFactory http = new HttpConnectionFactory(conf);
-
+ SelectChannelConnector connector;
if (!b.useSSL) {
- connector = new ServerConnector(webServer, http);
+ connector = new SelectChannelConnector();
} else {
SslContextFactory sslContextFactory = new SslContextFactory();
sslContextFactory.setKeyStorePath(b.keyStorePath);
@@ -354,13 +357,15 @@ public class HttpServer {
sslContextFactory.addExcludeProtocols(excludedSSLProtocols.toArray(
new String[excludedSSLProtocols.size()]));
sslContextFactory.setKeyStorePassword(b.keyStorePassword);
- connector = new ServerConnector(webServer, sslContextFactory, http);
+ connector = new SslSelectChannelConnector(sslContextFactory);
}
+ connector.setLowResourcesMaxIdleTime(10000);
connector.setAcceptQueueSize(queueSize);
+ connector.setResolveNames(false);
+ connector.setUseDirectBuffers(false);
+ connector.setRequestHeaderSize(1024*64);
connector.setReuseAddress(true);
- connector.setHost(b.host);
- connector.setPort(b.port);
return connector;
}
@@ -373,7 +378,7 @@ public class HttpServer {
}
}
- private void createWebServer(final Builder b) throws IOException {
+ void initializeWebServer(Builder b) {
// Create the thread pool for the web server to handle HTTP requests
QueuedThreadPool threadPool = new QueuedThreadPool();
if (b.maxThreads > 0) {
@@ -381,26 +386,12 @@ public class HttpServer {
}
threadPool.setDaemon(true);
threadPool.setName(b.name + "-web");
+ webServer.setThreadPool(threadPool);
- this.webServer = new Server(threadPool);
- this.appDir = getWebAppsPath(b.name);
- this.webAppContext = createWebAppContext(b);
-
- if (b.useSPNEGO) {
- // Secure the web server with kerberos
- setupSpnegoFilter(b);
- }
-
- initializeWebServer(b, threadPool.getMaxThreads());
- }
-
- private void initializeWebServer(final Builder b, int queueSize) {
- // Set handling for low resource conditions.
- final LowResourceMonitor low = new LowResourceMonitor(webServer);
- low.setLowResourcesIdleTimeout(10000);
- webServer.addBean(low);
-
- Connector connector = createChannelConnector(queueSize, b);
+ // Create the channel connector for the web server
+ Connector connector = createChannelConnector(threadPool.getMaxThreads(), b);
+ connector.setHost(b.host);
+ connector.setPort(b.port);
webServer.addConnector(connector);
RewriteHandler rwHandler = new RewriteHandler();
http://git-wip-us.apache.org/repos/asf/hive/blob/ed64a74e/common/src/test/org/apache/hadoop/hive/common/TestFileUtils.java
----------------------------------------------------------------------
diff --git a/common/src/test/org/apache/hadoop/hive/common/TestFileUtils.java b/common/src/test/org/apache/hadoop/hive/common/TestFileUtils.java
index adc9b0c..03fcaeb 100644
--- a/common/src/test/org/apache/hadoop/hive/common/TestFileUtils.java
+++ b/common/src/test/org/apache/hadoop/hive/common/TestFileUtils.java
@@ -213,6 +213,7 @@ public class TestFileUtils {
Path copySrc = new Path("copySrc");
Path copyDst = new Path("copyDst");
HiveConf conf = new HiveConf(TestFileUtils.class);
+ conf.set(HiveConf.ConfVars.HIVE_WAREHOUSE_SUBDIR_INHERIT_PERMS.varname, "false");
FileSystem mockFs = mock(FileSystem.class);
when(mockFs.getUri()).thenReturn(URI.create("hdfs:///"));
http://git-wip-us.apache.org/repos/asf/hive/blob/ed64a74e/common/src/test/org/apache/hadoop/hive/common/TestValidReadTxnList.java
----------------------------------------------------------------------
diff --git a/common/src/test/org/apache/hadoop/hive/common/TestValidReadTxnList.java b/common/src/test/org/apache/hadoop/hive/common/TestValidReadTxnList.java
index 00ee820..6661158 100644
--- a/common/src/test/org/apache/hadoop/hive/common/TestValidReadTxnList.java
+++ b/common/src/test/org/apache/hadoop/hive/common/TestValidReadTxnList.java
@@ -26,7 +26,6 @@ import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
-import java.util.BitSet;
/**
* Tests for {@link ValidReadTxnList}
@@ -35,9 +34,9 @@ public class TestValidReadTxnList {
@Test
public void noExceptions() throws Exception {
- ValidTxnList txnList = new ValidReadTxnList(new long[0], new BitSet(), 1, Long.MAX_VALUE);
+ ValidTxnList txnList = new ValidReadTxnList(new long[0], 1, Long.MAX_VALUE);
String str = txnList.writeToString();
- Assert.assertEquals("1:" + Long.MAX_VALUE + "::", str);
+ Assert.assertEquals("1:" + Long.MAX_VALUE + ":", str);
ValidTxnList newList = new ValidReadTxnList();
newList.readFromString(str);
Assert.assertTrue(newList.isTxnValid(1));
@@ -46,9 +45,9 @@ public class TestValidReadTxnList {
@Test
public void exceptions() throws Exception {
- ValidTxnList txnList = new ValidReadTxnList(new long[]{2L,4L}, new BitSet(), 5, 4L);
+ ValidTxnList txnList = new ValidReadTxnList(new long[]{2L,4L}, 5, 4L);
String str = txnList.writeToString();
- Assert.assertEquals("5:4:2,4:", str);
+ Assert.assertEquals("5:4:2:4", str);
ValidTxnList newList = new ValidReadTxnList();
newList.readFromString(str);
Assert.assertTrue(newList.isTxnValid(1));
@@ -63,7 +62,7 @@ public class TestValidReadTxnList {
public void longEnoughToCompress() throws Exception {
long[] exceptions = new long[1000];
for (int i = 0; i < 1000; i++) exceptions[i] = i + 100;
- ValidTxnList txnList = new ValidReadTxnList(exceptions, new BitSet(), 2000, 900);
+ ValidTxnList txnList = new ValidReadTxnList(exceptions, 2000, 900);
String str = txnList.writeToString();
ValidTxnList newList = new ValidReadTxnList();
newList.readFromString(str);
@@ -77,7 +76,7 @@ public class TestValidReadTxnList {
public void readWriteConfig() throws Exception {
long[] exceptions = new long[1000];
for (int i = 0; i < 1000; i++) exceptions[i] = i + 100;
- ValidTxnList txnList = new ValidReadTxnList(exceptions, new BitSet(), 2000, 900);
+ ValidTxnList txnList = new ValidReadTxnList(exceptions, 2000, 900);
String str = txnList.writeToString();
Configuration conf = new Configuration();
conf.set(ValidTxnList.VALID_TXNS_KEY, str);
@@ -90,20 +89,4 @@ public class TestValidReadTxnList {
newConf.readFields(in);
Assert.assertEquals(str, newConf.get(ValidTxnList.VALID_TXNS_KEY));
}
-
- @Test
- public void testAbortedTxn() throws Exception {
- long[] exceptions = {2L, 4L, 6L, 8L, 10L};
- BitSet bitSet = new BitSet(exceptions.length);
- bitSet.set(0); // mark txn "2L" aborted
- bitSet.set(3); // mark txn "8L" aborted
- ValidTxnList txnList = new ValidReadTxnList(exceptions, bitSet, 11, 4L);
- String str = txnList.writeToString();
- Assert.assertEquals("11:4:4,6,10:2,8", str);
- Assert.assertTrue(txnList.isTxnAborted(2L));
- Assert.assertFalse(txnList.isTxnAborted(4L));
- Assert.assertFalse(txnList.isTxnAborted(6L));
- Assert.assertTrue(txnList.isTxnAborted(8L));
- Assert.assertFalse(txnList.isTxnAborted(10L));
- }
}
http://git-wip-us.apache.org/repos/asf/hive/blob/ed64a74e/common/src/test/org/apache/hadoop/hive/common/metrics/metrics2/TestCodahaleMetrics.java
----------------------------------------------------------------------
diff --git a/common/src/test/org/apache/hadoop/hive/common/metrics/metrics2/TestCodahaleMetrics.java b/common/src/test/org/apache/hadoop/hive/common/metrics/metrics2/TestCodahaleMetrics.java
index 67f81d6..aa4e75f 100644
--- a/common/src/test/org/apache/hadoop/hive/common/metrics/metrics2/TestCodahaleMetrics.java
+++ b/common/src/test/org/apache/hadoop/hive/common/metrics/metrics2/TestCodahaleMetrics.java
@@ -33,6 +33,8 @@ import org.junit.Before;
import org.junit.Test;
import java.io.File;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -55,12 +57,9 @@ public class TestCodahaleMetrics {
jsonReportFile = new File(workDir, "json_reporting");
jsonReportFile.delete();
-
conf.set(CommonConfigurationKeysPublic.FS_DEFAULT_NAME_KEY, "local");
conf.setVar(HiveConf.ConfVars.HIVE_METRICS_CLASS, CodahaleMetrics.class.getCanonicalName());
- conf.setVar(HiveConf.ConfVars.HIVE_CODAHALE_METRICS_REPORTER_CLASSES,
- "org.apache.hadoop.hive.common.metrics.metrics2.JsonFileMetricsReporter, "
- + "org.apache.hadoop.hive.common.metrics.metrics2.JmxMetricsReporter");
+ conf.setVar(HiveConf.ConfVars.HIVE_METRICS_REPORTER, MetricsReporting.JSON_FILE.name() + "," + MetricsReporting.JMX.name());
conf.setVar(HiveConf.ConfVars.HIVE_METRICS_JSON_FILE_LOCATION, jsonReportFile.toString());
conf.setVar(HiveConf.ConfVars.HIVE_METRICS_JSON_FILE_INTERVAL, "100ms");
http://git-wip-us.apache.org/repos/asf/hive/blob/ed64a74e/common/src/test/org/apache/hadoop/hive/common/metrics/metrics2/TestCodahaleReportersConf.java
----------------------------------------------------------------------
diff --git a/common/src/test/org/apache/hadoop/hive/common/metrics/metrics2/TestCodahaleReportersConf.java b/common/src/test/org/apache/hadoop/hive/common/metrics/metrics2/TestCodahaleReportersConf.java
deleted file mode 100644
index d694e26..0000000
--- a/common/src/test/org/apache/hadoop/hive/common/metrics/metrics2/TestCodahaleReportersConf.java
+++ /dev/null
@@ -1,145 +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.common.metrics.metrics2;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import java.lang.reflect.InvocationTargetException;
-import org.apache.hadoop.fs.CommonConfigurationKeysPublic;
-import org.apache.hadoop.hive.common.metrics.MetricsTestUtils;
-import org.apache.hadoop.hive.common.metrics.common.MetricsFactory;
-import org.apache.hadoop.hive.conf.HiveConf;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Test;
-
-import java.io.File;
-
-/**
- * Unit tests for Codahale reporter config backward compatibility
- */
-public class TestCodahaleReportersConf {
-
- private static File workDir = new File(System.getProperty("test.tmp.dir"));
- private static File jsonReportFile;
-
- @After
- public void after() throws Exception {
- MetricsFactory.close();
- }
-
- /**
- * Tests that the deprecated HIVE_METRICS_REPORTER config is used if the HIVE_CODAHALE_METRICS_REPORTER_CLASSES is missing.
- */
- @Test
- public void testFallbackToDeprecatedConfig() throws Exception {
-
- HiveConf conf = new HiveConf();
-
- jsonReportFile = new File(workDir, "json_reporting");
- jsonReportFile.delete();
-
- conf.set(CommonConfigurationKeysPublic.FS_DEFAULT_NAME_KEY, "local");
- conf.setVar(HiveConf.ConfVars.HIVE_METRICS_CLASS, CodahaleMetrics.class.getCanonicalName());
- conf.setVar(HiveConf.ConfVars.HIVE_METRICS_REPORTER, "JMX, JSON");
- conf.setVar(HiveConf.ConfVars.HIVE_METRICS_JSON_FILE_LOCATION, jsonReportFile.toString());
- conf.setVar(HiveConf.ConfVars.HIVE_METRICS_JSON_FILE_INTERVAL, "100ms");
-
- MetricsFactory.init(conf);
-
- int runs = 5;
- for (int i = 0; i < runs; i++) {
- MetricsFactory.getInstance().incrementCounter("count2");
- }
-
- // we expect json file to be updated
- byte[] jsonData = MetricsTestUtils.getFileData(jsonReportFile.getAbsolutePath(), 2000, 3);
- ObjectMapper objectMapper = new ObjectMapper();
-
- JsonNode rootNode = objectMapper.readTree(jsonData);
- JsonNode countersNode = rootNode.path("counters");
- JsonNode methodCounterNode = countersNode.path("count2");
- JsonNode countNode = methodCounterNode.path("count");
- Assert.assertEquals(countNode.asInt(), 5);
- }
-
- /**
- * Tests that the deprecated HIVE_METRICS_REPORTER config is not used if
- * HIVE_CODAHALE_METRICS_REPORTER_CLASSES is present.
- *
- * The deprecated config specifies json reporters whereas the newer one doesn't. Validates that
- * the JSON file is not created.
- */
- @Test
- public void testNoFallback() throws Exception {
-
- HiveConf conf = new HiveConf();
-
- jsonReportFile = new File(workDir, "json_reporting");
- jsonReportFile.delete();
-
- conf.set(CommonConfigurationKeysPublic.FS_DEFAULT_NAME_KEY, "local");
- conf.setVar(HiveConf.ConfVars.HIVE_METRICS_CLASS, CodahaleMetrics.class.getCanonicalName());
- conf.setVar(HiveConf.ConfVars.HIVE_METRICS_REPORTER, "JMX, JSON");
- conf.setVar(HiveConf.ConfVars.HIVE_CODAHALE_METRICS_REPORTER_CLASSES,
- "org.apache.hadoop.hive.common.metrics.metrics2.JmxMetricsReporter");
- conf.setVar(HiveConf.ConfVars.HIVE_METRICS_JSON_FILE_LOCATION, jsonReportFile.toString());
- conf.setVar(HiveConf.ConfVars.HIVE_METRICS_JSON_FILE_INTERVAL, "100ms");
-
- MetricsFactory.init(conf);
-
- int runs = 5;
- for (int i = 0; i < runs; i++) {
- MetricsFactory.getInstance().incrementCounter("count2");
- }
-
- Assert.assertFalse(jsonReportFile.exists());
- }
-
- /**
- * Tests that the deprecated HIVE_METRICS_REPORTER config is not used if
- * HIVE_CODAHALE_METRICS_REPORTER_CLASSES is present but incorrect.
- *
- * The deprecated config specifies json reporters whereas the newer one doesn't. Validates that
- * the JSON file is not created.
- */
- @Test
- public void testNoFallbackOnIncorrectConf() throws Exception {
-
- HiveConf conf = new HiveConf();
-
- jsonReportFile = new File(workDir, "json_reporting");
- jsonReportFile.delete();
-
- conf.set(CommonConfigurationKeysPublic.FS_DEFAULT_NAME_KEY, "local");
- conf.setVar(HiveConf.ConfVars.HIVE_METRICS_CLASS, CodahaleMetrics.class.getCanonicalName());
- conf.setVar(HiveConf.ConfVars.HIVE_METRICS_REPORTER, "JMX, JSON");
- conf.setVar(HiveConf.ConfVars.HIVE_CODAHALE_METRICS_REPORTER_CLASSES,
- "org.apache.hadoop.hive.common.metrics.NonExistentReporter");
- conf.setVar(HiveConf.ConfVars.HIVE_METRICS_JSON_FILE_LOCATION, jsonReportFile.toString());
- conf.setVar(HiveConf.ConfVars.HIVE_METRICS_JSON_FILE_INTERVAL, "100ms");
-
- try {
- MetricsFactory.init(conf);
- } catch (InvocationTargetException expectedException) {
-
- }
-
- Assert.assertFalse(jsonReportFile.exists());
- }
-}
http://git-wip-us.apache.org/repos/asf/hive/blob/ed64a74e/contrib/pom.xml
----------------------------------------------------------------------
diff --git a/contrib/pom.xml b/contrib/pom.xml
index 7423e31..6cc4931 100644
--- a/contrib/pom.xml
+++ b/contrib/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.apache.hive</groupId>
<artifactId>hive</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>2.2.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
http://git-wip-us.apache.org/repos/asf/hive/blob/ed64a74e/contrib/src/test/results/clientnegative/case_with_row_sequence.q.out
----------------------------------------------------------------------
diff --git a/contrib/src/test/results/clientnegative/case_with_row_sequence.q.out b/contrib/src/test/results/clientnegative/case_with_row_sequence.q.out
index cf92da6..9ee319f 100644
--- a/contrib/src/test/results/clientnegative/case_with_row_sequence.q.out
+++ b/contrib/src/test/results/clientnegative/case_with_row_sequence.q.out
@@ -10,4 +10,18 @@ POSTHOOK: query: create temporary function row_sequence as
'org.apache.hadoop.hive.contrib.udf.UDFRowSequence'
POSTHOOK: type: CREATEFUNCTION
POSTHOOK: Output: row_sequence
-FAILED: SemanticException Stateful expressions cannot be used inside of CASE
+PREHOOK: query: SELECT CASE WHEN 3 > 2 THEN 10 WHEN row_sequence() > 5 THEN 20 ELSE 30 END
+FROM src LIMIT 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+#### A masked pattern was here ####
+Execution failed with exit status: 2
+Obtaining error information
+
+Task failed!
+Task ID:
+ Stage-1
+
+Logs:
+
+FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
http://git-wip-us.apache.org/repos/asf/hive/blob/ed64a74e/data/files/e011_01.txt
----------------------------------------------------------------------
diff --git a/data/files/e011_01.txt b/data/files/e011_01.txt
deleted file mode 100644
index 92df12a..0000000
--- a/data/files/e011_01.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-12
-34
-56
-78
http://git-wip-us.apache.org/repos/asf/hive/blob/ed64a74e/data/files/events.txt
----------------------------------------------------------------------
diff --git a/data/files/events.txt b/data/files/events.txt
deleted file mode 100644
index e0bd0be..0000000
--- a/data/files/events.txt
+++ /dev/null
@@ -1,200 +0,0 @@
-1111,20121121,1111,1,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,2,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,3,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,4,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,5,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,6,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,7,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,8,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,9,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,10,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,11,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,12,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,13,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,14,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,15,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,16,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,17,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,18,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,19,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,20,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,21,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,22,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,23,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,24,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,25,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,26,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,27,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,28,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,29,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,30,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,31,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,32,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,33,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,34,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,35,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,36,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,37,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,38,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,39,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,40,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,41,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,42,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,43,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,44,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,45,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,46,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,47,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,48,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,49,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121121,1111,50,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121021,1111,1,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,2,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,3,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,4,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,5,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,6,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,7,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,8,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,9,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,10,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,11,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,12,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,13,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,14,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,15,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,16,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,17,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,18,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,19,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,20,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,21,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,22,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,23,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,24,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,25,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,26,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,27,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,28,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,29,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,30,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,31,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,32,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,33,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,34,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,35,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,36,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,37,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,38,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,39,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,40,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,41,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,42,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,43,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,44,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,45,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,46,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,47,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,48,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,49,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121021,1111,50,type1,eventData,session,full_uid,20121021,39,hq_change
-1111,20121221,1111,1,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,2,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,3,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,4,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,5,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,6,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,7,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,8,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,9,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,10,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,11,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,12,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,13,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,14,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,15,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,16,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,17,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,18,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,19,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,20,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,21,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,22,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,23,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,24,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,25,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,26,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,27,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,28,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,29,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,30,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,31,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,32,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,33,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,34,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,35,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,36,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,37,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,38,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,39,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,40,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,41,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,42,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,43,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,44,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,45,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,46,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,47,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,48,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,49,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20121221,1111,50,type1,eventData,session,full_uid,20121121,39,hq_change
-1111,20120921,1111,1,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,2,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,3,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,4,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,5,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,6,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,7,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,8,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,9,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,10,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,11,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,12,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,13,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,14,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,15,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,16,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,17,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,18,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,19,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,20,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,21,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,22,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,23,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,24,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,25,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,26,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,27,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,28,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,29,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,30,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,31,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,32,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,33,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,34,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,35,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,36,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,37,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,38,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,39,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,40,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,41,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,42,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,43,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,44,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,45,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,46,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,47,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,48,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,49,type1,eventData,session,full_uid,20120921,39,hq_change
-1111,20120921,1111,50,type1,eventData,session,full_uid,20120921,39,hq_change
http://git-wip-us.apache.org/repos/asf/hive/blob/ed64a74e/data/files/tpcds-perf/metastore_export/csv/TABLE_PARAMS.txt
----------------------------------------------------------------------
diff --git a/data/files/tpcds-perf/metastore_export/csv/TABLE_PARAMS.txt b/data/files/tpcds-perf/metastore_export/csv/TABLE_PARAMS.txt
new file mode 100644
index 0000000..78020f1
--- /dev/null
+++ b/data/files/tpcds-perf/metastore_export/csv/TABLE_PARAMS.txt
@@ -0,0 +1,143 @@
+_store_@COLUMN_STATS_ACCURATE@{"COLUMN_STATS":{"s_store_sk":"true","s_store_id":"true","s_rec_start_date":"true","s_rec_end_date":"true","s_closed_date_sk":"true","s_store_name":"true","s_number_employees":"true","s_floor_space":"true","s_hours":"true","s_manager":"true","s_market_id":"true","s_geography_class":"true","s_market_desc":"true","s_market_manager":"true","s_division_id":"true","s_division_name":"true","s_company_id":"true","s_company_name":"true","s_street_number":"true","s_street_name":"true","s_street_type":"true","s_suite_number":"true","s_city":"true","s_county":"true","s_state":"true","s_zip":"true","s_country":"true","s_gmt_offset":"true","s_tax_precentage":"true"},"BASIC_STATS":"true"}
+_store_@numFiles@1
+_store_@numRows@1704
+_store_@rawDataSize@3256276
+_store_@totalSize@101707
+_store_@transient_lastDdlTime@1434562098
+_call_center_@COLUMN_STATS_ACCURATE@{"COLUMN_STATS":{"cc_call_center_sk":"true","cc_call_center_id":"true","cc_rec_start_date":"true","cc_rec_end_date":"true","cc_closed_date_sk":"true","cc_open_date_sk":"true","cc_name":"true","cc_class":"true","cc_employees":"true","cc_sq_ft":"true","cc_hours":"true","cc_manager":"true","cc_mkt_id":"true","cc_mkt_class":"true","cc_mkt_desc":"true","cc_market_manager":"true","cc_division":"true","cc_division_name":"true","cc_company":"true","cc_company_name":"true","cc_street_number":"true","cc_street_name":"true","cc_street_type":"true","cc_suite_number":"true","cc_city":"true","cc_county":"true","cc_state":"true","cc_zip":"true","cc_country":"true","cc_gmt_offset":"true","cc_tax_percentage":"true"},"BASIC_STATS":"true"}
+_call_center_@numFiles@1
+_call_center_@numRows@60
+_call_center_@rawDataSize@122700
+_call_center_@totalSize@10347
+_call_center_@transient_lastDdlTime@1434561922
+_catalog_page_@COLUMN_STATS_ACCURATE@{"COLUMN_STATS":{"cp_catalog_page_sk":"true","cp_catalog_page_id":"true","cp_start_date_sk":"true","cp_end_date_sk":"true","cp_department":"true","cp_catalog_number":"true","cp_catalog_page_number":"true","cp_description":"true","cp_type":"true"},"BASIC_STATS":"true"}
+_catalog_page_@numFiles@1
+_catalog_page_@numRows@46000
+_catalog_page_@rawDataSize@21198808
+_catalog_page_@totalSize@1576662
+_catalog_page_@transient_lastDdlTime@1434561925
+_customer_@COLUMN_STATS_ACCURATE@{"COLUMN_STATS":{"c_customer_sk":"true","c_customer_id":"true","c_current_cdemo_sk":"true","c_current_hdemo_sk":"true","c_current_addr_sk":"true","c_first_shipto_date_sk":"true","c_first_sales_date_sk":"true","c_salutation":"true","c_first_name":"true","c_last_name":"true","c_preferred_cust_flag":"true","c_birth_day":"true","c_birth_month":"true","c_birth_year":"true","c_birth_country":"true","c_login":"true","c_email_address":"true","c_last_review_date":"true"},"BASIC_STATS":"true"}
+_customer_@numFiles@538
+_customer_@numRows@80000000
+_customer_@rawDataSize@68801615852
+_customer_@totalSize@3143935054
+_customer_@transient_lastDdlTime@1434561966
+_customer_address_@COLUMN_STATS_ACCURATE@{"COLUMN_STATS":{"ca_address_sk":"true","ca_address_id":"true","ca_street_number":"true","ca_street_name":"true","ca_street_type":"true","ca_suite_number":"true","ca_city":"true","ca_county":"true","ca_state":"true","ca_zip":"true","ca_country":"true","ca_gmt_offset":"true","ca_location_type":"true"},"BASIC_STATS":"true"}
+_customer_address_@numFiles@274
+_customer_address_@numRows@40000000
+_customer_address_@rawDataSize@40595195284
+_customer_address_@totalSize@530195843
+_customer_address_@transient_lastDdlTime@1434561994
+_customer_demographics_@COLUMN_STATS_ACCURATE@{"COLUMN_STATS":{"cd_demo_sk":"true","cd_gender":"true","cd_marital_status":"true","cd_education_status":"true","cd_purchase_estimate":"true","cd_credit_rating":"true","cd_dep_count":"true","cd_dep_employed_count":"true","cd_dep_college_count":"true"},"BASIC_STATS":"true"}
+_customer_demographics_@numFiles@8
+_customer_demographics_@numRows@1861800
+_customer_demographics_@rawDataSize@717186159
+_customer_demographics_@totalSize@323062
+_customer_demographics_@transient_lastDdlTime@1434562071
+_date_dim_@COLUMN_STATS_ACCURATE@{"COLUMN_STATS":{"d_date_sk":"true","d_date_id":"true","d_date":"true","d_month_seq":"true","d_week_seq":"true","d_quarter_seq":"true","d_year":"true","d_dow":"true","d_moy":"true","d_dom":"true","d_qoy":"true","d_fy_year":"true","d_fy_quarter_seq":"true","d_fy_week_seq":"true","d_day_name":"true","d_quarter_name":"true","d_holiday":"true","d_weekend":"true","d_following_holiday":"true","d_first_dom":"true","d_last_dom":"true","d_same_day_ly":"true","d_same_day_lq":"true","d_current_day":"true","d_current_week":"true","d_current_month":"true","d_current_quarter":"true","d_current_year":"true"},"BASIC_STATS":"true"}
+_date_dim_@numFiles@1
+_date_dim_@numRows@73049
+_date_dim_@rawDataSize@81741831
+_date_dim_@totalSize@362925
+_date_dim_@transient_lastDdlTime@1434562075
+_household_demographics_@COLUMN_STATS_ACCURATE@{"COLUMN_STATS":{"hd_demo_sk":"true","hd_income_band_sk":"true","hd_buy_potential":"true","hd_dep_count":"true","hd_vehicle_count":"true"},"BASIC_STATS":"true"}
+_household_demographics_@numFiles@1
+_household_demographics_@numRows@7200
+_household_demographics_@rawDataSize@770400
+_household_demographics_@totalSize@901
+_household_demographics_@transient_lastDdlTime@1434562078
+_income_band_@COLUMN_STATS_ACCURATE@{"COLUMN_STATS":{"ib_income_band_sk":"true","ib_lower_bound":"true","ib_upper_bound":"true"},"BASIC_STATS":"true"}
+_income_band_@numFiles@1
+_income_band_@numRows@20
+_income_band_@rawDataSize@240
+_income_band_@totalSize@399
+_income_band_@transient_lastDdlTime@1434562081
+_item_@COLUMN_STATS_ACCURATE@{"COLUMN_STATS":{"i_item_sk":"true","i_item_id":"true","i_rec_start_date":"true","i_rec_end_date":"true","i_item_desc":"true","i_current_price":"true","i_wholesale_cost":"true","i_brand_id":"true","i_brand":"true","i_class_id":"true","i_class":"true","i_category_id":"true","i_category":"true","i_manufact_id":"true","i_manufact":"true","i_size":"true","i_formulation":"true","i_color":"true","i_units":"true","i_container":"true","i_manager_id":"true","i_product_name":"true"},"BASIC_STATS":"true"}
+_item_@numFiles@9
+_item_@numRows@462000
+_item_@rawDataSize@663560457
+_item_@totalSize@29760748
+_item_@transient_lastDdlTime@1434562091
+_promotion_@COLUMN_STATS_ACCURATE@{"COLUMN_STATS":{"p_promo_sk":"true","p_promo_id":"true","p_start_date_sk":"true","p_end_date_sk":"true","p_item_sk":"true","p_cost":"true","p_response_target":"true","p_promo_name":"true","p_channel_dmail":"true","p_channel_email":"true","p_channel_catalog":"true","p_channel_tv":"true","p_channel_radio":"true","p_channel_press":"true","p_channel_event":"true","p_channel_demo":"true","p_channel_details":"true","p_purpose":"true","p_discount_active":"true"},"BASIC_STATS":"true"}
+_promotion_@numFiles@1
+_promotion_@numRows@2300
+_promotion_@rawDataSize@2713420
+_promotion_@totalSize@63964
+_promotion_@transient_lastDdlTime@1434562093
+_reason_@COLUMN_STATS_ACCURATE@{"COLUMN_STATS":{"r_reason_sk":"true","r_reason_id":"true","r_reason_desc":"true"},"BASIC_STATS":"true"}
+_reason_@numFiles@1
+_reason_@numRows@72
+_reason_@rawDataSize@14400
+_reason_@totalSize@1024
+_reason_@transient_lastDdlTime@1434562095
+_ship_mode_@COLUMN_STATS_ACCURATE@{"COLUMN_STATS":{"sm_ship_mode_sk":"true","sm_ship_mode_id":"true","sm_type":"true","sm_code":"true","sm_carrier":"true","sm_contract":"true"},"BASIC_STATS":"true"}
+_ship_mode_@numFiles@0
+_ship_mode_@numRows@0
+_ship_mode_@rawDataSize@0
+_ship_mode_@totalSize@0
+_ship_mode_@transient_lastDdlTime@1434562097
+_time_dim_@COLUMN_STATS_ACCURATE@{"COLUMN_STATS":{"t_time_sk":"true","t_time_id":"true","t_time":"true","t_hour":"true","t_minute":"true","t_second":"true","t_am_pm":"true","t_shift":"true","t_sub_shift":"true","t_meal_time":"true"},"BASIC_STATS":"true"}
+_time_dim_@numFiles@1
+_time_dim_@numRows@86400
+_time_dim_@rawDataSize@40694400
+_time_dim_@totalSize@133902
+_time_dim_@transient_lastDdlTime@1434562099
+_warehouse_@COLUMN_STATS_ACCURATE@{"COLUMN_STATS":{"w_warehouse_sk":"true","w_warehouse_id":"true","w_warehouse_name":"true","w_warehouse_sq_ft":"true","w_street_number":"true","w_street_name":"true","w_street_type":"true","w_suite_number":"true","w_city":"true","w_county":"true","w_state":"true","w_zip":"true","w_country":"true","w_gmt_offset":"true"},"BASIC_STATS":"true"}
+_warehouse_@numFiles@1
+_warehouse_@numRows@27
+_warehouse_@rawDataSize@27802
+_warehouse_@totalSize@2971
+_warehouse_@transient_lastDdlTime@1434562102
+_web_page_@COLUMN_STATS_ACCURATE@{"COLUMN_STATS":{"wp_web_page_sk":"true","wp_web_page_id":"true","wp_rec_start_date":"true","wp_rec_end_date":"true","wp_creation_date_sk":"true","wp_access_date_sk":"true","wp_autogen_flag":"true","wp_customer_sk":"true","wp_url":"true","wp_type":"true","wp_char_count":"true","wp_link_count":"true","wp_image_count":"true","wp_max_ad_count":"true"},"BASIC_STATS":"true"}
+_web_page_@numFiles@1
+_web_page_@numRows@4602
+_web_page_@rawDataSize@2696178
+_web_page_@totalSize@50572
+_web_page_@transient_lastDdlTime@1434562104
+_web_site_@COLUMN_STATS_ACCURATE@{"COLUMN_STATS":{"web_site_sk":"true","web_site_id":"true","web_rec_start_date":"true","web_rec_end_date":"true","web_name":"true","web_open_date_sk":"true","web_close_date_sk":"true","web_class":"true","web_manager":"true","web_mkt_id":"true","web_mkt_class":"true","web_mkt_desc":"true","web_market_manager":"true","web_company_id":"true","web_company_name":"true","web_street_number":"true","web_street_name":"true","web_street_type":"true","web_suite_number":"true","web_city":"true","web_county":"true","web_state":"true","web_zip":"true","web_country":"true","web_gmt_offset":"true","web_tax_percentage":"true"},"BASIC_STATS":"true"}
+_web_site_@numFiles@1
+_web_site_@numRows@84
+_web_site_@rawDataSize@155408
+_web_site_@totalSize@11271
+_web_site_@transient_lastDdlTime@1434562107
+_catalog_returns_@COLUMN_STATS_ACCURATE@{"COLUMN_STATS":{"cr_returned_date_sk":"true","cr_returned_time_sk":"true","cr_item_sk":"true","cr_refunded_customer_sk":"true","cr_refunded_cdemo_sk":"true","cr_refunded_hdemo_sk":"true","cr_refunded_addr_sk":"true","cr_returning_customer_sk":"true","cr_returning_cdemo_sk":"true","cr_returning_hdemo_sk":"true","cr_returning_addr_sk":"true","cr_call_center_sk":"true","cr_catalog_page_sk":"true","cr_ship_mode_sk":"true","cr_warehouse_sk":"true","cr_reason_sk":"true","cr_order_number":"true","cr_return_quantity":"true","cr_return_amount":"true","cr_return_tax":"true","cr_return_amt_inc_tax":"true","cr_fee":"true","cr_return_ship_cost":"true","cr_refunded_cash":"true","cr_reversed_charge":"true","cr_store_credit":"true","cr_net_loss":"true"},"BASIC_STATS":"true"}
+_catalog_returns_@numFiles@400
+_catalog_returns_@numRows@28798881
+_catalog_returns_@rawDataSize@3057234680
+_catalog_returns_@totalSize@1651022096
+_catalog_sales_@COLUMN_STATS_ACCURATE@{"COLUMN_STATS":{"cs_sold_date_sk":"true","cs_sold_time_sk":"true","cs_ship_date_sk":"true","cs_bill_customer_sk":"true","cs_bill_cdemo_sk":"true","cs_bill_hdemo_sk":"true","cs_bill_addr_sk":"true","cs_ship_customer_sk":"true","cs_ship_cdemo_sk":"true","cs_ship_hdemo_sk":"true","cs_ship_addr_sk":"true","cs_call_center_sk":"true","cs_catalog_page_sk":"true","cs_ship_mode_sk":"true","cs_warehouse_sk":"true","cs_item_sk":"true","cs_promo_sk":"true","cs_order_number":"true","cs_quantity":"true","cs_wholesale_cost":"true","cs_list_price":"true","cs_sales_price":"true","cs_ext_discount_amt":"true","cs_ext_sales_price":"true","cs_ext_wholesale_cost":"true","cs_ext_list_price":"true","cs_ext_tax":"true","cs_coupon_amt":"true","cs_ext_ship_cost":"true","cs_net_paid":"true","cs_net_paid_inc_tax":"true","cs_net_paid_inc_ship":"true","cs_net_paid_inc_ship_tax":"true","cs_net_profit":"true"},"BASIC_STATS":"true"}
+_catalog_sales_@numFiles@552
+_catalog_sales_@numRows@287989836
+_catalog_sales_@rawDataSize@38999608952
+_catalog_sales_@totalSize@16430853294
+_catalog_sales_@transient_lastDdlTime@1434700893
+_inventory_@COLUMN_STATS_ACCURATE@{"COLUMN_STATS":{"inv_date_sk":"true","inv_item_sk":"true","inv_warehouse_sk":"true","inv_quantity_on_hand":"true"},"BASIC_STATS":"true"}
+_inventory_@numFiles@51
+_inventory_@numRows@37584000
+_inventory_@rawDataSize@593821104
+_inventory_@totalSize@58323594
+_inventory_@transient_lastDdlTime@1434681166
+_store_sales_@COLUMN_STATS_ACCURATE@{"COLUMN_STATS":{"ss_sold_date_sk":"true","ss_sold_time_sk":"true","ss_item_sk":"true","ss_customer_sk":"true","ss_cdemo_sk":"true","ss_hdemo_sk":"true","ss_addr_sk":"true","ss_store_sk":"true","ss_promo_sk":"true","ss_ticket_number":"true","ss_quantity":"true","ss_wholesale_cost":"true","ss_list_price":"true","ss_sales_price":"true","ss_ext_discount_amt":"true","ss_ext_sales_price":"true","ss_ext_wholesale_cost":"true","ss_ext_list_price":"true","ss_ext_tax":"true","ss_coupon_amt":"true","ss_net_paid":"true","ss_net_paid_inc_tax":"true","ss_net_profit":"true"},"BASIC_STATS":"true"}
+_store_sales_@numFiles@600
+_store_sales_@numRows@575995635
+_store_sales_@rawDataSize@50814502088
+_store_sales_@totalSize@22288384284
+_store_sales_@transient_lastDdlTime@1434700760
+_web_sales_@COLUMN_STATS_ACCURATE@{"COLUMN_STATS":{"ws_sold_date_sk":"true","ws_sold_time_sk":"true","ws_ship_date_sk":"true","ws_item_sk":"true","ws_bill_customer_sk":"true","ws_bill_cdemo_sk":"true","ws_bill_hdemo_sk":"true","ws_bill_addr_sk":"true","ws_ship_customer_sk":"true","ws_ship_cdemo_sk":"true","ws_ship_hdemo_sk":"true","ws_ship_addr_sk":"true","ws_web_page_sk":"true","ws_web_site_sk":"true","ws_ship_mode_sk":"true","ws_warehouse_sk":"true","ws_promo_sk":"true","ws_order_number":"true","ws_quantity":"true","ws_wholesale_cost":"true","ws_list_price":"true","ws_sales_price":"true","ws_ext_discount_amt":"true","ws_ext_sales_price":"true","ws_ext_wholesale_cost":"true","ws_ext_list_price":"true","ws_ext_tax":"true","ws_coupon_amt":"true","ws_ext_ship_cost":"true","ws_net_paid":"true","ws_net_paid_inc_tax":"true","ws_net_paid_inc_ship":"true","ws_net_paid_inc_ship_tax":"true","ws_net_profit":"true"},"BASIC_STATS":"true"}
+_web_sales_@numFiles@529
+_web_sales_@numRows@144002668
+_web_sales_@rawDataSize@19580198212
+_web_sales_@totalSize@8304889016
+_web_sales_@transient_lastDdlTime@1434700829
+_web_returns_@COLUMN_STATS_ACCURATE@{"COLUMN_STATS":{"wr_returned_date_sk":"true","wr_returned_time_sk":"true","wr_item_sk":"true","wr_refunded_customer_sk":"true","wr_refunded_cdemo_sk":"true","wr_refunded_hdemo_sk":"true","wr_refunded_addr_sk":"true","wr_returning_customer_sk":"true","wr_returning_cdemo_sk":"true","wr_returning_hdemo_sk":"true","wr_returning_addr_sk":"true","wr_web_page_sk":"true","wr_reason_sk":"true","wr_order_number":"true","wr_return_quantity":"true","wr_return_amt":"true","wr_return_tax":"true","wr_return_amt_inc_tax":"true","wr_fee":"true","wr_return_ship_cost":"true","wr_refunded_cash":"true","wr_reversed_charge":"true","wr_account_credit":"true","wr_net_loss":"true"},"BASIC_STATS":"true"}
+_web_returns_@numFiles@135
+_web_returns_@numRows@14398467
+_web_returns_@rawDataSize@1325194184
+_web_returns_@totalSize@827734274
+_web_returns_@transient_lastDdlTime@1434700842
+_store_returns_@COLUMN_STATS_ACCURATE@{"COLUMN_STATS":{"sr_returned_date_sk":"true","sr_return_time_sk":"true","sr_item_sk":"true","sr_customer_sk":"true","sr_cdemo_sk":"true","sr_hdemo_sk":"true","sr_addr_sk":"true","sr_store_sk":"true","sr_reason_sk":"true","sr_ticket_number":"true","sr_return_quantity":"true","sr_return_amt":"true","sr_return_tax":"true","sr_return_amt_inc_tax":"true","sr_fee":"true","sr_return_ship_cost":"true","sr_refunded_cash":"true","sr_reversed_charge":"true","sr_store_credit":"true","sr_net_loss":"true"},"BASIC_STATS":"true"}
+_store_returns_@numFiles@573
+_store_returns_@numRows@57591150
+_store_returns_@rawDataSize@4462194832
+_store_returns_@totalSize@2683203627
+_store_returns_@transient_lastDdlTime@1434700790