You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ga...@apache.org on 2017/12/18 23:26:00 UTC
[17/50] [abbrv] hive git commit: HIVE-18286 -
java.lang.ClassCastException:
org.apache.hadoop.hive.ql.exec.vector.DoubleColumnVector cannot be cast to
org.apache.hadoop.hive.ql.exec.vector.LongColumnVector (Eugene Koifman,
reviewed by Alan Gates)
HIVE-18286 - java.lang.ClassCastException: org.apache.hadoop.hive.ql.exec.vector.DoubleColumnVector cannot be cast to org.apache.hadoop.hive.ql.exec.vector.LongColumnVector (Eugene Koifman, reviewed by Alan Gates)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/ad106f0c
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/ad106f0c
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/ad106f0c
Branch: refs/heads/standalone-metastore
Commit: ad106f0c4378b10e9c6ef11116e1620bae689ba8
Parents: 8259022
Author: Eugene Koifman <ek...@hortonworks.com>
Authored: Mon Dec 18 14:13:02 2017 -0800
Committer: Eugene Koifman <ek...@hortonworks.com>
Committed: Mon Dec 18 14:13:02 2017 -0800
----------------------------------------------------------------------
.../io/orc/VectorizedOrcAcidRowBatchReader.java | 19 ++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/ad106f0c/ql/src/java/org/apache/hadoop/hive/ql/io/orc/VectorizedOrcAcidRowBatchReader.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/VectorizedOrcAcidRowBatchReader.java b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/VectorizedOrcAcidRowBatchReader.java
index d571bd0..990e0cb 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/VectorizedOrcAcidRowBatchReader.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/VectorizedOrcAcidRowBatchReader.java
@@ -415,7 +415,9 @@ public class VectorizedOrcAcidRowBatchReader
* If there are deletes and reading original file, we must produce synthetic ROW_IDs in order
* to see if any deletes apply
*/
- if(needSyntheticRowIds(true, !deleteEventRegistry.isEmpty(), rowIdProjected)) {
+ boolean needSyntheticRowId =
+ needSyntheticRowIds(true, !deleteEventRegistry.isEmpty(), rowIdProjected);
+ if(needSyntheticRowId) {
assert syntheticProps != null && syntheticProps.rowIdOffset >= 0 : "" + syntheticProps;
assert syntheticProps != null && syntheticProps.bucketProperty >= 0 : "" + syntheticProps;
if(innerReader == null) {
@@ -459,8 +461,19 @@ public class VectorizedOrcAcidRowBatchReader
// txnid:0 which is always committed so there is no need to check wrt invalid transactions
//But originals written by Load Data for example can be in base_x or delta_x_x so we must
//check if 'x' is committed or not evn if ROW_ID is not needed in the Operator pipeline.
- findRecordsWithInvalidTransactionIds(innerRecordIdColumnVector,
- vectorizedRowBatchBase.size, selectedBitSet);
+ if (needSyntheticRowId) {
+ findRecordsWithInvalidTransactionIds(innerRecordIdColumnVector,
+ vectorizedRowBatchBase.size, selectedBitSet);
+ } else {
+ /*since ROW_IDs are not needed we didn't create the ColumnVectors to hold them but we
+ * still have to check if the data being read is committed as far as current
+ * reader (transactions) is concerned. Since here we are reading 'original' schema file,
+ * all rows in it have been created by the same txn, namely 'syntheticProps.syntheticTxnId'
+ */
+ if (!validTxnList.isTxnValid(syntheticProps.syntheticTxnId)) {
+ selectedBitSet.clear(0, vectorizedRowBatchBase.size);
+ }
+ }
}
}
else {