Index: ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapOperator.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapOperator.java (date 1529032582000) +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapOperator.java (date 1529288571000) @@ -803,10 +803,9 @@ VectorizedRowBatch batch = (VectorizedRowBatch) value; numRows += batch.size; if (hasRowIdentifier) { - if (batchContext.getRecordIdColumnVector() == null) { + final int idx = batchContext.findVirtualColumnNum(VirtualColumn.ROWID); + if (idx < 0) { setRowIdentiferToNull(batch); - } else { - batch.cols[rowIdentifierColumnNum] = batchContext.getRecordIdColumnVector(); } } } Index: ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedRowBatchCtx.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedRowBatchCtx.java (date 1529032582000) +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedRowBatchCtx.java (date 1529288571000) @@ -84,13 +84,6 @@ private int partitionColumnCount; private int virtualColumnCount; private VirtualColumn[] neededVirtualColumns; - /** - * A record ID column is a virtual column, so it should be separated from normal data column - * processes. A recordIdColumnVector contains RecordIdentifier information in a - * StructColumnVector. It has three LongColumnVectors as its fields; original write IDs, - * bucket IDs, and row IDs. - */ - private StructColumnVector recordIdColumnVector; private String[] scratchColumnTypeNames; private DataTypePhysicalVariation[] scratchDataTypePhysicalVariations; @@ -212,14 +205,6 @@ return scratchDataTypePhysicalVariations; } - public StructColumnVector getRecordIdColumnVector() { - return this.recordIdColumnVector; - } - - public void setRecordIdColumnVector(StructColumnVector recordIdColumnVector) { - this.recordIdColumnVector = recordIdColumnVector; - } - /** * Initializes the VectorizedRowBatch context based on an scratch column type names and * object inspector. Index: ql/src/java/org/apache/hadoop/hive/ql/io/orc/VectorizedOrcAcidRowBatchReader.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/io/orc/VectorizedOrcAcidRowBatchReader.java (date 1529032582000) +++ ql/src/java/org/apache/hadoop/hive/ql/io/orc/VectorizedOrcAcidRowBatchReader.java (date 1529288571000) @@ -477,8 +477,8 @@ } } if (rowIdProjected) { - // TODO: could we just do: int ix = rbCtx.findVirtualColumnNum(VirtualColumn.ROWID); value.cols[ix] = recordIdColumnVector; - rbCtx.setRecordIdColumnVector(recordIdColumnVector); + int ix = rbCtx.findVirtualColumnNum(VirtualColumn.ROWID); + value.cols[ix] = recordIdColumnVector; } progress = baseReader.getProgress(); return true;