diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java index 96243b6..973923c 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java @@ -390,6 +390,22 @@ private static BaseWork getBaseWork(Configuration conf, String name) { } } + public static Map> getScratchColumnVectorTypes(Configuration hiveConf) { + BaseWork baseWork = getMapWork(hiveConf); + if (baseWork == null) { + baseWork = getReduceWork(hiveConf); + } + return baseWork.getScratchColumnVectorTypes(); + } + + public static Map> getScratchColumnMap(Configuration hiveConf) { + BaseWork baseWork = getMapWork(hiveConf); + if (baseWork == null) { + baseWork = getReduceWork(hiveConf); + } + return baseWork.getScratchColumnMap(); + } + public static void setWorkflowAdjacencies(Configuration conf, QueryPlan plan) { try { Graph stageGraph = plan.getQueryPlan().getStageGraph(); diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOperator.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOperator.java index 607f641..30e36ac 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOperator.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOperator.java @@ -207,8 +207,7 @@ protected void internalForward(Object row, ObjectInspector outputOI) throws Hive Object[] values = (Object[]) row; VectorColumnAssign[] vcas = outputVectorAssigners.get(outputOI); if (null == vcas) { - Map> allColumnMaps = Utilities. - getMapRedWork(hconf).getMapWork().getScratchColumnMap(); + Map> allColumnMaps = Utilities.getScratchColumnMap(hconf); Map columnMap = allColumnMaps.get(fileKey); vcas = VectorColumnAssignFactory.buildAssigners( outputBatch, outputOI, columnMap, conf.getOutputColumnNames()); diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSMBMapJoinOperator.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSMBMapJoinOperator.java index aa0afe7..0591531 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSMBMapJoinOperator.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSMBMapJoinOperator.java @@ -285,8 +285,7 @@ protected void internalForward(Object row, ObjectInspector outputOI) throws Hive Object[] values = (Object[]) row; VectorColumnAssign[] vcas = outputVectorAssigners.get(outputOI); if (null == vcas) { - Map> allColumnMaps = Utilities. - getMapRedWork(hconf).getMapWork().getScratchColumnMap(); + Map> allColumnMaps = Utilities.getScratchColumnMap(hconf); Map columnMap = allColumnMaps.get(fileKey); vcas = VectorColumnAssignFactory.buildAssigners( outputBatch, outputOI, columnMap, conf.getOutputColumnNames()); diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedRowBatchCtx.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedRowBatchCtx.java index 38d9e2c..c77d002 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedRowBatchCtx.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedRowBatchCtx.java @@ -131,13 +131,8 @@ public VectorizedRowBatchCtx() { */ public void init(Configuration hiveConf, String fileKey, StructObjectInspector rowOI) { - MapredWork mapredWork = Utilities.getMapRedWork(hiveConf); - Map> scratchColumnVectorTypes; - if (mapredWork.getMapWork() != null) { - scratchColumnVectorTypes = mapredWork.getMapWork().getScratchColumnVectorTypes(); - } else { - scratchColumnVectorTypes = mapredWork.getReduceWork().getScratchColumnVectorTypes(); - } + Map> scratchColumnVectorTypes = + Utilities.getScratchColumnVectorTypes(hiveConf); columnTypeMap = scratchColumnVectorTypes.get(fileKey); this.rowOI= rowOI; this.rawRowOI = rowOI; @@ -174,7 +169,7 @@ public void init(Configuration hiveConf, FileSplit split) throws ClassNotFoundEx String partitionPath = split.getPath().getParent().toString(); columnTypeMap = Utilities - .getMapRedWork(hiveConf).getMapWork().getScratchColumnVectorTypes() + .getScratchColumnVectorTypes(hiveConf) .get(partitionPath); Properties partProps =