diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/AcidOutputFormat.java b/ql/src/java/org/apache/hadoop/hive/ql/io/AcidOutputFormat.java index e6b8490bda..1e8bb223f2 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/io/AcidOutputFormat.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/io/AcidOutputFormat.java @@ -73,6 +73,8 @@ * todo: link to AcidUtils? */ private long visibilityTxnId = 0; + private boolean temporary = false; + /** * Create the options object. * @param conf Use the given configuration @@ -334,6 +336,15 @@ public Path getFinalDestination() { public long getVisibilityTxnId() { return visibilityTxnId; } + + public Options temporary(boolean temporary) { + this.temporary = temporary; + return this; + } + + public boolean isTemporary() { + return temporary; + } } /** diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/HiveFileFormatUtils.java b/ql/src/java/org/apache/hadoop/hive/ql/io/HiveFileFormatUtils.java index f76b026bbc..f75ed5d6ea 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/io/HiveFileFormatUtils.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/io/HiveFileFormatUtils.java @@ -350,7 +350,8 @@ private static RecordUpdater getRecordUpdater(JobConf jc, .inspector(inspector) .recordIdColumn(rowIdColNum) .statementId(conf.getStatementId()) - .finalDestination(conf.getDestPath())); + .finalDestination(conf.getDestPath()) + .temporary(conf.isTemporary())); } public static T getFromPathRecursively(Map pathToPartitionInfo, Path dir, diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcRecordUpdater.java b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcRecordUpdater.java index 2e4ef315c3..3fa61d3560 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcRecordUpdater.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcRecordUpdater.java @@ -355,8 +355,8 @@ private static TypeDescription getTypeDescriptionFromTableProperties(Properties writerOptions.bufferSize(baseBufferSizeValue / ratio); writerOptions.stripeSize(baseStripeSizeValue / ratio); writerOptions.blockPadding(false); - if (optionsCloneForDelta.getConfiguration().getBoolean( - HiveConf.ConfVars.HIVE_ORC_DELTA_STREAMING_OPTIMIZATIONS_ENABLED.varname, false)) { + if (HiveConf.getBoolVar(optionsCloneForDelta.getConfiguration(), + HiveConf.ConfVars.HIVE_ORC_DELTA_STREAMING_OPTIMIZATIONS_ENABLED) || options.isTemporary()) { writerOptions.encodingStrategy(org.apache.orc.OrcFile.EncodingStrategy.SPEED); writerOptions.rowIndexStride(0); writerOptions.getConfiguration().set(OrcConf.DICTIONARY_KEY_SIZE_THRESHOLD.getAttribute(), "-1.0");