diff --git a/dbms/src/Processors/Transforms/CubeTransform.cpp b/dbms/src/Processors/Transforms/CubeTransform.cpp index 1f8d2e4105cb33779a98dc75cd1ae7533451bad9..a91b2d8c3fa80bc1d19b71c45541099024f1b00c 100644 --- a/dbms/src/Processors/Transforms/CubeTransform.cpp +++ b/dbms/src/Processors/Transforms/CubeTransform.cpp @@ -16,7 +16,7 @@ CubeTransform::CubeTransform(Block header, AggregatingTransformParamsPtr params_ void CubeTransform::consume(Chunk chunk) { consumed_chunk = std::move(chunk); - auto num_rows = current_chunk.getNumRows(); + auto num_rows = consumed_chunk.getNumRows(); mask = (UInt64(1) << keys.size()) - 1; current_columns = consumed_chunk.getColumns(); @@ -43,7 +43,7 @@ Chunk CubeTransform::generate() auto columns = current_columns; for (size_t i = 0; i < keys.size(); ++i) - if (mask & (UInt64(1) << i)) + if ((mask & (UInt64(1) << i)) == 0) columns[keys[i]] = current_zero_columns[i]; BlocksList cube_blocks = { getInputPort().getHeader().cloneWithColumns(columns) };