mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 08:40:50 +00:00
Better semantic of sharing columns: development [#CLICKHOUSE-2].
This commit is contained in:
parent
d9732198ac
commit
4e8a70a29f
@ -586,11 +586,12 @@ private:
|
||||
|
||||
executeImpl(temporary_block, {0, 1, 2}, 3);
|
||||
|
||||
MutableColumnPtr result_column = temporary_block.getByPosition(3).column->mutate();
|
||||
if (ColumnNullable * result_nullable = typeid_cast<ColumnNullable *>(result_column.get()))
|
||||
const ColumnPtr & result_column = temporary_block.getByPosition(3).column;
|
||||
if (checkColumn<ColumnNullable>(result_column.get()))
|
||||
{
|
||||
result_nullable->applyNullMap(static_cast<const ColumnNullable &>(*arg_cond.column));
|
||||
block.getByPosition(result).column = std::move(result_column);
|
||||
MutableColumnPtr mutable_result_column = result_column->mutate();
|
||||
static_cast<ColumnNullable &>(*mutable_result_column).applyNullMap(static_cast<const ColumnNullable &>(*arg_cond.column));
|
||||
block.getByPosition(result).column = std::move(mutable_result_column);
|
||||
return true;
|
||||
}
|
||||
else if (result_column->onlyNull())
|
||||
@ -601,7 +602,7 @@ private:
|
||||
else
|
||||
{
|
||||
block.getByPosition(result).column = ColumnNullable::create(
|
||||
materializeColumnIfConst(std::move(result_column)), static_cast<const ColumnNullable &>(*arg_cond.column).getNullMapColumnPtr());
|
||||
materializeColumnIfConst(result_column), static_cast<const ColumnNullable &>(*arg_cond.column).getNullMapColumnPtr());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user