Fix invalid header in projection block calculation

This commit is contained in:
Amos Bird 2021-10-30 17:26:43 +08:00
parent 77d461609c
commit d647a2db0c
No known key found for this signature in database
GPG Key ID: 80D430DCBECFEDB4
3 changed files with 12 additions and 1 deletions

View File

@ -237,7 +237,7 @@ Block ProjectionDescription::calculate(const Block & block, ContextPtr context)
auto builder = InterpreterSelectQuery(
query_ast,
context,
Pipe(std::make_shared<SourceFromSingleChunk>(block, Chunk(block.getColumns(), block.rows()))),
Pipe(std::make_shared<SourceFromSingleChunk>(block)),
SelectQueryOptions{
type == ProjectionDescription::Type::Normal ? QueryProcessingStage::FetchColumns
: QueryProcessingStage::WithMergeableState})

View File

@ -0,0 +1,11 @@
set allow_experimental_projection_optimization = 1, force_optimize_projection = 1;
drop table if exists tp;
create table tp (type Int32, device UUID, cnt UInt64) engine = MergeTree order by (type, device);
insert into tp select number%3, generateUUIDv4(), 1 from numbers(300);
alter table tp add projection uniq_city_proj ( select type, uniq(cityHash64(device)), sum(cnt) group by type );
alter table tp materialize projection uniq_city_proj settings mutations_sync = 1;
drop table tp;