Gopal V created HIVE-14016: ------------------------------ Summary: Vectorization: VectorGroupByRollupOperator and VectorGroupByCubeOperator Key: HIVE-14016 URL: https://issues.apache.org/jira/browse/HIVE-14016 Project: Hive Issue Type: Improvement Components: Vectorization Reporter: Gopal V
Rollup and Cube queries are not vectorized today due to the miss of grouping-sets inside vector group by. The cube and rollup operators can be shimmed onto the end of the pipeline by converting a single row writer into a multiple row writer. The corresponding non-vec loop is as follows {code} if (groupingSetsPresent) { Object[] newKeysArray = newKeys.getKeyArray(); Object[] cloneNewKeysArray = new Object[newKeysArray.length]; for (int keyPos = 0; keyPos < groupingSetsPosition; keyPos++) { cloneNewKeysArray[keyPos] = newKeysArray[keyPos]; } for (int groupingSetPos = 0; groupingSetPos < groupingSets.size(); groupingSetPos++) { for (int keyPos = 0; keyPos < groupingSetsPosition; keyPos++) { newKeysArray[keyPos] = null; } FastBitSet bitset = groupingSetsBitSet[groupingSetPos]; // Some keys need to be left to null corresponding to that grouping set. for (int keyPos = bitset.nextSetBit(0); keyPos >= 0; keyPos = bitset.nextSetBit(keyPos+1)) { newKeysArray[keyPos] = cloneNewKeysArray[keyPos]; } newKeysArray[groupingSetsPosition] = newKeysGroupingSets[groupingSetPos]; processKey(row, rowInspector); } } {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)