[fix](vectorized) Support outer join for vectorized exec engine (#10323)

In a vectorized scenario, the query plan will generate a new tuple for the join node.
This tuple mainly describes the output schema of the join node.
Adding this tuple mainly solves the problem that the input schema of the join node is different from the output schema.
For example:
1. The case where the null side column caused by outer join is converted to nullable.
2. The projection of the outer tuple.
This commit is contained in:
HappenLee
2022-06-24 08:59:30 +08:00
committed by GitHub
parent c288bb363a
commit 2cc670dba6
27 changed files with 618 additions and 274 deletions

View File

@ -464,4 +464,11 @@ ColumnPtr make_nullable(const ColumnPtr& column, bool is_nullable) {
return ColumnNullable::create(column, ColumnUInt8::create(column->size(), is_nullable ? 1 : 0));
}
ColumnPtr remove_nullable(const ColumnPtr& column) {
if (is_column_nullable(*column)) {
return reinterpret_cast<const ColumnNullable*>(column.get())->get_nested_column_ptr();
}
return column;
}
} // namespace doris::vectorized